{"version":3,"sources":["webpack:///@mol-fe/mol-fe-xpmodule-news-search/webpack/bootstrap","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/utils.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/preact/dist/preact.module.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/preact/hooks/dist/hooks.module.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/preact/compat/dist/compat.module.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/helpers.ts","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/api/bidmax.ts","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/api/index.ts","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/bind.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/buildURL.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/cancel/isCancel.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/defaults.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/adapters/xhr.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/createError.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/mergeConfig.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/cancel/Cancel.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/url-parse/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/(webpack)/buildin/global.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/axios.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/is-buffer/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/Axios.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/InterceptorManager.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/dispatchRequest.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/transformData.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/process/browser.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/settle.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/core/enhanceError.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/cookies.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/combineURLs.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/cancel/CancelToken.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/axios/lib/helpers/spread.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/@mol-rta/rta3-www/dist/base-3.0.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/react-timeago/lib/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/react-timeago/lib/defaultFormatter.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/react-timeago/lib/dateParser.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/getPropsFromContext.ts","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/requires-port/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/querystringify/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/storage.ts","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/collection-utils.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/browser-detector.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/classnames/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/index.tsx","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/react-sizeme/dist/react-sizeme.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/element-utils.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/listener-handler.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/id-generator.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/id-handler.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/reporter.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/batch-processor/src/batch-processor.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/batch-processor/src/utils.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/state-handler.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/prop-types/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/invariant/browser.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/throttle-debounce/dist/index.esm.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./node_modules/shallowequal/index.js","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/App/index.tsx","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/ResultItem/index.tsx","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/ResultItem/styles.css","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/Spinner/index.tsx","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/Spinner/styles.css","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/App/styles.css","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/App/assets/logo.png","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/App/assets/logo2x.png","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/App/assets/logoWide.png","webpack:///@mol-fe/mol-fe-xpmodule-news-search/./src/client/components/App/assets/logoWide2x.png"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","f","u","parentNode","removeChild","h","push","children","defaultProps","ref","v","type","props","__k","__","__b","__e","__d","__c","constructor","vnode","y","this","context","indexOf","w","base","g","debounceRendering","k","sort","__v","pop","__P","T","__n","ownerSVGElement","$","_","appendChild","nextSibling","insertBefore","A","z","Array","C","setProperty","test","P","e","style","cssText","toLowerCase","slice","addEventListener","N","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","event","x","contextType","__E","render","D","sub","state","__h","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","__r","getChildContext","getSnapshotBeforeUpdate","j","diffed","some","nodeType","localName","createTextNode","createElementNS","createElement","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","checked","current","unmount","componentWillUnmount","E","I","L","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","resolve","setTimeout","__H","q","concat","useDebugValue","F","requestAnimationFrame","clearTimeout","cancelAnimationFrame","filter","__u","__f","fallback","default","displayName","S","for","R","U","M","firstChild","persist","nativeEvent","O","container","map","W","count","only","Error","toArray","apply","defaultValue","multiple","selected","preactCompatNormalized","class","className","V","Z","$$typeof","configurable","isPureReactComponent","__proto__","B","isReactComponent","G","J","set","K","ondoubleclick","ondblclick","onbeforeinput","onchange","oninput","Q","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","version","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","unstable_batchedUpdates","Suspense","lazy","isThirdPartyAmp","setIsThirdPartyAmp","newValue","getIsThirdPartyAmp","requestAmpResize","parent","location","search","match","postMessage","height","body","scrollHeight","sentinel","message","docHeight","documentElement","offsetHeight","iframe","top","JSON","stringify","error","getPageCriteria","PageCriteria","getTimestampQsSuffix","timestamp","Date","now","BIDMAX_TRACKING_ENABLED","startTime","bidmaxPublisherUrl","setBidmaxPublisherUrl","newUrl","rtaPage","postEventToUrl","args","event_type","payload","referrer","timeAtSend","type_version","platform","isThirdPartyIframe","thirdpartyPlatform","url","pageUrl","href","linkRelCanonical","querySelector","getAttribute","metaPublished","publishedDate","getBodyFromArgs","useNewzitDomainCrta","post","headers","tracked","trackBidmax","includes","params","channel","postEventToWindow","catch","rtaEvent","isWebPlatform","RTA3","environment","itoCode","postEventToRTA","getResultsByGeoAndTab","geo","tab","apiHost","isFBIARenderer","publisher","toUpperCase","response","results","getUserCountry","useNewzitGeoEndpoint","geoEndpoint","timeout","Country","loadABframe","trackingArgs","frameUrl","reject","messageHandler","scope","abNumber","String","width","border","src","callClickUrl","clickUrl","Image","getAbInfo","getRelevantFirstOverride","articleId","siteHost","utils","encode","encodeURIComponent","paramsSerializer","serializedParams","parts","toISOString","join","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","defaults","process","XMLHttpRequest","transformRequest","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","undefined","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","code","config1","config2","prop","Cancel","required","qs","slashes","protocolre","left","RegExp","trimLeft","rules","address","NaN","ignore","hash","query","lolcation","loc","global","self","finaldestination","protocol","Url","unescape","pathname","extractProtocol","exec","rest","parser","relative","extracted","instruction","index","instructions","charAt","path","split","last","unshift","up","port","host","hostname","origin","part","char","ins","Function","Axios","mergeConfig","createInstance","defaultConfig","instance","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","shift","getUri","handlers","use","eject","id","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","reason","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","run","marker","runClearTimeout","Item","array","noop","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","line","substr","originURL","msie","userAgent","urlParsingNode","resolveURL","requestURL","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","remove","relativeURL","executor","TypeError","resolvePromise","token","source","callback","arr","rta3Origin","reporter","reportData","documentReferrer","reportingUrl","setIDs","ids","noLiveServer","events","console","warn","storedIDs","locals","localStorage","getItem","_error","xhr","setItem","methods","sendBeacon","_extends","assign","target","_slicedToArray","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","_createClass","defineProperties","descriptor","writable","Constructor","protoProps","staticProps","React","newObj","_interopRequireWildcard","_defaultFormatter2","_interopRequireDefault","_dateParser2","_possibleConstructorReturn","ReferenceError","MINUTE","HOUR","DAY","WEEK","MONTH","YEAR","TimeAgo","_Component","_ref","_temp","_this","_classCallCheck","_len","_key","getPrototypeOf","isStillMounted","tick","refresh","live","date","valueOf","seconds","Math","round","abs","unboundPeriod","period","min","max","minPeriod","maxPeriod","timeoutId","subClass","superClass","setPrototypeOf","_inherits","lastProps","_props","formatter","Komponent","component","passDownProps","keys","_objectWithoutProperties","timeNow","suffix","_ref2","_ref3","unit","passDownTitle","spreadProps","dateTime","nextFormatter","Infinity","_toConsumableArray","arr2","from","Number","isNaN","_parts$map","parseInt","_parts$map2","firstP","secondP","restPs","correctedParts","UTC","ITO_BY_PLATFORM","thirdparty","NY_TAB_STATES","getPropsFromContext","element","pageCriteria","isAmp","debugAB","clearAB","Boolean","dataset","xpmodulePlatform","geoStr","startTabStr","startTab","headlineStr","headline","previewTextStr","previewText","adSlotStr","adSlot","forceItoStr","forceIto","enlargeFirstStr","enlargeFirst","referringDomainStr","referringDomain","referringURLStr","referringURL","environmentStr","versionStr","channelStr","articleIdStr","darkMode","compactMode","limit","limitStr","parsedUrl","debugThirdParty","abNumberFromStorage","getFromStorage","setToStorage","isNY","isUS","isAU","region","geoData","REGION_CODE","thirdpartyIframe","compactPrefix","publisherUrl","publisherDomain","parsedPublisherUrl","pageType","enlargeFirstDisabled","relevantFirstOverride","abIdsResponse","molABTest","showNYTab","undef","has","decode","input","prefix","pairs","rawValue","collection","detector","isIE","agent","div","getElementsByTagName","isLegacyOpera","opera","hasOwn","classNames","classes","arg","argType","inner","isPlatformWideEnabled","mountOnElement","initialised","display","SizeMe","size","App","breakpoint","useSmallTabs","setInterval","createApp","elements","querySelectorAll","_interopDefault","ex","createResizeDetector","React__default","PropTypes","ReactDOM","invariant","throttleDebounce","isShallowEqual","instances","classCallCheck","createClass","inherits","objectWithoutProperties","possibleConstructorReturn","errMsg","monitorWidth","monitorHeight","monitorPosition","refreshRate","refreshMode","noPlaceholder","resizeDetectorStrategy","getDisplayName","WrappedComponent","ReferenceWrapper","Placeholder","phProps","propTypes","isRequired","string","renderWrapper","SizeMeRenderer","explicitRef","disablePlaceholder","restProps","onSize","renderPlaceholder","position","renderProps","toRender","func","shape","bool","withSize","_config$monitorWidth","_config$monitorHeight","_config$monitorPositi","_config$refreshRate","_config$refreshMode","_config$noPlaceholder","_config$resizeDetecto","refreshDelayStrategy","throttle","debounce","SizeMeRenderWrapper","SizeAwareComponent","_React$Component","_this2","domEl","uninstall","determineStrategy","callbackState","strategy","strategisedSetState","strategisedGetState","refCallback","hasSizeChanged","cp","np","bottom","right","checkIfSizeChanged","el","_el$getBoundingClient","getBoundingClientRect","resizeDetector","handleDOMNode","found","isSameNode","listenTo","enableSSRBehaviour","noPlaceholders","_initialiseProps","sizeMeConfig","createComponent","prevProps","currentSizeMeConfig","prevSizeMeConfig","SizeAware","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","browserDetector","batchProcessorMaker","stateHandler","objectStrategyMaker","scrollStrategyMaker","isCollection","isElement","getOption","options","idHandler","idGenerator","defaultIdHandler","batchProcessor","globalOptions","callOnAdd","debug","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","strategyOptions","onReadyCallbacks","listener","onResizeCallback","add","elementsReady","onReadyCallback","getState","initState","log","isDetectable","isBusy","markBusy","makeDetectable","markAsDetectable","startSize","offsetWidth","cleanState","busy","eventListeners","getListeners","idCount","generate","quiet","attachFunction","Batch","batch","topLevel","bottomLevel","level","asyncProcess","autoProcess","asyncFrameHandler","isProcessing","processBatch","processingBatch","processBatchAsync","force","localAsyncProcess","getObject","OBJECT_STYLE","positionCheckPerformed","getComputedStyle","mutateDom","alterPositionStyles","removeRelativeStyles","getNumericalValue","tabIndex","onload","getDocument","contentDocument","objectDocument","injectObject","listenerProxy","proxy","attachEvent","defaultView","detachEvent","hasState","scrollbarSizes","child","widthSize","clientWidth","heightSize","clientHeight","getScrollbarSizes","detectionContainerClass","addEvent","cb","removeEvent","getExpandElement","getShrinkElement","styleId","containerClass","getElementById","containerAnimationClass","head","styleElement","injectStyle","injectScrollStyle","isUnrendered","getStyle","elementStyle","widthCSS","heightCSS","storeStyle","storeCurrentSize","lastWidth","lastHeight","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","positionScrollbars","expand","shrink","expandWidth","expandHeight","shrinkWidth","getShrinkWidth","shrinkHeight","getShrinkHeight","scrollLeft","scrollTop","injectContainerElement","addAnimationClass","onAnimationStart","onRendered","injectScrollElements","rootContainer","scrollbarWidth","scrollbarHeight","containerStyle","containerContainer","expandChild","shrinkChild","onExpandScroll","onShrinkScroll","onExpand","onShrink","registerListenersAndPositionElements","updateChildSizes","getExpandChildElement","updateDetectorElements","areElementsInjected","notifyListenersIfNeeded","lastNotifiedWidth","lastNotifiedHeight","handleScroll","finalizeDomMutation","ready","install","ownerDocument","contains","isInDocument","isDetached","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","exact","checkPropTypes","condition","format","argIndex","framesToPop","delay","noTrailing","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","wrapper","elapsed","atBegin","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","categories","label","adSlotItoPrefixes","bellyband","mpu","mpuSmall","setError","loading","setLoading","resultsState","setResultsState","currentTab","setCurrentTab","setTimestamp","mobileStyle","appRef","loadResults","newResults","geoResults","interval","clearInterval","logoSrc","logoSrcRetina","isFirstEnlarged","manualReferrer","suffixPath","suffixQs","showingMostRead","mostRead","fbia","destinationUrl","viewMoreText","viewMoreButton","viewMore","viewMoreChevron","viewMoreWithLogo","viewMorelogo","srcSet","addPadding","IntersectionObserver","entries","entry","isIntersecting","disconnect","observe","handleClick","previewWrapper","narrow","debugInfo","rel","onClick","appWrapper","smallTabs","tabContainer","buttonSelectors","tabSelector","selectedTab","disabled","app","heading","vanityText","logo","subheading","content","resultList","ResultItem","trackingInnerText","find","fullWidthImage","Spinner","timeFormatter","day","hour","minute","month","second","week","year","resultThumbUrl","siteIconUrl","siteName","breaking","paywall","imageError","setImageError","android","thumbContainer","backgroundImage","alt","onError","onLoad","paywallFlag","info","snippet","breakingLabel","mostReadLabel","fbiaLabel","siteLink","favicon","snippetText","snippetSeparator","relatedButton","spinner"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://scripts.dailymail.co.uk/static/mol-fe/static/mol-fe-xpmodule-news-search/1.21.1/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 194);\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","var n,l,u,t,i,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var t,i,o,r,f=arguments;if(l=s({},l),arguments.length>3)for(u=[u],t=3;t2&&(l.children=e.slice.call(arguments,2)),v(n.type,l,l.key||n.key,l.ref||n.ref)}function L(n){var l={},u={__c:\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var t,i=this;return this.getChildContext||(t=[],this.getChildContext=function(){return l[u.__c]=i,l},this.shouldComponentUpdate=function(l){n.value!==l.value&&t.some(function(n){n.context=l.value,g(n)})},this.sub=function(n){t.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){t.splice(t.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u}n={__e:function(n,l){for(var u;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError)u.setState(u.constructor.getDerivedStateFromError(n));else{if(null==u.componentDidCatch)continue;u.componentDidCatch(n)}return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},y.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&s(u,n),null!=n&&this.__v&&(this.__e=!1,l&&this.__h.push(l),g(this))},y.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},y.prototype.render=d,u=[],t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=f,r=0;export{E as render,H as hydrate,h as createElement,h,d as Fragment,p as createRef,l as isValidElement,y as Component,I as cloneElement,L as createContext,b as toChildArray,A as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,i=[],o=n.__r,f=n.diffed,c=n.__c,e=n.unmount;function a(t){n.__h&&n.__h(u);var r=u.__H||(u.__H={t:[],u:[]});return t>=r.t.length&&r.t.push({}),r.t[t]}function v(n){return m(x,n)}function m(n,r,i){var o=a(t++);return o.__c||(o.__c=u,o.i=[i?i(r):x(void 0,r),function(t){var u=n(o.i[0],t);o.i[0]!==u&&(o.i[0]=u,o.__c.setState({}))}]),o.i}function p(n,r){var i=a(t++);q(i.o,r)&&(i.i=n,i.o=r,u.__H.u.push(i))}function l(n,r){var i=a(t++);q(i.o,r)&&(i.i=n,i.o=r,u.__h.push(i))}function d(n){return y(function(){return{current:n}},[])}function s(n,t,u){l(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function y(n,u){var r=a(t++);return q(r.o,u)?(r.o=u,r.v=n,r.i=n()):r.i}function T(n,t){return y(function(){return n},t)}function w(n){var r=u.context[n.__c];if(!r)return n.__;var i=a(t++);return null==i.i&&(i.i=!0,r.sub(u)),r.props.value}function A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(){i.some(function(n){n.__P&&(n.__H.u.forEach(_),n.__H.u.forEach(g),n.__H.u=[])}),i=[]}function _(n){n.m&&n.m()}function g(n){var t=n.i();\"function\"==typeof t&&(n.m=t)}function q(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function x(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){o&&o(n),t=0,(u=n.__c).__H&&(u.__H.u.forEach(_),u.__H.u.forEach(g),u.__H.u=[])},n.diffed=function(t){f&&f(t);var u=t.__c;if(u){var o=u.__H;o&&o.u.length&&(1!==i.push(u)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(F))}},n.__c=function(n,t){t.some(function(n){n.__h.forEach(_),n.__h=n.__h.filter(function(n){return!n.i||g(n)})}),c&&c(n,t)},n.unmount=function(n){e&&e(n);var t=n.__c;if(t){var u=t.__H;u&&u.t.forEach(function(n){return n.m&&n.m()})}};export{v as useState,m as useReducer,p as useEffect,l as useLayoutEffect,d as useRef,s as useImperativeHandle,y as useMemo,T as useCallback,w as useContext,A as useDebugValue};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as o,useImperativeHandle as u,useMemo as i,useCallback as c,useContext as f,useDebugValue as a}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as l,createElement as s,_unmount as v,options as d,cloneElement as p,hydrate as h,render as m,createRef as y,h as b,toChildArray as g,createContext as x,Fragment as C}from\"preact\";export{createContext,createRef,Fragment,Component}from\"preact\";function E(n,t){for(var e in t)n[e]=t[e];return n}function _(n){var t=n.parentNode;t&&t.removeChild(n)}var k=d.__e;function w(n){this.__u=[],this.__f=n.fallback}function A(n){var t,e,r;function o(o){if(t||(t=n()).then(function(n){e=n.default},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,o)}return o.displayName=\"Lazy\",o.t=!0,o}d.__e=function(n,t,e){if(n.then&&e)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.o)return e&&(t.__e=e.__e,t.__k=e.__k),void r.o(n);k(n,t,e)},(w.prototype=new l).o=function(n){var t=this;t.__u.push(n);var e=function(){t.__u[t.__u.indexOf(n)]=t.__u[t.__u.length-1],t.__u.pop(),0==t.__u.length&&(t.__f&&v(t.__f),t.__v.__e=null,t.__v.__k=t.state.u,t.setState({u:null}))};null==t.state.u&&(t.__f=t.__f&&p(t.__f),t.setState({u:t.__v.__k}),function n(t){for(var e=0;e {\n isThirdPartyAmp = newValue;\n};\n\nexport const getIsThirdPartyAmp = () => isThirdPartyAmp;\n\nexport const requestAmpResize = () => {\n try {\n if (!window.parent) {\n return;\n }\n\n if (window.location.search.match(/renderer=amp/) || isThirdPartyAmp) {\n setTimeout(() => {\n window.parent.postMessage(\n {\n height: document.body.scrollHeight,\n sentinel: 'amp',\n type: 'embed-size'\n },\n '*'\n );\n }, 500);\n }\n\n if (window.location.search.match(/renderer=metro/)) {\n requestAnimationFrame(() => {\n const docHeight = document.documentElement.offsetHeight;\n const message = {\n docHeight,\n iframe: window.name\n };\n\n window.top.postMessage(JSON.stringify(message), '*');\n });\n }\n } catch (error) {\n // Ignore error\n }\n};\n\ninterface PageCriteria {\n geo?: string;\n pageType: string;\n darkMode?: boolean;\n region?: string;\n}\n\nexport interface DMWindow extends Window {\n PageCriteria?: PageCriteria;\n}\n\nexport const getPageCriteria = () => {\n const pageCriteria = (window as DMWindow).PageCriteria;\n\n return pageCriteria || ({} as PageCriteria);\n};\n\nexport const getTimestampQsSuffix = (timestamp?: number) => `&fromXPTS=${timestamp || Date.now()}`;\n","import axios from 'axios';\nimport {RTA3, RTA3Page} from '@mol-rta/rta3-www';\n\nimport {getIsThirdPartyAmp} from '../helpers';\n\ninterface TrackBidmaxArgs {\n event: 'impression' | 'viewable' | 'abtimeout' | 'error' | 'click';\n version: string;\n itoCode?: string;\n channel?: string;\n platform: string;\n startTab?: string;\n geoResults?: string;\n environment?: string;\n abNumber?: string | null;\n module?: string;\n thirdpartyPlatform?: string;\n publishedDate?: string;\n}\n\nexport const BIDMAX_TRACKING_ENABLED = true;\n\nconst POST_XHR_URL = 'https://crta.dailymail.co.uk';\nconst NEWZIT_POST_XHR_URL = 'https://crta.newzit.com';\n\nconst startTime = Date.now();\n\nlet bidmaxPublisherUrl: string | null = null;\n\nexport const setBidmaxPublisherUrl = (newUrl: string) => {\n bidmaxPublisherUrl = newUrl;\n};\n\nconst postEventToWindow = (args: TrackBidmaxArgs) => {\n const params = {\n ...args,\n module: 'newzit'\n };\n\n delete params.channel;\n window.postMessage('__bidmax\\n' + JSON.stringify(params), '*');\n};\n\ninterface BidmaxBody {\n event_type: string;\n payload: TrackBidmaxArgs;\n referrer: string;\n timeAtSend: number;\n timestamp: number;\n type: string;\n type_version: number;\n version: string;\n url?: string;\n}\n\nconst getBodyFromArgs = (args: TrackBidmaxArgs) => {\n const body: BidmaxBody = {\n event_type: 'bidmax',\n payload: {\n ...args,\n module: 'newzit'\n },\n referrer: document.referrer,\n timeAtSend: Date.now() - startTime,\n timestamp: Date.now(),\n type: 'custom',\n type_version: 2,\n version: args.version\n };\n\n if (args.platform === 'thirdparty') {\n const isThirdPartyIframe = getIsThirdPartyAmp();\n\n body.payload.thirdpartyPlatform = isThirdPartyIframe ? 'iframe' : 'web';\n\n if (bidmaxPublisherUrl) {\n body.url = bidmaxPublisherUrl;\n } else {\n let pageUrl = location.href;\n\n try {\n const linkRelCanonical = document.querySelector('link[rel=\"canonical\"]');\n\n if (linkRelCanonical && linkRelCanonical.getAttribute('href')) {\n pageUrl = linkRelCanonical.getAttribute('href') as string;\n }\n } catch (error) {\n // ignore\n }\n\n body.url = pageUrl;\n }\n\n try {\n const metaPublished = document.querySelector('meta[property=\"article:published_time\"]');\n const publishedDate = metaPublished && metaPublished.getAttribute('content');\n\n if (publishedDate) {\n body.payload.publishedDate = publishedDate;\n }\n } catch (error) {\n // Ignore\n }\n }\n\n return body;\n};\n\ntype RTAEventBody = Omit;\nlet rtaPage: RTA3Page | null = null;\n\nconst postEventToUrl = async (args: TrackBidmaxArgs) => {\n try {\n const body = getBodyFromArgs(args);\n\n const useNewzitDomainCrta = args.platform === 'thirdparty';\n\n await axios.post(useNewzitDomainCrta ? NEWZIT_POST_XHR_URL : POST_XHR_URL, body, {\n headers: {\n 'Content-Type': 'text/plain'\n }\n });\n } catch (error) {\n // Ignore, prevent uncaught\n }\n};\n\nconst postEventToRTA = async (args: TrackBidmaxArgs) => {\n try {\n const rtaEvent: TrackBidmaxArgs = {\n ...args,\n module: 'newzit'\n };\n\n const isThirdPartyIframe = getIsThirdPartyAmp();\n const isWebPlatform =\n args.platform === 'thirdparty'\n ? !isThirdPartyIframe\n : ['mol.web.mobile', 'mol.web.desktop'].includes(args.platform);\n\n if (rtaEvent.event === 'impression') {\n // Report a new impression\n rtaPage = RTA3(\n rtaEvent.environment === 'production' ? 'https://rta2.newzit.com' : 'https://rta2.dailymailint.co.uk',\n 'NewzitXP',\n rtaEvent,\n isWebPlatform ? document.referrer : rtaEvent.itoCode || document.referrer,\n bidmaxPublisherUrl || window.location.href\n );\n } else if (rtaPage) {\n rtaPage.event(rtaEvent);\n }\n } catch (error) {\n // Ignore, prevent uncaught\n }\n};\n\nconst tracked: string[] = [];\n\nexport const trackBidmax = (args: TrackBidmaxArgs) => {\n if (!BIDMAX_TRACKING_ENABLED) {\n return;\n }\n\n try {\n if (args.platform === 'mol.native.android' || args.platform === 'mol.native.ios') {\n if (tracked.includes(args.event)) {\n return;\n }\n\n tracked.push(args.event);\n }\n\n if ('adverts' in window && 'DM' in window && args.platform !== 'thirdparty') {\n postEventToWindow(args);\n } else {\n postEventToUrl(args).catch();\n }\n\n postEventToRTA(args).catch();\n } catch (error) {\n // Ignore\n }\n};\n","import axios from 'axios';\n\nimport {trackBidmax} from './bidmax';\n\nexport interface DataResult {\n id: string;\n url: string;\n title: string;\n siteIconUrl?: string;\n siteName?: string;\n resultThumbUrl?: string;\n timestamp: string;\n notification?: boolean;\n paywall?: boolean;\n mostRead?: boolean;\n fbia?: boolean;\n}\n\nexport interface AbIdsResponse {\n group: number;\n molABTest: string[];\n specifiedGroup: number;\n // tslint:disable-next-line: no-any\n webUIOptions: any;\n}\n\nexport type GeoCountry = 'gb' | 'us' | 'au';\nexport type TopStoriesCategory = 'entertainment' | 'news' | 'sport' | 'newYork';\n\nexport const getResultsByGeoAndTab = async (\n geo: GeoCountry,\n tab: TopStoriesCategory,\n apiHost: string,\n isFBIARenderer?: boolean,\n publisher?: string | null\n) => {\n if (!geo || !apiHost) {\n throw new Error('geo and apiHost required');\n }\n\n const params: {[key: string]: string} = {key: `${tab}${geo.toUpperCase()}`};\n\n if (publisher) {\n params.publisher = publisher;\n }\n\n const response = await axios.get<{results: DataResult[]}>(\n `${apiHost}/topArticlesXP${isFBIARenderer ? 'FBIA' : ''}?${JSON.stringify(params)}`\n );\n\n if (!response.data || !response.data.results) {\n return null;\n }\n\n return response.data.results;\n};\n\ninterface GeoLocationResponse {\n Country: string;\n CITY: string;\n REGION_CODE: string;\n}\n\nexport const getUserCountry = async (useNewzitGeoEndpoint = false) => {\n const geoEndpoint = useNewzitGeoEndpoint\n ? 'https://www.newzit.com/locationjson.html'\n : 'https://www.dailymail.co.uk/geo/locationjson-v1.3.html';\n\n try {\n const response = await axios.get(geoEndpoint, {\n timeout: 2000\n });\n\n if (!response.data || !response.data.Country) {\n return null;\n }\n\n return response.data;\n } catch (error) {\n return null;\n }\n};\n\nconst AB_FRAME_TIMEOUT = 6000;\n\ninterface TrackingArgs {\n platform: string;\n version?: string;\n channel?: string;\n}\n\nexport const loadABframe = async (environment: string, trackingArgs: TrackingArgs) => {\n const frameUrl = `https://${environment === 'production' ? 'www.newzit.com' : 'www.newzitint.com'}/setABframe.html`;\n\n return new Promise((resolve, reject) => {\n let timeout: number | undefined;\n const messageHandler = (event: MessageEvent) => {\n if (event.data.scope !== 'mol-fe-xpmodule-news-search-ab') {\n return;\n }\n\n const abNumber = event.data.data && String(event.data.data.abNumber);\n\n if (abNumber && abNumber.match(/^\\d+$/)) {\n window.removeEventListener('message', messageHandler);\n if (timeout) {\n clearTimeout(timeout);\n }\n resolve(abNumber);\n }\n };\n\n window.addEventListener('message', messageHandler);\n\n const iframe = document.createElement('iframe');\n\n iframe.style.width = '0px';\n iframe.style.height = '0px';\n iframe.style.border = 'none';\n iframe.src = frameUrl;\n document.body.appendChild(iframe);\n\n timeout = setTimeout(() => {\n window.removeEventListener('message', messageHandler);\n\n trackBidmax({\n abNumber: null,\n channel: trackingArgs.channel,\n environment,\n event: 'abtimeout',\n platform: trackingArgs.platform,\n version: trackingArgs.version || 'unknown'\n });\n\n reject(null);\n }, AB_FRAME_TIMEOUT);\n });\n};\n\nexport const callClickUrl = (clickUrl: string) => {\n try {\n const image = new Image();\n\n image.src = clickUrl;\n } catch (error) {\n // Ignore errors\n }\n};\n\nexport const getAbInfo = async (apiHost: string) => {\n try {\n const response = await axios.get(`${apiHost}/abIDs`, {\n timeout: 5000\n });\n\n return response.data || null;\n } catch (error) {\n return null;\n }\n};\n\nexport const getRelevantFirstOverride = async (articleId: number, geo: GeoCountry, environment: string) => {\n try {\n const siteHost = environment === 'production' ? 'https://www.newzit.com' : 'https://www.newzitint.com';\n const response = await axios.get(`${siteHost}/topArticles/amp/${geo}/${articleId}.json`, {\n timeout: 5000\n });\n\n return response.data || null;\n } catch (error) {\n return null;\n }\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n // Only Node.JS has a process variable that is of [[Class]] process\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach([\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength',\n 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken',\n 'socketPath'\n ], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\S\\s]*)/i\n , whitespace = '[\\\\x09\\\\x0A\\\\x0B\\\\x0C\\\\x0D\\\\x20\\\\xA0\\\\u1680\\\\u180E\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200A\\\\u202F\\\\u205F\\\\u3000\\\\u2028\\\\u2029\\\\uFEFF]'\n , left = new RegExp('^'+ whitespace +'+');\n\n/**\n * Trim a given string.\n *\n * @param {String} str String to trim.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(left, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address) { // Sanitize what is left of the address\n return address.replace('\\\\', '/');\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d+)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address) {\n address = trimLeft(address);\n var match = protocolre.exec(address);\n\n return {\n protocol: match[1] ? match[1].toLowerCase() : '',\n slashes: !!match[2],\n rest: match[3]\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '');\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (!extracted.slashes) instructions[3] = [/(.*)/, 'pathname'];\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n if (~(index = address.indexOf(parse))) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n if (url.auth) {\n instruction = url.auth.split(':');\n url.username = instruction[0] || '';\n url.password = instruction[1] || '';\n }\n\n url.origin = url.protocol && url.host && url.protocol !== 'file:'\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (/:\\d+$/.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n default:\n url[part] = value;\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.origin = url.protocol && url.host && url.protocol !== 'file:'\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result = protocol + (url.slashes ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n }\n\n result += url.host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get';\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","\"use strict\";\n/// \nexports.__esModule = true;\nexports.RTA3 = void 0;\n/* RTA v3 static script */\n/**\n * Send a report to RTA that a page has been viewed\n * @param rta3Origin - the origin of the RTA server\n * @param reporter - a constant string that indirectly defines how any `reportData` is to be interpreted\n * @param reportData - site-specific data about what is being viewed (parsed by RUFUS). This can be undefined.\n * @param documentReferrer - the URL of the document that precedes the one being reported\n * on. Defaults to `document.referrer`. Passing a non-url string here will \"force\" the RTA referrer to that\n * specified in preference to the \"normal\" RTA rules\n * @param reportingUrl - the URL of the page being tracked. Defaults to window.location.href, but for\n * things like the XP module that are reporting on another page they are hosted on, that should be passed\n * @returns RTA3Page - methods for sending supplementary events for this page. Not, for single page applications (like newzit), the return\n * values are specific to the original reported page, and should be maintained locally appropriately. The returned values have\n * methods that do not require binding in order to function\n */\nfunction RTA3(rta3Origin, reporter, reportData, documentReferrer, reportingUrl) {\n if (documentReferrer === void 0) { documentReferrer = document.referrer; }\n if (reportingUrl === void 0) { reportingUrl = window.location.href; }\n var setIDs;\n var ids = new Promise(function (resolve) { return setIDs = resolve; });\n var noLiveServer = {\n events: function () { },\n event: function () { },\n ids: ids\n };\n if (!rta3Origin) {\n console.warn(\"RTA3 configuarion error\");\n return noLiveServer;\n }\n var storedIDs = undefined;\n try {\n var locals = localStorage.getItem('rta3|' + rta3Origin) || undefined;\n storedIDs = locals && JSON.parse(locals);\n }\n catch (_error) { }\n var xhr = new XMLHttpRequest();\n xhr.open(\"POST\", rta3Origin + '/s/3', true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4 && xhr.status === 200) {\n storedIDs = JSON.parse(xhr.responseText);\n if (storedIDs) {\n localStorage.setItem('rta3|' + rta3Origin, JSON.stringify(storedIDs));\n if (storedIDs.d) {\n methods.events = noLiveServer.events;\n }\n setIDs(storedIDs);\n }\n }\n };\n var m = {\n id: storedIDs,\n p: reportingUrl,\n r: documentReferrer,\n e: reportData,\n t: reporter,\n v: \"3.0\"\n };\n xhr.send(JSON.stringify(m));\n var methods = {\n events: function (events) {\n ids.then(function (id) {\n var m = {\n id: id,\n t: reporter,\n f: events\n };\n navigator.sendBeacon(rta3Origin + '/s/3', JSON.stringify(m));\n });\n },\n event: function (args) {\n methods.events([args]);\n },\n ids: ids\n };\n return methods;\n}\nexports.RTA3 = RTA3;\n//# sourceMappingURL=base-3.0.js.map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar React = _interopRequireWildcard(_react);\n\nvar _defaultFormatter = require('./defaultFormatter');\n\nvar _defaultFormatter2 = _interopRequireDefault(_defaultFormatter);\n\nvar _dateParser = require('./dateParser');\n\nvar _dateParser2 = _interopRequireDefault(_dateParser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Component = React.Component;\n\n\n// Just some simple constants for readability\nvar MINUTE = 60;\nvar HOUR = MINUTE * 60;\nvar DAY = HOUR * 24;\nvar WEEK = DAY * 7;\nvar MONTH = DAY * 30;\nvar YEAR = DAY * 365;\n\nvar TimeAgo = function (_Component) {\n _inherits(TimeAgo, _Component);\n\n function TimeAgo() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, TimeAgo);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = TimeAgo.__proto__ || Object.getPrototypeOf(TimeAgo)).call.apply(_ref, [this].concat(args))), _this), _this.isStillMounted = false, _this.tick = function (refresh) {\n if (!_this.isStillMounted || !_this.props.live) {\n return;\n }\n\n var then = (0, _dateParser2.default)(_this.props.date).valueOf();\n if (!then) {\n console.warn('[react-timeago] Invalid Date provided');\n return;\n }\n\n var now = _this.props.now();\n var seconds = Math.round(Math.abs(now - then) / 1000);\n\n var unboundPeriod = seconds < MINUTE ? 1000 : seconds < HOUR ? 1000 * MINUTE : seconds < DAY ? 1000 * HOUR : 0;\n var period = Math.min(Math.max(unboundPeriod, _this.props.minPeriod * 1000), _this.props.maxPeriod * 1000);\n\n if (period) {\n if (_this.timeoutId) {\n clearTimeout(_this.timeoutId);\n }\n _this.timeoutId = setTimeout(_this.tick, period);\n }\n\n if (!refresh) {\n _this.forceUpdate();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(TimeAgo, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.isStillMounted = true;\n if (this.props.live) {\n this.tick(true);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(lastProps) {\n if (this.props.live !== lastProps.live || this.props.date !== lastProps.date) {\n if (!this.props.live && this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n this.tick();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.isStillMounted = false;\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = undefined;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n /* eslint-disable no-unused-vars */\n var _props = this.props,\n date = _props.date,\n formatter = _props.formatter,\n Komponent = _props.component,\n live = _props.live,\n minPeriod = _props.minPeriod,\n maxPeriod = _props.maxPeriod,\n title = _props.title,\n now = _props.now,\n passDownProps = _objectWithoutProperties(_props, ['date', 'formatter', 'component', 'live', 'minPeriod', 'maxPeriod', 'title', 'now']);\n /* eslint-enable no-unused-vars */\n\n\n var then = (0, _dateParser2.default)(date).valueOf();\n if (!then) {\n return null;\n }\n var timeNow = now();\n var seconds = Math.round(Math.abs(timeNow - then) / 1000);\n var suffix = then < timeNow ? 'ago' : 'from now';\n\n var _ref2 = seconds < MINUTE ? [Math.round(seconds), 'second'] : seconds < HOUR ? [Math.round(seconds / MINUTE), 'minute'] : seconds < DAY ? [Math.round(seconds / HOUR), 'hour'] : seconds < WEEK ? [Math.round(seconds / DAY), 'day'] : seconds < MONTH ? [Math.round(seconds / WEEK), 'week'] : seconds < YEAR ? [Math.round(seconds / MONTH), 'month'] : [Math.round(seconds / YEAR), 'year'],\n _ref3 = _slicedToArray(_ref2, 2),\n value = _ref3[0],\n unit = _ref3[1];\n\n var passDownTitle = typeof title === 'undefined' ? typeof date === 'string' ? date : (0, _dateParser2.default)(date).toISOString().substr(0, 16).replace('T', ' ') : title;\n\n var spreadProps = Komponent === 'time' ? Object.assign({}, passDownProps, {\n dateTime: (0, _dateParser2.default)(date).toISOString()\n }) : passDownProps;\n\n var nextFormatter = _defaultFormatter2.default.bind(null, value, unit, suffix);\n\n return React.createElement(\n Komponent,\n _extends({}, spreadProps, { title: passDownTitle }),\n formatter(value, unit, suffix, then, nextFormatter, now)\n );\n }\n }]);\n\n return TimeAgo;\n}(Component);\n\nTimeAgo.displayName = 'TimeAgo';\nTimeAgo.defaultProps = {\n live: true,\n component: 'time',\n minPeriod: 0,\n maxPeriod: Infinity,\n formatter: _defaultFormatter2.default,\n now: function now() {\n return Date.now();\n }\n};\nexports.default = TimeAgo;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = defaultFormatter;\n\nvar _react = require('react');\n\nvar React = _interopRequireWildcard(_react);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction defaultFormatter(value, unit, suffix) {\n if (value !== 1) {\n unit += 's';\n }\n return value + ' ' + unit + ' ' + suffix;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dateParser;\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction dateParser(date) {\n var parsed = new Date(date);\n if (!Number.isNaN(parsed.valueOf())) {\n return parsed;\n }\n\n var parts = String(date).match(/\\d+/g);\n if (parts == null || parts.length <= 2) {\n return parsed;\n } else {\n var _parts$map = parts.map(function (x) {\n return parseInt(x);\n }),\n _parts$map2 = _toArray(_parts$map),\n firstP = _parts$map2[0],\n secondP = _parts$map2[1],\n restPs = _parts$map2.slice(2);\n\n var correctedParts = [firstP, secondP - 1].concat(_toConsumableArray(restPs));\n var isoDate = new Date(Date.UTC.apply(Date, _toConsumableArray(correctedParts)));\n return isoDate;\n }\n}","import URL from 'url-parse';\n\nimport {getUserCountry, loadABframe, GeoCountry, TopStoriesCategory, getAbInfo, getRelevantFirstOverride} from './api';\nimport {getPageCriteria, setIsThirdPartyAmp} from './helpers';\nimport {getFromStorage, setToStorage} from './storage';\nimport {setBidmaxPublisherUrl} from './api/bidmax';\nimport {AppProps, Platform} from './components/App';\n\nconst DEFAULT_LIMIT = 5;\nconst DEFAULT_LIMIT_THIRDPARTY = 7;\nconst DEFAULT_LIMIT_COMPACT = 1;\nconst ITO_BY_PLATFORM: {[key: string]: string} = {\n 'mol.native.android': 'MOL_Andr_Module',\n 'mol.native.ios': 'MOL_ios_module',\n thirdparty: 'thirdparty'\n};\nconst AU_ENABLED_PROD = false;\nconst NY_TAB_STATES = ['NY', 'NJ', 'CT'];\n\nexport const getPropsFromContext = async (element: HTMLDivElement): Promise => {\n const pageCriteria = getPageCriteria();\n let isAmp = false;\n let isFBIARenderer = false;\n let debugAB = false;\n let clearAB = false;\n\n try {\n isAmp = Boolean(window.location.search.match(/renderer=amp/));\n isFBIARenderer = Boolean(window.location.search.match(/renderer=fbia/));\n debugAB = Boolean(window.location.search.match(/newzitDebugAB=true/));\n clearAB = Boolean(window.location.search.match(/newzitClearAB=true/));\n } catch (error) {\n // Ignore\n }\n\n let apiHost = element.dataset.apiHost;\n let platform = element.dataset.xpmodulePlatform;\n let geoStr: string | undefined = element.dataset.geo;\n let startTabStr: string | undefined = element.dataset.startTab;\n let limitStr: number | undefined;\n let headlineStr: string | undefined = element.dataset.headline;\n let previewTextStr: string | undefined = element.dataset.previewText;\n let adSlotStr: string | undefined = element.dataset.adSlot;\n let forceItoStr: string | undefined = element.dataset.forceIto;\n let enlargeFirstStr: string | undefined = element.dataset.enlargeFirst;\n let referringDomainStr: string | undefined = element.dataset.referringDomain;\n let referringURLStr: string | undefined = element.dataset.referringURL;\n let environmentStr: string | undefined = element.dataset.environment;\n let versionStr: string | undefined = element.dataset.version;\n let channelStr: string | undefined = element.dataset.channel;\n let articleIdStr: string | undefined = element.dataset.articleId;\n let darkMode: boolean =\n (element as HTMLDivElement).dataset.darkMode === 'true' || Boolean(pageCriteria && pageCriteria.darkMode);\n const useNewzitGeoEndpoint: boolean = element.dataset.useNewzitGeoEndpoint === 'true' || platform === 'thirdparty';\n let publisher: string | undefined = element.dataset.publisher;\n let compactMode: boolean = (element as HTMLDivElement).dataset.compactMode === 'true';\n\n if (element.dataset.limit) {\n limitStr = parseInt(element.dataset.limit as string, 10);\n }\n\n if (!apiHost && platform === 'iframe') {\n try {\n const parsedUrl = new URL(window.location.href, true);\n\n apiHost = parsedUrl.query && parsedUrl.query.apiHost;\n\n if (!apiHost) {\n apiHost = 'https://www.newzit.com/api';\n }\n } catch (error) {\n // Ignore\n }\n }\n\n if (platform === 'thirdparty' && !element.dataset.debugThirdParty) {\n apiHost = 'https://www.newzit.com/api';\n }\n\n if (!apiHost) {\n throw new Error('No api host set for xpmodule-news-search');\n }\n\n if (platform === 'iframe') {\n if (isAmp) {\n platform = 'mol.amp';\n } else if (isFBIARenderer) {\n platform = 'mol.fbia';\n }\n\n const parsedUrl = new URL(window.location.href, true);\n\n if (!geoStr) {\n geoStr = parsedUrl.query && parsedUrl.query.geo;\n }\n\n if (!startTabStr) {\n startTabStr = parsedUrl.query && parsedUrl.query.startTab;\n }\n\n if (!limitStr && parsedUrl.query && parsedUrl.query.limit) {\n limitStr = parseInt(parsedUrl.query.limit, 10);\n }\n\n if (!headlineStr) {\n headlineStr = parsedUrl.query && parsedUrl.query.headline;\n }\n\n if (!previewTextStr) {\n previewTextStr = parsedUrl.query && parsedUrl.query.previewText;\n }\n\n if (!adSlotStr) {\n adSlotStr = parsedUrl.query && parsedUrl.query.adSlot;\n }\n\n if (!forceItoStr) {\n forceItoStr = parsedUrl.query && parsedUrl.query.forceIto;\n }\n\n if (!referringDomainStr) {\n referringDomainStr = parsedUrl.query && parsedUrl.query.referringDomain;\n }\n\n if (!referringURLStr) {\n referringURLStr = parsedUrl.query && parsedUrl.query.referringURL;\n }\n\n if (!enlargeFirstStr) {\n enlargeFirstStr = parsedUrl.query && parsedUrl.query.enlargeFirst;\n }\n\n if (!environmentStr) {\n environmentStr = parsedUrl.query && parsedUrl.query.environment;\n }\n\n if (!versionStr) {\n versionStr = parsedUrl.query && parsedUrl.query.version;\n }\n\n if (!channelStr) {\n channelStr = parsedUrl.query && parsedUrl.query.channel;\n }\n\n if (!darkMode) {\n darkMode = parsedUrl.query && parsedUrl.query.darkMode === 'true';\n }\n\n if (!compactMode) {\n compactMode = parsedUrl.query && parsedUrl.query.compactMode === 'true';\n }\n\n if (!articleIdStr) {\n articleIdStr = parsedUrl.query && parsedUrl.query.articleId;\n }\n }\n\n let abNumber: string | null = null;\n\n try {\n const abNumberFromStorage = getFromStorage('abNumber');\n\n if (\n !clearAB &&\n abNumberFromStorage &&\n typeof abNumberFromStorage === 'string' &&\n abNumberFromStorage.match(/^\\d+$/)\n ) {\n abNumber = abNumberFromStorage;\n } else {\n abNumber = await loadABframe(environmentStr || 'production', {\n channel: channelStr,\n platform: platform as Platform,\n version: versionStr\n });\n setToStorage('abNumber', abNumber);\n }\n\n if (abNumber) {\n apiHost += `/${abNumber}`;\n }\n } catch (errFrame) {\n // Ignore\n }\n\n const adSlot =\n adSlotStr && ['mpu', 'bellyband', 'mpuSmall'].includes(adSlotStr)\n ? (adSlotStr as 'mpu' | 'bellyband' | 'mpuSmall')\n : undefined;\n\n let geo: GeoCountry;\n let startTab: TopStoriesCategory = 'news';\n let isNY = false;\n\n if (!geoStr || geoStr === 'auto') {\n let isUS = pageCriteria && pageCriteria.geo && pageCriteria.geo.toLowerCase() === 'us';\n let isAU = pageCriteria && pageCriteria.geo && pageCriteria.geo.toLowerCase() === 'au';\n\n isNY = Boolean(isUS && NY_TAB_STATES.includes(pageCriteria.region || ''));\n\n try {\n if (\n (platform === 'mol.native.ios' || platform === 'mol.native.android' || !pageCriteria || !pageCriteria.geo) &&\n !adSlot\n ) {\n const geoData = await getUserCountry(useNewzitGeoEndpoint);\n\n if (geoData) {\n if (geoData.Country.toLowerCase() === 'us') {\n isUS = true;\n\n if (NY_TAB_STATES.includes(geoData.REGION_CODE)) {\n isNY = true;\n }\n }\n\n if (geoData.Country.toLowerCase() === 'au') {\n isAU = true;\n }\n }\n }\n } catch (error) {\n // Ignore\n }\n\n geo = isUS ? 'us' : 'gb';\n geo = isAU ? 'au' : geo;\n } else {\n geo = ['gb', 'us', 'au'].includes(geoStr) ? (geoStr as GeoCountry) : 'gb';\n isNY = geo === 'us' && pageCriteria && NY_TAB_STATES.includes(pageCriteria.region || '');\n }\n\n if (startTabStr) {\n startTab = ['news', 'entertainment', 'sport', 'newYork'].includes(startTabStr)\n ? (startTabStr as TopStoriesCategory)\n : 'news';\n }\n\n if (!isNY && startTab === 'newYork') {\n startTab = 'news';\n }\n\n let limit: number =\n limitStr ||\n (compactMode && DEFAULT_LIMIT_COMPACT) ||\n (platform === 'thirdparty' && DEFAULT_LIMIT_THIRDPARTY) ||\n DEFAULT_LIMIT;\n const isThirdPartyIframe = platform === 'thirdparty' && element.dataset.thirdpartyIframe;\n\n if (platform === 'thirdparty' && !publisher) {\n if (isThirdPartyIframe) {\n try {\n const parsedUrl = new URL(window.location.href, true);\n\n publisher = parsedUrl.query && parsedUrl.query.publisher;\n\n compactMode = compactMode || (parsedUrl.query && parsedUrl.query.compactMode === 'true');\n\n if (compactMode && !limitStr) {\n limit = DEFAULT_LIMIT_COMPACT;\n }\n } catch (error) {\n // Ignore\n }\n }\n\n if (!publisher) {\n publisher = 'reach';\n }\n }\n\n if (platform === 'thirdparty') {\n if (isThirdPartyIframe) {\n setIsThirdPartyAmp(true);\n if (environmentStr === 'integration') {\n apiHost = 'https://www.newzitint.com/api';\n }\n }\n\n const compactPrefix = compactMode ? 'C' : '';\n\n if (!forceItoStr) {\n try {\n const parsedUrl = new URL(window.location.href, true);\n\n if (isThirdPartyIframe) {\n const publisherUrl = parsedUrl.query && parsedUrl.query.publisherUrl;\n let publisherDomain = (parsedUrl.query && parsedUrl.query.publisherDomain) || null;\n\n if (publisherUrl) {\n setBidmaxPublisherUrl(publisherUrl);\n }\n\n if (publisherUrl && !publisherDomain) {\n try {\n const parsedPublisherUrl = new URL(publisherUrl);\n\n if (parsedPublisherUrl.protocol === 'http:' || parsedPublisherUrl.protocol === 'https:') {\n publisherDomain = parsedPublisherUrl.hostname;\n }\n } catch (error) {\n // Ignore\n }\n }\n\n forceItoStr = publisherDomain\n ? `XP${compactPrefix}-amp-${publisherDomain}`\n : `thirdparty${compactPrefix}-amp-${publisher}`;\n\n referringDomainStr = publisherDomain || undefined;\n referringURLStr = publisherUrl;\n } else {\n if (parsedUrl.protocol === 'http:' || parsedUrl.protocol === 'https:') {\n forceItoStr = `XP${compactPrefix}-${parsedUrl.hostname}`;\n }\n }\n } catch (error) {\n // Could fail if module is embedded wrongly, ignore and continue\n }\n }\n\n if (!forceItoStr) {\n forceItoStr = `thirdparty${compactPrefix}-${publisher}`;\n }\n }\n\n if (!forceItoStr && platform && ITO_BY_PLATFORM[platform]) {\n forceItoStr = ITO_BY_PLATFORM[platform];\n }\n\n if (!forceItoStr && platform === 'mol.web.mobile') {\n forceItoStr = 'MOL_Mweb_Module';\n\n if (pageCriteria && pageCriteria.pageType === 'article') {\n forceItoStr = 'MOL_Mweb_Module_Article';\n }\n }\n\n const enlargeFirst = enlargeFirstStr === 'true';\n const enlargeFirstDisabled = enlargeFirstStr === 'false';\n\n // Force tab to showbiz on mobile/thirdparty\n if (\n (enlargeFirst || platform === 'thirdparty') &&\n (!startTab || startTab === 'news') &&\n !(platform === 'thirdparty' && startTabStr)\n ) {\n startTab = 'entertainment';\n }\n\n if (\n !referringDomainStr &&\n !referringURLStr &&\n (platform === 'mol.web.desktop' || platform === 'mol.web.mobile' || platform === 'thirdparty') &&\n !isThirdPartyIframe\n ) {\n try {\n const parsedUrl = new URL(window.location.href, true);\n\n if (parsedUrl.protocol === 'http:' || parsedUrl.protocol === 'https:') {\n referringDomainStr = parsedUrl.host;\n referringURLStr = parsedUrl.href;\n }\n } catch (error) {\n // Could fail if module is embedded wrongly, ignore and continue\n }\n }\n\n let relevantFirstOverride = null;\n const articleId = articleIdStr && parseInt(articleIdStr, 10);\n\n if (platform === 'mol.amp' && articleId) {\n try {\n const abIdsResponse = await getAbInfo(apiHost);\n\n if (abIdsResponse && abIdsResponse.molABTest && abIdsResponse.molABTest.includes('AMP')) {\n relevantFirstOverride = await getRelevantFirstOverride(articleId, geo, environmentStr || 'production');\n }\n } catch (error) {\n // Ignore failure\n }\n }\n\n const environment = environmentStr || 'production';\n\n if (geo === 'au' && environment === 'production' && !AU_ENABLED_PROD) {\n geo = 'gb';\n }\n\n const props: AppProps = {\n abNumber,\n adSlot,\n apiHost,\n channel: channelStr,\n compactMode,\n darkMode,\n debugAB,\n enlargeFirst,\n enlargeFirstDisabled,\n environment,\n forceIto: forceItoStr,\n geo,\n headline: headlineStr || undefined,\n isFBIARenderer,\n limit,\n platform: platform as Platform,\n previewText: previewTextStr || undefined,\n publisher: publisher || null,\n referringDomain: referringDomainStr,\n referringURL: referringURLStr,\n relevantFirstOverride,\n showNYTab: isNY,\n startTab,\n version: versionStr || XPMODULE_VERSION\n };\n\n return props;\n};\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","const STORAGE_PREFIX = 'mol-fe-xpmodule-newzit-';\n\ntype SerializableType = string | boolean | number | null;\n\nexport const setToStorage = (key: string, value: SerializableType) => {\n try {\n if ('localStorage' in window) {\n window.localStorage.setItem(`${STORAGE_PREFIX}${key}`, JSON.stringify(value));\n }\n } catch (error) {\n // Ignore failures\n }\n};\n\nexport const getFromStorage = (key: string): SerializableType => {\n try {\n if ('localStorage' in window) {\n const rawValue = window.localStorage.getItem(`${STORAGE_PREFIX}${key}`);\n\n if (rawValue) {\n return JSON.parse(rawValue);\n }\n\n return null;\n }\n } catch (error) {\n // Ignore failures\n }\n\n return null;\n};\n","\"use strict\";\n\nvar utils = module.exports = {};\n\n/**\n * Loops through the collection and calls the callback for each element. if the callback returns truthy, the loop is broken and returns the same value.\n * @public\n * @param {*} collection The collection to loop through. Needs to have a length property set and have indices set from 0 to length - 1.\n * @param {function} callback The callback to be called for each element. The element will be given as a parameter to the callback. If this callback returns truthy, the loop is broken and the same value is returned.\n * @returns {*} The value that a callback has returned (if truthy). Otherwise nothing.\n */\nutils.forEach = function(collection, callback) {\n for(var i = 0; i < collection.length; i++) {\n var result = callback(collection[i]);\n if(result) {\n return result;\n }\n }\n};\n","\"use strict\";\n\nvar detector = module.exports = {};\n\ndetector.isIE = function(version) {\n function isAnyIeVersion() {\n var agent = navigator.userAgent.toLowerCase();\n return agent.indexOf(\"msie\") !== -1 || agent.indexOf(\"trident\") !== -1 || agent.indexOf(\" edge/\") !== -1;\n }\n\n if(!isAnyIeVersion()) {\n return false;\n }\n\n if(!version) {\n return true;\n }\n\n //Shamelessly stolen from https://gist.github.com/padolsey/527683\n var ieVersion = (function(){\n var undef,\n v = 3,\n div = document.createElement(\"div\"),\n all = div.getElementsByTagName(\"i\");\n\n do {\n div.innerHTML = \"\";\n }\n while (all[0]);\n\n return v > 4 ? v : undef;\n }());\n\n return version === ieVersion;\n};\n\ndetector.isLegacyOpera = function() {\n return !!window.opera;\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from 'react';\nimport {render} from 'react-dom';\nimport {SizeMe} from 'react-sizeme';\n\nimport {App} from './components/App';\nimport {requestAmpResize, getPageCriteria} from './helpers';\nimport {getPropsFromContext} from './getPropsFromContext';\n\nconst BREAKPOINT_WIDTH = 600;\n\nconst isPlatformWideEnabled = (platform?: string) =>\n Boolean(platform && ['cc', 'mol.web.mobile', 'mol.web.desktop', 'mol.amp'].includes(platform));\n\nconst mountOnElement = async (element: HTMLElement) => {\n if (element.dataset.initialised) {\n return;\n }\n\n element.dataset.initialised = 'true';\n\n const pageCriteria = getPageCriteria();\n\n try {\n // Geoblock for France\n if (pageCriteria.geo && pageCriteria.geo.toLowerCase() === 'fr') {\n element.style.display = 'none';\n\n return;\n }\n } catch (error) {\n // Ignore\n }\n\n const props = await getPropsFromContext(element as HTMLDivElement);\n const {adSlot, platform} = props;\n\n render(\n \n {({size}) => (\n BREAKPOINT_WIDTH)\n ? 'wide'\n : 'narrow'\n }\n useSmallTabs={Boolean(size.width && size.width < 440)}\n />\n )}\n ,\n element\n );\n\n window.addEventListener('load', requestAmpResize, false);\n window.addEventListener('resize', requestAmpResize, false);\n setInterval(requestAmpResize, 1500);\n};\n\nconst createApp = async () => {\n const elements = Array.from(document.querySelectorAll('[data-mol-fe-xpmodule-news-search]'));\n\n for (const element of elements) {\n await mountOnElement(element as HTMLElement);\n }\n\n setTimeout(createApp, 1000);\n};\n\nconst init = () => {\n if ((document.readyState === 'interactive' && Boolean(document.body)) || document.readyState === 'complete') {\n createApp();\n } else {\n document.addEventListener('DOMContentLoaded', createApp);\n }\n};\n\ninit();\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar createResizeDetector = _interopDefault(require('element-resize-detector'));\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar PropTypes = _interopDefault(require('prop-types'));\nvar ReactDOM = _interopDefault(require('react-dom'));\nvar invariant = _interopDefault(require('invariant'));\nvar throttleDebounce = require('throttle-debounce');\nvar isShallowEqual = _interopDefault(require('shallowequal'));\n\nvar instances = {};\n\n// Lazily require to not cause bug\n// https://github.com/ctrlplusb/react-sizeme/issues/6\nfunction resizeDetector() {\n var strategy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'scroll';\n\n if (!instances[strategy]) {\n instances[strategy] = createResizeDetector({\n strategy: strategy\n });\n }\n\n return instances[strategy];\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n/* eslint-disable react/no-multi-comp */\n\nvar errMsg = 'react-sizeme: an error occurred whilst stopping to listen to node size changes';\n\nvar defaultConfig = {\n monitorWidth: true,\n monitorHeight: false,\n monitorPosition: false,\n refreshRate: 16,\n refreshMode: 'throttle',\n noPlaceholder: false,\n resizeDetectorStrategy: 'scroll'\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\n/**\n * This is a utility wrapper component that will allow our higher order\n * component to get a ref handle on our wrapped components html.\n * @see https://gist.github.com/jimfb/32b587ee6177665fb4cf\n */\n\nvar ReferenceWrapper = function (_Component) {\n inherits(ReferenceWrapper, _Component);\n\n function ReferenceWrapper() {\n classCallCheck(this, ReferenceWrapper);\n return possibleConstructorReturn(this, (ReferenceWrapper.__proto__ || Object.getPrototypeOf(ReferenceWrapper)).apply(this, arguments));\n }\n\n createClass(ReferenceWrapper, [{\n key: 'render',\n value: function render() {\n return React.Children.only(this.props.children);\n }\n }]);\n return ReferenceWrapper;\n}(React.Component);\n\nReferenceWrapper.displayName = 'SizeMeReferenceWrapper';\n\nReferenceWrapper.propTypes = { children: PropTypes.element.isRequired };\n\nfunction Placeholder(_ref) {\n var className = _ref.className,\n style = _ref.style;\n\n // Lets create the props for the temp element.\n var phProps = {};\n\n // We will use any provided className/style or else make the temp\n // container take the full available space.\n if (!className && !style) {\n phProps.style = { width: '100%', height: '100%' };\n } else {\n if (className) {\n phProps.className = className;\n }\n if (style) {\n phProps.style = style;\n }\n }\n\n return React__default.createElement('div', phProps);\n}\nPlaceholder.displayName = 'SizeMePlaceholder';\nPlaceholder.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object\n\n /**\n * As we need to maintain a ref on the root node that is rendered within our\n * SizeMe component we need to wrap our entire render in a sub component.\n * Without this, we lose the DOM ref after the placeholder is removed from\n * the render and the actual component is rendered.\n * It took me forever to figure this out, so tread extra careful on this one!\n */\n};var renderWrapper = function renderWrapper(WrappedComponent) {\n function SizeMeRenderer(props) {\n var explicitRef = props.explicitRef,\n className = props.className,\n style = props.style,\n size = props.size,\n disablePlaceholder = props.disablePlaceholder,\n onSize = props.onSize,\n restProps = objectWithoutProperties(props, ['explicitRef', 'className', 'style', 'size', 'disablePlaceholder', 'onSize']);\n\n\n var noSizeData = size == null || size.width == null && size.height == null && size.position == null;\n\n var renderPlaceholder = noSizeData && !disablePlaceholder;\n\n var renderProps = {\n className: className,\n style: style\n };\n\n if (size != null) {\n renderProps.size = size;\n }\n\n var toRender = renderPlaceholder ? React__default.createElement(Placeholder, { className: className, style: style }) : React__default.createElement(WrappedComponent, _extends({}, renderProps, restProps));\n\n return React__default.createElement(\n ReferenceWrapper,\n { ref: explicitRef },\n toRender\n );\n }\n\n SizeMeRenderer.displayName = 'SizeMeRenderer(' + getDisplayName(WrappedComponent) + ')';\n\n SizeMeRenderer.propTypes = {\n explicitRef: PropTypes.func.isRequired,\n className: PropTypes.string,\n style: PropTypes.object, // eslint-disable-line react/forbid-prop-types\n size: PropTypes.shape({\n width: PropTypes.number, // eslint-disable-line react/no-unused-prop-types\n height: PropTypes.number, // eslint-disable-line react/no-unused-prop-types\n position: PropTypes.object\n }),\n disablePlaceholder: PropTypes.bool,\n onSize: PropTypes.func\n };\n\n return SizeMeRenderer;\n};\n\n/**\n * :: config -> Component -> WrappedComponent\n *\n * Higher order component that allows the wrapped component to become aware\n * of it's size, by receiving it as an object within it's props.\n *\n * @param monitorWidth\n * Default true, whether changes in the element's width should be monitored,\n * causing a size property to be broadcast.\n * @param monitorHeight\n * Default false, whether changes in the element's height should be monitored,\n * causing a size property to be broadcast.\n *\n * @return The wrapped component.\n */\nfunction withSize() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;\n var _config$monitorWidth = config.monitorWidth,\n monitorWidth = _config$monitorWidth === undefined ? defaultConfig.monitorWidth : _config$monitorWidth,\n _config$monitorHeight = config.monitorHeight,\n monitorHeight = _config$monitorHeight === undefined ? defaultConfig.monitorHeight : _config$monitorHeight,\n _config$monitorPositi = config.monitorPosition,\n monitorPosition = _config$monitorPositi === undefined ? defaultConfig.monitorPosition : _config$monitorPositi,\n _config$refreshRate = config.refreshRate,\n refreshRate = _config$refreshRate === undefined ? defaultConfig.refreshRate : _config$refreshRate,\n _config$refreshMode = config.refreshMode,\n refreshMode = _config$refreshMode === undefined ? defaultConfig.refreshMode : _config$refreshMode,\n _config$noPlaceholder = config.noPlaceholder,\n noPlaceholder = _config$noPlaceholder === undefined ? defaultConfig.noPlaceholder : _config$noPlaceholder,\n _config$resizeDetecto = config.resizeDetectorStrategy,\n resizeDetectorStrategy = _config$resizeDetecto === undefined ? defaultConfig.resizeDetectorStrategy : _config$resizeDetecto;\n\n\n invariant(monitorWidth || monitorHeight || monitorPosition, 'You have to monitor at least one of the width, height, or position when using \"sizeMe\"');\n\n invariant(refreshRate >= 16, \"It is highly recommended that you don't put your refreshRate lower than \" + '16 as this may cause layout thrashing.');\n\n invariant(refreshMode === 'throttle' || refreshMode === 'debounce', 'The refreshMode should have a value of \"throttle\" or \"debounce\"');\n\n var refreshDelayStrategy = refreshMode === 'throttle' ? throttleDebounce.throttle : throttleDebounce.debounce;\n\n return function WrapComponent(WrappedComponent) {\n var SizeMeRenderWrapper = renderWrapper(WrappedComponent);\n\n var SizeAwareComponent = function (_React$Component) {\n inherits(SizeAwareComponent, _React$Component);\n\n function SizeAwareComponent() {\n var _ref2;\n\n var _temp, _this2, _ret;\n\n classCallCheck(this, SizeAwareComponent);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this2 = possibleConstructorReturn(this, (_ref2 = SizeAwareComponent.__proto__ || Object.getPrototypeOf(SizeAwareComponent)).call.apply(_ref2, [this].concat(args))), _this2), _this2.domEl = null, _this2.state = {\n width: undefined,\n height: undefined,\n position: undefined\n }, _this2.uninstall = function () {\n if (_this2.domEl) {\n try {\n _this2.detector.uninstall(_this2.domEl);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(errMsg);\n }\n _this2.domEl = null;\n }\n }, _this2.determineStrategy = function (props) {\n if (props.onSize) {\n if (!_this2.callbackState) {\n _this2.callbackState = _extends({}, _this2.state);\n }\n _this2.strategy = 'callback';\n } else {\n _this2.strategy = 'render';\n }\n }, _this2.strategisedSetState = function (state) {\n if (_this2.strategy === 'callback') {\n _this2.callbackState = state;\n _this2.props.onSize(state);\n }\n _this2.setState(state);\n }, _this2.strategisedGetState = function () {\n return _this2.strategy === 'callback' ? _this2.callbackState : _this2.state;\n }, _this2.refCallback = function (element) {\n _this2.element = element;\n }, _this2.hasSizeChanged = function (current, next) {\n var c = current;\n var n = next;\n var cp = c.position || {};\n var np = n.position || {};\n\n return monitorWidth && c.width !== n.width || monitorHeight && c.height !== n.height || monitorPosition && (cp.top !== np.top || cp.left !== np.left || cp.bottom !== np.bottom || cp.right !== np.right);\n }, _this2.checkIfSizeChanged = refreshDelayStrategy(refreshRate, function (el) {\n var _el$getBoundingClient = el.getBoundingClientRect(),\n width = _el$getBoundingClient.width,\n height = _el$getBoundingClient.height,\n right = _el$getBoundingClient.right,\n left = _el$getBoundingClient.left,\n top = _el$getBoundingClient.top,\n bottom = _el$getBoundingClient.bottom;\n\n var next = {\n width: monitorWidth ? width : null,\n height: monitorHeight ? height : null,\n position: monitorPosition ? { right: right, left: left, top: top, bottom: bottom } : null\n };\n\n if (_this2.hasSizeChanged(_this2.strategisedGetState(), next)) {\n _this2.strategisedSetState(next);\n }\n }), _temp), possibleConstructorReturn(_this2, _ret);\n }\n\n createClass(SizeAwareComponent, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.detector = resizeDetector(resizeDetectorStrategy);\n this.determineStrategy(this.props);\n this.handleDOMNode();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.determineStrategy(this.props);\n this.handleDOMNode();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // Change our size checker to a noop just in case we have some\n // late running events.\n this.hasSizeChanged = function () {\n return undefined;\n };\n this.checkIfSizeChanged = function () {\n return undefined;\n };\n this.uninstall();\n }\n }, {\n key: 'handleDOMNode',\n value: function handleDOMNode() {\n var found = this.element && ReactDOM.findDOMNode(this.element);\n\n if (!found) {\n // If we previously had a dom node then we need to ensure that\n // we remove any existing listeners to avoid memory leaks.\n this.uninstall();\n return;\n }\n\n if (!this.domEl) {\n this.domEl = found;\n this.detector.listenTo(this.domEl, this.checkIfSizeChanged);\n } else if (this.domEl.isSameNode && !this.domEl.isSameNode(found) || this.domEl !== found) {\n this.uninstall();\n this.domEl = found;\n this.detector.listenTo(this.domEl, this.checkIfSizeChanged);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var disablePlaceholder = withSize.enableSSRBehaviour || withSize.noPlaceholders || noPlaceholder || this.strategy === 'callback';\n\n var size = _extends({}, this.state);\n\n return React__default.createElement(SizeMeRenderWrapper, _extends({\n explicitRef: this.refCallback,\n size: this.strategy === 'callback' ? null : size,\n disablePlaceholder: disablePlaceholder\n }, this.props));\n }\n }]);\n return SizeAwareComponent;\n }(React__default.Component);\n\n SizeAwareComponent.displayName = 'SizeMe(' + getDisplayName(WrappedComponent) + ')';\n SizeAwareComponent.propTypes = {\n onSize: PropTypes.func\n };\n\n\n SizeAwareComponent.WrappedComponent = WrappedComponent;\n\n return SizeAwareComponent;\n };\n}\n\n/**\n * Allow SizeMe to run within SSR environments. This is a \"global\" behaviour\n * flag that should be set within the initialisation phase of your application.\n *\n * Warning: don't set this flag unless you need to as using it may cause\n * extra render cycles to happen within your components depending on the logic\n * contained within them around the usage of the `size` data.\n *\n * DEPRECATED: Please use the global noPlaceholders\n */\nwithSize.enableSSRBehaviour = false;\n\n/**\n * Global configuration allowing to disable placeholder rendering for all\n * sizeMe components.\n */\nwithSize.noPlaceholders = false;\n\nvar SizeMe = function (_Component) {\n inherits(SizeMe, _Component);\n\n function SizeMe(props) {\n classCallCheck(this, SizeMe);\n\n var _this = possibleConstructorReturn(this, (SizeMe.__proto__ || Object.getPrototypeOf(SizeMe)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var children = props.children,\n render = props.render,\n sizeMeConfig = objectWithoutProperties(props, ['children', 'render']);\n\n _this.createComponent(sizeMeConfig);\n _this.state = {\n size: {\n width: undefined,\n height: undefined\n }\n };\n return _this;\n }\n\n createClass(SizeMe, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _props = this.props,\n prevChildren = _props.children,\n prevRender = _props.render,\n currentSizeMeConfig = objectWithoutProperties(_props, ['children', 'render']);\n var nextChildren = prevProps.children,\n nextRender = prevProps.render,\n prevSizeMeConfig = objectWithoutProperties(prevProps, ['children', 'render']);\n\n if (!isShallowEqual(currentSizeMeConfig, prevSizeMeConfig)) {\n this.createComponent(currentSizeMeConfig);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var SizeAware = this.SizeAware;\n\n var render = this.props.children || this.props.render;\n return React__default.createElement(\n SizeAware,\n { onSize: this.onSize },\n render({ size: this.state.size })\n );\n }\n }]);\n return SizeMe;\n}(React.Component);\n\nSizeMe.propTypes = {\n children: PropTypes.func,\n render: PropTypes.func\n};\nSizeMe.defaultProps = {\n children: undefined,\n render: undefined\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.createComponent = function (config) {\n _this2.SizeAware = withSize(config)(function (_ref) {\n var children = _ref.children;\n return children;\n });\n };\n\n this.onSize = function (size) {\n return _this2.setState({ size: size });\n };\n};\n\nwithSize.SizeMe = SizeMe;\nwithSize.withSize = withSize;\n\nmodule.exports = withSize;\n//# sourceMappingURL=react-sizeme.js.map\n","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nmodule.exports = function(options) {\n var getState = options.stateHandler.getState;\n\n /**\n * Tells if the element has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is detectable or not.\n */\n function isDetectable(element) {\n var state = getState(element);\n return state && !!state.isDetectable;\n }\n\n /**\n * Marks the element that it has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to mark.\n */\n function markAsDetectable(element) {\n getState(element).isDetectable = true;\n }\n\n /**\n * Tells if the element is busy or not.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is busy or not.\n */\n function isBusy(element) {\n return !!getState(element).busy;\n }\n\n /**\n * Marks the object is busy and should not be made detectable.\n * @public\n * @param {element} element The element to mark.\n * @param {boolean} busy If the element is busy or not.\n */\n function markBusy(element, busy) {\n getState(element).busy = !!busy;\n }\n\n return {\n isDetectable: isDetectable,\n markAsDetectable: markAsDetectable,\n isBusy: isBusy,\n markBusy: markBusy\n };\n};\n","\"use strict\";\n\nmodule.exports = function(idHandler) {\n var eventListeners = {};\n\n /**\n * Gets all listeners for the given element.\n * @public\n * @param {element} element The element to get all listeners for.\n * @returns All listeners for the given element.\n */\n function getListeners(element) {\n var id = idHandler.get(element);\n\n if (id === undefined) {\n return [];\n }\n\n return eventListeners[id] || [];\n }\n\n /**\n * Stores the given listener for the given element. Will not actually add the listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The callback that the element has added.\n */\n function addListener(element, listener) {\n var id = idHandler.get(element);\n\n if(!eventListeners[id]) {\n eventListeners[id] = [];\n }\n\n eventListeners[id].push(listener);\n }\n\n function removeListener(element, listener) {\n var listeners = getListeners(element);\n for (var i = 0, len = listeners.length; i < len; ++i) {\n if (listeners[i] === listener) {\n listeners.splice(i, 1);\n break;\n }\n }\n }\n\n function removeAllListeners(element) {\n var listeners = getListeners(element);\n if (!listeners) { return; }\n listeners.length = 0;\n }\n\n return {\n get: getListeners,\n add: addListener,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners\n };\n};\n","\"use strict\";\n\nmodule.exports = function() {\n var idCount = 1;\n\n /**\n * Generates a new unique id in the context.\n * @public\n * @returns {number} A unique id in the context.\n */\n function generate() {\n return idCount++;\n }\n\n return {\n generate: generate\n };\n};\n","\"use strict\";\n\nmodule.exports = function(options) {\n var idGenerator = options.idGenerator;\n var getState = options.stateHandler.getState;\n\n /**\n * Gets the resize detector id of the element.\n * @public\n * @param {element} element The target element to get the id of.\n * @returns {string|number|null} The id of the element. Null if it has no id.\n */\n function getId(element) {\n var state = getState(element);\n\n if (state && state.id !== undefined) {\n return state.id;\n }\n\n return null;\n }\n\n /**\n * Sets the resize detector id of the element. Requires the element to have a resize detector state initialized.\n * @public\n * @param {element} element The target element to set the id of.\n * @returns {string|number|null} The id of the element.\n */\n function setId(element) {\n var state = getState(element);\n\n if (!state) {\n throw new Error(\"setId required the element to have a resize detection state.\");\n }\n\n var id = idGenerator.generate();\n\n state.id = id;\n\n return id;\n }\n\n return {\n get: getId,\n set: setId\n };\n};\n","\"use strict\";\n\n/* global console: false */\n\n/**\n * Reporter that handles the reporting of logs, warnings and errors.\n * @public\n * @param {boolean} quiet Tells if the reporter should be quiet or not.\n */\nmodule.exports = function(quiet) {\n function noop() {\n //Does nothing.\n }\n\n var reporter = {\n log: noop,\n warn: noop,\n error: noop\n };\n\n if(!quiet && window.console) {\n var attachFunction = function(reporter, name) {\n //The proxy is needed to be able to call the method with the console context,\n //since we cannot use bind.\n reporter[name] = function reporterProxy() {\n var f = console[name];\n if (f.apply) { //IE9 does not support console.log.apply :)\n f.apply(console, arguments);\n } else {\n for (var i = 0; i < arguments.length; i++) {\n f(arguments[i]);\n }\n }\n };\n };\n\n attachFunction(reporter, \"log\");\n attachFunction(reporter, \"warn\");\n attachFunction(reporter, \"error\");\n }\n\n return reporter;\n};","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","\"use strict\";\n\nvar utils = module.exports = {};\n\nutils.getOption = getOption;\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","/**\n * Resize detection strategy that injects objects to elements in order to detect resize events.\n * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/\n */\n\n\"use strict\";\n\nvar browserDetector = require(\"../browser-detector\");\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n\n if(!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n if(!getObject(element)) {\n throw new Error(\"Element is not detectable by this strategy.\");\n }\n\n function listenerProxy() {\n listener(element);\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support object, but supports the resize event directly on elements.\n getState(element).object = {\n proxy: listenerProxy\n };\n element.attachEvent(\"onresize\", listenerProxy);\n } else {\n var object = getObject(element);\n object.contentDocument.defaultView.addEventListener(\"resize\", listenerProxy);\n }\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n var debug = options.debug;\n\n function injectObject(element, callback) {\n var OBJECT_STYLE = \"display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;\";\n\n //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element.\n\n // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not.\n var positionCheckPerformed = false;\n\n // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers.\n // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM.\n var style = window.getComputedStyle(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n getState(element).startSize = {\n width: width,\n height: height\n };\n\n function mutateDom() {\n function alterPositionStyles() {\n if(style.position === \"static\") {\n element.style.position = \"relative\";\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function onObjectLoad() {\n // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM.\n if (!positionCheckPerformed) {\n alterPositionStyles();\n }\n\n /*jshint validthis: true */\n\n function getDocument(element, callback) {\n //Opera 12 seem to call the object.onload before the actual document has been created.\n //So if it is not present, poll it with an timeout until it is present.\n //TODO: Could maybe be handled better with object.onreadystatechange or similar.\n if(!element.contentDocument) {\n setTimeout(function checkForObjectDocument() {\n getDocument(element, callback);\n }, 100);\n\n return;\n }\n\n callback(element.contentDocument);\n }\n\n //Mutating the object element here seems to fire another load event.\n //Mutating the inner document of the object element is fine though.\n var objectElement = this;\n\n //Create the style element to be added to the object.\n getDocument(objectElement, function onObjectDocumentReady(objectDocument) {\n //Notify that the element is ready to be listened to.\n callback(element);\n });\n }\n\n // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements.\n // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible.\n if (style.position !== \"\") {\n alterPositionStyles(style);\n positionCheckPerformed = true;\n }\n\n //Add an object element as a child to the target element that will be listened to for resize events.\n var object = document.createElement(\"object\");\n object.style.cssText = OBJECT_STYLE;\n object.tabIndex = -1;\n object.type = \"text/html\";\n object.setAttribute(\"aria-hidden\", \"true\");\n object.onload = onObjectLoad;\n\n //Safari: This must occur before adding the object to the DOM.\n //IE: Does not like that this happens before, even if it is also added after.\n if(!browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n\n element.appendChild(object);\n getState(element).object = object;\n\n //IE: This must occur after adding the object to the DOM.\n if(browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n }\n\n if(batchProcessor) {\n batchProcessor.add(mutateDom);\n } else {\n mutateDom();\n }\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support objects properly. Luckily they do support the resize event.\n //So do not inject the object and notify that the element is already ready to be listened to.\n //The event handler for the resize event is attached in the utils.addListener instead.\n callback(element);\n } else {\n injectObject(element, callback);\n }\n }\n\n /**\n * Returns the child object of the target element.\n * @private\n * @param {element} element The target element.\n * @returns The object element of the target.\n */\n function getObject(element) {\n return getState(element).object;\n }\n\n function uninstall(element) {\n if(browserDetector.isIE(8)) {\n element.detachEvent(\"onresize\", getState(element).object.proxy);\n } else {\n element.removeChild(getObject(element));\n }\n delete getState(element).object;\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n injectScrollStyle(styleId, detectionContainerClass);\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = \"position: absolute; width: \" + width*2 + \"px; height: \" + height*2 + \"px; visibility: hidden; margin: 0; padding: 0;\";\n\n var container = document.createElement(\"div\");\n container.style.cssText = \"position: absolute; width: \" + width + \"px; height: \" + height + \"px; overflow: scroll; visibility: none; top: \" + -width*3 + \"px; left: \" + -height*3 + \"px; visibility: hidden; margin: 0; padding: 0;\";\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n document.head.appendChild(element);\n };\n\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!document.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { display: none; }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: \" + containerAnimationClass + \"; animation-name: \" + containerAnimationClass + \"; }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element);\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = \"visibility: hidden; display: inline; width: 0px; height: 0px; z-index: -1; overflow: hidden; margin: 0; padding: 0;\";\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.position = \"relative\";\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return \"left: \" + left + \"; top: \" + top + \"; right: \" + right + \"; bottom: \" + bottom + \";\";\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = \"position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; width: 100%; height: 100%; left: 0px; top: 0px;\";\n var containerStyle = \"position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; \" + getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth);\n var expandStyle = \"position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;\";\n var shrinkStyle = \"position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;\";\n var expandChildStyle = \"position: absolute; left: 0; top: 0;\";\n var shrinkChildStyle = \"position: absolute; width: 200%; height: 200%;\";\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n getState(element).onExpand && getState(element).onExpand();\n }\n\n function onShrinkScroll() {\n getState(element).onShrink && getState(element).onShrink();\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.width = expandWidth + \"px\";\n expandChild.style.height = expandHeight + \"px\";\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify the if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (width !== getState(element).lastWidth || height !== getState(element).lastHeight) {\n debug(\"Element size changed.\");\n updateDetectorElements(notifyListenersIfNeeded);\n } else {\n debug(\"Element size has not changed (\" + width + \"x\" + height + \").\");\n }\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { throttle, debounce };\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","import React, {useState, useEffect, useRef} from 'react';\nimport classnames from 'classnames';\n\nimport {getResultsByGeoAndTab, DataResult, GeoCountry, TopStoriesCategory} from '../../api';\nimport {trackBidmax, BIDMAX_TRACKING_ENABLED} from '../../api/bidmax';\nimport {getTimestampQsSuffix, requestAmpResize} from '../../helpers';\nimport {ResultItem} from '../ResultItem';\nimport {Spinner} from '../Spinner';\n\nimport styles from './styles.css';\nimport LogoImage from './assets/logo.png';\nimport LogoImageRetina from './assets/logo2x.png';\nimport LogoImageWide from './assets/logoWide.png';\nimport LogoImageWideRetina from './assets/logoWide2x.png';\n\nexport type Platform =\n | 'cc'\n | 'mol.web.desktop'\n | 'mol.web.mobile'\n | 'mol.fbia'\n | 'mol.amp'\n | 'mol.native.android'\n | 'mol.native.ios'\n | 'iframe'\n | 'thirdparty';\n\nexport interface AppProps {\n apiHost: string;\n breakpoint?: 'narrow' | 'wide';\n geo: GeoCountry;\n startTab: TopStoriesCategory;\n limit: number;\n platform: Platform;\n useSmallTabs?: boolean;\n headline?: string;\n previewText?: string;\n adSlot?: 'mpu' | 'mpuSmall' | 'bellyband';\n forceIto?: string;\n enlargeFirst?: boolean;\n enlargeFirstDisabled?: boolean;\n referringDomain?: string;\n referringURL?: string;\n environment?: string;\n darkMode?: boolean;\n version?: string;\n channel?: string;\n abNumber?: string | null;\n showNYTab?: boolean;\n relevantFirstOverride?: DataResult | null;\n isFBIARenderer?: boolean;\n publisher?: string | null;\n debugAB?: boolean;\n compactMode?: boolean;\n}\n\nconst REFRESH_INTERVAL = 5 * 60 * 1000;\n\nconst getTabDestinationSuffix = (tab: TopStoriesCategory) => `&startTab=${tab}`;\n\ninterface CategoryDisplay {\n label: string;\n value: TopStoriesCategory;\n}\n\nconst categories: CategoryDisplay[] = [\n {label: 'Top Stories', value: 'news'},\n {label: 'Showbiz', value: 'entertainment'},\n {label: 'Sport', value: 'sport'},\n {label: 'New York', value: 'newYork'}\n];\n\nconst adSlotItoPrefixes = {\n bellyband: 'bellyband',\n mpu: 'dmpu',\n mpuSmall: 'mpu'\n};\n\nexport const App = ({\n apiHost,\n breakpoint = 'narrow',\n geo,\n limit,\n platform,\n startTab,\n useSmallTabs = false,\n headline,\n previewText,\n adSlot,\n forceIto,\n enlargeFirst,\n referringDomain,\n referringURL,\n environment,\n darkMode,\n version = 'unknown',\n channel,\n abNumber = null,\n showNYTab = false,\n relevantFirstOverride = null,\n isFBIARenderer = false,\n enlargeFirstDisabled = false,\n publisher = null,\n debugAB = false,\n compactMode = false\n}: AppProps) => {\n const [error, setError] = useState(null);\n const [loading, setLoading] = useState(false);\n const [resultsState, setResultsState] = useState(null);\n const [currentTab, setCurrentTab] = useState(startTab);\n const [timestamp, setTimestamp] = useState(Date.now());\n const mode = headline || previewText ? 'article' : 'promo';\n const mobileStyle = !adSlot && platform !== 'mol.web.desktop' && platform !== 'cc';\n const appRef = useRef(null);\n\n const loadResults = async (tab: TopStoriesCategory) => {\n setLoading(true);\n setError(null);\n\n try {\n const newResults = await getResultsByGeoAndTab(geo, tab, apiHost, isFBIARenderer, publisher);\n\n if (newResults) {\n setResultsState(newResults);\n requestAmpResize();\n }\n } catch (error) {\n setError(error);\n trackBidmax({\n abNumber,\n channel,\n environment,\n event: 'error',\n geoResults: geo,\n itoCode,\n platform,\n startTab,\n version\n });\n }\n\n setLoading(false);\n };\n\n useEffect(() => {\n loadResults(currentTab).catch();\n\n const interval = setInterval(() => {\n loadResults(currentTab).catch();\n }, REFRESH_INTERVAL);\n\n return () => {\n clearInterval(interval);\n };\n }, [currentTab]);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setTimestamp(Date.now());\n }, 2000);\n\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n const results = relevantFirstOverride && resultsState ? [relevantFirstOverride, ...resultsState] : resultsState;\n\n const logoSrc = breakpoint === 'wide' ? LogoImageWide : LogoImage;\n const logoSrcRetina = breakpoint === 'wide' ? LogoImageWideRetina : LogoImageRetina;\n let itoCode = mode === 'article' ? 'Mail-Top-Stories-Article' : 'Mail-Top-Stories';\n\n if (adSlot) {\n itoCode = `${adSlotItoPrefixes[adSlot]}_${headline ? 'headline' : 'noheadline'}`;\n }\n\n if (forceIto) {\n itoCode = forceIto;\n }\n\n let isFirstEnlarged = enlargeFirst;\n\n if (platform === 'thirdparty') {\n if (enlargeFirstDisabled || compactMode) {\n isFirstEnlarged = false;\n } else if (useSmallTabs) {\n isFirstEnlarged = true;\n }\n }\n\n if (isFirstEnlarged && platform !== 'thirdparty') {\n itoCode += '_Largethumbnail';\n }\n\n const manualReferrer =\n referringDomain && referringURL\n ? `&referringDomain=${encodeURIComponent(referringDomain)}&referringURL=${encodeURIComponent(referringURL)}`\n : '';\n\n let suffixPath = '';\n let suffixQs = '';\n const showingMostRead = isFirstEnlarged && mobileStyle && results && results[0] && results[0].mostRead;\n\n if (compactMode && results && results[0]) {\n suffixPath = `/story/${encodeURIComponent(results[0].id)}`;\n }\n\n if (results && results[0] && results[0].fbia) {\n suffixPath = `/story/${encodeURIComponent(results[0].id)}`;\n suffixQs = '&trendingFB=true';\n }\n\n if (showingMostRead && results && results[0]) {\n suffixPath = `/story/${encodeURIComponent(results[0].id)}`;\n suffixQs = '&mostRead=true';\n }\n\n if (relevantFirstOverride && relevantFirstOverride.id) {\n suffixPath = `/story/${encodeURIComponent(relevantFirstOverride.id)}`;\n suffixQs = '';\n }\n\n const abSuffix = abNumber ? `&abFromXP=${abNumber}` : '';\n const destinationDomain = environment === 'production' ? 'www.newzit.com' : 'www.newzitint.com';\n const destinationUrl = `https://${destinationDomain}${suffixPath}?ito=${itoCode}${getTabDestinationSuffix(\n currentTab\n )}${manualReferrer}${suffixQs}${abSuffix}${getTimestampQsSuffix(timestamp)}&geoFromXP=${geo}`;\n const viewMoreText = useSmallTabs ? 'View more' : 'Click here to view more';\n const viewMoreButton =\n mode === 'promo' ? (\n
\">\n Click here to view more {!compactMode && }\n
\n ) : (\n
\n \n
{viewMoreText}
\n
\n );\n\n const addPadding = (platform === 'mol.fbia' || platform === 'iframe') && !adSlot;\n\n useEffect(() => {\n if (!BIDMAX_TRACKING_ENABLED) {\n return;\n }\n\n trackBidmax({\n abNumber,\n channel,\n environment,\n event: 'impression',\n geoResults: geo,\n itoCode,\n platform,\n startTab,\n version\n });\n\n try {\n if (platform === 'mol.native.ios' || !('IntersectionObserver' in window)) {\n return;\n }\n\n const observer = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n trackBidmax({\n abNumber,\n channel,\n environment,\n event: 'viewable',\n geoResults: geo,\n itoCode,\n platform,\n startTab,\n version\n });\n observer.disconnect();\n }\n });\n\n if (appRef.current) {\n observer.observe(appRef.current);\n }\n\n return () => {\n observer.disconnect();\n };\n } catch (error) {\n return;\n }\n }, []);\n\n const handleClick = () => {\n trackBidmax({\n abNumber,\n channel,\n environment,\n event: 'click',\n geoResults: geo,\n itoCode,\n platform,\n startTab,\n version\n });\n };\n\n return (\n \n {debugAB &&
AB number: {abNumber}
}\n {headline && (\n \n {headline}\n \n )}\n
\n {!compactMode && (\n
\n
\n {categories\n .filter(({value}) => value !== 'newYork' || showNYTab)\n .map(({label, value}) => (\n setCurrentTab(value)}\n >\n {label}\n \n ))}\n
\n
\n )}\n \n {mode === 'promo' && (\n
\n {breakpoint === 'wide' && !adSlot && !compactMode && (\n
See EVERY angle with
\n )}\n \n
LIVE TOP STORIES
\n
\n )}\n
\n {error &&
Error fetching data
}\n {results && results.length && (\n
\n {results\n .filter((result) => showingMostRead || !result.mostRead)\n .slice(0, limit)\n .map((result, index) => (\n value === currentTab)?.label ||\n currentTab}: Rank ${index}: ${result.title}`}\n key={result.id}\n result={result}\n breakpoint={breakpoint}\n mode={mode}\n adSlot={adSlot}\n mobileStyle={mobileStyle}\n platform={platform}\n fullWidthImage={isFirstEnlarged && index === 0}\n darkMode={darkMode}\n compactMode={compactMode}\n />\n ))}\n
\n )}\n {adSlot !== 'mpu' && compactMode && results && viewMoreButton}\n
\n {adSlot !== 'mpu' && !compactMode && results && viewMoreButton}\n \n {loading && }\n
\n {previewText &&
{previewText}
}\n {adSlot === 'mpu' && (\n \n {viewMoreButton}\n \n )}\n \n );\n};\n","import React, {useState, useEffect} from 'react';\nimport TimeAgo, {Formatter} from 'react-timeago';\nimport classnames from 'classnames';\n\nimport {requestAmpResize} from '../../helpers';\nimport {DataResult} from '../../api';\nimport {Platform} from '../App';\n\nimport styles from './styles.css';\n\ninterface ResultItemProps {\n result: DataResult;\n breakpoint?: 'narrow' | 'wide';\n mode: 'promo' | 'article';\n adSlot?: 'mpu' | 'mpuSmall' | 'bellyband';\n mobileStyle?: boolean;\n platform?: Platform;\n fullWidthImage?: boolean;\n trackingInnerText: string;\n darkMode?: boolean;\n compactMode?: boolean;\n}\n\nconst timeFormatter: Formatter = (value, unit) => {\n const unitStr = {\n day: 'day',\n hour: 'hr',\n minute: 'min',\n month: 'mth',\n second: 'sec',\n week: 'wk',\n year: 'yr'\n };\n const formattedUnit = `${unitStr[unit] || unit}${value > 1 ? 's' : ''}`;\n\n return `${value}${formattedUnit} ago`;\n};\n\nexport const ResultItem = ({\n result,\n breakpoint = 'narrow',\n mode,\n adSlot,\n mobileStyle,\n platform,\n fullWidthImage,\n trackingInnerText,\n darkMode,\n compactMode\n}: ResultItemProps) => {\n const {\n title,\n resultThumbUrl,\n timestamp,\n siteIconUrl,\n siteName,\n notification: breaking,\n paywall,\n mostRead,\n fbia\n } = result;\n const [imageError, setImageError] = useState(false);\n\n useEffect(() => {\n setImageError(false);\n }, [result]);\n\n return (\n \n {resultThumbUrl && (\n \n
\n setImageError(true)}\n onLoad={fullWidthImage ? requestAmpResize : undefined}\n src={resultThumbUrl}\n width=\"328\"\n height=\"220\"\n />\n {paywall &&
PAYWALL
}\n
\n \n )}\n
\n
{title}
\n
\n {breaking &&
BREAKING
}\n {mostRead && mobileStyle && fullWidthImage &&
TRENDING
}\n {fbia &&
TRENDING ON FACEBOOK
}\n {siteName && (\n
\n {siteIconUrl && \"site}\n
\n {siteName}\n {timestamp && ยท}\n {timestamp && }\n
\n
\n )}\n {!compactMode && (\n
\n See more versions\n
\n )}\n
\n
\n \n );\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"result\":\"result_hN2rt\",\"thumbContainer\":\"thumbContainer_2OZH-\",\"paywallFlag\":\"paywallFlag_Ldeai\",\"imageError\":\"imageError_3VKzI\",\"info\":\"info_1O-um\",\"title\":\"title_parRW\",\"snippet\":\"snippet_2K5sE\",\"breaking\":\"breaking_T_Vzi\",\"breakingLabel\":\"breakingLabel_2EWwq\",\"mostReadLabel\":\"mostReadLabel_2o09M\",\"fbiaLabel\":\"fbiaLabel_3dUpn\",\"snippetText\":\"snippetText_1p26L\",\"siteLink\":\"siteLink_1D6VV\",\"favicon\":\"favicon_2128A\",\"snippetSeparator\":\"snippetSeparator_NyKYa\",\"relatedButton\":\"relatedButton_2jWN9\",\"promo\":\"promo_nBe1L\",\"wide\":\"wide_3RJvc\",\"narrow\":\"narrow_1ecr_\",\"article\":\"article_33fZR\",\"mpu\":\"mpu_3OgUZ\",\"mpuSmall\":\"mpuSmall_3Iav3\",\"bellyband\":\"bellyband_LTbqk\",\"mobileStyle\":\"mobileStyle_WvJgy\",\"android\":\"android_1ekJc\",\"fullWidthImage\":\"fullWidthImage_1l3jL\",\"darkMode\":\"darkMode_IXyCm\",\"compactMode\":\"compactMode_WH0hL\"};","import React from 'react';\n\nimport styles from './styles.css';\n\nexport const Spinner = () =>
;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner\":\"spinner_1nw4m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"appWrapper\":\"appWrapper_1kWlX\",\"previewWrapper\":\"previewWrapper_CB2Od\",\"addPadding\":\"addPadding_XZbXr\",\"app\":\"app_2v8Kn\",\"article\":\"article_20VGm\",\"headline\":\"headline_3jlV2\",\"mobileStyle\":\"mobileStyle_1uY7r\",\"previewText\":\"previewText_2Pd3i\",\"heading\":\"heading_VJClk\",\"logo\":\"logo_25l2_\",\"subheading\":\"subheading_253SM\",\"content\":\"content_1tsiE\",\"resultList\":\"resultList_2OW2j\",\"error\":\"error_3E0mB\",\"vanityText\":\"vanityText_2Vf4M\",\"viewMore\":\"viewMore_1ibfc\",\"viewMoreChevron\":\"viewMoreChevron_JuO7k\",\"tabContainer\":\"tabContainer_2dJSt\",\"buttonSelectors\":\"buttonSelectors_1DQ6A\",\"tabSelector\":\"tabSelector_3VEPi\",\"selectedTab\":\"selectedTab_2Mkkn\",\"debugInfo\":\"debugInfo_y_IF2\",\"wide\":\"wide__BH4P\",\"narrow\":\"narrow_26l3g\",\"smallTabs\":\"smallTabs_1uhv8\",\"promo\":\"promo_2q5iA\",\"mpu\":\"mpu_1e85k\",\"mpuSmall\":\"mpuSmall_1KKBK\",\"bellyband\":\"bellyband_379c1\",\"viewMoreWithLogo\":\"viewMoreWithLogo_2tlZr\",\"viewMoreButton\":\"viewMoreButton_3u7xj\",\"viewMorelogo\":\"viewMorelogo_2r_qa\",\"darkMode\":\"darkMode_3HVdm\",\"compactMode\":\"compactMode_oHr_v\"};","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"871d4c5f5f1e9c1b012bc4d93e8430cd.png\";","module.exports = __webpack_public_path__ + \"cb1c0f978fb09b37d36e841f6a164793.png\";","module.exports = __webpack_public_path__ + \"eb124bc667e4c98b66a7b29d691b91ae.png\";"],"sourceRoot":""}