{"version":3,"sources":["webpack://Donation/webpack/universalModuleDefinition","webpack://Donation/webpack/bootstrap","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Donation/./node_modules/belter/src/device.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://Donation/./node_modules/zalgo-promise/src/utils.js","webpack://Donation/./node_modules/zalgo-promise/src/exceptions.js","webpack://Donation/./node_modules/zalgo-promise/src/flush.js","webpack://Donation/./node_modules/zalgo-promise/src/promise.js","webpack://Donation/./node_modules/cross-domain-utils/src/util.js","webpack://Donation/./node_modules/cross-domain-utils/src/constants.js","webpack://Donation/./node_modules/cross-domain-utils/src/utils.js","webpack://Donation/./node_modules/cross-domain-safe-weakmap/src/util.js","webpack://Donation/./node_modules/cross-domain-safe-weakmap/src/weakmap.js","webpack://Donation/./node_modules/belter/src/util.js","webpack://Donation/./node_modules/cross-domain-safe-weakmap/src/native.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Donation/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Donation/./node_modules/belter/src/dom.js","webpack://Donation/./node_modules/belter/src/constants.js","webpack://Donation/./node_modules/belter/src/http.js","webpack://Donation/./node_modules/belter/src/css.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/global.js","webpack://Donation/./node_modules/@paypal/sdk-constants/src/params.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/config.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/script.js","webpack://Donation/./node_modules/beaver-logger/src/constants.js","webpack://Donation/./node_modules/beaver-logger/src/config.js","webpack://Donation/./node_modules/beaver-logger/src/logger.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/domains.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/logger.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/meta.js","webpack://Donation/./node_modules/post-robot/src/global.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/api.js","webpack://Donation/./node_modules/@paypal/sdk-client/src/events.js","webpack://Donation/./node_modules/post-robot/src/lib/hello.js","webpack://Donation/./node_modules/post-robot/src/conf/constants.js","webpack://Donation/./node_modules/post-robot/src/lib/windows.js","webpack://Donation/./node_modules/universal-serialize/src/common.js","webpack://Donation/./node_modules/universal-serialize/src/constants.js","webpack://Donation/./node_modules/universal-serialize/src/serialize.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/function.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/error.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/promise.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/regex.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/date.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/array.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/object.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/string.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/number.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/boolean.js","webpack://Donation/./node_modules/universal-serialize/src/serializers/null.js","webpack://Donation/./node_modules/universal-serialize/src/deserialize.js","webpack://Donation/./node_modules/post-robot/src/serialize/window.js","webpack://Donation/./node_modules/post-robot/src/bridge/common.js","webpack://Donation/./node_modules/post-robot/src/serialize/function.js","webpack://Donation/./node_modules/post-robot/src/serialize/serialize.js","webpack://Donation/./node_modules/post-robot/src/serialize/promise.js","webpack://Donation/./node_modules/post-robot/src/drivers/send/strategies.js","webpack://Donation/./node_modules/post-robot/src/drivers/send/index.js","webpack://Donation/./node_modules/post-robot/src/drivers/listeners.js","webpack://Donation/./node_modules/post-robot/src/drivers/receive/types.js","webpack://Donation/./node_modules/post-robot/src/drivers/receive/index.js","webpack://Donation/./node_modules/post-robot/src/public/on.js","webpack://Donation/./node_modules/post-robot/src/lib/compat.js","webpack://Donation/./node_modules/post-robot/src/public/send.js","webpack://Donation/./node_modules/post-robot/src/conf/config.js","webpack://Donation/./node_modules/post-robot/src/setup.js","webpack://Donation/./node_modules/post-robot/src/clean.js","webpack://Donation/./node_modules/zoid/src/lib/global.js","webpack://Donation/./node_modules/zoid/src/lib/serialize.js","webpack://Donation/./node_modules/post-robot/src/index.js","webpack://Donation/./node_modules/zoid/src/constants.js","webpack://Donation/./node_modules/zoid/src/child/props.js","webpack://Donation/./node_modules/zoid/src/child/window.js","webpack://Donation/./node_modules/zoid/src/child/child.js","webpack://Donation/./node_modules/zoid/src/parent/props.js","webpack://Donation/./node_modules/zoid/src/parent/parent.js","webpack://Donation/./node_modules/zoid/src/drivers/react.js","webpack://Donation/./node_modules/zoid/src/drivers/vue.js","webpack://Donation/./node_modules/zoid/src/drivers/angular.js","webpack://Donation/./node_modules/zoid/src/drivers/angular2.js","webpack://Donation/./node_modules/zoid/src/component/templates/container.js","webpack://Donation/./node_modules/zoid/src/component/templates/component.js","webpack://Donation/./node_modules/zoid/src/component/props.js","webpack://Donation/./node_modules/zoid/src/component/component.js","webpack://Donation/./node_modules/jsx-pragmatic/src/node.js","webpack://Donation/./node_modules/jsx-pragmatic/src/constants.js","webpack://Donation/./node_modules/jsx-pragmatic/src/renderers/dom.js","webpack://Donation/./node_modules/jsx-pragmatic/src/util.js","webpack://Donation/./node_modules/jsx-pragmatic/src/renderers/html.js","webpack://Donation/./node_modules/@paypal/sdk-logos/src/lib/components.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/lib/util.js","webpack://Donation/./node_modules/@paypal/sdk-logos/src/constants.js","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/bancontact/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/bank/glyph/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/card/glyph/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/credit/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/eps/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/giropay/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/ideal/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/mybank/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/p24/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/paypal/logo.jsx","webpack://Donation/./node_modules/@paypal/common-components/src/overlay/template.jsx","webpack://Donation/./node_modules/@paypal/common-components/src/overlay/style.js","webpack://Donation/./node_modules/@paypal/common-components/src/ui/spinnerPage.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/sepa/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/sofort/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/venmo/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/itau/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/wechatpay/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/zimpler/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/payu/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/verkkopankki/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/blik/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/trustly/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/oxxo/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/boleto/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/maxima/logo.jsx","webpack://Donation/./node_modules/@paypal/sdk-logos/src/logos/mercadopago/logo.jsx","webpack://Donation/./src/zoid/donate-checkout/template/content.js","webpack://Donation/./src/zoid/donate-checkout/componentV2.jsx","webpack://Donation/./src/zoid/common/buttonParams.js","webpack://Donation/./src/zoid/common/utils.js","webpack://Donation/./src/zoid/common/PopupBlockDetector.js","webpack://Donation/./src/interface/donateCheckout.js","webpack://Donation/./src/zoid/donate-button-local/component.jsx","webpack://Donation/./src/zoid/donate-button/prerender.jsx","webpack://Donation/./src/zoid/donate-button/component.jsx","webpack://Donation/./src/interface/donateButtonManager.js","webpack://Donation/./src/zoid/donate-button-manager/component.jsx","webpack://Donation/./src/donateSdkModules.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","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","hasOwnProperty","p","s","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","keys","length","indexOf","getUserAgent","window","navigator","mockUserAgent","userAgent","isOperaMini","ua","isIos","test","supportsPopups","isGoogleSearchApp","isIosWebview","isAndroid","isAndroidWebview","isFirefoxIOS","isEdgeIOS","isFacebookWebView","isQQBrowser","process","versions","electron","standalone","matchMedia","matches","_inheritsLoose","subClass","superClass","prototype","constructor","__proto__","_extends","assign","arguments","apply","isPromise","item","Promise","Window","toString","then","err","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","promise","resolve","startActive","endActive","ZalgoPromise","handler","resolved","rejected","errorHandled","error","handlers","dispatching","stack","result","isAsync","res","reject","Error","dispatch","setTimeout","push","j","dispatchPossiblyUnhandledError","asyncReject","chain","firstPromise","secondPromise","onSuccess","onError","catch","undefined","finally","onFinally","try","timeout","time","clearTimeout","toPromise","TypeError","all","promises","count","results","prom","hash","awaitPromises","map","items","method","onPossiblyUnhandledException","cancel","splice","context","args","delay","flush","isRegex","WINDOW_TYPE","IFRAME","POPUP","IE_WIN_ACCESS_ERROR","isAboutProtocol","win","location","protocol","getParent","parent","getOpener","opener","canReadFromWindow","getActualDomain","PROTOCOL","host","getDomain","domain","mockDomain","isSameDomain","desc","getOwnPropertyDescriptor","isActuallySameDomain","assertSameDomain","isAncestorParent","child","childParent","getParents","getFrames","frames","len","frame","getAllChildFrames","getTop","top","getAllFramesInWindow","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","message","mockclosed","iframeIndex","collection","safeIndexOf","contentWindow","parentNode","doc","ownerDocument","documentElement","contains","isFrameWindowClosed","getAncestor","anyMatch","collection1","collection2","item1","getDistanceFromTop","distance","isSameTopWindow","win1","win2","top1","top2","allFrames1","allFrames2","opener1","opener2","matchDomain","pattern","origin","Array","isArray","Boolean","match","JSON","stringify","some","subpattern","getDomainFromUrl","url","split","slice","join","onCloseWindow","callback","maxtime","Infinity","check","isWindow","obj","__cross_domain_utils_window_check__","closeWindow","close","objectIDs","CrossDomainSafeWeakMap","weakmap","values","Math","random","WeakMap","freeze","testWeakMap","testKey","set","hasNativeWeakMap","_cleanupClosedWindows","delete","isSafeToReadWrite","entry","writable","index","has","getOrSet","_getPrototypeOf","setPrototypeOf","getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","e","_construct","Parent","Class","isNativeReflectConstruct","a","instance","Function","_wrapNativeSuper","_cache","Map","Wrapper","configurable","getFunctionName","fn","__name__","displayName","setFunctionName","base64encode","str","btoa","encodeURIComponent","replace","p1","String","fromCharCode","parseInt","Buffer","from","uniqueID","chars","charAt","floor","toISOString","toLowerCase","serializeArgs","subkey","val","uid","getObjectID","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","options","simpleCache","thisCache","thisNamespace","cacheTime","memoizeIndex","memoizedFunction","cache","cacheKey","cacheResult","now","reset","memoizePromise","memoizedPromiseFunction","inlineMemoize","logic","__inline_memoize_cache__","noop","once","called","stringifyError","level","newErr","extend","svgToBase64","svg","objFilter","filter","identity","safeInterval","loop","eventEmitter","triggered","on","eventName","handlerList","cancelled","listener","trigger","triggerOnce","defineLazyProp","arrayFrom","isObjectObject","isPlainObject","replaceObject","replacer","fullKey","itemKey","isDefined","cleanup","tasks","cleaned","register","task","shift","assertExists","thing","clear","ExtendableError","captureStackTrace","ReferenceError","isDocumentReady","document","body","readyState","isDocumentInteractive","urlEncode","parseQuery","queryString","params","pair","decodeURIComponent","extendQuery","originalQuery","props","extendUrl","originalUrl","originalHash","query","hashString","isBrowser","appendChild","container","isElement","element","Element","nodeType","style","getElementSafe","id","querySelector","getElement","elementReady","el","interval","setInterval","clearInterval","awaitFrameLoadPromises","PopupOpenError","popup","width","height","left","outerWidth","round","screenX","screen","outerHeight","screenY","status","toolbar","menubar","resizable","scrollbars","open","addEventListener","writeElementToWindow","tag","tagName","children","removeChild","awaitFrameLoad","cleanIframes","linkFrameWindow","awaitFrameWindow","loadedFrame","iframe","styleText","createElement","class","className","setAttribute","attributes","styleSheet","cssText","createTextNode","html","innerHTML","allowTransparency","backgroundColor","border","isIE","hasAttribute","event","removeEventListener","bindEvents","eventNames","VENDOR_PREFIXES","ANIMATION_START_EVENTS","ANIMATION_END_EVENTS","animate","clean","startTimeout","endTimeout","startEvent","endEvent","hasStarted","cleanUp","animationName","stopPropagation","capitalizedName","string","toUpperCase","setVendorCSS","showElement","setProperty","hideElement","destroyElement","isElementClosed","onResize","currentWidth","offsetWidth","currentHeight","offsetHeight","canceled","observer","getClientRects","isElementVisible","newWidth","newHeight","ResizeObserver","observe","MutationObserver","childList","subtree","characterData","disconnect","isShadowElement","currentScript","getCurrentScript","getStackTrace","stackDetails","exec","scriptLocation","getElementsByTagName","reverse","script","src","inferCurrentScript","currentUID","getCurrentScriptUID","getAttribute","ATTRIBUTES","headerBuilders","request","headers","json","data","normalizedHeaders","builtHeaders","headerBuilder","xhr","XMLHttpRequest","responseHeaders","rawHeaders","trim","parseHeaders","getAllResponseHeaders","contentType","isJSON","responseBody","responseText","parse","evt","setRequestHeader","ontimeout","send","isPerc","toNum","toPx","toCSS","normalizeDimension","dim","max","getProtocol","__PROTOCOL__","getSDKScript","__SDK_HOST__","__PATH__","getSDKAttributes","attr","getCSPNonce","def","AUTO_FLUSH_LEVEL","LOG_LEVEL_PRIORITY","httpTransport","enableSendBeacon","hasHeaders","sendBeacon","Blob","blob","type","extendIfDefined","getPayPalDomain","buildPayPalAPIUrl","path","getLogger","prefix","logLevel","transport","flushInterval","events","tracking","payloadBuilders","metaBuilders","trackingBuilders","print","payload","console","log","warning","immediateFlush","meta","builder","localPromise","logger","logPayload","timestamp","enqueue","addBuilder","builders","debug","info","warn","track","trackingPayload","addPayloadBuilder","addMetaBuilder","addTrackingBuilder","addHeaderBuilder","setTransport","newTransport","Logger","ALLOWED_ATTRS","getSDKMeta","getScriptUrl","scriptAttrs","attrs","getGlobal","globalKey","__POST_ROBOT__","clientID","basicAuth","Authorization","grant_type","access_token","getObj","globalStore","defStore","store","storeKey","defVal","del","WildCard","getWildcard","global","WINDOW_WILDCARD","windowStore","winStore","getStore","getInstanceID","resolveHelloPromise","helloPromises","existingPromise","newPromise","sayHello","instanceID","getWindowInstanceID","markWindowKnown","isSerializedType","__type__","determineType","serializeType","__val__","SERIALIZER","code","toJSON","defaultSerializers","DESERIALIZER","RegExp","defaultDeserializers","cleanupProxyWindows","idToProxyWindow","shouldClean","getSerializedWindow","winPromise","windowNamePromise","windowTypePromise","getType","getName","focus","isClosed","setLocation","href","setName","sameDomain","frameElement","querySelectorAll","getFrameForWindow","ProxyWindow","serializedWindow","isProxyWindow","actualWindow","actualWindowPromise","getID","setWindow","isPopup","isPopupPromise","getNamePromise","reopenPromise","focusPromise","getWindow","awaitWindow","matchWindow","proxyInstanceID","knownWindowInstanceID","unwrap","serialize","toProxyWindow","deserialize","addMethod","methodStore","proxyWindowMethods","lookupMethod","serializeFunction","destination","meth","methodSource","arg","__id__","serializeMessage","serializers","serializer","serializePromise","deserializeMessage","deserializers","deserializer","serializedPromise","deserializePromise","serializedFunction","getDeserializedFunction","opts","crossDomainFunctionWrapper","fireAndForget","__origin__","__source__","deserializeFunction","SEND_MESSAGE_STRATEGIES","sendMessage","domainBuffer","buffer","serializedMessage","strategies","errors","strategyName","getResponseListener","deleteResponseListener","isResponseListenerErrored","getRequestListener","requestListeners","winQualifier","nameListeners","domainListeners","regex","handleRequest","logName","sendResponse","ack","pathname","handleError","handleAck","handleResponse","receiveMessage","receivedMessages","messages","parsedMessage","parseMessages","deserializeMessages","requestListener","addRequestListener","listenersCollection","existingListener","regexListeners","regexListener","strDomain","errorHandler","postMessage","foreignGlobal","domainMatcher","responseTimeout","childTimeout","validateOptions","actualParent","isAncestor","getHelloPromise","awaitWindowHello","targetDomain","actualDomain","normalizedDomain","normalizeDomain","responseListener","addResponseListener","reqPromises","markResponseListenerErrored","totalAckTimeout","isWindowKnown","totalResTimeout","ackTimeout","resTimeout","internalSerializeMessage","internalDeserializeMessage","setup","initialized","sourceElement","originalEvent","messageListener","listenForMessages","initHello","cleanUpWindow","getProxyObject","CONTEXT","normalizeChildProp","propsDef","helpers","prop","childDecorate","onProps","resize","getParentDomain","show","hide","parseChildWindowName","windowName","zoidcomp","encodedPayload","atob","charCodeAt","base64decode","getChildPayload","destroy","getQueryParam","queryParam","getQueryValue","queryValue","parentComponent","overrides","parentWin","currentProxyWin","currentProxyContainer","childComponent","containerTemplate","prerenderTemplate","dimensions","autoResize","domainMatch","initPromise","handledErrors","state","internalState","visible","onErrorOverride","getProxyContainerOverride","getProxyContainer","showOverride","hideOverride","closeOverride","renderContainerOverride","renderContainer","getProxyWindowOverride","getProxyWindow","setProxyWinOverride","setProxyWin","openFrameOverride","openFrame","openPrerenderFrameOverride","openPrerenderFrame","prerenderOverride","prerender","openOverride","openPrerenderOverride","openPrerender","watchForUnloadOverride","watchForUnload","getInternalStateOverride","getInternalState","setInternalStateOverride","setInternalState","getPropsForChild","sendToChild","newInternalState","windowProp","proxyWin","containerElement","shadowHost","shadowRoot","getShadowRoot","getShadowHost","slotName","slot","slotProvider","insertShadowSlot","setState","getUrl","getAttributes","getChildDomain","getDomainMatcher","title","proxyPrerenderFrame","prerenderFrame","prerenderFrameWindow","getWindowRef","windows","initChild","childExports","proxyFrame","frameWatcher","unloadWindowListener","closeParentWindowListener","checkWindowClose","secondIsClosed","renderTemplate","renderer","proxyPrerenderWin","prerenderWindow","isBlankDomain","prerenderResizeListener","proxyContainer","innerContainer","getHelpers","updateProps","setProps","newProps","isUpdate","inputProps","propNames","aliases","propDef","alias","default","decorate","required","extendProps","childProps","init","onRender","onDisplay","onRendered","onClose","onDestroy","onFocus","render","ZOID","childDomain","checkAllowRender","delegatePromise","delegateProps","propName","allowDelegate","childOverridesPromise","POST_MESSAGE","getDelegateOverrides","childOverrides","delegate","watchForUnloadPromise","buildUrlPromise","serialization","dotify","newobj","every","dotkey","propsToQuery","normalizeMockUrl","onRenderPromise","getProxyContainerPromise","getProxyWindowPromise","buildWindowNamePromise","propRef","getPropsRef","propsRef","version","__ZOID__","parentDomain","checkClose","buildChildPayload","childPayload","openFramePromise","openPrerenderFramePromise","renderContainerPromise","openPromise","openPrerenderPromise","setStatePromise","prerenderPromise","setWindowNamePromise","loadUrlPromise","builtUrl","watchForClosePromise","watchForClose","onDisplayPromise","openBridgePromise","runTimeoutPromise","onRenderedPromise","react","React","ReactDOM","componentDidMount","findDOMNode","componentDidUpdate","Component","vue","Vue","component","inheritAttrs","mounted","$el","$attrs","watch","deep","angular","ng","directive","g","scope","restrict","controller","$scope","$element","safeApply","$root","$$phase","$apply","getProps","$watch","angular2","NgModule","ElementRef","NgZone","internalProps","zone","run","ComponentInstance","AngularComponent","selector","template","inputs","elementRef","_props","ngOnInit","targetElement","nativeElement","ngDoCheck","obj1","obj2","checked","equals","declarations","defaultContainerTemplate","div","cspNonce","classList","add","remove","defaultPrerenderTemplate","spinner","defaultNoop","decorateOnce","bridgeUrl","allowedParentDomains","defaultContext","validate","eligible","normalizeOptions","driverCache","instances","isChild","registerChild","xprops","components","onPropHandlers","parentComponentWindow","ref","getNthParent","ancestor","getParentComponentWindow","normalizedProps","normalizeChildProps","checkParentDomain","getPropsByRef","eligibility","reason","getDefaultContext","finalContext","getDefaultContainer","isEligible","clone","renderTo","driver","driverName","dep","drivers","canRenderTo","setupPostRobot","comp","renderChildren","renderedChild","subchild","ElementNode","FragmentNode","TextNode","text","ComponentNode","renderComponent","normalizeChildren","normalizeChild","node","ADD_CHILDREN","firstChild","docElement","dom","domRenderer","createTextElement","addProps","ELEMENT_PROP","newScript","textContent","replaceChild","fixScripts","addChildren","SELF_CLOSING_TAGS","br","htmlEncode","SVG","otherProps","htmlRenderer","concat","renderedProps","renderedChildren","svgProps","SVGLogo","logoColor","alt","LOGO_CLASS","getLogoColors","logoColorMap","colors","primary","secondary","tertiary","quaternary","PAYPAL_LOGO_COLORS","PayPalLogo","aria-label","viewBox","preserveAspectRatio","xmlns","fill","PP_LOGO_COLORS","primaryOpacity","secondaryOpacity","PPLogo","tertiaryOpacity","opacity","Overlay","outlet","content","hideCloseButton","setupAnimations","setupAutoResize","getSandboxStyle","scrolling","onClick","preventDefault","alert","role","windowMessage","continueMessage","getContainerStyle","SpinnerPage","nonce","main","card","quinary","senary","zoidInstance","donateCheckoutInstance","containerContent","ar","countries","bg","cs","da","de","en","es","et","fi","fr","he","hu","it","ja","ko","lt","lv","ms","no","nl","pl","pt","ro","ru","sk","sl","sv","th","tl","vi","zh","allowedButtonParams","getTargetMeta","zoidVersion","__PAYPAL_CHECKOUT__","sdkVersion","getZoidUrl","extension","baseUrl","env","popupOpened","isPopupOpen","renderPopupOrRedirect","redirectionUrl","getRedirectionUrl","PopupBlockDetector","documentMode","zalgoPromise","originalRenderTo","p2","DonateCheckout","sdkMeta","getPopupBridge","popupBridge","nativeUrl","getReturnUrlPrefix","start","onComplete","queryItems","targetMeta","redirectParentWindow","token","business","hosted_button_id","amount","currency_code","no_recurring","no_shipping","no_note","cn","item_name","item_number","cancel_return","notify_url","return","cpp_header_image","image_url","invoice","custom","rm","night_phone_a","night_phone_b","night_phone_c","first_name","last_name","email","address1","address2","city","zip","country","button_source","bn","on0","os0","on1","os1","locale","language","contentStrings","contentArray","getLocaleContent","k","includes","reduce","acc","showCheckout","PayPal","Donation","Checkout","ButtonLocal","buttonContainer","imageSrc","image","imageTitle","imageAlt","img","validQueryParams","allowedParamProps","getValidQueryParams","PrerenderedDonateButton","onRenderCheckout","Button","donateButtonUrl","getPageUrl","prerenderDetails","hostedButtonId","DonateButton","DonateButtonZoid","DonateButtonLocal"],"mappings":"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","file":"donate-sdk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Donation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Donation\"] = factory();\n\telse\n\t\troot[\"Donation\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/* @flow */\n\nexport function getUserAgent() : string {\n return window.navigator.mockUserAgent || window.navigator.userAgent; // eslint-disable-line compat/compat\n}\n\nexport function isDevice(userAgent? : string = getUserAgent()) : boolean {\n if (userAgent.match(/Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i)) {\n return true;\n }\n\n return false;\n}\n\nexport function isWebView() : boolean {\n const userAgent = getUserAgent();\n return (/(iPhone|iPod|iPad|Macintosh).*AppleWebKit(?!.*Safari)/i).test(userAgent) ||\n (/\\bwv\\b/).test(userAgent) ||\n (/Android.*Version\\/(\\d)\\.(\\d)/i).test(userAgent);\n}\n\nexport function isStandAlone() : boolean {\n return (window.navigator.standalone === true || window.matchMedia('(display-mode: standalone)').matches); // eslint-disable-line compat/compat\n}\n\nexport function isFacebookWebView(ua? : string = getUserAgent()) : boolean {\n return (ua.indexOf('FBAN') !== -1) || (ua.indexOf('FBAV') !== -1);\n}\n\nexport function isFirefoxIOS(ua? : string = getUserAgent()) : boolean {\n return (/FxiOS/i).test(ua);\n}\n\nexport function isEdgeIOS(ua? : string = getUserAgent()) : boolean {\n return (/EdgiOS/i).test(ua);\n}\n\nexport function isOperaMini(ua? : string = getUserAgent()) : boolean {\n return ua.indexOf('Opera Mini') > -1;\n}\n\nexport function isAndroid(ua? : string = getUserAgent()) : boolean {\n return (/Android/).test(ua);\n}\n\nexport function isIos(ua? : string = getUserAgent()) : boolean {\n return (/iPhone|iPod|iPad/).test(ua);\n}\n\nexport function isGoogleSearchApp(ua? : string = getUserAgent()) : boolean {\n return (/\\bGSA\\b/).test(ua);\n}\n\nexport function isQQBrowser(ua? : string = getUserAgent()) : boolean {\n return (/QQBrowser/).test(ua);\n}\n\nexport function isIosWebview(ua? : string = getUserAgent()) : boolean {\n if (isIos(ua)) {\n if (isGoogleSearchApp(ua)) {\n return true;\n }\n return (/.+AppleWebKit(?!.*Safari)/).test(ua);\n }\n return false;\n}\n\nexport function isAndroidWebview(ua? : string = getUserAgent()) : boolean {\n if (isAndroid(ua)) {\n return (/Version\\/[\\d.]+/).test(ua) && !isOperaMini(ua);\n }\n return false;\n}\n\nexport function isIE() : boolean {\n\n if (window.document.documentMode) {\n return true;\n }\n\n return Boolean(\n window.navigator && // eslint-disable-line compat/compat\n window.navigator.userAgent && // eslint-disable-line compat/compat\n (/Edge|MSIE|rv:11/i).test(window.navigator.userAgent) // eslint-disable-line compat/compat\n );\n}\n\nexport function isIECompHeader() : boolean {\n const mHttp = window.document.querySelector('meta[http-equiv=\"X-UA-Compatible\"]');\n const mContent = window.document.querySelector('meta[content=\"IE=edge\"]');\n if (mHttp && mContent) {\n return true;\n }\n return false;\n}\n\nexport function isElectron() : boolean {\n if (typeof process !== 'undefined' && process.versions && process.versions.electron) {\n return true;\n }\n return false;\n}\n\nexport function isIEIntranet() : boolean {\n\n // This status check only works for older versions of IE with document.documentMode set\n\n if (window.document.documentMode) {\n try {\n const status = window.status;\n\n window.status = 'testIntranetMode';\n\n if (window.status === 'testIntranetMode') {\n window.status = status;\n\n return true;\n }\n\n return false;\n\n } catch (err) {\n\n return false;\n }\n }\n\n return false;\n}\n\nexport function isMacOsCna() : boolean {\n const userAgent = getUserAgent();\n return (/Macintosh.*AppleWebKit(?!.*Safari)/i).test(userAgent);\n}\n\nexport function supportsPopups(ua? : string = getUserAgent()) : boolean {\n return !(isIosWebview(ua) || isAndroidWebview(ua) || isOperaMini(ua) ||\n isFirefoxIOS(ua) || isEdgeIOS(ua) || isFacebookWebView(ua) || isQQBrowser(ua) || isElectron() || isMacOsCna() || isStandAlone());\n}\n\nexport function isChrome(ua? : string = getUserAgent()) : boolean {\n return (/Chrome|Chromium|CriOS/).test(ua);\n}\n\nexport function isSafari(ua? : string = getUserAgent()) : boolean {\n return (/Safari/).test(ua) && !isChrome(ua);\n}\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _extends() {\n _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\n return _extends.apply(this, arguments);\n}","/* @flow */\n\nexport function isPromise(item : mixed) : boolean {\n try {\n if (!item) {\n return false;\n }\n\n if (typeof Promise !== 'undefined' && item instanceof Promise) {\n return true;\n }\n\n if (typeof window !== 'undefined' && typeof window.Window === 'function' && item instanceof window.Window) {\n return false;\n }\n\n if (typeof window !== 'undefined' && typeof window.constructor === 'function' && item instanceof window.constructor) {\n return false;\n }\n\n const toString = ({}).toString;\n\n if (toString) {\n const name = toString.call(item);\n\n if (name === '[object Window]' || name === '[object global]' || name === '[object DOMWindow]') {\n return false;\n }\n }\n\n if (typeof item.then === 'function') {\n return true;\n }\n } catch (err) {\n return false;\n }\n\n return false;\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nconst dispatchedErrors = [];\nconst possiblyUnhandledPromiseHandlers : Array<(mixed, promise? : ZalgoPromise) => void> = [];\n\nexport function dispatchPossiblyUnhandledError(err : mixed, promise : ZalgoPromise) {\n\n if (dispatchedErrors.indexOf(err) !== -1) {\n return;\n }\n\n dispatchedErrors.push(err);\n\n setTimeout(() => {\n if (__DEBUG__) {\n // $FlowFixMe\n throw new Error(`${ err.stack || err.toString() }\\n\\nFrom promise:\\n\\n${ promise.stack }`);\n }\n\n throw err;\n }, 1);\n\n for (let j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) {\n // $FlowFixMe\n possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n}\n\nexport function onPossiblyUnhandledException(handler : (mixed, promise? : ZalgoPromise) => void) : {| cancel : () => void |} {\n possiblyUnhandledPromiseHandlers.push(handler);\n\n return {\n cancel() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nlet activeCount = 0;\nlet flushPromise;\n\nfunction flushActive() {\n if (!activeCount && flushPromise) {\n const promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n}\n\nexport function startActive() {\n activeCount += 1;\n}\n\nexport function endActive() {\n activeCount -= 1;\n flushActive();\n}\n\nexport function awaitActive(Zalgo : Class>) : ZalgoPromise { // eslint-disable-line no-undef\n const promise = flushPromise = flushPromise || new Zalgo();\n flushActive();\n return promise;\n}\n","/* @flow */\n\nimport { isPromise } from './utils';\nimport { onPossiblyUnhandledException, dispatchPossiblyUnhandledError } from './exceptions';\nimport { startActive, endActive, awaitActive } from './flush';\n\nexport class ZalgoPromise {\n\n resolved : boolean\n rejected : boolean\n errorHandled : boolean\n value : R\n error : mixed\n // eslint-disable-next-line flowtype/no-mutable-array\n handlers : Array<{|\n promise : ZalgoPromise<*>,\n onSuccess : void | (result : R) => mixed,\n onError : void | (error : mixed) => mixed\n |}>\n dispatching : boolean\n stack : string\n\n constructor(handler : ?(resolve : (result : R) => void, reject : (error : mixed) => void) => void) {\n\n this.resolved = false;\n this.rejected = false;\n this.errorHandled = false;\n\n this.handlers = [];\n\n if (handler) {\n\n let result;\n let error;\n let resolved = false;\n let rejected = false;\n let isAsync = false;\n\n startActive();\n\n try {\n handler(res => {\n if (isAsync) {\n this.resolve(res);\n } else {\n resolved = true;\n result = res;\n }\n\n }, err => {\n if (isAsync) {\n this.reject(err);\n } else {\n rejected = true;\n error = err;\n }\n });\n\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n\n endActive();\n\n isAsync = true;\n\n if (resolved) {\n // $FlowFixMe\n this.resolve(result);\n } else if (rejected) {\n this.reject(error);\n }\n }\n\n if (__DEBUG__) {\n try {\n throw new Error(`ZalgoPromise`);\n } catch (err) {\n this.stack = err.stack;\n }\n }\n }\n\n resolve(result : R) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(result)) {\n throw new Error('Can not resolve promise with another promise');\n }\n\n this.resolved = true;\n this.value = result;\n this.dispatch();\n\n return this;\n }\n\n reject(error : mixed) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(error)) {\n throw new Error('Can not reject promise with another promise');\n }\n\n if (!error) {\n // $FlowFixMe\n const err = (error && typeof error.toString === 'function' ? error.toString() : Object.prototype.toString.call(error));\n error = new Error(`Expected reject to be called with Error, got ${ err }`);\n }\n\n this.rejected = true;\n this.error = error;\n\n if (!this.errorHandled) {\n setTimeout(() => {\n if (!this.errorHandled) {\n dispatchPossiblyUnhandledError(error, this);\n }\n }, 1);\n }\n\n this.dispatch();\n\n return this;\n }\n\n asyncReject(error : mixed) : ZalgoPromise {\n this.errorHandled = true;\n this.reject(error);\n return this;\n }\n \n dispatch() {\n\n const { dispatching, resolved, rejected, handlers } = this;\n\n if (dispatching) {\n return;\n }\n\n if (!resolved && !rejected) {\n return;\n }\n\n this.dispatching = true;\n startActive();\n\n const chain = (firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n secondPromise.resolve(res);\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < handlers.length; i++) {\n\n const { onSuccess, onError, promise } = handlers[i];\n\n let result;\n\n if (resolved) {\n\n try {\n result = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n }\n\n } else if (rejected) {\n\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n\n try {\n result = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n\n if (result.resolved) {\n promise.resolve(result.value);\n } else {\n promise.reject(result.error);\n }\n\n result.errorHandled = true;\n\n } else if (isPromise(result)) {\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n if (result.resolved) {\n promise.resolve(result.value);\n } else {\n promise.reject(result.error);\n }\n\n } else {\n // $FlowFixMe\n chain(result, promise);\n }\n\n } else {\n\n promise.resolve(result);\n }\n }\n\n handlers.length = 0;\n this.dispatching = false;\n endActive();\n }\n\n then(onSuccess : void | (result : R) => (ZalgoPromise | Y), onError : void | (error : mixed) => (ZalgoPromise | Y)) : ZalgoPromise {\n\n if (onSuccess && typeof onSuccess !== 'function' && !onSuccess.call) {\n throw new Error('Promise.then expected a function for success handler');\n }\n\n if (onError && typeof onError !== 'function' && !onError.call) {\n throw new Error('Promise.then expected a function for error handler');\n }\n\n const promise : ZalgoPromise = new ZalgoPromise();\n\n this.handlers.push({\n promise,\n onSuccess,\n onError\n });\n\n this.errorHandled = true;\n\n this.dispatch();\n\n return promise;\n }\n\n catch(onError : (error : mixed) => ZalgoPromise | Y) : ZalgoPromise {\n return this.then(undefined, onError);\n }\n\n finally(onFinally : () => mixed) : ZalgoPromise {\n\n if (onFinally && typeof onFinally !== 'function' && !onFinally.call) {\n throw new Error('Promise.finally expected a function');\n }\n\n return this.then((result) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n return result;\n });\n }, (err) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n throw err;\n });\n });\n }\n\n timeout(time : number, err : ?Error) : ZalgoPromise {\n\n if (this.resolved || this.rejected) {\n return this;\n }\n\n const timeout = setTimeout(() => {\n\n if (this.resolved || this.rejected) {\n return;\n }\n\n this.reject(err || new Error(`Promise timed out after ${ time }ms`));\n\n }, time);\n\n return this.then(result => {\n clearTimeout(timeout);\n return result;\n });\n }\n\n // $FlowFixMe\n toPromise() : Promise {\n // $FlowFixMe\n if (typeof Promise === 'undefined') {\n throw new TypeError(`Could not find Promise`);\n }\n // $FlowFixMe\n return Promise.resolve(this); // eslint-disable-line compat/compat\n }\n\n static resolve(value : X | ZalgoPromise) : ZalgoPromise {\n\n if (value instanceof ZalgoPromise) {\n return value;\n }\n\n if (isPromise(value)) {\n // $FlowFixMe\n return new ZalgoPromise((resolve, reject) => value.then(resolve, reject));\n }\n\n return new ZalgoPromise().resolve(value);\n }\n\n static reject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().reject(error);\n }\n\n static asyncReject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().asyncReject(error);\n }\n\n static all>(promises : X) : ZalgoPromise<$TupleMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n\n const promise = new ZalgoPromise();\n let count = promises.length;\n const results = [];\n\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n\n const chain = (i : number, firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n results[i] = res;\n count -= 1;\n if (count === 0) {\n promise.resolve(results);\n }\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < promises.length; i++) {\n const prom = promises[i];\n\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n\n if (count === 0) {\n promise.resolve(results);\n }\n\n return promise;\n }\n\n static hash(promises : O) : ZalgoPromise<$ObjMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n const result = {};\n const awaitPromises = [];\n\n for (const key in promises) {\n if (promises.hasOwnProperty(key)) {\n const value = promises[key];\n\n if (isPromise(value)) {\n awaitPromises.push(value.then(res => {\n result[key] = res;\n }));\n } else {\n result[key] = value;\n }\n }\n }\n \n return ZalgoPromise.all(awaitPromises).then(() => result);\n }\n\n static map(items : $ReadOnlyArray, method : (T) => (ZalgoPromise | X)) : ZalgoPromise<$ReadOnlyArray> {\n // $FlowFixMe\n return ZalgoPromise.all(items.map(method));\n }\n\n static onPossiblyUnhandledException(handler : (err : mixed) => void) : {| cancel : () => void |} {\n return onPossiblyUnhandledException(handler);\n }\n\n static try>(method : (...args : A) => (ZalgoPromise | Y), context : ?C, args : ?A) : ZalgoPromise {\n\n if (method && typeof method !== 'function' && !method.call) {\n throw new Error('Promise.try expected a function');\n }\n\n let result;\n\n startActive();\n \n try {\n // $FlowFixMe\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n\n endActive();\n\n return ZalgoPromise.resolve(result);\n }\n\n static delay(delay : number) : ZalgoPromise {\n return new ZalgoPromise(resolve => {\n setTimeout(resolve, delay);\n });\n }\n\n static isPromise(value : mixed) : boolean {\n\n if (value && value instanceof ZalgoPromise) {\n return true;\n }\n\n return isPromise(value);\n }\n\n static flush() : ZalgoPromise {\n return awaitActive(ZalgoPromise);\n }\n}\n","/* @flow */\n\nexport function isRegex(item : mixed) : boolean {\n return Object.prototype.toString.call(item) === '[object RegExp]';\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args : $ReadOnlyArray) {\n // pass\n}\n","/* @flow */\n\nexport const PROTOCOL = {\n MOCK: ('mock:' : 'mock:'),\n FILE: ('file:' : 'file:'),\n ABOUT: ('about:' : 'about:')\n};\n\nexport const WILDCARD = '*';\n\nexport const WINDOW_TYPE = {\n IFRAME: ('iframe' : 'iframe'),\n POPUP: ('popup' : 'popup')\n};\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport { isRegex, noop } from './util';\nimport type { CrossDomainWindowType, SameDomainWindowType, DomainMatcher } from './types';\nimport { PROTOCOL, WILDCARD } from './constants';\n\nconst IE_WIN_ACCESS_ERROR = 'Call was rejected by callee.\\r\\n';\n\nexport function isFileProtocol(win : SameDomainWindowType = window) : boolean {\n return win.location.protocol === PROTOCOL.FILE;\n}\n\nexport function isAboutProtocol(win : SameDomainWindowType = window) : boolean {\n return win.location.protocol === PROTOCOL.ABOUT;\n}\n\nexport function getParent(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n\n if (!win) {\n return;\n }\n\n try {\n if (win.parent && win.parent !== win) {\n return win.parent;\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function getOpener(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n\n if (!win) {\n return;\n }\n\n // Make sure we're not actually an iframe which has had window.open() called on us\n if (getParent(win)) {\n return;\n }\n\n try {\n return win.opener;\n } catch (err) {\n // pass\n }\n}\n\nexport function canReadFromWindow(win : CrossDomainWindowType | SameDomainWindowType) : boolean {\n try {\n // $FlowFixMe\n noop(win && win.location && win.location.href);\n return true;\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function getActualDomain(win? : SameDomainWindowType = window) : string {\n\n const location = win.location;\n\n if (!location) {\n throw new Error(`Can not read window location`);\n }\n\n const protocol = location.protocol;\n\n if (!protocol) {\n throw new Error(`Can not read window protocol`);\n }\n\n if (protocol === PROTOCOL.FILE) {\n return `${ PROTOCOL.FILE }//`;\n }\n\n if (protocol === PROTOCOL.ABOUT) {\n\n const parent = getParent(win);\n if (parent && canReadFromWindow(parent)) {\n // $FlowFixMe\n return getActualDomain(parent);\n }\n\n return `${ PROTOCOL.ABOUT }//`;\n }\n\n const host = location.host;\n\n if (!host) {\n throw new Error(`Can not read window host`);\n }\n\n return `${ protocol }//${ host }`;\n}\n\nexport function getDomain(win? : SameDomainWindowType = window) : string {\n\n const domain = getActualDomain(win);\n\n if (domain && win.mockDomain && win.mockDomain.indexOf(PROTOCOL.MOCK) === 0) {\n return win.mockDomain;\n }\n\n return domain;\n}\n\nexport function isBlankDomain(win : CrossDomainWindowType) : boolean {\n try {\n // $FlowFixMe\n if (!win.location.href) {\n return true;\n }\n\n if (win.location.href === 'about:blank') {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isActuallySameDomain(win : CrossDomainWindowType) : boolean {\n\n try {\n if (win === window) {\n return true;\n }\n\n } catch (err) {\n // pass\n }\n\n try {\n const desc = Object.getOwnPropertyDescriptor(win, 'location');\n\n if (desc && desc.enumerable === false) {\n return false;\n }\n\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (getActualDomain(win) === getActualDomain(window)) {\n return true;\n }\n\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isSameDomain(win : CrossDomainWindowType | SameDomainWindowType) : boolean {\n\n if (!isActuallySameDomain(win)) {\n return false;\n }\n\n try {\n\n if (win === window) {\n return true;\n }\n\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n\n // $FlowFixMe\n if (getDomain(window) === getDomain(win)) {\n return true;\n }\n\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\n\nexport function assertSameDomain(win : CrossDomainWindowType | SameDomainWindowType) : SameDomainWindowType {\n if (!isSameDomain(win)) {\n throw new Error(`Expected window to be same domain`);\n }\n\n // $FlowFixMe\n return win;\n}\n\nexport function getParents(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const result = [];\n\n try {\n\n while (win.parent !== win) {\n result.push(win.parent);\n win = win.parent;\n }\n\n } catch (err) {\n // pass\n }\n\n return result;\n}\n\nexport function isAncestorParent(parent : CrossDomainWindowType, child : CrossDomainWindowType) : boolean {\n\n if (!parent || !child) {\n return false;\n }\n\n const childParent = getParent(child);\n\n if (childParent) {\n return childParent === parent;\n }\n\n if (getParents(child).indexOf(parent) !== -1) {\n return true;\n }\n\n return false;\n}\n\nexport function getFrames(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const result = [];\n\n let frames;\n\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n\n let len;\n\n try {\n len = frames.length;\n } catch (err) {\n // pass\n }\n\n if (len === 0) {\n return result;\n }\n\n if (len) {\n for (let i = 0; i < len; i++) {\n\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n\n result.push(frame);\n }\n\n return result;\n }\n\n for (let i = 0; i < 100; i++) {\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n return result;\n }\n\n if (!frame) {\n return result;\n }\n\n result.push(frame);\n }\n\n return result;\n}\n\n\nexport function getAllChildFrames(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const result = [];\n\n for (const frame of getFrames(win)) {\n result.push(frame);\n\n for (const childFrame of getAllChildFrames(frame)) {\n result.push(childFrame);\n }\n }\n\n return result;\n}\n\nexport function getTop(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n\n try {\n if (win.top) {\n return win.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(win) === win) {\n return win;\n }\n\n try {\n if (isAncestorParent(window, win) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (isAncestorParent(win, window) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n for (const frame of getAllChildFrames(win)) {\n try {\n if (frame.top) {\n return frame.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(frame) === frame) {\n return frame;\n }\n }\n}\n\nexport function getNextOpener(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n return getOpener(getTop(win) || win);\n}\n\nexport function getUltimateTop(win? : CrossDomainWindowType = window) : CrossDomainWindowType {\n const opener = getNextOpener(win);\n\n if (opener) {\n return getUltimateTop(opener);\n }\n\n return top;\n}\n\nexport function getAllFramesInWindow(win : CrossDomainWindowType) : $ReadOnlyArray {\n const top = getTop(win);\n\n if (!top) {\n throw new Error(`Can not determine top window`);\n }\n\n let result = [ ...getAllChildFrames(top), top ];\n\n // Win may be in shadow dom\n if (result.indexOf(win) === -1) {\n result = [ ...result, win, ...getAllChildFrames(win) ];\n }\n\n return result;\n}\n\nexport function getAllWindows(win? : CrossDomainWindowType = window) : $ReadOnlyArray {\n const frames = getAllFramesInWindow(win);\n const opener = getNextOpener(win);\n\n if (opener) {\n return [ ...getAllWindows(opener), ...frames ];\n } else {\n return frames;\n }\n}\n\nexport function isTop(win : CrossDomainWindowType) : boolean {\n return win === getTop(win);\n}\n\nexport function isFrameWindowClosed(frame : HTMLIFrameElement) : boolean {\n\n if (!frame.contentWindow) {\n return true;\n }\n\n if (!frame.parentNode) {\n return true;\n }\n\n const doc = frame.ownerDocument;\n\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n let parent = frame;\n\n while (parent.parentNode && parent.parentNode !== parent) {\n parent = parent.parentNode;\n }\n\n // $FlowFixMe\n if (!parent.host || !doc.documentElement.contains(parent.host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction safeIndexOf(collection : $ReadOnlyArray, item : T) : number {\n for (let i = 0; i < collection.length; i++) {\n\n try {\n if (collection[i] === item) {\n return i;\n }\n } catch (err) {\n // pass\n }\n }\n\n return -1;\n}\n\nconst iframeWindows = [];\nconst iframeFrames = [];\n\nexport function isWindowClosed(win : CrossDomainWindowType, allowMock : boolean = true) : boolean {\n\n try {\n if (win === window) {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (!win) {\n return true;\n }\n\n } catch (err) {\n return true;\n }\n\n try {\n if (win.closed) {\n return true;\n }\n\n } catch (err) {\n\n // I love you so much IE\n\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return false;\n }\n\n return true;\n }\n\n\n if (allowMock && isSameDomain(win)) {\n try {\n // $FlowFixMe\n if (win.mockclosed) {\n return true;\n }\n } catch (err) {\n // pass\n }\n }\n\n // Mobile safari\n\n try {\n if (!win.parent || !win.top) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n // Yes, this actually happens in IE. win === win errors out when the window\n // is from an iframe, and the iframe was removed from the page.\n\n try {\n noop(win === win); // eslint-disable-line no-self-compare\n } catch (err) {\n return true;\n }\n\n // IE orphaned frame\n\n const iframeIndex = safeIndexOf(iframeWindows, win);\n\n if (iframeIndex !== -1) {\n const frame = iframeFrames[iframeIndex];\n\n if (frame && isFrameWindowClosed(frame)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction cleanIframes() {\n for (let i = 0; i < iframeWindows.length; i++) {\n let closed = false;\n\n try {\n closed = iframeWindows[i].closed;\n } catch (err) {\n // pass\n }\n\n if (closed) {\n iframeFrames.splice(i, 1);\n iframeWindows.splice(i, 1);\n }\n }\n}\n\nexport function linkFrameWindow(frame : HTMLIFrameElement) {\n\n cleanIframes();\n\n if (frame && frame.contentWindow) {\n try {\n iframeWindows.push(frame.contentWindow);\n iframeFrames.push(frame);\n } catch (err) {\n // pass\n }\n }\n}\n\nexport function getUserAgent(win : ?SameDomainWindowType) : string {\n win = win || window;\n return win.navigator.mockUserAgent || win.navigator.userAgent;\n}\n\n\nexport function getFrameByName(win : CrossDomainWindowType, name : string) : ?CrossDomainWindowType {\n\n const winFrames = getFrames(win);\n\n for (const childFrame of winFrames) {\n try {\n // $FlowFixMe\n if (isSameDomain(childFrame) && childFrame.name === name && winFrames.indexOf(childFrame) !== -1) {\n return childFrame;\n }\n } catch (err) {\n // pass\n }\n }\n\n try {\n // $FlowFixMe\n if (winFrames.indexOf(win.frames[name]) !== -1) {\n // $FlowFixMe\n return win.frames[name];\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (winFrames.indexOf(win[name]) !== -1) {\n return win[name];\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function findChildFrameByName(win : CrossDomainWindowType, name : string) : ?CrossDomainWindowType {\n\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n for (const childFrame of getFrames(win)) {\n const namedFrame = findChildFrameByName(childFrame, name);\n\n if (namedFrame) {\n return namedFrame;\n }\n }\n}\n\nexport function findFrameByName(win : CrossDomainWindowType, name : string) : ?CrossDomainWindowType {\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n const top = getTop(win) || win;\n\n return findChildFrameByName(top, name);\n}\n\nexport function isParent(win : CrossDomainWindowType, frame : CrossDomainWindowType) : boolean {\n\n const frameParent = getParent(frame);\n\n if (frameParent) {\n return frameParent === win;\n }\n\n for (const childFrame of getFrames(win)) {\n if (childFrame === frame) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isOpener(parent : CrossDomainWindowType, child : CrossDomainWindowType) : boolean {\n\n return parent === getOpener(child);\n}\n\nexport function getAncestor(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n win = win || window;\n\n const opener = getOpener(win);\n\n if (opener) {\n return opener;\n }\n\n const parent = getParent(win);\n\n if (parent) {\n return parent;\n }\n}\n\nexport function getAncestors(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const results = [];\n\n let ancestor = win;\n\n while (ancestor) {\n ancestor = getAncestor(ancestor);\n if (ancestor) {\n results.push(ancestor);\n }\n }\n\n return results;\n}\n\n\nexport function isAncestor(parent : CrossDomainWindowType, child : CrossDomainWindowType) : boolean {\n\n const actualParent = getAncestor(child);\n\n if (actualParent) {\n if (actualParent === parent) {\n return true;\n }\n\n return false;\n }\n\n if (child === parent) {\n return false;\n }\n\n if (getTop(child) === child) {\n return false;\n }\n\n for (const frame of getFrames(parent)) {\n if (frame === child) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isPopup(win? : CrossDomainWindowType = window) : boolean {\n return Boolean(getOpener(win));\n}\n\nexport function isIframe(win? : CrossDomainWindowType = window) : boolean {\n return Boolean(getParent(win));\n}\n\nexport function isFullpage(win? : CrossDomainWindowType = window) : boolean {\n return Boolean(!isIframe(win) && !isPopup(win));\n}\n\nfunction anyMatch(collection1, collection2) : boolean {\n\n for (const item1 of collection1) {\n for (const item2 of collection2) {\n if (item1 === item2) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function getDistanceFromTop(win : CrossDomainWindowType = window) : number {\n let distance = 0;\n let parent = win;\n\n while (parent) {\n parent = getParent(parent);\n if (parent) {\n distance += 1;\n }\n }\n\n return distance;\n}\n\nexport function getNthParent(win : CrossDomainWindowType, n : number = 1) : ?CrossDomainWindowType {\n let parent = win;\n\n for (let i = 0; i < n; i++) {\n if (!parent) {\n return;\n }\n\n parent = getParent(parent);\n }\n\n return parent;\n}\n\nexport function getNthParentFromTop(win : CrossDomainWindowType, n : number = 1) : ?CrossDomainWindowType {\n return getNthParent(win, getDistanceFromTop(win) - n);\n}\n\nexport function isSameTopWindow(win1 : CrossDomainWindowType, win2 : CrossDomainWindowType) : boolean {\n\n const top1 = getTop(win1) || win1;\n const top2 = getTop(win2) || win2;\n\n try {\n if (top1 && top2) {\n if (top1 === top2) {\n return true;\n }\n\n return false;\n }\n } catch (err) {\n // pass\n }\n\n const allFrames1 = getAllFramesInWindow(win1);\n const allFrames2 = getAllFramesInWindow(win2);\n\n if (anyMatch(allFrames1, allFrames2)) {\n return true;\n }\n\n const opener1 = getOpener(top1);\n const opener2 = getOpener(top2);\n\n if (opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2)) {\n return false;\n }\n\n if (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1)) {\n return false;\n }\n\n return false;\n}\n\nexport function matchDomain(pattern : DomainMatcher, origin : DomainMatcher) : boolean {\n\n if (typeof pattern === 'string') {\n\n if (typeof origin === 'string') {\n return pattern === WILDCARD || origin === pattern;\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n }\n\n if (isRegex(pattern)) {\n\n if (isRegex(origin)) {\n return pattern.toString() === origin.toString();\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n\n // $FlowFixMe\n return Boolean(origin.match(pattern));\n }\n\n if (Array.isArray(pattern)) {\n\n if (Array.isArray(origin)) {\n return JSON.stringify(pattern) === JSON.stringify(origin);\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n return pattern.some(subpattern => matchDomain(subpattern, origin));\n }\n\n return false;\n}\n\nexport function stringifyDomainPattern(pattern : DomainMatcher) : string {\n if (Array.isArray(pattern)) {\n return `(${ pattern.join(' | ') })`;\n } else if (isRegex(pattern)) {\n return `RegExp(${ pattern.toString() }`;\n } else {\n return pattern.toString();\n }\n}\n\nexport function getDomainFromUrl(url : string) : string {\n\n let domain;\n\n if (url.match(/^(https?|mock|file):\\/\\//)) {\n domain = url;\n } else {\n return getDomain();\n }\n\n domain = domain.split('/').slice(0, 3).join('/');\n\n return domain;\n}\n\nexport function onCloseWindow(win : CrossDomainWindowType, callback : Function, delay : number = 1000, maxtime : number = Infinity) : {| cancel : () => void |} {\n\n let timeout;\n\n const check = () => {\n\n if (isWindowClosed(win)) {\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n return callback();\n }\n\n if (maxtime <= 0) {\n clearTimeout(timeout);\n } else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n };\n\n check();\n\n return {\n cancel() {\n if (timeout) {\n clearTimeout(timeout);\n }\n }\n };\n}\n\n// eslint-disable-next-line complexity\nexport function isWindow(obj : Object) : boolean {\n\n try {\n if (obj === window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (Object.prototype.toString.call(obj) === '[object Window]') {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (window.Window && obj instanceof window.Window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.self === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.parent === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.top === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (noop(obj === obj) === '__unlikely_value__') { // eslint-disable-line no-self-compare\n return false;\n }\n\n } catch (err) {\n return true;\n }\n\n try {\n if (obj && obj.__cross_domain_utils_window_check__ === '__unlikely_value__') {\n return false;\n }\n\n } catch (err) {\n return true;\n }\n\n try {\n if ('postMessage' in obj && 'self' in obj && 'location' in obj) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isBrowser() : boolean {\n return (typeof window !== 'undefined' && typeof window.location !== 'undefined');\n}\n\nexport function isCurrentDomain(domain : string) : boolean {\n if (!isBrowser()) {\n return false;\n }\n\n return (getDomain() === domain);\n}\n\nexport function isMockDomain(domain : string) : boolean {\n return domain.indexOf(PROTOCOL.MOCK) === 0;\n}\n\nexport function normalizeMockUrl(url : string) : string {\n if (!isMockDomain(getDomainFromUrl(url))) {\n return url;\n }\n\n if (!__TEST__) {\n throw new Error(`Mock urls not supported out of test mode`);\n }\n\n return url.replace(/^mock:\\/\\/[^/]+/, getActualDomain(window));\n}\n\nexport function closeWindow(win : CrossDomainWindowType) {\n try {\n win.close();\n } catch (err) {\n // pass\n }\n}\n\nexport function getFrameForWindow(win : CrossDomainWindowType) : ?HTMLElement {\n if (isSameDomain(win)) {\n return assertSameDomain(win).frameElement;\n }\n\n for (const frame of document.querySelectorAll('iframe')) {\n if (frame && frame.contentWindow && frame.contentWindow === win) {\n return frame;\n }\n }\n}\n","/* @flow */\n\nexport function safeIndexOf(collection : $ReadOnlyArray, item : T) : number {\n for (let i = 0; i < collection.length; i++) {\n\n try {\n if (collection[i] === item) {\n return i;\n }\n } catch (err) {\n // pass\n }\n }\n\n return -1;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args : $ReadOnlyArray) {\n // pass\n}\n","/* @flow */\n\nimport { isWindow, isWindowClosed } from 'cross-domain-utils/src';\n\nimport { hasNativeWeakMap } from './native';\nimport { noop, safeIndexOf } from './util';\n\nexport class CrossDomainSafeWeakMap {\n\n name : string\n weakmap : ?WeakMap\n // eslint-disable-next-line flowtype/no-mutable-array\n keys : Array\n // eslint-disable-next-line flowtype/no-mutable-array\n values : Array\n\n constructor() {\n // eslint-disable-next-line no-bitwise\n this.name = `__weakmap_${ Math.random() * 1e9 >>> 0 }__`;\n\n if (hasNativeWeakMap()) {\n try {\n this.weakmap = new WeakMap();\n } catch (err) {\n // pass\n }\n }\n\n this.keys = [];\n this.values = [];\n }\n\n _cleanupClosedWindows() {\n\n const weakmap = this.weakmap;\n const keys = this.keys;\n\n for (let i = 0; i < keys.length; i++) {\n const value = keys[i];\n\n if (isWindow(value) && isWindowClosed(value)) {\n\n if (weakmap) {\n try {\n weakmap.delete(value);\n } catch (err) {\n // pass\n }\n }\n\n keys.splice(i, 1);\n this.values.splice(i, 1);\n\n i -= 1;\n }\n }\n }\n\n isSafeToReadWrite(key : K) : boolean {\n\n if (isWindow(key)) {\n return false;\n }\n\n try {\n noop(key && key.self);\n noop(key && key[this.name]);\n } catch (err) {\n return false;\n }\n\n return true;\n }\n\n set(key : K, value : V) {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const name = this.name;\n const entry = key[name];\n\n if (entry && entry[0] === key) {\n entry[1] = value;\n } else {\n Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: true\n });\n }\n\n return;\n\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const keys = this.keys;\n const values = this.values;\n const index = safeIndexOf(keys, key);\n\n if (index === -1) {\n keys.push(key);\n values.push(value);\n } else {\n values[index] = value;\n }\n }\n\n get(key : K) : V | void {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n if (weakmap.has(key)) {\n return weakmap.get(key);\n }\n \n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const entry = key[this.name];\n\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return;\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const keys = this.keys;\n const index = safeIndexOf(keys, key);\n\n if (index === -1) {\n return;\n }\n\n return this.values[index];\n }\n\n delete(key : K) {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const entry = key[this.name];\n\n if (entry && entry[0] === key) {\n entry[0] = entry[1] = undefined;\n }\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const keys = this.keys;\n const index = safeIndexOf(keys, key);\n\n if (index !== -1) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n }\n\n has(key : K) : boolean {\n\n if (!key) {\n throw new Error(`WeakMap expected key`);\n }\n\n const weakmap = this.weakmap;\n\n if (weakmap) {\n try {\n if (weakmap.has(key)) {\n return true;\n }\n } catch (err) {\n delete this.weakmap;\n }\n }\n\n if (this.isSafeToReadWrite(key)) {\n try {\n const entry = key[this.name];\n\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n } catch (err) {\n // pass\n }\n }\n\n this._cleanupClosedWindows();\n\n const index = safeIndexOf(this.keys, key);\n return index !== -1;\n }\n\n getOrSet(key : K, getter : () => V) : V {\n if (this.has(key)) {\n // $FlowFixMe\n return this.get(key);\n }\n\n const value = getter();\n this.set(key, value);\n return value;\n }\n}\n","\n/* @flow */\n/* eslint max-lines: 0 */\n\nimport { ZalgoPromise } from 'zalgo-promise/src';\nimport { WeakMap } from 'cross-domain-safe-weakmap/src';\n\nimport type { CancelableType } from './types';\n\nexport function getFunctionName (fn : T) : string {\n return fn.name || fn.__name__ || fn.displayName || 'anonymous';\n}\n\nexport function setFunctionName (fn : T, name : string) : T {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {\n // pass\n }\n\n fn.__name__ = fn.displayName = name;\n return fn;\n}\n\nexport function base64encode(str : string) : string {\n if (typeof btoa === 'function') {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (m, p1) => {\n return String.fromCharCode(parseInt(p1, 16));\n }));\n }\n\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(str, 'utf8').toString('base64');\n }\n\n throw new Error(`Can not find window.btoa or Buffer`);\n}\n\nexport function base64decode(str : string) : string {\n if (typeof atob === 'function') {\n return decodeURIComponent(Array.prototype.map.call(atob(str), c => {\n // eslint-disable-next-line prefer-template\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(str, 'base64').toString('utf8');\n }\n\n throw new Error(`Can not find window.atob or Buffer`);\n}\n\nexport function uniqueID() : string {\n\n const chars = '0123456789abcdef';\n\n const randomID = 'xxxxxxxxxx'.replace(/./g, () => {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n\n const timeID = base64encode(\n new Date().toISOString().slice(11, 19).replace('T', '.')\n ).replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\n\n return `${ randomID }_${ timeID }`;\n}\n\nexport function getGlobal() : Object {\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n if (typeof __GLOBAL__ !== 'undefined') {\n return __GLOBAL__;\n }\n throw new Error(`No global found`);\n}\n\nlet objectIDs;\n\nexport function getObjectID(obj : Object) : string {\n\n objectIDs = objectIDs || new WeakMap();\n\n if (obj === null || obj === undefined || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new Error(`Invalid object`);\n }\n\n let uid = objectIDs.get(obj);\n\n if (!uid) {\n uid = `${ typeof obj }:${ uniqueID() }`;\n objectIDs.set(obj, uid);\n }\n\n return uid;\n}\n\nfunction serializeArgs(args : $ReadOnlyArray) : string {\n try {\n return JSON.stringify(Array.prototype.slice.call(args), (subkey, val) => {\n if (typeof val === 'function') {\n return `memoize[${ getObjectID(val) }]`;\n }\n return val;\n });\n } catch (err) {\n throw new Error(`Arguments not serializable -- can not be used to memoize`);\n }\n}\n\nexport function getEmptyObject() : {||} {\n // $FlowFixMe\n return {};\n}\n\ntype MemoizeOptions = {|\n name? : string,\n time? : number,\n thisNamespace? : boolean\n|};\n\nconst getDefaultMemoizeOptions = () : MemoizeOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport type Memoized = F & {| reset : () => void |};\n\nlet memoizeGlobalIndex = 0;\nlet memoizeGlobalIndexValidFrom = 0;\n\nexport function memoize(method : F, options? : MemoizeOptions = getDefaultMemoizeOptions()) : Memoized {\n const { thisNamespace = false, time: cacheTime } = options;\n\n let simpleCache;\n let thisCache;\n\n let memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n\n const memoizedFunction = function memoizedFunction(...args) : mixed {\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n\n let cache;\n\n if (thisNamespace) {\n thisCache = thisCache || new WeakMap();\n cache = thisCache.getOrSet(this, getEmptyObject);\n } else {\n cache = simpleCache = simpleCache || {};\n }\n\n const cacheKey = serializeArgs(args);\n let cacheResult = cache[cacheKey];\n\n if (cacheResult && cacheTime && (Date.now() - cacheResult.time) < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n\n if (cacheResult) {\n return cacheResult.value;\n }\n\n const time = Date.now();\n const value = method.apply(this, arguments);\n\n cache[cacheKey] = { time, value };\n\n return value;\n };\n\n memoizedFunction.reset = () => {\n simpleCache = null;\n thisCache = null;\n };\n\n // $FlowFixMe\n const result : F = memoizedFunction;\n\n return setFunctionName(result, `${ options.name || getFunctionName(method) }::memoized`);\n}\n\nmemoize.clear = () => {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n};\n\nexport function promiseIdentity(item : ZalgoPromise | T) : ZalgoPromise {\n // $FlowFixMe\n return ZalgoPromise.resolve(item);\n}\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport function memoizePromise(method : (...args : $ReadOnlyArray) => ZalgoPromise) : ((...args : $ReadOnlyArray) => ZalgoPromise) {\n let cache = {};\n\n // eslint-disable-next-line flowtype/no-weak-types\n function memoizedPromiseFunction(...args : $ReadOnlyArray) : ZalgoPromise {\n const key : string = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n cache[key] = ZalgoPromise.try(() => method.apply(this, arguments))\n .finally(() => {\n delete cache[key];\n });\n\n return cache[key];\n }\n\n memoizedPromiseFunction.reset = () => {\n cache = {};\n };\n\n return setFunctionName(memoizedPromiseFunction, `${ getFunctionName(method) }::promiseMemoized`);\n}\n\ntype PromisifyOptions = {|\n name ? : string\n|};\n\nconst getDefaultPromisifyOptions = () : PromisifyOptions => {\n // $FlowFixMe\n return {};\n};\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport function promisify(method : (...args : $ReadOnlyArray) => R, options : PromisifyOptions = getDefaultPromisifyOptions()) : ((...args : $ReadOnlyArray) => ZalgoPromise) {\n function promisifiedFunction() : ZalgoPromise {\n return ZalgoPromise.try(method, this, arguments);\n }\n\n if (options.name) {\n promisifiedFunction.displayName = `${ options.name }:promisified`;\n }\n\n return setFunctionName(promisifiedFunction, `${ getFunctionName(method) }::promisified`);\n}\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport function inlineMemoize(method : (...args : $ReadOnlyArray) => R, logic : (...args : $ReadOnlyArray) => R, args : $ReadOnlyArray = []) : R {\n // $FlowFixMe\n const cache : {| [string] : R |} = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {};\n const key = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n \n const result = cache[key] = logic(...args);\n\n return result;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args : $ReadOnlyArray) {\n // pass\n}\n\nexport function once(method : Function) : Function {\n let called = false;\n\n const onceFunction = function() : mixed {\n if (!called) {\n called = true;\n return method.apply(this, arguments);\n }\n };\n\n return setFunctionName(onceFunction, `${ getFunctionName(method) }::once`);\n}\n\nexport function hashStr(str : string) : number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash += str[i].charCodeAt(0) * Math.pow((i % 10) + 1, 5);\n }\n return Math.floor(Math.pow(Math.sqrt(hash), 5));\n}\n\nexport function strHashStr(str : string) : string {\n let hash = '';\n\n for (let i = 0; i < str.length; i++) {\n let total = (str[i].charCodeAt(0) * i);\n\n if (str[i + 1]) {\n total += (str[i + 1].charCodeAt(0) * (i - 1));\n }\n\n hash += String.fromCharCode(97 + (Math.abs(total) % 26));\n }\n\n return hash;\n}\n\nexport function match(str : string, pattern : RegExp) : ?string {\n const regmatch = str.match(pattern);\n if (regmatch) {\n return regmatch[1];\n }\n}\n\nexport function awaitKey(obj : Object, key : string) : ZalgoPromise {\n return new ZalgoPromise(resolve => {\n\n let value = obj[key];\n\n if (value) {\n return resolve(value);\n }\n\n delete obj[key];\n\n Object.defineProperty(obj, key, {\n\n configurable: true,\n\n set(item) {\n value = item;\n\n if (value) {\n resolve(value);\n }\n },\n\n get() : T {\n return value;\n }\n });\n });\n}\n\nexport function stringifyError(err : mixed, level : number = 1) : string {\n\n if (level >= 3) {\n return 'stringifyError stack overflow';\n }\n\n try {\n if (!err) {\n return ``;\n }\n\n if (typeof err === 'string') {\n return err;\n }\n\n if (err instanceof Error) {\n const stack = err && err.stack;\n const message = err && err.message;\n\n if (stack && message) {\n if (stack.indexOf(message) !== -1) {\n return stack;\n } else {\n return `${ message }\\n${ stack }`;\n }\n } else if (stack) {\n return stack;\n } else if (message) {\n return message;\n }\n }\n\n if (err && err.toString && typeof err.toString === 'function') {\n // $FlowFixMe\n return err.toString();\n }\n\n return Object.prototype.toString.call(err);\n\n } catch (newErr) {\n return `Error while stringifying error: ${ stringifyError(newErr, level + 1) }`;\n }\n}\n\nexport function stringifyErrorMessage(err : mixed) : string {\n\n const defaultMessage = ``;\n\n if (!err) {\n return defaultMessage;\n }\n\n if (err instanceof Error) {\n return err.message || defaultMessage;\n }\n\n if (typeof err.message === 'string') {\n return err.message || defaultMessage;\n }\n\n return defaultMessage;\n}\n\nexport function stringify(item : mixed) : string {\n if (typeof item === 'string') {\n return item;\n }\n\n if (item && item.toString && typeof item.toString === 'function') {\n // $FlowFixMe\n return item.toString();\n }\n\n return Object.prototype.toString.call(item);\n}\n\nexport function domainMatches(hostname : string, domain : string) : boolean {\n hostname = hostname.split('://')[1];\n const index = hostname.indexOf(domain);\n return (index !== -1 && hostname.slice(index) === domain);\n}\n\nexport function patchMethod(obj : Object, name : string, handler : Function) {\n const original = obj[name];\n\n obj[name] = function patchedMethod() : mixed {\n return handler({\n context: this,\n args: Array.prototype.slice.call(arguments),\n original,\n callOriginal: () => original.apply(this, arguments)\n });\n };\n}\n\nexport function extend(obj : T, source : Object) : T {\n if (!source) {\n return obj;\n }\n\n if (Object.assign) {\n return Object.assign(obj, source);\n }\n\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n obj[key] = source[key];\n }\n }\n\n return obj;\n}\n\n// eslint-disable-next-line no-undef\ntype Values = ({ [string] : T }) => $ReadOnlyArray;\n\nexport const values : Values = (obj) => {\n if (Object.values) {\n // $FlowFixMe\n return Object.values(obj);\n }\n\n const result = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n result.push(obj[key]);\n }\n }\n\n // $FlowFixMe\n return result;\n};\n\nexport const memoizedValues : Values = memoize(values);\n\nexport function perc(pixels : number, percentage : number) : number {\n return Math.round((pixels * percentage) / 100);\n}\n\nexport function min(...args : $ReadOnlyArray) : number {\n return Math.min(...args);\n}\n\nexport function max(...args : $ReadOnlyArray) : number {\n return Math.max(...args);\n}\n\nexport function roundUp(num : number, nearest : number) : number {\n const remainder = num % nearest;\n return remainder\n ? (num - remainder) + nearest\n : num;\n}\n\nexport function regexMap(str : string, regexp : RegExp, handler : () => T) : $ReadOnlyArray {\n const results = [];\n\n // $FlowFixMe\n str.replace(regexp, function regexMapMatcher(item) {\n results.push(handler ? handler.apply(null, arguments) : item);\n });\n\n // $FlowFixMe\n return results;\n}\n\nexport function svgToBase64(svg : string) : string {\n return `data:image/svg+xml;base64,${ base64encode(svg) }`;\n}\n\nexport function objFilter(obj : { [string] : T }, filter? : (T, ?string) => mixed = Boolean) : { [string] : R } {\n const result = {};\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || !filter(obj[key], key)) {\n continue;\n }\n\n result[key] = obj[key];\n }\n\n return result;\n}\n\nexport function identity (item : T) : T {\n return item;\n}\n\nexport function regexTokenize(text : string, regexp : RegExp) : $ReadOnlyArray {\n const result = [];\n text.replace(regexp, token => {\n result.push(token);\n return '';\n });\n return result;\n}\n\nexport function promiseDebounce(method : () => ZalgoPromise | T, delay : number = 50) : () => ZalgoPromise {\n\n let promise;\n let timeout;\n\n const promiseDebounced = function() : ZalgoPromise {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n const localPromise = promise = promise || new ZalgoPromise();\n\n timeout = setTimeout(() => {\n promise = null;\n timeout = null;\n\n ZalgoPromise.try(method).then(\n result => { localPromise.resolve(result); },\n err => { localPromise.reject(err); }\n );\n }, delay);\n\n return localPromise;\n };\n\n return setFunctionName(promiseDebounced, `${ getFunctionName(method) }::promiseDebounced`);\n}\n\nexport function safeInterval(method : Function, time : number) : {| cancel : () => void |} {\n\n let timeout;\n\n function loop() {\n timeout = setTimeout(() => {\n method();\n loop();\n }, time);\n }\n\n loop();\n\n return {\n cancel() {\n clearTimeout(timeout);\n }\n };\n}\n\nexport function isInteger(str : string) : boolean {\n return Boolean(str.match(/^[0-9]+$/));\n}\n\nexport function isFloat(str : string) : boolean {\n return Boolean(str.match(/^[0-9]+\\.[0-9]+$/));\n}\n\nexport function serializePrimitive(value : string | number | boolean) : string {\n return value.toString();\n}\n\nexport function deserializePrimitive(value : string) : string | number | boolean {\n if (value === 'true') {\n return true;\n } else if (value === 'false') {\n return false;\n } else if (isInteger(value)) {\n return parseInt(value, 10);\n } else if (isFloat(value)) {\n return parseFloat(value);\n } else {\n return value;\n }\n}\n\nexport function dotify(obj : Object, prefix : string = '', newobj : Object = {}) : { [string] : string } {\n prefix = prefix ? `${ prefix }.` : prefix;\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || obj[key] === undefined || obj[key] === null || typeof obj[key] === 'function') {\n continue;\n } else if (obj[key] && Array.isArray(obj[key]) && obj[key].length && obj[key].every(val => typeof val !== 'object')) {\n newobj[`${ prefix }${ key }[]`] = obj[key].join(',');\n } else if (obj[key] && typeof obj[key] === 'object') {\n newobj = dotify(obj[key], `${ prefix }${ key }`, newobj);\n } else {\n newobj[`${ prefix }${ key }`] = serializePrimitive(obj[key]);\n }\n }\n return newobj;\n}\n\nexport function undotify(obj : { [string] : string }) : Object {\n \n const result = {};\n\n for (let key in obj) {\n if (!obj.hasOwnProperty(key) || typeof obj[key] !== 'string') {\n continue;\n }\n\n let value = obj[key];\n\n if (key.match(/^.+\\[\\]$/)) {\n key = key.slice(0, -2);\n value = value.split(',').map(deserializePrimitive);\n } else {\n value = deserializePrimitive(value);\n }\n\n let keyResult = result;\n const parts = key.split('.');\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isLast = (i + 1 === parts.length);\n const isIndex = !isLast && isInteger(parts[i + 1]);\n\n if (part === 'constructor' || part === 'prototype' || part === '__proto__') {\n throw new Error(`Disallowed key: ${ part }`);\n }\n\n if (isLast) {\n // $FlowFixMe\n keyResult[part] = value;\n } else {\n // $FlowFixMe\n keyResult = keyResult[part] = keyResult[part] || (isIndex ? [] : {});\n }\n }\n }\n\n return result;\n}\n\nexport type EventEmitterType = {|\n on : (eventName : string, handler : Function) => CancelableType,\n once : (eventName : string, handler : Function) => CancelableType,\n trigger : (eventName : string, ...args : $ReadOnlyArray) => ZalgoPromise,\n triggerOnce : (eventName : string, ...args : $ReadOnlyArray) => ZalgoPromise,\n reset : () => void\n|};\n\nexport function eventEmitter() : EventEmitterType {\n const triggered = {};\n let handlers = {};\n\n return {\n\n on(eventName : string, handler : Function) : CancelableType {\n const handlerList = handlers[eventName] = handlers[eventName] || [];\n\n handlerList.push(handler);\n\n let cancelled = false;\n\n return {\n cancel() {\n if (!cancelled) {\n cancelled = true;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n\n }\n };\n },\n\n once(eventName : string, handler : Function) : CancelableType {\n\n const listener = this.on(eventName, () => {\n listener.cancel();\n handler();\n });\n\n return listener;\n },\n\n trigger(eventName : string, ...args : $ReadOnlyArray) : ZalgoPromise {\n\n const handlerList = handlers[eventName];\n const promises = [];\n\n if (handlerList) {\n for (const handler of handlerList) {\n promises.push(ZalgoPromise.try(() => handler(...args)));\n }\n }\n\n return ZalgoPromise.all(promises).then(noop);\n },\n\n triggerOnce(eventName : string, ...args : $ReadOnlyArray) : ZalgoPromise {\n\n if (triggered[eventName]) {\n return ZalgoPromise.resolve();\n }\n\n triggered[eventName] = true;\n return this.trigger(eventName, ...args);\n },\n\n reset() {\n handlers = {};\n }\n };\n}\n\nexport function camelToDasherize(string : string) : string {\n return string.replace(/([A-Z])/g, (g) => {\n return `-${ g.toLowerCase() }`;\n });\n}\n\nexport function dasherizeToCamel(string : string) : string {\n return string.replace(/-([a-z])/g, (g) => {\n return g[1].toUpperCase();\n });\n}\n\nexport function capitalizeFirstLetter(string : string) : string {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n}\n\nexport function get(item : Object, path : string, def : mixed) : mixed {\n\n if (!path) {\n return def;\n }\n\n const pathParts = path.split('.');\n\n // Loop through each section of our key path\n\n for (let i = 0; i < pathParts.length; i++) {\n\n // If we have an object, we can get the key\n if (typeof item === 'object' && item !== null) {\n item = item[pathParts[i]];\n\n // Otherwise, we should return the default (undefined if not provided)\n } else {\n return def;\n }\n }\n\n // If our final result is undefined, we should return the default\n\n return item === undefined ? def : item;\n}\n\nexport function safeTimeout(method : Function, time : number) {\n\n const interval = safeInterval(() => {\n time -= 100;\n if (time <= 0) {\n interval.cancel();\n method();\n }\n }, 100);\n}\n\nexport function defineLazyProp(obj : Object | $ReadOnlyArray, key : string | number, getter : () => T) {\n if (Array.isArray(obj)) {\n if (typeof key !== 'number') {\n throw new TypeError(`Array key must be number`);\n }\n } else if (typeof obj === 'object' && obj !== null) {\n if (typeof key !== 'string') {\n throw new TypeError(`Object key must be string`);\n }\n }\n \n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: true,\n get: () => {\n // $FlowFixMe\n delete obj[key];\n const value = getter();\n // $FlowFixMe\n obj[key] = value;\n return value;\n },\n set: (value : T) => {\n // $FlowFixMe\n delete obj[key];\n // $FlowFixMe\n obj[key] = value;\n }\n });\n}\n\nexport function arrayFrom(item : Iterable) : $ReadOnlyArray { // eslint-disable-line no-undef\n return Array.prototype.slice.call(item);\n}\n\nexport function isObject(item : mixed) : boolean {\n return (typeof item === 'object' && item !== null);\n}\n\nexport function isObjectObject(obj : mixed) : boolean {\n return isObject(obj) && Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObject(obj : mixed) : boolean {\n if (!isObjectObject(obj)) {\n return false;\n }\n\n // $FlowFixMe\n const constructor = obj.constructor;\n\n if (typeof constructor !== 'function') {\n return false;\n }\n\n const prototype = constructor.prototype;\n\n if (!isObjectObject(prototype)) {\n return false;\n }\n\n if (!prototype.hasOwnProperty('isPrototypeOf')) {\n return false;\n }\n\n return true;\n}\n\nexport function replaceObject | Object> (item : T, replacer : (mixed, string | number, string) => mixed, fullKey : string = '') : T {\n\n if (Array.isArray(item)) {\n const length = item.length;\n const result : Array = [];\n\n for (let i = 0; i < length; i++) {\n\n \n defineLazyProp(result, i, () => {\n const itemKey = fullKey ? `${ fullKey }.${ i }` : `${ i }`;\n const el = item[i];\n\n let child = replacer(el, i, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else if (isPlainObject(item)) {\n const result = {};\n\n for (const key in item) {\n if (!item.hasOwnProperty(key)) {\n continue;\n }\n\n defineLazyProp(result, key, () => {\n const itemKey = fullKey ? `${ fullKey }.${ key }` : `${ key }`;\n // $FlowFixMe\n const el = item[key];\n\n let child = replacer(el, key, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else {\n throw new Error(`Pass an object or array`);\n }\n}\n\n\nexport function copyProp(source : Object, target : Object, name : string, def : mixed) {\n if (source.hasOwnProperty(name)) {\n const descriptor = Object.getOwnPropertyDescriptor(source, name);\n // $FlowFixMe\n Object.defineProperty(target, name, descriptor);\n\n } else {\n target[name] = def;\n }\n}\n\ntype RegexResultType = {|\n text : string,\n groups : $ReadOnlyArray,\n start : number,\n end : number,\n length : number,\n replace : (text : string) => string\n|};\n\nexport function regex(pattern : string | RegExp, string : string, start : number = 0) : ?RegexResultType {\n\n if (typeof pattern === 'string') {\n // eslint-disable-next-line security/detect-non-literal-regexp\n pattern = new RegExp(pattern);\n }\n\n const result = string.slice(start).match(pattern);\n\n if (!result) {\n return;\n }\n\n // $FlowFixMe\n const index : number = result.index;\n const regmatch = result[0];\n\n return {\n text: regmatch,\n groups: result.slice(1),\n start: start + index,\n end: start + index + regmatch.length,\n length: regmatch.length,\n\n replace(text : string) : string {\n\n if (!regmatch) {\n return '';\n }\n\n return `${ regmatch.slice(0, start + index) }${ text }${ regmatch.slice(index + regmatch.length) }`;\n }\n };\n}\n\nexport function regexAll(pattern : string | RegExp, string : string) : $ReadOnlyArray {\n\n const matches = [];\n let start = 0;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const regmatch = regex(pattern, string, start);\n\n if (!regmatch) {\n break;\n }\n\n matches.push(regmatch);\n start = match.end;\n }\n\n return matches;\n}\n\nexport function isDefined(value : ?mixed) : boolean {\n return value !== null && value !== undefined;\n}\n\nexport function cycle(method : Function) : ZalgoPromise {\n return ZalgoPromise.try(method).then(() => cycle(method));\n}\n\nexport function debounce(method : (...args : $ReadOnlyArray) => T, time : number = 100) : (...args : $ReadOnlyArray) => void {\n\n let timeout;\n\n const debounceWrapper = function() {\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n return method.apply(this, arguments);\n }, time);\n };\n\n return setFunctionName(debounceWrapper, `${ getFunctionName(method) }::debounced`);\n}\n\nexport function isRegex(item : mixed) : boolean {\n return Object.prototype.toString.call(item) === '[object RegExp]';\n}\n\ntype FunctionProxy = (method : T) => T;\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport const weakMapMemoize : FunctionProxy<*> = (method : (arg : any) => R) : ((...args : $ReadOnlyArray) => R) => {\n\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoized(arg : any) : R {\n return weakmap.getOrSet(arg, () => method.call(this, arg));\n };\n};\n\ntype FunctionPromiseProxy) => ZalgoPromise> = (T) => T;\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport const weakMapMemoizePromise : FunctionPromiseProxy<*, *> = (method : (arg : any) => ZalgoPromise) : ((...args : $ReadOnlyArray) => ZalgoPromise) => {\n\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoizedPromise(arg : any) : ZalgoPromise {\n return weakmap.getOrSet(arg, () =>\n method.call(this, arg).finally(() => {\n weakmap.delete(arg);\n }));\n };\n};\n\nexport function getOrSet(obj : O, key : string, getter : () => T) : T {\n if (obj.hasOwnProperty(key)) {\n return obj[key];\n }\n\n const val = getter();\n obj[key] = val;\n return val;\n}\n\nexport type CleanupType = {|\n set : (string, T) => T, // eslint-disable-line no-undef\n register : (Function) => void,\n all : () => ZalgoPromise\n|};\n\nexport function cleanup(obj : Object) : CleanupType {\n\n const tasks = [];\n let cleaned = false;\n\n return {\n set(name : string, item : T) : T {\n if (!cleaned) {\n obj[name] = item;\n this.register(() => {\n delete obj[name];\n });\n }\n return item;\n },\n\n register(method : Function) {\n if (cleaned) {\n method();\n } else {\n tasks.push(once(method));\n }\n },\n\n all() : ZalgoPromise {\n const results = [];\n cleaned = true;\n\n while (tasks.length) {\n const task = tasks.shift();\n results.push(task());\n }\n\n return ZalgoPromise.all(results).then(noop);\n }\n };\n}\n\nexport function tryCatch(fn : () => T) : {| result : T, error : void |} | {| result : void, error : mixed |} {\n let result;\n let error;\n\n try {\n result = fn();\n } catch (err) {\n error = err;\n }\n \n // $FlowFixMe\n return { result, error };\n}\n\n// eslint-disable-next-line flowtype/no-mutable-array\nexport function removeFromArray>(arr : T, item : X) {\n const index = arr.indexOf(item);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n}\n\nexport function assertExists(name : string, thing : void | null | T) : T {\n if (thing === null || typeof thing === 'undefined') {\n throw new Error(`Expected ${ name } to be present`);\n }\n \n return thing;\n}\n\nexport function unique(arr : $ReadOnlyArray) : $ReadOnlyArray {\n const result = {};\n for (const item of arr) {\n result[item] = true;\n }\n return Object.keys(result);\n}\n\nexport const constHas = (constant : T, value : X) : boolean => {\n return memoizedValues(constant).indexOf(value) !== -1;\n};\n\nexport function dedupeErrors(handler : (mixed) => T) : (mixed) => (T | void) {\n const seenErrors = [];\n const seenStringifiedErrors = {};\n\n return (err) => {\n if (seenErrors.indexOf(err) !== -1) {\n return;\n }\n\n seenErrors.push(err);\n\n const stringifiedError = stringifyError(err);\n if (seenStringifiedErrors[stringifiedError]) {\n return;\n }\n\n seenStringifiedErrors[stringifiedError] = true;\n return handler(err);\n };\n}\n\nexport class ExtendableError extends Error {\n constructor(message : string) {\n super(message);\n // eslint-disable-next-line unicorn/custom-error-definition\n this.name = this.constructor.name;\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error(message)).stack;\n }\n }\n}\n \n","/* @flow */\n\nexport function hasNativeWeakMap() : boolean {\n\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n if (typeof Object.freeze === 'undefined') {\n return false;\n }\n\n try {\n\n const testWeakMap = new WeakMap();\n const testKey = {};\n const testValue = '__testvalue__';\n\n Object.freeze(testKey);\n\n testWeakMap.set(testKey, testValue);\n\n if (testWeakMap.get(testKey) === testValue) {\n return true;\n }\n\n return false;\n\n } catch (err) {\n\n return false;\n }\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","/* @flow */\n/* eslint max-lines: off */\n\nimport { ZalgoPromise } from 'zalgo-promise/src';\nimport { linkFrameWindow, isWindowClosed,\n type SameDomainWindowType, type CrossDomainWindowType } from 'cross-domain-utils/src';\nimport { WeakMap } from 'cross-domain-safe-weakmap/src';\n\nimport { inlineMemoize, memoize, noop, stringify, capitalizeFirstLetter,\n once, extend, safeInterval, uniqueID, arrayFrom, ExtendableError } from './util';\nimport { isDevice } from './device';\nimport { KEY_CODES, ATTRIBUTES } from './constants';\nimport type { CancelableType } from './types';\n\ntype ElementRefType = string | HTMLElement;\n\nexport function isDocumentReady() : boolean {\n return Boolean(document.body) && (document.readyState === 'complete');\n}\n\nexport function isDocumentInteractive() : boolean {\n return Boolean(document.body) && (document.readyState === 'interactive');\n}\n\nexport function urlEncode(str : string) : string {\n return str.replace(/\\?/g, '%3F').replace(/&/g, '%26').replace(/#/g, '%23').replace(/\\+/g, '%2B');\n}\n\nexport function waitForWindowReady() : ZalgoPromise {\n return inlineMemoize(waitForWindowReady, () : ZalgoPromise => {\n return new ZalgoPromise(resolve => {\n if (isDocumentReady()) {\n resolve();\n }\n\n window.addEventListener('load', () => resolve());\n });\n });\n}\n\ntype WaitForDocumentReady = () => ZalgoPromise;\n\nexport const waitForDocumentReady : WaitForDocumentReady = memoize(() => {\n return new ZalgoPromise(resolve => {\n\n if (isDocumentReady() || isDocumentInteractive()) {\n return resolve();\n }\n\n const interval = setInterval(() => {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }, 10);\n });\n});\n\nexport function waitForDocumentBody() : ZalgoPromise {\n return ZalgoPromise.try(() => {\n if (document.body) {\n return document.body;\n }\n\n return waitForDocumentReady().then(() => {\n if (document.body) {\n return document.body;\n }\n\n throw new Error('Document ready but document.body not present');\n });\n });\n}\n\nexport function parseQuery(queryString : string) : Object {\n return inlineMemoize(parseQuery, () : Object => {\n const params = {};\n\n if (!queryString) {\n return params;\n }\n\n if (queryString.indexOf('=') === -1) {\n return params;\n }\n\n for (let pair of queryString.split('&')) {\n pair = pair.split('=');\n\n if (pair[0] && pair[1]) {\n params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n\n return params;\n }, [ queryString ]);\n}\n\n\nexport function getQueryParam(name : string) : string {\n return parseQuery(window.location.search.slice(1))[name];\n}\n\nexport function urlWillRedirectPage(url : string) : boolean {\n\n if (url.indexOf('#') === -1) {\n return true;\n }\n\n if (url.indexOf('#') === 0) {\n return false;\n }\n\n if (url.split('#')[0] === window.location.href.split('#')[0]) {\n return false;\n }\n\n return true;\n}\n\nexport function formatQuery(obj : { [ string ] : string } = {}) : string {\n\n return Object.keys(obj).filter(key => {\n return typeof obj[key] === 'string';\n }).map(key => {\n return `${ urlEncode(key) }=${ urlEncode(obj[key]) }`;\n }).join('&');\n}\n\nexport function extendQuery(originalQuery : string, props : { [ string ] : string } = {}) : string {\n\n if (!props || !Object.keys(props).length) {\n return originalQuery;\n }\n\n return formatQuery({\n ...parseQuery(originalQuery),\n ...props\n });\n}\n\nexport function extendUrl(url : string, options : {| query? : { [string] : string }, hash? : { [string] : string } |}) : string {\n\n const query = options.query || {};\n const hash = options.hash || {};\n\n let originalUrl;\n let originalQuery;\n let originalHash;\n\n [ originalUrl, originalHash ] = url.split('#');\n [ originalUrl, originalQuery ] = originalUrl.split('?');\n\n const queryString = extendQuery(originalQuery, query);\n const hashString = extendQuery(originalHash, hash);\n\n if (queryString) {\n originalUrl = `${ originalUrl }?${ queryString }`;\n }\n\n if (hashString) {\n originalUrl = `${ originalUrl }#${ hashString }`;\n }\n\n return originalUrl;\n}\n\nexport function redirect(url : string, win : CrossDomainWindowType = window) : ZalgoPromise {\n return new ZalgoPromise(resolve => {\n win.location = url;\n if (!urlWillRedirectPage(url)) {\n resolve();\n }\n });\n}\n\nexport function hasMetaViewPort() : boolean {\n const meta = document.querySelector('meta[name=viewport]');\n\n if (isDevice() && window.screen.width < 660 && !meta) {\n return false;\n }\n\n return true;\n}\n\nexport function isElementVisible(el : HTMLElement) : boolean {\n return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n}\n\nexport function getPerformance() : ?Performance {\n return inlineMemoize(getPerformance, () : ?Performance => {\n const performance = window.performance;\n\n if (\n performance &&\n performance.now &&\n performance.timing &&\n performance.timing.connectEnd &&\n performance.timing.navigationStart &&\n (Math.abs(performance.now() - Date.now()) > 1000) &&\n (performance.now() - (performance.timing.connectEnd - performance.timing.navigationStart)) > 0\n ) {\n return performance;\n }\n });\n}\n\nexport function enablePerformance() : boolean {\n return Boolean(getPerformance());\n}\n\nexport function getPageRenderTime() : ZalgoPromise {\n return waitForDocumentReady().then(() => {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n \n const timing = performance.timing;\n\n if (timing.connectEnd && timing.domInteractive) {\n return timing.domInteractive - timing.connectEnd;\n }\n });\n}\n\nexport function htmlEncode(html : string = '') : string {\n return html.toString()\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/\\//g, '/');\n}\n\nexport function isBrowser() : boolean {\n return (typeof window !== 'undefined') && window.location !== undefined;\n}\n\nexport function querySelectorAll(selector : string, doc : HTMLElement = window.document) : $ReadOnlyArray {\n return Array.prototype.slice.call(doc.querySelectorAll(selector));\n}\n\nexport function onClick(element : HTMLElement, handler : (Event) => void) {\n element.addEventListener('touchstart', noop);\n element.addEventListener('click', handler);\n element.addEventListener('keypress', (event : Event) => {\n // $FlowFixMe\n if (event.keyCode === KEY_CODES.ENTER || event.keyCode === KEY_CODES.SPACE) { // eslint-disable-line unicorn/prefer-event-key\n return handler(event);\n }\n });\n}\n\nexport function getScript({ host = window.location.host, path, reverse = false } : {| host? : string, path : string, reverse? : boolean |}) : ?HTMLScriptElement {\n return inlineMemoize(getScript, () : ?HTMLScriptElement => {\n\n const url = `${ host }${ path }`;\n const scripts = Array.prototype.slice.call(document.getElementsByTagName('script'));\n\n if (reverse) {\n scripts.reverse();\n }\n\n for (const script of scripts) {\n if (!script.src) {\n continue;\n }\n\n const src = script.src.replace(/^https?:\\/\\//, '').split('?')[0];\n\n if (src === url) {\n return script;\n }\n }\n }, [ path ]);\n}\n\nexport function isLocalStorageEnabled() : boolean {\n return inlineMemoize(isLocalStorageEnabled, () => {\n try {\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (window.localStorage) {\n const value = Math.random().toString();\n window.localStorage.setItem('__test__localStorage__', value);\n const result = window.localStorage.getItem('__test__localStorage__');\n window.localStorage.removeItem('__test__localStorage__');\n if (value === result) {\n return true;\n }\n }\n } catch (err) {\n // pass\n }\n return false;\n });\n}\n\nexport function getBrowserLocales() : $ReadOnlyArray<{| country? : string, lang : string |}> {\n const nav = window.navigator; // eslint-disable-line compat/compat\n\n const locales = nav.languages\n ? [ ...nav.languages ]\n : [];\n\n if (nav.language) {\n locales.push(nav.language);\n }\n\n if (nav.userLanguage) {\n locales.push(nav.userLanguage);\n }\n\n return locales.map(locale => {\n\n if (locale && locale.match(/^[a-z]{2}[-_][A-Z]{2}$/)) {\n const [ lang, country ] = locale.split(/[-_]/);\n return { country, lang };\n }\n\n if (locale && locale.match(/^[a-z]{2}$/)) {\n return { lang: locale };\n }\n\n return null;\n\n }).filter(Boolean);\n}\n\n\nexport function appendChild(container : HTMLElement, child : HTMLElement | Text) {\n container.appendChild(child);\n}\n\nexport function isElement(element : mixed) : boolean {\n\n if (element instanceof window.Element) {\n return true;\n }\n\n if (element !== null && typeof element === 'object' && element.nodeType === 1 && typeof element.style === 'object' && typeof element.ownerDocument === 'object') {\n return true;\n }\n\n return false;\n}\n\nexport function getElementSafe(id : ElementRefType, doc : Document | HTMLElement = document) : ?HTMLElement {\n\n if (isElement(id)) {\n // $FlowFixMe\n return id;\n }\n\n if (typeof id === 'string') {\n return doc.querySelector(id);\n }\n}\n\nexport function getElement(id : ElementRefType, doc : Document | HTMLElement = document) : HTMLElement {\n\n const element = getElementSafe(id, doc);\n\n if (element) {\n return element;\n }\n\n throw new Error(`Can not find element: ${ stringify(id) }`);\n}\n\nexport function elementReady(id : ElementRefType) : ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n\n const name = stringify(id);\n let el = getElementSafe(id);\n\n if (el) {\n return resolve(el);\n }\n\n if (isDocumentReady()) {\n return reject(new Error(`Document is ready and element ${ name } does not exist`));\n }\n\n const interval = setInterval(() => {\n\n el = getElementSafe(id);\n\n if (el) {\n clearInterval(interval);\n return resolve(el);\n }\n\n if (isDocumentReady()) {\n clearInterval(interval);\n return reject(new Error(`Document is ready and element ${ name } does not exist`));\n }\n }, 10);\n });\n}\n\n// eslint-disable-next-line unicorn/custom-error-definition\nexport class PopupOpenError extends ExtendableError {}\n\ntype PopupOptions = {|\n name? : string,\n width? : number,\n height? : number,\n top? : number,\n left? : number,\n status? : 0 | 1,\n resizable? : 0 | 1,\n toolbar? : 0 | 1,\n menubar? : 0 | 1,\n scrollbars? : 0 | 1\n|};\n\nexport function popup(url : string, options? : PopupOptions) : CrossDomainWindowType {\n\n // $FlowFixMe\n options = options || {};\n\n const { width, height } = options;\n\n let top = 0;\n let left = 0;\n\n if (width) {\n if (window.outerWidth) {\n left = Math.round((window.outerWidth - width) / 2) + window.screenX;\n } else if (window.screen.width) {\n left = Math.round((window.screen.width - width) / 2);\n }\n }\n\n if (height) {\n if (window.outerHeight) {\n top = Math.round((window.outerHeight - height) / 2) + window.screenY;\n } else if (window.screen.height) {\n top = Math.round((window.screen.height - height) / 2);\n }\n }\n\n if (width && height) {\n // $FlowFixMe\n options = {\n top,\n left,\n width,\n height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1,\n ...options\n };\n }\n\n const name = options.name || '';\n delete options.name;\n\n // eslint-disable-next-line array-callback-return\n const params = Object.keys(options).map(key => {\n // $FlowFixMe\n if (options[key] !== null && options[key] !== undefined) {\n return `${ key }=${ stringify(options[key]) }`;\n }\n }).filter(Boolean).join(',');\n\n let win;\n\n try {\n win = window.open(url, name, params, true);\n } catch (err) {\n throw new PopupOpenError(`Can not open popup window - ${ err.stack || err.message }`);\n }\n\n if (isWindowClosed(win)) {\n const err = new PopupOpenError(`Can not open popup window - blocked`);\n throw err;\n }\n\n window.addEventListener('unload', () => win.close());\n\n return win;\n}\n\n\nexport function writeToWindow(win : SameDomainWindowType, html : string) {\n try {\n win.document.open();\n win.document.write(html);\n win.document.close();\n } catch (err) {\n try {\n win.location = `javascript: document.open(); document.write(${ JSON.stringify(html) }); document.close();`;\n } catch (err2) {\n // pass\n }\n }\n}\n\nexport function writeElementToWindow(win : SameDomainWindowType, el : HTMLElement) {\n\n const tag = el.tagName.toLowerCase();\n\n if (tag !== 'html') {\n throw new Error(`Expected element to be html, got ${ tag }`);\n }\n\n const documentElement = win.document.documentElement;\n\n for (const child of arrayFrom(documentElement.children)) {\n documentElement.removeChild(child);\n }\n\n for (const child of arrayFrom(el.children)) {\n documentElement.appendChild(child);\n }\n}\n\nexport function setStyle(el : HTMLElement, styleText : string, doc : Document = window.document) {\n // $FlowFixMe\n if (el.styleSheet) {\n // $FlowFixMe\n el.styleSheet.cssText = styleText;\n } else {\n el.appendChild(doc.createTextNode(styleText));\n }\n}\n\nexport type ElementOptionsType = {|\n style? : { [ string ] : string },\n id? : string,\n class? : ?$ReadOnlyArray,\n attributes? : { [ string ] : string },\n styleSheet? : ?string,\n html? : ?string\n|};\n\nlet awaitFrameLoadPromises : WeakMap>;\n\nexport function awaitFrameLoad(frame : HTMLIFrameElement) : ZalgoPromise {\n awaitFrameLoadPromises = awaitFrameLoadPromises || new WeakMap();\n\n if (awaitFrameLoadPromises.has(frame)) {\n const promise = awaitFrameLoadPromises.get(frame);\n if (promise) {\n return promise;\n }\n }\n\n const promise = new ZalgoPromise((resolve, reject) => {\n frame.addEventListener('load', () => {\n linkFrameWindow(frame);\n resolve(frame);\n });\n\n frame.addEventListener('error', (err : Event) => {\n if (frame.contentWindow) {\n resolve(frame);\n } else {\n reject(err);\n }\n });\n });\n\n awaitFrameLoadPromises.set(frame, promise);\n\n return promise;\n}\n\nexport function awaitFrameWindow(frame : HTMLIFrameElement) : ZalgoPromise {\n return awaitFrameLoad(frame).then(loadedFrame => {\n\n if (!loadedFrame.contentWindow) {\n throw new Error(`Could not find window in iframe`);\n }\n\n return loadedFrame.contentWindow;\n });\n}\n\nconst getDefaultCreateElementOptions = () : ElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nexport function createElement(tag : string = 'div', options : ElementOptionsType = getDefaultCreateElementOptions(), container : ?HTMLElement) : HTMLElement {\n\n tag = tag.toLowerCase();\n const element = document.createElement(tag);\n\n if (options.style) {\n extend(element.style, options.style);\n }\n\n if (options.class) {\n element.className = options.class.join(' ');\n }\n\n if (options.id) {\n element.setAttribute('id', options.id);\n }\n\n if (options.attributes) {\n for (const key of Object.keys(options.attributes)) {\n element.setAttribute(key, options.attributes[key]);\n }\n }\n\n if (options.styleSheet) {\n setStyle(element, options.styleSheet);\n }\n\n if (container) {\n appendChild(container, element);\n }\n\n if (options.html) {\n if (tag === 'iframe') {\n // $FlowFixMe\n if (!container || !element.contentWindow) {\n throw new Error(`Iframe html can not be written unless container provided and iframe in DOM`);\n }\n\n // $FlowFixMe\n writeToWindow(element.contentWindow, options.html);\n\n } else {\n element.innerHTML = options.html;\n }\n }\n\n return element;\n}\n\ntype StringMap = {|\n [ string ] : string\n|};\n\nexport type IframeElementOptionsType = {|\n style? : StringMap,\n class? : ?$ReadOnlyArray,\n attributes? : StringMap,\n styleSheet? : ?string,\n html? : ?string,\n url? : ?string\n|};\n\nconst getDefaultIframeOptions = () : IframeElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nconst getDefaultStringMap = () : StringMap => {\n // $FlowFixMe\n return {};\n};\n\nexport function iframe(options : IframeElementOptionsType = getDefaultIframeOptions(), container : ?HTMLElement) : HTMLIFrameElement {\n\n const attributes = options.attributes || getDefaultStringMap();\n const style = options.style || getDefaultStringMap();\n\n // $FlowFixMe\n const newAttributes = {\n allowTransparency: 'true',\n ...attributes\n };\n\n // $FlowFixMe\n const newStyle = {\n backgroundColor: 'transparent',\n border: 'none',\n ...style\n };\n\n const frame = createElement('iframe', {\n attributes: newAttributes,\n style: newStyle,\n html: options.html,\n class: options.class\n });\n\n const isIE = window.navigator.userAgent.match(/MSIE|Edge/i); // eslint-disable-line compat/compat\n\n if (!frame.hasAttribute('id')) {\n frame.setAttribute('id', uniqueID());\n }\n\n // $FlowFixMe\n awaitFrameLoad(frame);\n\n if (container) {\n const el = getElement(container);\n el.appendChild(frame);\n }\n\n if (options.url || isIE) {\n frame.setAttribute('src', options.url || 'about:blank');\n }\n\n // $FlowFixMe\n return frame;\n}\n\nexport function addEventListener(obj : HTMLElement, event : string, handler : (event : Event) => void) : CancelableType {\n obj.addEventListener(event, handler);\n return {\n cancel() {\n obj.removeEventListener(event, handler);\n }\n };\n}\n\nexport function bindEvents(element : HTMLElement, eventNames : $ReadOnlyArray, handler : (event : Event) => void) : CancelableType {\n\n handler = once(handler);\n\n for (const eventName of eventNames) {\n element.addEventListener(eventName, handler);\n }\n\n return {\n cancel: once(() => {\n for (const eventName of eventNames) {\n element.removeEventListener(eventName, handler);\n }\n })\n };\n}\n\nconst VENDOR_PREFIXES = [ 'webkit', 'moz', 'ms', 'o' ];\n\nexport function setVendorCSS(element : HTMLElement, name : string, value : string) {\n\n // $FlowFixMe\n element.style[name] = value;\n\n const capitalizedName = capitalizeFirstLetter(name);\n\n for (const prefix of VENDOR_PREFIXES) {\n // $FlowFixMe\n element.style[`${ prefix }${ capitalizedName }`] = value;\n }\n}\n\nconst ANIMATION_START_EVENTS = [ 'animationstart', 'webkitAnimationStart', 'oAnimationStart', 'MSAnimationStart' ];\nconst ANIMATION_END_EVENTS = [ 'animationend', 'webkitAnimationEnd', 'oAnimationEnd', 'MSAnimationEnd' ];\n\nexport function animate(element : ElementRefType, name : string, clean : (Function) => void, timeout : number = 1000) : ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n\n const el = getElement(element);\n\n if (!el) {\n return resolve();\n }\n\n let hasStarted = false;\n\n // eslint-disable-next-line prefer-const\n let startTimeout;\n let endTimeout;\n // eslint-disable-next-line prefer-const\n let startEvent;\n // eslint-disable-next-line prefer-const\n let endEvent;\n\n function cleanUp() {\n clearTimeout(startTimeout);\n clearTimeout(endTimeout);\n startEvent.cancel();\n endEvent.cancel();\n }\n\n startEvent = bindEvents(el, ANIMATION_START_EVENTS, event => {\n\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n clearTimeout(startTimeout);\n\n event.stopPropagation();\n\n startEvent.cancel();\n hasStarted = true;\n\n endTimeout = setTimeout(() => {\n cleanUp();\n resolve();\n }, timeout);\n });\n\n endEvent = bindEvents(el, ANIMATION_END_EVENTS, event => {\n\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n cleanUp();\n\n // $FlowFixMe\n if (typeof event.animationName === 'string' && event.animationName !== name) {\n return reject(`Expected animation name to be ${ name }, found ${ event.animationName }`);\n }\n\n return resolve();\n });\n\n setVendorCSS(el, 'animationName', name);\n\n startTimeout = setTimeout(() => {\n if (!hasStarted) {\n cleanUp();\n return resolve();\n }\n }, 200);\n\n if (clean) {\n clean(cleanUp);\n }\n });\n}\n\nexport function makeElementVisible(element : HTMLElement) {\n element.style.setProperty('visibility', '');\n}\n\nexport function makeElementInvisible(element : HTMLElement) {\n element.style.setProperty('visibility', 'hidden', 'important');\n}\n\n\nexport function showElement(element : HTMLElement) {\n element.style.setProperty('display', '');\n}\n\nexport function hideElement(element : HTMLElement) {\n element.style.setProperty('display', 'none', 'important');\n}\n\nexport function destroyElement(element : HTMLElement) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n\nexport function showAndAnimate(element : HTMLElement, name : string, clean : (Function) => void) : ZalgoPromise {\n const animation = animate(element, name, clean);\n showElement(element);\n return animation;\n}\n\nexport function animateAndHide(element : HTMLElement, name : string, clean : (Function) => void) : ZalgoPromise {\n return animate(element, name, clean).then(() => {\n hideElement(element);\n });\n}\n\nexport function addClass(element : HTMLElement, name : string) {\n element.classList.add(name);\n}\n\nexport function removeClass(element : HTMLElement, name : string) {\n element.classList.remove(name);\n}\n\nexport function isElementClosed(el : HTMLElement) : boolean {\n if (!el || !el.parentNode) {\n return true;\n }\n return false;\n}\n\nexport function watchElementForClose(element : HTMLElement, handler : () => mixed) : CancelableType {\n handler = once(handler);\n\n let interval;\n\n if (isElementClosed(element)) {\n handler();\n } else {\n interval = safeInterval(() => {\n if (isElementClosed(element)) {\n interval.cancel();\n handler();\n }\n }, 50);\n }\n\n return {\n cancel() {\n if (interval) {\n interval.cancel();\n }\n }\n };\n}\n\nexport function fixScripts(el : HTMLElement, doc : Document = window.document) {\n for (const script of querySelectorAll('script', el)) {\n const parentNode = script.parentNode;\n\n if (!parentNode) {\n continue;\n }\n\n const newScript = doc.createElement('script');\n newScript.text = script.textContent;\n parentNode.replaceChild(newScript, script);\n }\n}\n\ntype OnResizeOptions = {|\n width? : boolean,\n height? : boolean,\n interval? : number,\n win? : SameDomainWindowType\n|};\n\nexport function onResize(el : HTMLElement, handler : ({| width : number, height : number |}) => void, { width = true, height = true, interval = 100, win = window } : OnResizeOptions = {}) : {| cancel : () => void |} {\n let currentWidth = el.offsetWidth;\n let currentHeight = el.offsetHeight;\n let canceled = false;\n\n handler({ width: currentWidth, height: currentHeight });\n\n const check = () => {\n if (canceled || !isElementVisible(el)) {\n return;\n }\n\n const newWidth = el.offsetWidth;\n const newHeight = el.offsetHeight;\n\n if ((width && newWidth !== currentWidth) || (height && newHeight !== currentHeight)) {\n handler({ width: newWidth, height: newHeight });\n }\n\n currentWidth = newWidth;\n currentHeight = newHeight;\n };\n\n let observer;\n let timeout;\n\n win.addEventListener('resize', check);\n \n if (typeof win.ResizeObserver !== 'undefined') {\n observer = new win.ResizeObserver(check);\n observer.observe(el);\n timeout = safeInterval(check, interval * 10);\n\n } else if (typeof win.MutationObserver !== 'undefined') {\n observer = new win.MutationObserver(check);\n observer.observe(el, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: false\n });\n timeout = safeInterval(check, interval * 10);\n } else {\n timeout = safeInterval(check, interval);\n }\n\n return {\n cancel: () => {\n canceled = true;\n observer.disconnect();\n window.removeEventListener('resize', check);\n timeout.cancel();\n }\n };\n}\n\nexport function getResourceLoadTime(url : string) : ?number {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n if (typeof performance.getEntries !== 'function') {\n return;\n }\n\n const entries = performance.getEntries();\n\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n\n if (entry && entry.name && entry.name.indexOf(url) === 0 && typeof entry.duration === 'number') {\n return Math.floor(entry.duration);\n }\n }\n}\n\nexport function isShadowElement(element : Node) : boolean {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n return element.toString() === '[object ShadowRoot]';\n}\n\nexport function getShadowRoot(element : Node) : ?Node {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n if (isShadowElement(element)) {\n return element;\n }\n}\n\nexport function getShadowHost(element : Node) : ?HTMLElement {\n const shadowRoot = getShadowRoot(element);\n\n // $FlowFixMe\n if (shadowRoot.host) {\n // $FlowFixMe\n return shadowRoot.host;\n }\n}\n\nexport function insertShadowSlot(element : HTMLElement) : HTMLElement {\n const shadowHost = getShadowHost(element);\n\n if (!shadowHost) {\n throw new Error(`Element is not in shadow dom`);\n }\n\n if (isShadowElement(shadowHost)) {\n throw new Error(`Host element is also in shadow dom`);\n }\n\n const slotName = `shadow-slot-${ uniqueID() }`;\n\n const slot = document.createElement('slot');\n slot.setAttribute('name', slotName);\n element.appendChild(slot);\n \n const slotProvider = document.createElement('div');\n slotProvider.setAttribute('slot', slotName);\n shadowHost.appendChild(slotProvider);\n\n return slotProvider;\n}\n\nexport function preventClickFocus(el : HTMLElement) {\n const onFocus = (event : Event) => {\n el.removeEventListener('focus', onFocus);\n event.preventDefault();\n el.blur();\n return false;\n };\n\n el.addEventListener('mousedown', () => {\n el.addEventListener('focus', onFocus);\n setTimeout(() => {\n el.removeEventListener('focus', onFocus);\n }, 1);\n });\n}\n\nexport function getStackTrace() : string {\n try {\n throw new Error('_');\n }\n catch (err) {\n return err.stack || '';\n }\n}\n\nfunction inferCurrentScript() : ?HTMLScriptElement {\n try {\n const stack = getStackTrace();\n const stackDetails = (/.*at [^(]*\\((.*):(.+):(.+)\\)$/ig).exec(stack);\n const scriptLocation = stackDetails && stackDetails[1];\n\n if (!scriptLocation) {\n return;\n }\n\n for (const script of Array.prototype.slice.call(document.getElementsByTagName('script')).reverse()) {\n if (script.src && script.src === scriptLocation) {\n return script;\n }\n }\n\n } catch (err) {\n // pass\n }\n}\n\n// eslint-disable-next-line compat/compat\nlet currentScript = typeof document !== 'undefined' ? document.currentScript : null;\n\ntype GetCurrentScript = () => HTMLScriptElement;\n\nexport const getCurrentScript : GetCurrentScript = memoize(() => {\n if (currentScript) {\n return currentScript;\n }\n\n currentScript = inferCurrentScript();\n\n if (currentScript) {\n return currentScript;\n }\n\n throw new Error('Can not determine current script');\n});\n\nconst currentUID = uniqueID();\n\ntype GetCurrentScriptUID = () => string;\n\nexport const getCurrentScriptUID : GetCurrentScriptUID = memoize(() => {\n let script;\n\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n\n let uid = script.getAttribute(ATTRIBUTES.UID);\n\n if (uid && typeof uid === 'string') {\n return uid;\n }\n\n uid = script.getAttribute(`${ ATTRIBUTES.UID }-auto`);\n\n if (uid && typeof uid === 'string') {\n return uid;\n }\n\n uid = uniqueID();\n script.setAttribute(`${ ATTRIBUTES.UID }-auto`, uid);\n\n return uid;\n});\n","/* @flow */\n\nexport const KEY_CODES = {\n ENTER: 13,\n SPACE: 32\n};\n\nexport const ATTRIBUTES = {\n UID: 'data-uid'\n};\n","/* @flow */\n\nimport { ZalgoPromise } from 'zalgo-promise/src';\nimport { type SameDomainWindowType } from 'cross-domain-utils/src';\n\ntype RequestOptionsType = {|\n url : string,\n method? : string,\n headers? : { [key : string] : string },\n json? : $ReadOnlyArray | Object,\n data? : { [key : string] : string },\n body? : string,\n win? : SameDomainWindowType,\n timeout? : number\n|};\n\ntype ResponseType = {|\n status : number,\n headers : { [string] : string },\n body : Object\n|};\n\nconst HEADERS = {\n CONTENT_TYPE: 'content-type',\n ACCEPT: 'accept'\n};\n\nconst headerBuilders = [];\n\nfunction parseHeaders(rawHeaders : string = '') : { [string] : string } {\n const result = {};\n for (const line of rawHeaders.trim().split('\\n')) {\n const [ key, ...values ] = line.split(':');\n result[key.toLowerCase()] = values.join(':').trim();\n }\n return result;\n}\n\nexport function request({ url, method = 'get', headers = {}, json, data, body, win = window, timeout = 0 } : RequestOptionsType) : ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n\n if ((json && data) || (json && body) || (data && json)) {\n throw new Error(`Only options.json or options.data or options.body should be passed`);\n }\n\n const normalizedHeaders = {};\n\n for (const key of Object.keys(headers)) {\n normalizedHeaders[key.toLowerCase()] = headers[key];\n }\n\n if (json) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] = normalizedHeaders[HEADERS.CONTENT_TYPE] || 'application/json';\n } else if (data || body) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] = normalizedHeaders[HEADERS.CONTENT_TYPE] || 'application/x-www-form-urlencoded; charset=utf-8';\n }\n\n normalizedHeaders[HEADERS.ACCEPT] = normalizedHeaders[HEADERS.ACCEPT] || 'application/json';\n\n for (const headerBuilder of headerBuilders) {\n const builtHeaders = headerBuilder();\n\n for (const key of Object.keys(builtHeaders)) {\n normalizedHeaders[key.toLowerCase()] = builtHeaders[key];\n }\n }\n\n const xhr = new win.XMLHttpRequest();\n\n xhr.addEventListener('load', function xhrLoad() : void {\n\n const responseHeaders = parseHeaders(this.getAllResponseHeaders());\n\n if (!this.status) {\n return reject(new Error(`Request to ${ method.toLowerCase() } ${ url } failed: no response status code.`));\n }\n \n const contentType = responseHeaders['content-type'];\n const isJSON = contentType && (contentType.indexOf('application/json') === 0 || contentType.indexOf('text/json') === 0);\n let responseBody = this.responseText;\n\n try {\n responseBody = JSON.parse(responseBody);\n } catch (err) {\n if (isJSON) {\n return reject(new Error(`Invalid json: ${ this.responseText }.`));\n }\n }\n\n const res = {\n status: this.status,\n headers: responseHeaders,\n body: responseBody\n };\n\n return resolve(res);\n\n }, false);\n\n xhr.addEventListener('error', (evt) => {\n reject(new Error(`Request to ${ method.toLowerCase() } ${ url } failed: ${ evt.toString() }.`));\n }, false);\n\n xhr.open(method, url, true);\n\n for (const key in normalizedHeaders) {\n if (normalizedHeaders.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, normalizedHeaders[key]);\n }\n }\n\n if (json) {\n body = JSON.stringify(json);\n } else if (data) {\n body = Object.keys(data).map(key => {\n return `${ encodeURIComponent(key) }=${ data ? encodeURIComponent(data[key]) : '' }`;\n }).join('&');\n }\n\n xhr.timeout = timeout;\n xhr.ontimeout = function xhrTimeout() {\n reject(new Error(`Request to ${ method.toLowerCase() } ${ url } has timed out`));\n };\n\n xhr.send(body);\n });\n}\n\nexport function addHeaderBuilder(method : () => { [string] : string }) {\n headerBuilders.push(method);\n}\n","/* @flow */\n\nexport function isPerc(str : string) : boolean {\n return typeof str === 'string' && (/^[0-9]+%$/).test(str);\n}\n\nexport function isPx(str : string) : boolean {\n return typeof str === 'string' && (/^[0-9]+px$/).test(str);\n}\n\nexport function toNum(val : string | number) : number {\n\n if (typeof val === 'number') {\n return val;\n }\n\n const match = val.match(/^([0-9]+)(px|%)$/);\n\n if (!match) {\n throw new Error(`Could not match css value from ${ val }`);\n }\n\n return parseInt(match[1], 10);\n}\n\nexport function toPx(val : number | string) : string {\n return `${ toNum(val) }px`;\n}\n\nexport function toCSS(val : number | string) : string {\n\n if (typeof val === 'number') {\n return toPx(val);\n }\n\n return isPerc(val) ? val : toPx(val);\n}\n\nexport function percOf(num : number, perc : string) : number {\n return parseInt(num * toNum(perc) / 100, 10);\n}\n\nexport function normalizeDimension(dim : string | number, max : number) : number {\n if (typeof dim === 'number') {\n return dim;\n } else if (isPerc(dim)) {\n return percOf(max, dim);\n } else if (isPx(dim)) {\n return toNum(dim);\n } else {\n throw new Error(`Can not normalize dimension: ${ dim }`);\n }\n}\n","/* @flow */\n\nimport { ENV, PROTOCOL, COMPONENTS, PLATFORM, type FundingEligibilityType } from '@paypal/sdk-constants/src';\nimport { isDevice } from 'belter/src';\n\nexport function getSDKHost() : string {\n return __SDK_HOST__;\n}\n\nexport function getProtocol() : $Values {\n return (typeof __PROTOCOL__ !== 'undefined') ? __PROTOCOL__ : PROTOCOL.HTTPS;\n}\n\nexport function getHost() : string {\n return __HOST__;\n}\n\nexport function getHostName() : string {\n return __HOSTNAME__;\n}\n\nexport function getPort() : number {\n return __PORT__;\n}\n\nexport function getPath() : string {\n return __PATH__;\n}\n\nexport function getEnv() : $Values {\n return __ENV__;\n}\n\nexport function getDefaultServiceStageHost() : ?string {\n if (typeof __SERVICE_STAGE_HOST__ !== 'undefined' && __SERVICE_STAGE_HOST__ !== null) {\n return __SERVICE_STAGE_HOST__;\n }\n}\n\nexport function getDefaultStageHost() : ?string {\n if (typeof __STAGE_HOST__ !== 'undefined' && __STAGE_HOST__ !== null) {\n return __STAGE_HOST__;\n }\n}\n\nexport function getDefaultAPIStageHost() : ?string {\n const serviceStageHost = getDefaultServiceStageHost();\n const stageHost = getDefaultStageHost();\n\n if (serviceStageHost) {\n return serviceStageHost;\n } else if (stageHost) {\n return stageHost;\n }\n}\n\nexport function getStageHost() : ?string {\n return getDefaultStageHost();\n}\n\nexport function getAPIStageHost() : ?string {\n const defaultAPIStageHost = getDefaultAPIStageHost();\n\n if (defaultAPIStageHost) {\n return defaultAPIStageHost.replace('www.', 'api.');\n }\n}\n\nexport function getVersion() : string {\n return __VERSION__;\n}\n\nexport function getCorrelationID() : string {\n return __CORRELATION_ID__;\n}\n\nexport function getDefaultNamespace() : string {\n return __NAMESPACE__;\n}\n\nexport function getDebug() : boolean {\n return __DEBUG__;\n}\n\nexport function getComponents() : $ReadOnlyArray<$Values> {\n return __COMPONENTS__;\n}\n\nexport function getFundingEligibility() : FundingEligibilityType {\n return __FUNDING_ELIGIBILITY__;\n}\n\nexport function getPlatform() : $Values {\n return isDevice() ? PLATFORM.MOBILE : PLATFORM.DESKTOP;\n}\n","/* @flow */\n\nexport const SDK_PATH = '/sdk/js';\n\nexport const SDK_SETTINGS = {\n NAMESPACE: ('data-namespace' : 'data-namespace'),\n CLIENT_TOKEN: ('data-client-token' : 'data-client-token'),\n MERCHANT_ID: ('data-merchant-id' : 'data-merchant-id'),\n PARTNER_ATTRIBUTION_ID: ('data-partner-attribution-id' : 'data-partner-attribution-id'),\n STAGE_HOST: ('data-stage-host' : 'data-stage-host'),\n API_STAGE_HOST: ('data-api-stage-host' : 'data-api-stage-host'),\n CSP_NONCE: ('data-csp-nonce' : 'data-csp-nonce'),\n ENABLE_3DS: ('data-enable-3ds' : 'data-enable-3ds'),\n SDK_INTEGRATION_SOURCE: ('data-sdk-integration-source' : 'data-sdk-integration-source'),\n USER_ID_TOKEN: ('data-user-id-token' : 'data-user-id-token'),\n AMOUNT: ('data-amount' : 'data-amount'),\n CLIENT_METADATA_ID: ('data-client-metadata-id' : 'data-client-metadata-id'),\n PAGE_TYPE: ('data-page-type' : 'data-page-type')\n};\n\nexport const SDK_QUERY_KEYS = {\n COMPONENTS: ('components' : 'components'),\n\n ENV: ('env' : 'env'),\n DEBUG: ('debug' : 'debug'),\n CACHEBUST: ('cachebust' : 'cachebust'),\n\n CLIENT_ID: ('client-id' : 'client-id'),\n MERCHANT_ID: ('merchant-id' : 'merchant-id'),\n\n LOCALE: ('locale' : 'locale'),\n\n CURRENCY: ('currency' : 'currency'),\n INTENT: ('intent' : 'intent'),\n COMMIT: ('commit' : 'commit'),\n VAULT: ('vault' : 'vault'),\n\n BUYER_COUNTRY: ('buyer-country' : 'buyer-country'),\n\n ENABLE_FUNDING: ('enable-funding' : 'enable-funding'),\n DISABLE_FUNDING: ('disable-funding' : 'disable-funding'),\n DISABLE_CARD: ('disable-card' : 'disable-card'),\n\n INTEGRATION_DATE: ('integration-date' : 'integration-date'),\n STAGE_HOST: ('stage-host' : 'stage-host')\n};\n\nexport const COMPONENTS = {\n BUTTONS: ('buttons' : 'buttons'),\n HOSTED_FIELDS: ('hosted-fields' : 'hosted-fields')\n};\n\nexport const DEBUG = {\n TRUE: (true : true),\n FALSE: (false : false)\n};\n\nexport const QUERY_BOOL = {\n TRUE: ('true' : 'true'),\n FALSE: ('false' : 'false')\n};\n\nexport const UNKNOWN = ('unknown' : 'unknown');\n\nexport const PROTOCOL = {\n HTTP: ('http' : 'http'),\n HTTPS: ('https' : 'https')\n};\n\nexport const PAGE_TYPES = {\n HOME: ('home' : 'home'),\n PRODUCT: ('product' : 'product'),\n CART: ('cart' : 'cart'),\n CHECKOUT: ('checkout' : 'checkout')\n};\n\nexport const MERCHANT_ID_MAX = 10;\n","/* @flow */\n\nexport const SUPPORTED_BROWSERS = {\n msie: '11',\n firefox: '30',\n chrome: '27',\n safari: '7',\n opera: '16',\n msedge: '12',\n samsungBrowser: '2.1',\n silk: '59.3',\n ucbrowser: '10.0.0.488',\n vivaldi: '1.91'\n};\n\nexport const CLIENT_ID_ALIAS = {\n sb: 'AZDxjDScFpQtjWTOUtWKbyN_bDt4OgqaF4eYXlewfBP4-8aqX3PiV8e1GWU6liB2CUXlkA59kJXE7M6R'\n};\n\nexport const URI = {\n LOGGER: `/xoplatform/logger/api/logger`,\n AUTH: `/v1/oauth2/token`,\n ORDER: `/v2/checkout/orders`\n};\n","/* @flow */\n\nimport { getCurrentScriptUID, ATTRIBUTES, parseQuery, getBrowserLocales, base64decode,\n values, getCurrentScript, memoize, stringifyError, getScript } from 'belter/src';\nimport { COUNTRY, SDK_SETTINGS, SDK_QUERY_KEYS, INTENT, COMMIT, VAULT, CURRENCY,\n FUNDING, CARD, COUNTRY_LANGS, DEFAULT_INTENT, DEFAULT_CURRENCY, DEFAULT_VAULT,\n QUERY_BOOL, LANG, type LocaleType, DEFAULT_SALE_COMMIT, DEFAULT_NONSALE_COMMIT,\n PAGE_TYPES } from '@paypal/sdk-constants/src';\n\nimport { getPath, getDefaultNamespace, getSDKHost } from './global';\nimport { CLIENT_ID_ALIAS } from './config';\n\ntype GetSDKScript = () => HTMLScriptElement;\n\nexport const getSDKScript : GetSDKScript = memoize(() => {\n if (__TEST__) {\n const script = getScript({ host: getSDKHost(), path: getPath(), reverse: true });\n if (!script) {\n throw new Error(`Can not find SDK test script`);\n }\n return script;\n }\n\n try {\n return getCurrentScript();\n } catch (err) {\n throw new Error(`PayPal Payments SDK script not fiund on page! Expected to find