{"version":3,"sources":["webpack://euroland/webpack/universalModuleDefinition","webpack://euroland/../node_modules/@krakenjs/zoid/dist/zoid.js","webpack://euroland/./lib/screenfull.js","webpack://euroland/../node_modules/core-js/internals/a-callable.js","webpack://euroland/../node_modules/core-js/internals/a-possible-prototype.js","webpack://euroland/../node_modules/core-js/internals/add-to-unscopables.js","webpack://euroland/../node_modules/core-js/internals/an-instance.js","webpack://euroland/../node_modules/core-js/internals/an-object.js","webpack://euroland/../node_modules/core-js/internals/array-from.js","webpack://euroland/../node_modules/core-js/internals/array-includes.js","webpack://euroland/../node_modules/core-js/internals/array-slice-simple.js","webpack://euroland/../node_modules/core-js/internals/array-sort.js","webpack://euroland/../node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://euroland/../node_modules/core-js/internals/classof-raw.js","webpack://euroland/../node_modules/core-js/internals/classof.js","webpack://euroland/../node_modules/core-js/internals/copy-constructor-properties.js","webpack://euroland/../node_modules/core-js/internals/correct-prototype-getter.js","webpack://euroland/../node_modules/core-js/internals/create-iter-result-object.js","webpack://euroland/../node_modules/core-js/internals/create-non-enumerable-property.js","webpack://euroland/../node_modules/core-js/internals/create-property-descriptor.js","webpack://euroland/../node_modules/core-js/internals/create-property.js","webpack://euroland/../node_modules/core-js/internals/define-built-in-accessor.js","webpack://euroland/../node_modules/core-js/internals/define-built-in.js","webpack://euroland/../node_modules/core-js/internals/define-built-ins.js","webpack://euroland/../node_modules/core-js/internals/define-global-property.js","webpack://euroland/../node_modules/core-js/internals/descriptors.js","webpack://euroland/../node_modules/core-js/internals/document-all.js","webpack://euroland/../node_modules/core-js/internals/document-create-element.js","webpack://euroland/../node_modules/core-js/internals/engine-user-agent.js","webpack://euroland/../node_modules/core-js/internals/engine-v8-version.js","webpack://euroland/../node_modules/core-js/internals/enum-bug-keys.js","webpack://euroland/../node_modules/core-js/internals/export.js","webpack://euroland/../node_modules/core-js/internals/fails.js","webpack://euroland/../node_modules/core-js/internals/function-bind-context.js","webpack://euroland/../node_modules/core-js/internals/function-bind-native.js","webpack://euroland/../node_modules/core-js/internals/function-call.js","webpack://euroland/../node_modules/core-js/internals/function-name.js","webpack://euroland/../node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://euroland/../node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://euroland/../node_modules/core-js/internals/function-uncurry-this.js","webpack://euroland/../node_modules/core-js/internals/get-built-in.js","webpack://euroland/../node_modules/core-js/internals/get-iterator-method.js","webpack://euroland/../node_modules/core-js/internals/get-iterator.js","webpack://euroland/../node_modules/core-js/internals/get-method.js","webpack://euroland/../node_modules/core-js/internals/global.js","webpack://euroland/../node_modules/core-js/internals/has-own-property.js","webpack://euroland/../node_modules/core-js/internals/hidden-keys.js","webpack://euroland/../node_modules/core-js/internals/html.js","webpack://euroland/../node_modules/core-js/internals/ie8-dom-define.js","webpack://euroland/../node_modules/core-js/internals/indexed-object.js","webpack://euroland/../node_modules/core-js/internals/inspect-source.js","webpack://euroland/../node_modules/core-js/internals/internal-state.js","webpack://euroland/../node_modules/core-js/internals/is-array-iterator-method.js","webpack://euroland/../node_modules/core-js/internals/is-callable.js","webpack://euroland/../node_modules/core-js/internals/is-constructor.js","webpack://euroland/../node_modules/core-js/internals/is-forced.js","webpack://euroland/../node_modules/core-js/internals/is-null-or-undefined.js","webpack://euroland/../node_modules/core-js/internals/is-object.js","webpack://euroland/../node_modules/core-js/internals/is-pure.js","webpack://euroland/../node_modules/core-js/internals/is-symbol.js","webpack://euroland/../node_modules/core-js/internals/iterator-close.js","webpack://euroland/../node_modules/core-js/internals/iterator-create-constructor.js","webpack://euroland/../node_modules/core-js/internals/iterator-define.js","webpack://euroland/../node_modules/core-js/internals/iterators-core.js","webpack://euroland/../node_modules/core-js/internals/iterators.js","webpack://euroland/../node_modules/core-js/internals/length-of-array-like.js","webpack://euroland/../node_modules/core-js/internals/make-built-in.js","webpack://euroland/../node_modules/core-js/internals/math-trunc.js","webpack://euroland/../node_modules/core-js/internals/object-assign.js","webpack://euroland/../node_modules/core-js/internals/object-create.js","webpack://euroland/../node_modules/core-js/internals/object-define-properties.js","webpack://euroland/../node_modules/core-js/internals/object-define-property.js","webpack://euroland/../node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://euroland/../node_modules/core-js/internals/object-get-own-property-names.js","webpack://euroland/../node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://euroland/../node_modules/core-js/internals/object-get-prototype-of.js","webpack://euroland/../node_modules/core-js/internals/object-is-prototype-of.js","webpack://euroland/../node_modules/core-js/internals/object-keys-internal.js","webpack://euroland/../node_modules/core-js/internals/object-keys.js","webpack://euroland/../node_modules/core-js/internals/object-property-is-enumerable.js","webpack://euroland/../node_modules/core-js/internals/object-set-prototype-of.js","webpack://euroland/../node_modules/core-js/internals/ordinary-to-primitive.js","webpack://euroland/../node_modules/core-js/internals/own-keys.js","webpack://euroland/../node_modules/core-js/internals/require-object-coercible.js","webpack://euroland/../node_modules/core-js/internals/set-to-string-tag.js","webpack://euroland/../node_modules/core-js/internals/shared-key.js","webpack://euroland/../node_modules/core-js/internals/shared-store.js","webpack://euroland/../node_modules/core-js/internals/shared.js","webpack://euroland/../node_modules/core-js/internals/string-multibyte.js","webpack://euroland/../node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://euroland/../node_modules/core-js/internals/symbol-constructor-detection.js","webpack://euroland/../node_modules/core-js/internals/to-absolute-index.js","webpack://euroland/../node_modules/core-js/internals/to-indexed-object.js","webpack://euroland/../node_modules/core-js/internals/to-integer-or-infinity.js","webpack://euroland/../node_modules/core-js/internals/to-length.js","webpack://euroland/../node_modules/core-js/internals/to-object.js","webpack://euroland/../node_modules/core-js/internals/to-primitive.js","webpack://euroland/../node_modules/core-js/internals/to-property-key.js","webpack://euroland/../node_modules/core-js/internals/to-string-tag-support.js","webpack://euroland/../node_modules/core-js/internals/to-string.js","webpack://euroland/../node_modules/core-js/internals/try-to-string.js","webpack://euroland/../node_modules/core-js/internals/uid.js","webpack://euroland/../node_modules/core-js/internals/url-constructor-detection.js","webpack://euroland/../node_modules/core-js/internals/use-symbol-as-uid.js","webpack://euroland/../node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://euroland/../node_modules/core-js/internals/validate-arguments-length.js","webpack://euroland/../node_modules/core-js/internals/weak-map-basic-detection.js","webpack://euroland/../node_modules/core-js/internals/well-known-symbol.js","webpack://euroland/../node_modules/core-js/modules/es.array.iterator.js","webpack://euroland/../node_modules/core-js/modules/es.object.assign.js","webpack://euroland/../node_modules/core-js/modules/es.string.iterator.js","webpack://euroland/../node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://euroland/../node_modules/core-js/modules/web.url.constructor.js","webpack://euroland/../node_modules/core-js/modules/web.url.js","webpack://euroland/../node_modules/zalgo-promise/dist/zalgo-promise.js","webpack://euroland/../node_modules/zalgo-promise/index.js","webpack://euroland/webpack/bootstrap","webpack://euroland/webpack/runtime/compat get default export","webpack://euroland/webpack/runtime/define property getters","webpack://euroland/webpack/runtime/global","webpack://euroland/webpack/runtime/harmony module decorator","webpack://euroland/webpack/runtime/hasOwnProperty shorthand","webpack://euroland/webpack/runtime/make namespace object","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://euroland/./helpers/util.js","webpack://euroland/./constants.js","webpack://euroland/./helpers/window-util.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://euroland/./helpers/document-util.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://euroland/./helpers/event-emitter.js","webpack://euroland/./helpers/global.js","webpack://euroland/./helpers/createElement.js","webpack://euroland/./helpers/animate.js","webpack://euroland/./helpers/device.js","webpack://euroland/./helpers/debug.js","webpack://euroland/./helpers/manipulator.js","webpack://euroland/./helpers/scrollbar.js","webpack://euroland/./shared/overlay/style.js","webpack://euroland/./shared/overlay/template.js","webpack://euroland/./shared/modal/style.js","webpack://euroland/./shared/modal/template.js","webpack://euroland/./shared/side-by-side/style.js","webpack://euroland/./shared/side-by-side/template.js","webpack://euroland/./shared/default-prerender-template.js","webpack://euroland/./shared/componentdef-factory.js","webpack://euroland/./shared/ToolComponent.js","webpack://euroland/./embed/bootstrap.js","webpack://euroland/./helpers/cleanup.js","webpack://euroland/./embed/index.js","webpack://euroland/./helpers/disable-live-watch.js"],"names":["root","factory","exports","module","define","amd","self","modules","installedModules","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","default","object","property","hasOwnProperty","p","s","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","prototype","constructor","_extends","assign","target","arguments","length","source","apply","this","utils_isPromise","item","Promise","window","Window","_toString","toString","then","err","dom_PopupOpenError","component_create","component_destroy","destroyComponents","destroyAll","PROP_TYPE","PROP_SERIALIZATION","CONTEXT","EVENT","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","promise","resolve","startActive","endActive","promise_ZalgoPromise","ZalgoPromise","handler","_this","resolved","rejected","errorHandled","error","handlers","dispatching","stack","_result","_error","isAsync","res","reject","_proto","result","Error","dispatch","_this2","_err","setTimeout","indexOf","push","j","asyncReject","chain","firstPromise","secondPromise","_handlers$i","onSuccess","onError","_result2","promiseResult","catch","finally","onFinally","try","timeout","time","_this3","clearTimeout","toPromise","TypeError","lazy","all","promises","count","results","slice","prom","hash","awaitPromises","_loop","map","items","method","onPossiblyUnhandledException","cancel","splice","context","args","delay","_delay","isPromise","flush","Zalgo","isRegex","WINDOW_TYPE","IFRAME","POPUP","IE_WIN_ACCESS_ERROR","getActualProtocol","win","location","protocol","getProtocol","mockDomain","split","isAboutProtocol","utils_getParent","parent","getOpener","opener","canReadFromWindow","getActualDomain","host","getDomain","domain","isSameDomain","desc","getOwnPropertyDescriptor","assertSameDomain","isAncestorParent","child","childParent","getFrames","frames","len","frame","_i","_frame","getAllChildFrames","_i3","_getFrames2","_i5","_getAllChildFrames2","getTop","top","_i7","_getAllChildFrames4","getAllFramesInWindow","concat","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","message","mockclosed","iframeIndex","collection","contentWindow","parentNode","doc","ownerDocument","documentElement","contains","utils_getUserAgent","navigator","mockUserAgent","userAgent","getFrameByName","winFrames","_i9","childFrame","isOpener","getAncestor","anyMatch","collection1","collection2","_i17","item1","_i19","getDistanceFromTop","distance","isSameTopWindow","win1","win2","top1","top2","allFrames1","allFrames2","opener1","opener2","matchDomain","pattern","origin","Array","isArray","Boolean","match","JSON","stringify","some","subpattern","getDomainFromUrl","url","join","onCloseWindow","callback","maxtime","check","isWindow","obj","__cross_domain_utils_window_check__","normalizeMockUrl","getFrameForWindow","frameElement","_i21","_document$querySelect2","document","querySelectorAll","closeWindow","parentElement","removeChild","close","util_safeIndexOf","objectIDs","weakmap_CrossDomainSafeWeakMap","CrossDomainSafeWeakMap","weakmap","keys","values","Math","random","WeakMap","freeze","testWeakMap","testKey","set","_cleanupClosedWindows","delete","isSafeToReadWrite","entry","writable","index","has","getOrSet","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","e","construct_construct","Parent","Class","a","instance","Function","wrapNativeSuper_wrapNativeSuper","_cache","Map","fn","Wrapper","configurable","isElement","element","passed","Element","nodeType","style","_","getFunctionName","__name__","displayName","setFunctionName","base64encode","str","btoa","encodeURIComponent","replace","p1","String","fromCharCode","parseInt","Buffer","from","uniqueID","chars","charAt","floor","toISOString","toLowerCase","serializeArgs","subkey","val","uid","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","options","simpleCache","thisCache","_options$thisNamespac","thisNamespace","cacheTime","memoizeIndex","memoizedFunction","_len","_key","cache","cacheKey","_unused","cacheResult","now","reset","memoizePromise","memoizedPromiseFunction","_arguments","_len2","_key2","src_util_noop","once","called","stringifyError","level","newErr","extend","identity","safeInterval","loop","arrayFrom","isDefined","util_isRegex","util_getOrSet","cleanup","cleanErr","tasks","cleaned","cleaner","register","task","shift","assertExists","thing","clear","util_ExtendableError","_Error","ExtendableError","_this6","captureStackTrace","ReferenceError","getBody","body","isDocumentReady","readyState","isDocumentInteractive","urlEncode","parseQuery","queryString","logic","__inline_memoize_cache__","params","_i2","_queryString$split2","pair","decodeURIComponent","extendQuery","originalQuery","props","filter","getElementSafe","id","querySelector","elementReady","el","interval","setInterval","clearInterval","awaitFrameLoadPromises","_ExtendableError","PopupOpenError","awaitFrameLoad","_promise","addEventListener","awaitFrameWindow","loadedFrame","dom_iframe","container","tag","styleText","createElement","class","className","setAttribute","attributes","_i10","_Object$keys2","styleSheet","cssText","appendChild","createTextNode","html","innerHTML","allowTransparency","backgroundColor","border","isIE","hasAttribute","event","removeEventListener","showElement","setProperty","hideElement","destroyElement","isElementClosed","onResize","_temp","_ref2","_ref2$width","width","_ref2$height","height","_ref2$interval","_ref2$win","currentWidth","offsetWidth","currentHeight","offsetHeight","canceled","observer","getClientRects","newWidth","newHeight","ResizeObserver","observe","MutationObserver","childList","subtree","characterData","disconnect","isShadowElement","currentScript","getCurrentScript","stackDetails","exec","scriptLocation","_i22","_Array$prototype$slic2","getElementsByTagName","reverse","script","src","currentUID","isPerc","test","toNum","toPx","toCSS","normalizeDimension","dim","max","global_getGlobal","globalKey","getAttribute","hashedString","total","charCodeAt","abs","dataset","getObj","globalStore","defStore","store","storeKey","defVal","del","_SERIALIZER","WildCard","getWildcard","global","WINDOW_WILDCARD","windowStore","winStore","getStore","getInstanceID","resolveHelloPromise","_ref","helloPromises","existingPromise","newPromise","sayHello","_ref4","send","instanceID","_ref5","data","getWindowInstanceID","_ref6","_ref7","awaitWindowHello","markWindowKnown","isSerializedType","__type__","determineType","serializeType","type","__val__","_DESERIALIZER","SERIALIZER","function","code","regex","date","toJSON","array","string","number","boolean","null","defaultSerializers","DESERIALIZER","RegExp","defaultDeserializers","needsBridgeForBrowser","needsBridgeForWin","needsBridgeForDomain","needsBridge","getBridgeName","isBridge","documentBodyReady","registerRemoteWindow","findRemoteWindow","remoteWinPromise","registerRemoteSendMessage","sendMessage","remoteWin","remoteDomain","fireAndForget","rejectRemoteSendMessage","linkWindow","_ref3","popupWindowsByName","popupWindowsByWin","_popupWindowsByName$k2","winName","_details","details","setupBridge","windowOpen","on","receiveMessage","open","last","bridgePromise","bridge","getWindowDetails","openTunnelToParent","canary","tunnelWindows","parentWindow","_tunnelWindows$keys2","tunnelWindow","cleanupProxyWindows","idToProxyWindow","_idToProxyWindow$keys2","shouldClean","getSerializedWindow","winPromise","_ref$id","windowNamePromise","windowTypePromise","getName","getType","focus","isClosed","setLocation","href","opts","_opts$method","_ref3$method","form","display","_i24","_Object$keys4","_body$key","input","submit","setName","sameDomain","window_ProxyWindow","ProxyWindow","serializedWindow","isProxyWindow","actualWindow","actualWindowPromise","getID","setWindow","isPopup","_this4","isPopupPromise","getNamePromise","reopenPromise","focusPromise","getWindow","awaitWindow","matchWindow","_this5","proxyInstanceID","knownWindowInstanceID","unwrap","serialize","toProxyWindow","deserialize","_ref8","_ref9","addMethod","methodStore","proxyWindowMethods","lookupMethod","function_serializeFunction","destination","meth","methodSource","arg","__id__","serializeMessage","_serialize","serializers","serializer","deserializeMessage","_deserialize","deserializers","parse","deserializer","cross_domain_zalgo_promise","serializedPromise","cross_domain_function","serializedFunction","getDeserializedFunction","crossDomainFunctionWrapper","_args","__origin__","__source__","cross_domain_window","SEND_MESSAGE_STRATEGIES","send_sendMessage","domainBuffer","buffer","serializedMessage","__post_robot_11_0_0__","strategies","errors","strategyName","getResponseListener","deleteResponseListener","isResponseListenerErrored","getRequestListener","requestListeners","_i4","winQualifier","nameListeners","domainListeners","__domain_regex__","_i6","_domainListeners$__DO2","_domainListeners$__DO3","listener","receive_receiveMessage","receivedMessages","messages","parsedMessage","parseMessages","v","logName","sendResponse","ack","pathname","handleError","_ret","on_on","requestListener","addRequestListener","winCandidate","requestListenerPromise","actualWin","listenersCollection","_i8","_win2","_listenersCollection","_i12","_domain2","_i14","existingListener","strDomain","winNameDomainRegexListeners","winNameDomainRegexListener","winNameListeners","winNameDomainListeners","errorHandler","postrobot_post_message","postMessage","postrobot_bridge","messagingChild","messagingParent","postrobot_global","foreignGlobal","src_bridge","send_send","winOrProxyWin","domainMatcher","responseTimeout","childTimeout","actualParent","_i15","_getFrames8","targetDomain","actualDomain","normalizedDomain","responseListener","reqPromises","totalAckTimeout","totalResTimeout","ackTimeout","resTimeout","cancelled","setup_toProxyWindow","cleanUpWindow","_requestPromises$get2","lib_global_getGlobal","__zoid_10_3_1__","tryGlobal","getProxyObject","basicSerialize","getUIDRefStore","references","crossDomainSerialize","metaData","sender","receiver","_ref$passByReference","passByReference","_ref$basic","basic","proxyWin","reference","serializedData","cleanReference","ref","crossDomainDeserialize","_ref2$basic","atob","openBridge","bridges","bridgeFrames","iframe","linkUrl","hasBridge","destroyBridges","_bridgeFrames$keys2","STRING","OBJECT","FUNCTION","BOOLEAN","NUMBER","ARRAY","DOTIFY","BASE64","RENDER","RENDERED","PRERENDER","PRERENDERED","DISPLAY","ERROR","CLOSE","DESTROY","PROPS","RESIZE","FOCUS","buildChildWindowName","serializedPayload","parseWindowName","windowName","_windowName$split","zoidcomp","serializedInitialPayload","parseInitialParentPayload","_crossDomainDeseriali","windowRef","ancestor","_getAllFramesInWindow2","windows","findChildFrameByName","_i11","_getFrames4","namedFrame","payload","getInitialParentPayload","window_getWindowRef","targetWindow","currentWindow","normalizeChildProp","propsDef","helpers","prop","childDecorate","onProps","resize","getParent","getParentDomain","show","hide","export","getSiblings","child_focus","child_destroy","props_defaultNoop","props_decorateOnce","eachProp","serializeProps","propDef","_METHOD$GET$METHOD$PO","_METHOD$GET$METHOD$PO2","getParam","queryParam","post","bodyParam","getValue","queryValue","bodyValue","finalParam","finalValue","serialization","dotify","prefix","newobj","every","dotkey","parentComponent","triggered","emitter","currentProxyWin","currentProxyContainer","childComponent","currentChildDomain","currentContainer","_ref$overrides","overrides","_ref$parentWin","parentWin","containerTemplate","prerenderTemplate","dimensions","autoResize","domainMatch","xports","initPromise","handledErrors","clean","state","inputProps","internalState","visible","eventName","handlerList","trigger","_len3","_key3","triggerOnce","_len4","_key4","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","getDimensions","resolveInitPromise","rejectInitPromise","getPropsForChild","initialChildDomain","sendToChild","trustedChild","trustedDomains","reduce","acc","newInternalState","windowProp","_proxyWin","setState","getUrl","getAttributes","getInitialChildDomain","title","proxyPrerenderFrame","prerenderFrame","prerenderFrameWindow","getWindowRef","actualComponentWindow","initChild","childDomain","childExports","destroy","proxyFrame","_getDimensions","_getDimensions$width","_getDimensions$height","outerWidth","_options$closeOnUnloa","closeOnUnload","_options$name","left","round","screenX","screen","outerHeight","screenY","status","toolbar","menubar","resizable","scrollbars","popup","unloadWindowListener","closeParentWindowListener","checkWindowClose","secondIsClosed","exportsPromise","xport","actualExports","renderTemplate","renderer","proxyPrerenderWin","prerenderWindow","tagName","_arrayFrom2","children","_arrayFrom4","_autoResize$width","_autoResize$height","_autoResize$element","prerenderResizeListener","_ref10","proxyContainer","_ref11","rerender","_ref12","innerContainer","containerWatcher","sacrificialFrame","sacrificialFrameWin","mutationObservers","_i18","elementClosed","mutationElement","mutationObserver","frameWin","removeError","getHelpers","updateProps","setProps","newInputProps","existingProps","valueDetermined","alias","required","decorate","newProps","childProps","containerElement","insertShadowSlot","shadowHost","shadowRoot","slotName","slot","slotProvider","init","onRender","onPrerender","onDisplay","onRendered","onPrerendered","onClose","onDestroy","onFocus","render","_ref14","childDomainMatch","delegatePromise","delegateProps","propName","allowDelegate","childOverridesPromise","_ref13","parentComp","getDelegateOverrides","childOverrides","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","_len11","_key11","_len12","_key12","watchForUnloadPromise","buildBodyPromise","onRenderPromise","getProxyContainerPromise","getProxyWindowPromise","finalSetPropsPromise","buildUrlPromise","query","originalUrl","originalHash","_url$split","_originalUrl$split","hashString","buildWindowNamePromise","_temp2","_ref6$target","version","checkClose","childPayload","_crossDomainSerialize","openFramePromise","openPrerenderFramePromise","renderContainerPromise","_ref15","openPromise","_ref16","openPrerenderPromise","_ref17","setStatePromise","prerenderPromise","_ref18","setWindowNamePromise","_ref19","getMethodPromise","_ref20","loadUrlPromise","windowUrl","_ref21","watchForClosePromise","watchForClose","onDisplayPromise","openBridgePromise","bridgeUrl","bridgeDomain","runTimeoutPromise","onRenderedPromise","getProps","getExports","defaultContainerTemplate","div","cspNonce","classList","add","remove","defaultPrerenderTemplate","spinner","cleanInstances","cleanZoid","initialized","sourceElement","originalEvent","comp","allowDelegateListener","delegateListener","_options$props","_options$dimensions","_options$autoResize","_options$allowedParen","allowedParentDomains","_options$attributes","_options$defaultConte","defaultContext","_options$containerTem","_options$prerenderTem","validate","_options$eligible","eligible","_options$logger","logger","info","_options$exports","xportsDefinition","_options$children","valuePromise","instances","isChild","_payload","registerChild","xprops","components","onPropHandlers","_getInitialParentPayl","parentComponentWindow","parentDomain","parentExports","initialProps","version1","version2","parentExport","parentResize","parentInit","anyParent","currentParent","winParent","isUpdate","normalizedProps","componentName","_crossDomainDeseriali2","_ref2$data","_eligible","eligibility","reason","clone","_ref4$decorate","_render","finalContext","newInstance","renderTo","childComponents","_loop2","childName","Child","childInputProps","parentProps","isEligible","driver","driverName","dep","canRenderTo","component","destroyPromise","responseListeners","_responseListeners$ke2","fnMap","ret","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","request","onFullScreenEntered","off","returnPromise","requestFullscreen","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","onerror","raw","defineProperties","fullscreenElement","enabled","fullscreenEnabled","isCallable","tryToString","$TypeError","argument","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","undefined","isPrototypeOf","it","Prototype","isObject","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","iterator","next","iteratorMethod","done","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","start","end","k","fin","arraySlice","mergeSort","comparefn","middle","insertionSort","merge","right","llength","rlength","lindex","rindex","anObject","iteratorClose","ENTRIES","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","fails","F","DESCRIPTORS","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","makeBuiltIn","descriptor","setter","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","defineBuiltIn","documentAll","IS_HTMLDDA","EXISTS","process","Deno","versions","v8","createNonEnumerableProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","aCallable","NATIVE_BIND","that","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","namespace","classof","getMethod","isNullOrUndefined","Iterators","ITERATOR","usingIterator","V","P","func","globalThis","g","getBuiltIn","propertyIsEnumerable","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","metadata","facade","STATE","enforce","getterFor","TYPE","$documentAll","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","replacement","feature","detection","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","InternalStateModule","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","ceil","trunc","x","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","IndexedObject","$assign","b","A","B","symbol","forEach","chr","T","getOwnPropertySymbols","S","activeXDocument","definePropertiesModule","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","temp","NullProtoObject","ActiveXObject","iframeDocument","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","Attributes","current","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","1","uncurryThisAccessor","aPossiblePrototype","CORRECT_SETTER","pref","valueOf","getOwnPropertyNamesModule","TAG","copyright","license","toIntegerOrInfinity","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","currentValue","output","inputLength","counter","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","label","encoded","labels","V8_VERSION","min","integer","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","URL","searchParams","searchParams2","URLSearchParams","sort","username","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","addToUnscopables","defineIterator","createIterResultObject","iterated","Arguments","point","USE_NATIVE_URL","defineBuiltInAccessor","defineBuiltIns","anInstance","$toString","validateArgumentsLength","arraySort","getInternalParamsState","getInternalIteratorState","URL_SEARCH_PARAMS","safeGetBuiltIn","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","bytes","percentDecode","sequence","find","replacements","replacer","URLSearchParamsIterator","URLSearchParamsState","parseObject","bindURL","update","entryIterator","entryNext","attribute","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","$value","getAll","found","boundFunction","headersHas","headersSet","wrapRequestOptions","headers","fetch","RequestConstructor","Request","getState","EOF","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","pow","numberToString","pop","unshift","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","codePoints","bufferCodePoints","pointer","seenAt","seenBracket","seenPasswordToken","scheme","password","port","path","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","part","radix","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","u","h","__webpack_module_cache__","__webpack_require__","cachedModule","loaded","__webpack_modules__","definition","hmd","_typeof","_toPropertyKey","hint","prim","Number","_defineProperty","isString","attPropMapping","attributeToObject","_step2","_iterator2","_createForOfIteratorHelper","PROTOCOL","PROPS_EVENT","EUROLAND_TOOL","isActuallySameDomain","arr","arr2","_toConsumableArray","iter","minLen","waitForDocumentReady","bindEvents","eventNames","_step","_iterator","isNode","Node","nodeName","HTMLElement","selector","getElement","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","matchNodeRecursively","nodes","nodeMatches","node","sl","elm","setStyle","isRTL","dir","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","EventEmitter","events","removeListener","idx","pkg","require","URL_BASE","getGlobalKey","getGlobal","__FLIPIT_INTEGRATION__","VERSION","attrs","styleName","firstChild","docElement","docFrag","createDocumentFragment","VENDOR_PREFIXES","setVendorCSS","capitalizedName","toUpperCase","ANIMATION_START_EVENTS","ANIMATION_END_EVENTS","animate","startTimeout","endTimeout","startEvent","endEvent","hasStarted","cleanUp","animationName","stopPropagation","getUserAgent","isIos","isOperaMini","isAndroidWebview","isFirefox","supportsPopups","isDebug","normalizeData","normalizeDataKey","setDataAttribute","removeDataAttribute","removeAttribute","getDataAttributes","startsWith","pureKey","getDataAttribute","offset","rect","getBoundingClientRect","pageYOffset","pageXOffset","offsetTop","offsetLeft","ScrollBarHelper","_element","_doc","documentWidth","clientWidth","innerWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","overflow","styleProp","scrollbarWidth","_applyManipulationCallback","getComputedStyle","parseFloat","_resetElementAttributes","actualValue","Manipulator","removeProperty","callBack","CLASS","getContainerStyle","backdropBgColor","documentMode","OverlayContainerTemplate","_ref$autoResize","_ref$hideCloseButton","hideCloseButton","_ref$ignoreBackdropCl","ignoreBackdropClick","styles","_ref2$dimensions","overlay","sandboxIFrame","setupAnimations","outlet","setupAutoResize","sandboxStyle","getSandboxStyle","containerStyle","preventDefault","alert","currentTarget","ModalContainerTemplate","eventEmitter","_ref$backdrop","backdrop","scrollbar","_ref$dimensions","getContainerSandboxStyle","closeButton","overlayIrameContainer","click","adjustModal","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","paddingLeft","paddingRight","DefaultContainerTemplate","tallMan","LeafComponentFactory","template","componentOptions","_ref2$hideCloseButton","_ref2$ignoreBackdropC","customStyles","_ref2$autoResize","toLocaleLowerCase","getContainerTemplate","console","debug","zoid","isIFrame","createZoidComponent","ToolComponent","urlBase","toolName","absoluteToolUrl","companyCode","lang","toolVer","_ref3$allowedParentDo","_ref3$resizeElement","resizeElement","treeComponentTagName","screenfullLib","isHttpUrl","toolUrl","onCreateComponent","maximize","unMaximize","setTitle","scrollTop","getSafeWidth","getSafeHeight","treeComponent","allowfullscreen","scrolling","_ref6$dimensions","isNaN","isFinite","scrollTo","behavior","scrollIntoView","block","inline","ToolCompomentContainerTemplate","emit","htmlEncode","scrollTopNumber","warn","bodyObserver","records","record","addedNodes","firstLoadMatches","waitForElementReady","containerId","_createLayout","topUID","bottomUID","middleUID","topContainer","middleContainer","bottomContainer","createLayout","layout","bottom","_objectSpread","cleanupInstances","parentComponentInstances","getOrCreateParentComponent","watchLiveElement","_ref$selector","_ref$callback","_ref$doc","watchForever","toolConfig","company","language","____debug","setDebug","isLiveWatchEleemntDisabled"],"mappings":"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","file":"js/embed.js?696d1d10589f09ce521a","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([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"euroland\"] = factory();\n\telse\n\t\troot[\"euroland\"] = factory();\n})(self, function() {\nreturn ","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"zoid\", [], factory) : \"object\" == typeof exports ? exports.zoid = factory() : root.zoid = factory();\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.r = function(exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n };\n __webpack_require__.t = function(value, mode) {\n 1 & mode && (value = __webpack_require__(value));\n if (8 & mode) return value;\n if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n var ns = Object.create(null);\n __webpack_require__.r(ns);\n Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n });\n if (2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n return value[key];\n }.bind(null, key));\n return ns;\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return {}.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = 0);\n }([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n __webpack_require__.d(__webpack_exports__, \"PopupOpenError\", (function() {\n return dom_PopupOpenError;\n }));\n __webpack_require__.d(__webpack_exports__, \"create\", (function() {\n return component_create;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroy\", (function() {\n return component_destroy;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroyComponents\", (function() {\n return destroyComponents;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroyAll\", (function() {\n return destroyAll;\n }));\n __webpack_require__.d(__webpack_exports__, \"PROP_TYPE\", (function() {\n return PROP_TYPE;\n }));\n __webpack_require__.d(__webpack_exports__, \"PROP_SERIALIZATION\", (function() {\n return PROP_SERIALIZATION;\n }));\n __webpack_require__.d(__webpack_exports__, \"CONTEXT\", (function() {\n return CONTEXT;\n }));\n __webpack_require__.d(__webpack_exports__, \"EVENT\", (function() {\n return EVENT;\n }));\n function _setPrototypeOf(o, p) {\n return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) {\n o.__proto__ = p;\n return o;\n })(o, p);\n }\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n }\n function _extends() {\n return (_extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) ({}).hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }).apply(this, arguments);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && \"function\" == typeof window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && \"function\" == typeof window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n var dispatchedErrors = [];\n var possiblyUnhandledPromiseHandlers = [];\n var activeCount = 0;\n var flushPromise;\n function flushActive() {\n if (!activeCount && flushPromise) {\n var promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n }\n function startActive() {\n activeCount += 1;\n }\n function endActive() {\n activeCount -= 1;\n flushActive();\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n this.resolved = void 0;\n this.rejected = void 0;\n this.errorHandled = void 0;\n this.value = void 0;\n this.error = void 0;\n this.handlers = void 0;\n this.dispatching = void 0;\n this.stack = void 0;\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result;\n var _error;\n var resolved = !1;\n var rejected = !1;\n var isAsync = !1;\n startActive();\n try {\n handler((function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }), (function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n }));\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n endActive();\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n var _proto = ZalgoPromise.prototype;\n _proto.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n _proto.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : {}.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout((function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === dispatchedErrors.indexOf(err)) {\n dispatchedErrors.push(err);\n setTimeout((function() {\n throw err;\n }), 1);\n for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }), 1);\n this.dispatch();\n return this;\n };\n _proto.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n return this;\n };\n _proto.dispatch = function() {\n var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function(firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n secondPromise.resolve(res);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < handlers.length; i++) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise;\n var _result2 = void 0;\n if (resolved) try {\n _result2 = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n } else if (rejected) {\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n try {\n _result2 = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {\n var promiseResult = _result2;\n promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error);\n promiseResult.errorHandled = !0;\n } else utils_isPromise(_result2) ? _result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected) ? _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error) : chain(_result2, promise) : promise.resolve(_result2);\n }\n handlers.length = 0;\n this.dispatching = !1;\n endActive();\n }\n };\n _proto.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise;\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n _proto.catch = function(onError) {\n return this.then(void 0, onError);\n };\n _proto.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then((function(result) {\n return ZalgoPromise.try(onFinally).then((function() {\n return result;\n }));\n }), (function(err) {\n return ZalgoPromise.try(onFinally).then((function() {\n throw err;\n }));\n }));\n };\n _proto.timeout = function(time, err) {\n var _this3 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout((function() {\n _this3.resolved || _this3.rejected || _this3.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }), time);\n return this.then((function(result) {\n clearTimeout(timeout);\n return result;\n }));\n };\n _proto.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n _proto.lazy = function() {\n this.errorHandled = !0;\n return this;\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) {\n return value.then(resolve, reject);\n })) : (new ZalgoPromise).resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return (new ZalgoPromise).reject(error);\n };\n ZalgoPromise.asyncReject = function(error) {\n return (new ZalgoPromise).asyncReject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise;\n var count = promises.length;\n var results = [].slice();\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n var chain = function(i, firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n results[i] = res;\n 0 == (count -= 1) && promise.resolve(results);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < promises.length; i++) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n var awaitPromises = [];\n var _loop = function(key) {\n if (promises.hasOwnProperty(key)) {\n var value = promises[key];\n utils_isPromise(value) ? awaitPromises.push(value.then((function(res) {\n result[key] = res;\n }))) : result[key] = value;\n }\n };\n for (var key in promises) _loop(key);\n return ZalgoPromise.all(awaitPromises).then((function() {\n return result;\n }));\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result;\n startActive();\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n endActive();\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise((function(resolve) {\n setTimeout(resolve, _delay);\n }));\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n return function(Zalgo) {\n var promise = flushPromise = flushPromise || new Zalgo;\n flushActive();\n return promise;\n }(ZalgoPromise);\n };\n return ZalgoPromise;\n }();\n function isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n var WINDOW_TYPE = {\n IFRAME: \"iframe\",\n POPUP: \"popup\"\n };\n var IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function getActualProtocol(win) {\n void 0 === win && (win = window);\n return win.location.protocol;\n }\n function getProtocol(win) {\n void 0 === win && (win = window);\n if (win.mockDomain) {\n var protocol = win.mockDomain.split(\"//\")[0];\n if (protocol) return protocol;\n }\n return getActualProtocol(win);\n }\n function isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === getProtocol(win);\n }\n function utils_getParent(win) {\n void 0 === win && (win = window);\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n void 0 === win && (win = window);\n if (win && !utils_getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n void 0 === win && (win = window);\n var location = win.location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = getActualProtocol(win);\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (\"file:\" === protocol) return \"file://\";\n if (\"about:\" === protocol) {\n var parent = utils_getParent(win);\n return parent && canReadFromWindow() ? getActualDomain(parent) : \"about://\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n void 0 === win && (win = window);\n var domain = getActualDomain(win);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(\"mock:\") ? win.mockDomain : domain;\n }\n function isSameDomain(win) {\n if (!function(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (function(win) {\n void 0 === win && (win = window);\n return \"mock:\" === getProtocol(win);\n }(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }\n function assertSameDomain(win) {\n if (!isSameDomain(win)) throw new Error(\"Expected window to be same domain\");\n return win;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = utils_getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [];\n var frames;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n function getAllChildFrames(win) {\n var result = [];\n for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]);\n }\n return result;\n }\n function getTop(win) {\n void 0 === win && (win = window);\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (utils_getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (utils_getParent(frame) === frame) return frame;\n }\n }\n function getAllFramesInWindow(win) {\n var top = getTop(win);\n if (!top) throw new Error(\"Can not determine top window\");\n var result = [].concat(getAllChildFrames(top), [ top ]);\n -1 === result.indexOf(win) && (result = [].concat(result, [ win ], getAllChildFrames(win)));\n return result;\n }\n var iframeWindows = [];\n var iframeFrames = [];\n function isWindowClosed(win, allowMock) {\n void 0 === allowMock && (allowMock = !0);\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && isSameDomain(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n var parent = frame;\n for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode;\n if (!parent.host || !doc.documentElement.contains(parent.host)) return !0;\n }\n return !1;\n }(frame)) return !0;\n }\n return !1;\n }\n function utils_getUserAgent(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n }\n function getFrameByName(win, name) {\n var winFrames = getFrames(win);\n for (var _i9 = 0; _i9 < winFrames.length; _i9++) {\n var childFrame = winFrames[_i9];\n try {\n if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame;\n } catch (err) {}\n }\n try {\n if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name];\n } catch (err) {}\n try {\n if (-1 !== winFrames.indexOf(win[name])) return win[name];\n } catch (err) {}\n }\n function isOpener(parent, child) {\n return parent === getOpener(child);\n }\n function getAncestor(win) {\n void 0 === win && (win = window);\n return getOpener(win = win || window) || utils_getParent(win) || void 0;\n }\n function anyMatch(collection1, collection2) {\n for (var _i17 = 0; _i17 < collection1.length; _i17++) {\n var item1 = collection1[_i17];\n for (var _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0;\n }\n return !1;\n }\n function getDistanceFromTop(win) {\n void 0 === win && (win = window);\n var distance = 0;\n var parent = win;\n for (;parent; ) (parent = utils_getParent(parent)) && (distance += 1);\n return distance;\n }\n function isSameTopWindow(win1, win2) {\n var top1 = getTop(win1) || win1;\n var top2 = getTop(win2) || win2;\n try {\n if (top1 && top2) return top1 === top2;\n } catch (err) {}\n var allFrames1 = getAllFramesInWindow(win1);\n var allFrames2 = getAllFramesInWindow(win2);\n if (anyMatch(allFrames1, allFrames2)) return !0;\n var opener1 = getOpener(top1);\n var opener2 = getOpener(top2);\n return opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), \n !1;\n }\n function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return \"*\" === pattern || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some((function(subpattern) {\n return matchDomain(subpattern, origin);\n })));\n }\n function getDomainFromUrl(url) {\n return url.match(/^(https?|mock|file):\\/\\//) ? url.split(\"/\").slice(0, 3).join(\"/\") : getDomain();\n }\n function onCloseWindow(win, callback, delay, maxtime) {\n void 0 === delay && (delay = 1e3);\n void 0 === maxtime && (maxtime = 1 / 0);\n var timeout;\n !function check() {\n if (isWindowClosed(win)) {\n timeout && clearTimeout(timeout);\n return callback();\n }\n if (maxtime <= 0) clearTimeout(timeout); else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n }();\n return {\n cancel: function() {\n timeout && clearTimeout(timeout);\n }\n };\n }\n function isWindow(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === {}.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && \"__unlikely_value__\" === obj.__cross_domain_utils_window_check__) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) return !0;\n } catch (err) {}\n return !1;\n }\n function normalizeMockUrl(url) {\n if (!(domain = getDomainFromUrl(url), 0 === domain.indexOf(\"mock:\"))) return url;\n var domain;\n throw new Error(\"Mock urls not supported out of test mode\");\n }\n function getFrameForWindow(win) {\n if (isSameDomain(win)) return assertSameDomain(win).frameElement;\n for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll(\"iframe\"); _i21 < _document$querySelect2.length; _i21++) {\n var frame = _document$querySelect2[_i21];\n if (frame && frame.contentWindow && frame.contentWindow === win) return frame;\n }\n }\n function closeWindow(win) {\n if (function(win) {\n void 0 === win && (win = window);\n return Boolean(utils_getParent(win));\n }(win)) {\n var frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n try {\n win.close();\n } catch (err) {}\n }\n function util_safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n this.name = void 0;\n this.weakmap = void 0;\n this.keys = void 0;\n this.values = void 0;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\";\n if (function() {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap;\n var testKey = {};\n Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap;\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n var _proto = CrossDomainSafeWeakMap.prototype;\n _proto._cleanupClosedWindows = function() {\n var weakmap = this.weakmap;\n var keys = this.keys;\n for (var i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (isWindow(value) && isWindowClosed(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n _proto.isSafeToReadWrite = function(key) {\n return !isWindow(key);\n };\n _proto.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var name = this.name;\n var entry = key[name];\n entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n return;\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var values = this.values;\n var index = util_safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n };\n _proto.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return entry && entry[0] === key ? entry[1] : void 0;\n } catch (err) {}\n this._cleanupClosedWindows();\n var index = util_safeIndexOf(this.keys, key);\n if (-1 !== index) return this.values[index];\n };\n _proto.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var index = util_safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n };\n _proto.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return !0;\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n } catch (err) {}\n this._cleanupClosedWindows();\n return -1 !== util_safeIndexOf(this.keys, key);\n };\n _proto.getOrSet = function(key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n this.set(key, value);\n return value;\n };\n return CrossDomainSafeWeakMap;\n }();\n function _getPrototypeOf(o) {\n return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n })(o);\n }\n function _isNativeReflectConstruct() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return !0;\n } catch (e) {\n return !1;\n }\n }\n function construct_construct(Parent, args, Class) {\n return (construct_construct = _isNativeReflectConstruct() ? Reflect.construct : function(Parent, args, Class) {\n var a = [ null ];\n a.push.apply(a, args);\n var instance = new (Function.bind.apply(Parent, a));\n Class && _setPrototypeOf(instance, Class.prototype);\n return instance;\n }).apply(null, arguments);\n }\n function wrapNativeSuper_wrapNativeSuper(Class) {\n var _cache = \"function\" == typeof Map ? new Map : void 0;\n return (wrapNativeSuper_wrapNativeSuper = function(Class) {\n if (null === Class || !(fn = Class, -1 !== Function.toString.call(fn).indexOf(\"[native code]\"))) return Class;\n var fn;\n if (\"function\" != typeof Class) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== _cache) {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct_construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n })(Class);\n }\n function isElement(element) {\n var passed = !1;\n try {\n (element instanceof window.Element || null !== element && \"object\" == typeof element && 1 === element.nodeType && \"object\" == typeof element.style && \"object\" == typeof element.ownerDocument) && (passed = !0);\n } catch (_) {}\n return passed;\n }\n function getFunctionName(fn) {\n return fn.name || fn.__name__ || fn.displayName || \"anonymous\";\n }\n function setFunctionName(fn, name) {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {}\n fn.__name__ = fn.displayName = name;\n return fn;\n }\n function base64encode(str) {\n if (\"function\" == typeof btoa) return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (function(m, p1) {\n return String.fromCharCode(parseInt(p1, 16));\n }))).replace(/[=]/g, \"\");\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"utf8\").toString(\"base64\").replace(/[=]/g, \"\");\n throw new Error(\"Can not find window.btoa or Buffer\");\n }\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"uid_\" + \"xxxxxxxxxx\".replace(/./g, (function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n })) + \"_\" + base64encode((new Date).toISOString().slice(11, 19).replace(\"T\", \".\")).replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n }\n var objectIDs;\n function serializeArgs(args) {\n try {\n return JSON.stringify([].slice.call(args), (function(subkey, val) {\n return \"function\" == typeof val ? \"memoize[\" + function(obj) {\n objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap;\n if (null == obj || \"object\" != typeof obj && \"function\" != typeof obj) throw new Error(\"Invalid object\");\n var uid = objectIDs.get(obj);\n if (!uid) {\n uid = typeof obj + \":\" + uniqueID();\n objectIDs.set(obj, uid);\n }\n return uid;\n }(val) + \"]\" : isElement(val) ? {} : val;\n }));\n } catch (err) {\n throw new Error(\"Arguments not serializable -- can not be used to memoize\");\n }\n }\n function getEmptyObject() {\n return {};\n }\n var memoizeGlobalIndex = 0;\n var memoizeGlobalIndexValidFrom = 0;\n function memoize(method, options) {\n void 0 === options && (options = {});\n var _options$thisNamespac = options.thisNamespace, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n var cache;\n cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {};\n var cacheKey;\n try {\n cacheKey = serializeArgs(args);\n } catch (_unused) {\n return method.apply(this, arguments);\n }\n var cacheResult = cache[cacheKey];\n if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n if (cacheResult) return cacheResult.value;\n var time = Date.now();\n var value = method.apply(this, arguments);\n cache[cacheKey] = {\n time: time,\n value: value\n };\n return value;\n };\n memoizedFunction.reset = function() {\n simpleCache = null;\n thisCache = null;\n };\n return setFunctionName(memoizedFunction, (options.name || getFunctionName(method)) + \"::memoized\");\n }\n memoize.clear = function() {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n };\n function memoizePromise(method) {\n var cache = {};\n function memoizedPromiseFunction() {\n var _arguments = arguments, _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n var key = serializeArgs(args);\n if (cache.hasOwnProperty(key)) return cache[key];\n cache[key] = promise_ZalgoPromise.try((function() {\n return method.apply(_this, _arguments);\n })).finally((function() {\n delete cache[key];\n }));\n return cache[key];\n }\n memoizedPromiseFunction.reset = function() {\n cache = {};\n };\n return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + \"::promiseMemoized\");\n }\n function src_util_noop() {}\n function once(method) {\n var called = !1;\n return setFunctionName((function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n }), getFunctionName(method) + \"::once\");\n }\n function stringifyError(err, level) {\n void 0 === level && (level = 1);\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack;\n var message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return err && err.toString && \"function\" == typeof err.toString ? err.toString() : {}.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n function stringify(item) {\n return \"string\" == typeof item ? item : item && item.toString && \"function\" == typeof item.toString ? item.toString() : {}.toString.call(item);\n }\n function extend(obj, source) {\n if (!source) return obj;\n if (Object.assign) return Object.assign(obj, source);\n for (var key in source) source.hasOwnProperty(key) && (obj[key] = source[key]);\n return obj;\n }\n memoize((function(obj) {\n if (Object.values) return Object.values(obj);\n var result = [];\n for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);\n return result;\n }));\n function identity(item) {\n return item;\n }\n function safeInterval(method, time) {\n var timeout;\n !function loop() {\n timeout = setTimeout((function() {\n method();\n loop();\n }), time);\n }();\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }\n function arrayFrom(item) {\n return [].slice.call(item);\n }\n function isDefined(value) {\n return null != value;\n }\n function util_isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n function util_getOrSet(obj, key, getter) {\n if (obj.hasOwnProperty(key)) return obj[key];\n var val = getter();\n obj[key] = val;\n return val;\n }\n function cleanup(obj) {\n var tasks = [];\n var cleaned = !1;\n var cleanErr;\n var cleaner = {\n set: function(name, item) {\n if (!cleaned) {\n obj[name] = item;\n cleaner.register((function() {\n delete obj[name];\n }));\n }\n return item;\n },\n register: function(method) {\n var task = once((function() {\n return method(cleanErr);\n }));\n cleaned ? method(cleanErr) : tasks.push(task);\n return {\n cancel: function() {\n var index = tasks.indexOf(task);\n -1 !== index && tasks.splice(index, 1);\n }\n };\n },\n all: function(err) {\n cleanErr = err;\n var results = [];\n cleaned = !0;\n for (;tasks.length; ) {\n var task = tasks.shift();\n results.push(task());\n }\n return promise_ZalgoPromise.all(results).then(src_util_noop);\n }\n };\n return cleaner;\n }\n function assertExists(name, thing) {\n if (null == thing) throw new Error(\"Expected \" + name + \" to be present\");\n return thing;\n }\n var util_ExtendableError = function(_Error) {\n _inheritsLoose(ExtendableError, _Error);\n function ExtendableError(message) {\n var _this6;\n (_this6 = _Error.call(this, message) || this).name = _this6.constructor.name;\n \"function\" == typeof Error.captureStackTrace ? Error.captureStackTrace(function(self) {\n if (void 0 === self) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return self;\n }(_this6), _this6.constructor) : _this6.stack = new Error(message).stack;\n return _this6;\n }\n return ExtendableError;\n }(wrapNativeSuper_wrapNativeSuper(Error));\n function getBody() {\n var body = document.body;\n if (!body) throw new Error(\"Body element not found\");\n return body;\n }\n function isDocumentReady() {\n return Boolean(document.body) && \"complete\" === document.readyState;\n }\n function isDocumentInteractive() {\n return Boolean(document.body) && \"interactive\" === document.readyState;\n }\n function urlEncode(str) {\n return encodeURIComponent(str);\n }\n memoize((function() {\n return new promise_ZalgoPromise((function(resolve) {\n if (isDocumentReady() || isDocumentInteractive()) return resolve();\n var interval = setInterval((function() {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }), 10);\n }));\n }));\n function parseQuery(queryString) {\n return function(method, logic, args) {\n void 0 === args && (args = []);\n var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {};\n var key = serializeArgs(args);\n return cache.hasOwnProperty(key) ? cache[key] : cache[key] = function() {\n var params = {};\n if (!queryString) return params;\n if (-1 === queryString.indexOf(\"=\")) return params;\n for (var _i2 = 0, _queryString$split2 = queryString.split(\"&\"); _i2 < _queryString$split2.length; _i2++) {\n var pair = _queryString$split2[_i2];\n (pair = pair.split(\"=\"))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]));\n }\n return params;\n }.apply(void 0, args);\n }(parseQuery, 0, [ queryString ]);\n }\n function extendQuery(originalQuery, props) {\n void 0 === props && (props = {});\n return props && Object.keys(props).length ? function(obj) {\n void 0 === obj && (obj = {});\n return Object.keys(obj).filter((function(key) {\n return \"string\" == typeof obj[key] || \"boolean\" == typeof obj[key];\n })).map((function(key) {\n var val = obj[key];\n if (\"string\" != typeof val && \"boolean\" != typeof val) throw new TypeError(\"Invalid type for query\");\n return urlEncode(key) + \"=\" + urlEncode(val.toString());\n })).join(\"&\");\n }(_extends({}, parseQuery(originalQuery), props)) : originalQuery;\n }\n function appendChild(container, child) {\n container.appendChild(child);\n }\n function getElementSafe(id, doc) {\n void 0 === doc && (doc = document);\n return isElement(id) ? id : \"string\" == typeof id ? doc.querySelector(id) : void 0;\n }\n function elementReady(id) {\n return new promise_ZalgoPromise((function(resolve, reject) {\n var name = stringify(id);\n var el = getElementSafe(id);\n if (el) return resolve(el);\n if (isDocumentReady()) return reject(new Error(\"Document is ready and element \" + name + \" does not exist\"));\n var interval = setInterval((function() {\n if (el = getElementSafe(id)) {\n resolve(el);\n clearInterval(interval);\n } else 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 var dom_PopupOpenError = function(_ExtendableError) {\n _inheritsLoose(PopupOpenError, _ExtendableError);\n function PopupOpenError() {\n return _ExtendableError.apply(this, arguments) || this;\n }\n return PopupOpenError;\n }(util_ExtendableError);\n var awaitFrameLoadPromises;\n function awaitFrameLoad(frame) {\n if ((awaitFrameLoadPromises = awaitFrameLoadPromises || new weakmap_CrossDomainSafeWeakMap).has(frame)) {\n var _promise = awaitFrameLoadPromises.get(frame);\n if (_promise) return _promise;\n }\n var promise = new promise_ZalgoPromise((function(resolve, reject) {\n frame.addEventListener(\"load\", (function() {\n !function(frame) {\n !function() {\n for (var i = 0; i < iframeWindows.length; i++) {\n var closed = !1;\n try {\n closed = iframeWindows[i].closed;\n } catch (err) {}\n if (closed) {\n iframeFrames.splice(i, 1);\n iframeWindows.splice(i, 1);\n }\n }\n }();\n if (frame && frame.contentWindow) try {\n iframeWindows.push(frame.contentWindow);\n iframeFrames.push(frame);\n } catch (err) {}\n }(frame);\n resolve(frame);\n }));\n frame.addEventListener(\"error\", (function(err) {\n frame.contentWindow ? resolve(frame) : reject(err);\n }));\n }));\n awaitFrameLoadPromises.set(frame, promise);\n return promise;\n }\n function awaitFrameWindow(frame) {\n return awaitFrameLoad(frame).then((function(loadedFrame) {\n if (!loadedFrame.contentWindow) throw new Error(\"Could not find window in iframe\");\n return loadedFrame.contentWindow;\n }));\n }\n function dom_iframe(options, container) {\n void 0 === options && (options = {});\n var style = options.style || {};\n var frame = function(tag, options, container) {\n void 0 === tag && (tag = \"div\");\n void 0 === options && (options = {});\n tag = tag.toLowerCase();\n var element = document.createElement(tag);\n options.style && extend(element.style, options.style);\n options.class && (element.className = options.class.join(\" \"));\n options.id && element.setAttribute(\"id\", options.id);\n if (options.attributes) for (var _i10 = 0, _Object$keys2 = Object.keys(options.attributes); _i10 < _Object$keys2.length; _i10++) {\n var key = _Object$keys2[_i10];\n element.setAttribute(key, options.attributes[key]);\n }\n options.styleSheet && function(el, styleText, doc) {\n void 0 === doc && (doc = window.document);\n el.styleSheet ? el.styleSheet.cssText = styleText : el.appendChild(doc.createTextNode(styleText));\n }(element, options.styleSheet);\n if (options.html) {\n if (\"iframe\" === tag) throw new Error(\"Iframe html can not be written unless container provided and iframe in DOM\");\n element.innerHTML = options.html;\n }\n return element;\n }(\"iframe\", {\n attributes: _extends({\n allowTransparency: \"true\"\n }, options.attributes || {}),\n style: _extends({\n backgroundColor: \"transparent\",\n border: \"none\"\n }, style),\n html: options.html,\n class: options.class\n });\n var isIE = window.navigator.userAgent.match(/MSIE|Edge/i);\n frame.hasAttribute(\"id\") || frame.setAttribute(\"id\", uniqueID());\n awaitFrameLoad(frame);\n container && function(id, doc) {\n void 0 === doc && (doc = document);\n var element = getElementSafe(id, doc);\n if (element) return element;\n throw new Error(\"Can not find element: \" + stringify(id));\n }(container).appendChild(frame);\n (options.url || isIE) && frame.setAttribute(\"src\", options.url || \"about:blank\");\n return frame;\n }\n function addEventListener(obj, event, handler) {\n obj.addEventListener(event, handler);\n return {\n cancel: function() {\n obj.removeEventListener(event, handler);\n }\n };\n }\n function showElement(element) {\n element.style.setProperty(\"display\", \"\");\n }\n function hideElement(element) {\n element.style.setProperty(\"display\", \"none\", \"important\");\n }\n function destroyElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n function isElementClosed(el) {\n return !(el && el.parentNode && el.ownerDocument && el.ownerDocument.documentElement && el.ownerDocument.documentElement.contains(el));\n }\n function onResize(el, handler, _temp) {\n var _ref2 = void 0 === _temp ? {} : _temp, _ref2$width = _ref2.width, width = void 0 === _ref2$width || _ref2$width, _ref2$height = _ref2.height, height = void 0 === _ref2$height || _ref2$height, _ref2$interval = _ref2.interval, interval = void 0 === _ref2$interval ? 100 : _ref2$interval, _ref2$win = _ref2.win, win = void 0 === _ref2$win ? window : _ref2$win;\n var currentWidth = el.offsetWidth;\n var currentHeight = el.offsetHeight;\n var canceled = !1;\n handler({\n width: currentWidth,\n height: currentHeight\n });\n var check = function() {\n if (!canceled && function(el) {\n return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n }(el)) {\n var newWidth = el.offsetWidth;\n var newHeight = el.offsetHeight;\n (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({\n width: newWidth,\n height: newHeight\n });\n currentWidth = newWidth;\n currentHeight = newHeight;\n }\n };\n var observer;\n var timeout;\n win.addEventListener(\"resize\", check);\n if (void 0 !== win.ResizeObserver) {\n (observer = new win.ResizeObserver(check)).observe(el);\n timeout = safeInterval(check, 10 * interval);\n } else if (void 0 !== win.MutationObserver) {\n (observer = new win.MutationObserver(check)).observe(el, {\n attributes: !0,\n childList: !0,\n subtree: !0,\n characterData: !1\n });\n timeout = safeInterval(check, 10 * interval);\n } else timeout = safeInterval(check, interval);\n return {\n cancel: function() {\n canceled = !0;\n observer.disconnect();\n window.removeEventListener(\"resize\", check);\n timeout.cancel();\n }\n };\n }\n function isShadowElement(element) {\n for (;element.parentNode; ) element = element.parentNode;\n return \"[object ShadowRoot]\" === element.toString();\n }\n var currentScript = \"undefined\" != typeof document ? document.currentScript : null;\n var getCurrentScript = memoize((function() {\n if (currentScript) return currentScript;\n if (currentScript = function() {\n try {\n var stack = function() {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n }();\n var stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n var scriptLocation = stackDetails && stackDetails[1];\n if (!scriptLocation) return;\n for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName(\"script\")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) {\n var script = _Array$prototype$slic2[_i22];\n if (script.src && script.src === scriptLocation) return script;\n }\n } catch (err) {}\n }()) return currentScript;\n throw new Error(\"Can not determine current script\");\n }));\n var currentUID = uniqueID();\n memoize((function() {\n var script;\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n var uid = script.getAttribute(\"data-uid\");\n if (uid && \"string\" == typeof uid) return uid;\n if ((uid = script.getAttribute(\"data-uid-auto\")) && \"string\" == typeof uid) return uid;\n if (script.src) {\n var hashedString = function(str) {\n var hash = \"\";\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1));\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n return hash;\n }(JSON.stringify({\n src: script.src,\n dataset: script.dataset\n }));\n uid = \"uid_\" + hashedString.slice(hashedString.length - 30);\n } else uid = uniqueID();\n script.setAttribute(\"data-uid-auto\", uid);\n return uid;\n }));\n function isPerc(str) {\n return \"string\" == typeof str && /^[0-9]+%$/.test(str);\n }\n function toNum(val) {\n if (\"number\" == typeof val) return val;\n var match = val.match(/^([0-9]+)(px|%)$/);\n if (!match) throw new Error(\"Could not match css value from \" + val);\n return parseInt(match[1], 10);\n }\n function toPx(val) {\n return toNum(val) + \"px\";\n }\n function toCSS(val) {\n return \"number\" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val);\n }\n function normalizeDimension(dim, max) {\n if (\"number\" == typeof dim) return dim;\n if (isPerc(dim)) return parseInt(max * toNum(dim) / 100, 10);\n if (\"string\" == typeof (str = dim) && /^[0-9]+px$/.test(str)) return toNum(dim);\n var str;\n throw new Error(\"Can not normalize dimension: \" + dim);\n }\n function global_getGlobal(win) {\n void 0 === win && (win = window);\n var globalKey = \"__post_robot_11_0_0__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function() {\n return {};\n };\n function globalStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return util_getOrSet(global_getGlobal(), key, (function() {\n var store = defStore();\n return {\n has: function(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function() {\n store = defStore();\n },\n keys: function() {\n return Object.keys(store);\n }\n };\n }));\n }\n var WildCard = function() {};\n function getWildcard() {\n var global = global_getGlobal();\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard;\n return global.WINDOW_WILDCARD;\n }\n function windowStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return globalStore(\"windowStore\").getOrSet(key, (function() {\n var winStore = new weakmap_CrossDomainSafeWeakMap;\n var getStore = function(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function(win) {\n delete getStore(win)[key];\n },\n getOrSet: function(win, getter) {\n return util_getOrSet(getStore(win), key, getter);\n }\n };\n }));\n }\n function getInstanceID() {\n return globalStore(\"instance\").getOrSet(\"instanceID\", uniqueID);\n }\n function resolveHelloPromise(win, _ref) {\n var domain = _ref.domain;\n var helloPromises = windowStore(\"helloPromises\");\n var existingPromise = helloPromises.get(win);\n existingPromise && existingPromise.resolve({\n domain: domain\n });\n var newPromise = promise_ZalgoPromise.resolve({\n domain: domain\n });\n helloPromises.set(win, newPromise);\n return newPromise;\n }\n function sayHello(win, _ref4) {\n return (0, _ref4.send)(win, \"postrobot_hello\", {\n instanceID: getInstanceID()\n }, {\n domain: \"*\",\n timeout: -1\n }).then((function(_ref5) {\n var origin = _ref5.origin, instanceID = _ref5.data.instanceID;\n resolveHelloPromise(win, {\n domain: origin\n });\n return {\n win: win,\n domain: origin,\n instanceID: instanceID\n };\n }));\n }\n function getWindowInstanceID(win, _ref6) {\n var send = _ref6.send;\n return windowStore(\"windowInstanceIDPromises\").getOrSet(win, (function() {\n return sayHello(win, {\n send: send\n }).then((function(_ref7) {\n return _ref7.instanceID;\n }));\n }));\n }\n function awaitWindowHello(win, timeout, name) {\n void 0 === timeout && (timeout = 5e3);\n void 0 === name && (name = \"Window\");\n var promise = function(win) {\n return windowStore(\"helloPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }(win);\n -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + \" did not load after \" + timeout + \"ms\")));\n return promise;\n }\n function markWindowKnown(win) {\n windowStore(\"knownWindows\").set(win, !0);\n }\n function isSerializedType(item) {\n return \"object\" == typeof item && null !== item && \"string\" == typeof item.__type__;\n }\n function determineType(val) {\n return void 0 === val ? \"undefined\" : null === val ? \"null\" : Array.isArray(val) ? \"array\" : \"function\" == typeof val ? \"function\" : \"object\" == typeof val ? val instanceof Error ? \"error\" : \"function\" == typeof val.then ? \"promise\" : \"[object RegExp]\" === {}.toString.call(val) ? \"regex\" : \"[object Date]\" === {}.toString.call(val) ? \"date\" : \"object\" : \"string\" == typeof val ? \"string\" : \"number\" == typeof val ? \"number\" : \"boolean\" == typeof val ? \"boolean\" : void 0;\n }\n function serializeType(type, val) {\n return {\n __type__: type,\n __val__: val\n };\n }\n var _SERIALIZER;\n var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) {\n return serializeType(\"error\", {\n message: _ref.message,\n stack: _ref.stack,\n code: _ref.code,\n data: _ref.data\n });\n }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) {\n return serializeType(\"regex\", val.source);\n }, _SERIALIZER.date = function(val) {\n return serializeType(\"date\", val.toJSON());\n }, _SERIALIZER.array = function(val) {\n return val;\n }, _SERIALIZER.object = function(val) {\n return val;\n }, _SERIALIZER.string = function(val) {\n return val;\n }, _SERIALIZER.number = function(val) {\n return val;\n }, _SERIALIZER.boolean = function(val) {\n return val;\n }, _SERIALIZER.null = function(val) {\n return val;\n }, _SERIALIZER[void 0] = function(val) {\n return serializeType(\"undefined\", val);\n }, _SERIALIZER);\n var defaultSerializers = {};\n var _DESERIALIZER;\n var DESERIALIZER = ((_DESERIALIZER = {}).function = function() {\n throw new Error(\"Function serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.error = function(_ref2) {\n var stack = _ref2.stack, code = _ref2.code, data = _ref2.data;\n var error = new Error(_ref2.message);\n error.code = code;\n data && (error.data = data);\n error.stack = stack + \"\\n\\n\" + error.stack;\n return error;\n }, _DESERIALIZER.promise = function() {\n throw new Error(\"Promise serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.regex = function(val) {\n return new RegExp(val);\n }, _DESERIALIZER.date = function(val) {\n return new Date(val);\n }, _DESERIALIZER.array = function(val) {\n return val;\n }, _DESERIALIZER.object = function(val) {\n return val;\n }, _DESERIALIZER.string = function(val) {\n return val;\n }, _DESERIALIZER.number = function(val) {\n return val;\n }, _DESERIALIZER.boolean = function(val) {\n return val;\n }, _DESERIALIZER.null = function(val) {\n return val;\n }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER);\n var defaultDeserializers = {};\n function needsBridgeForBrowser() {\n return !!utils_getUserAgent(window).match(/MSIE|trident|edge\\/12|edge\\/13/i);\n }\n function needsBridgeForWin(win) {\n return !isSameTopWindow(window, win);\n }\n function needsBridgeForDomain(domain, win) {\n if (domain) {\n if (getDomain() !== getDomainFromUrl(domain)) return !0;\n } else if (win && !isSameDomain(win)) return !0;\n return !1;\n }\n function needsBridge(_ref) {\n var win = _ref.win, domain = _ref.domain;\n return !(!needsBridgeForBrowser() || domain && !needsBridgeForDomain(domain, win) || win && !needsBridgeForWin(win));\n }\n function getBridgeName(domain) {\n return \"__postrobot_bridge___\" + (domain = domain || getDomainFromUrl(domain)).replace(/[^a-zA-Z0-9]+/g, \"_\");\n }\n function isBridge() {\n return Boolean(window.name && window.name === getBridgeName(getDomain()));\n }\n var documentBodyReady = new promise_ZalgoPromise((function(resolve) {\n if (window.document && window.document.body) return resolve(window.document.body);\n var interval = setInterval((function() {\n if (window.document && window.document.body) {\n clearInterval(interval);\n return resolve(window.document.body);\n }\n }), 10);\n }));\n function registerRemoteWindow(win) {\n windowStore(\"remoteWindowPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }\n function findRemoteWindow(win) {\n var remoteWinPromise = windowStore(\"remoteWindowPromises\").get(win);\n if (!remoteWinPromise) throw new Error(\"Remote window promise not found\");\n return remoteWinPromise;\n }\n function registerRemoteSendMessage(win, domain, sendMessage) {\n findRemoteWindow(win).resolve((function(remoteWin, remoteDomain, message) {\n if (remoteWin !== win) throw new Error(\"Remote window does not match window\");\n if (!matchDomain(remoteDomain, domain)) throw new Error(\"Remote domain \" + remoteDomain + \" does not match domain \" + domain);\n sendMessage.fireAndForget(message);\n }));\n }\n function rejectRemoteSendMessage(win, err) {\n findRemoteWindow(win).reject(err).catch(src_util_noop);\n }\n function linkWindow(_ref3) {\n var win = _ref3.win, name = _ref3.name, domain = _ref3.domain;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n var popupWindowsByWin = windowStore(\"popupWindowsByWin\");\n for (var _i2 = 0, _popupWindowsByName$k2 = popupWindowsByName.keys(); _i2 < _popupWindowsByName$k2.length; _i2++) {\n var winName = _popupWindowsByName$k2[_i2];\n var _details = popupWindowsByName.get(winName);\n _details && !isWindowClosed(_details.win) || popupWindowsByName.del(winName);\n }\n if (isWindowClosed(win)) return {\n win: win,\n name: name,\n domain: domain\n };\n var details = popupWindowsByWin.getOrSet(win, (function() {\n return name ? popupWindowsByName.getOrSet(name, (function() {\n return {\n win: win,\n name: name\n };\n })) : {\n win: win\n };\n }));\n if (details.win && details.win !== win) throw new Error(\"Different window already linked for window: \" + (name || \"undefined\"));\n if (name) {\n details.name = name;\n popupWindowsByName.set(name, details);\n }\n if (domain) {\n details.domain = domain;\n registerRemoteWindow(win);\n }\n popupWindowsByWin.set(win, details);\n return details;\n }\n function setupBridge(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n windowOpen = window.open, window.open = function(url, name, options, last) {\n var win = windowOpen.call(this, normalizeMockUrl(url), name, options, last);\n if (!win) return win;\n linkWindow({\n win: win,\n name: name,\n domain: url ? getDomainFromUrl(url) : null\n });\n return win;\n };\n var windowOpen;\n !function(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n on(\"postrobot_open_tunnel\", (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var bridgePromise = globalStore(\"bridges\").get(origin);\n if (!bridgePromise) throw new Error(\"Can not find bridge promise for domain \" + origin);\n return bridgePromise.then((function(bridge) {\n if (source !== bridge) throw new Error(\"Message source does not matched registered bridge for domain \" + origin);\n if (!data.name) throw new Error(\"Register window expected to be passed window name\");\n if (!data.sendMessage) throw new Error(\"Register window expected to be passed sendMessage method\");\n if (!popupWindowsByName.has(data.name)) throw new Error(\"Window with name \" + data.name + \" does not exist, or was not opened by this window\");\n var getWindowDetails = function() {\n return popupWindowsByName.get(data.name);\n };\n if (!getWindowDetails().domain) throw new Error(\"We do not have a registered domain for window \" + data.name);\n if (getWindowDetails().domain !== origin) throw new Error(\"Message origin \" + origin + \" does not matched registered window origin \" + (getWindowDetails().domain || \"unknown\"));\n registerRemoteSendMessage(getWindowDetails().win, origin, data.sendMessage);\n return {\n sendMessage: function(message) {\n if (window && !window.closed && getWindowDetails()) {\n var domain = getWindowDetails().domain;\n if (domain) try {\n receiveMessage({\n data: message,\n origin: domain,\n source: getWindowDetails().win\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n promise_ZalgoPromise.reject(err);\n }\n }\n }\n };\n }));\n }));\n }({\n on: on,\n send: send,\n receiveMessage: receiveMessage\n });\n !function(_ref2) {\n var send = _ref2.send;\n global_getGlobal(window).openTunnelToParent = function(_ref3) {\n var name = _ref3.name, source = _ref3.source, canary = _ref3.canary, sendMessage = _ref3.sendMessage;\n var tunnelWindows = globalStore(\"tunnelWindows\");\n var parentWindow = utils_getParent(window);\n if (!parentWindow) throw new Error(\"No parent window found to open tunnel to\");\n var id = function(_ref) {\n var name = _ref.name, source = _ref.source, canary = _ref.canary, sendMessage = _ref.sendMessage;\n !function() {\n var tunnelWindows = globalStore(\"tunnelWindows\");\n for (var _i2 = 0, _tunnelWindows$keys2 = tunnelWindows.keys(); _i2 < _tunnelWindows$keys2.length; _i2++) {\n var key = _tunnelWindows$keys2[_i2];\n isWindowClosed(tunnelWindows[key].source) && tunnelWindows.del(key);\n }\n }();\n var id = uniqueID();\n globalStore(\"tunnelWindows\").set(id, {\n name: name,\n source: source,\n canary: canary,\n sendMessage: sendMessage\n });\n return id;\n }({\n name: name,\n source: source,\n canary: canary,\n sendMessage: sendMessage\n });\n return send(parentWindow, \"postrobot_open_tunnel\", {\n name: name,\n sendMessage: function() {\n var tunnelWindow = tunnelWindows.get(id);\n if (tunnelWindow && tunnelWindow.source && !isWindowClosed(tunnelWindow.source)) {\n try {\n tunnelWindow.canary();\n } catch (err) {\n return;\n }\n tunnelWindow.sendMessage.apply(this, arguments);\n }\n }\n }, {\n domain: \"*\"\n });\n };\n }({\n send: send\n });\n !function(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n promise_ZalgoPromise.try((function() {\n var opener = getOpener(window);\n if (opener && needsBridge({\n win: opener\n })) {\n registerRemoteWindow(opener);\n return (win = opener, windowStore(\"remoteBridgeAwaiters\").getOrSet(win, (function() {\n return promise_ZalgoPromise.try((function() {\n var frame = getFrameByName(win, getBridgeName(getDomain()));\n if (frame) return isSameDomain(frame) && global_getGlobal(assertSameDomain(frame)) ? frame : new promise_ZalgoPromise((function(resolve) {\n var interval;\n var timeout;\n interval = setInterval((function() {\n if (frame && isSameDomain(frame) && global_getGlobal(assertSameDomain(frame))) {\n clearInterval(interval);\n clearTimeout(timeout);\n return resolve(frame);\n }\n }), 100);\n timeout = setTimeout((function() {\n clearInterval(interval);\n return resolve();\n }), 2e3);\n }));\n }));\n }))).then((function(bridge) {\n return bridge ? window.name ? global_getGlobal(assertSameDomain(bridge)).openTunnelToParent({\n name: window.name,\n source: window,\n canary: function() {},\n sendMessage: function(message) {\n try {\n window;\n } catch (err) {\n return;\n }\n if (window && !window.closed) try {\n receiveMessage({\n data: message,\n origin: this.origin,\n source: this.source\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n promise_ZalgoPromise.reject(err);\n }\n }\n }).then((function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n if (source !== opener) throw new Error(\"Source does not match opener\");\n registerRemoteSendMessage(source, origin, data.sendMessage);\n })).catch((function(err) {\n rejectRemoteSendMessage(opener, err);\n throw err;\n })) : rejectRemoteSendMessage(opener, new Error(\"Can not register with opener: window does not have a name\")) : rejectRemoteSendMessage(opener, new Error(\"Can not register with opener: no bridge found in opener\"));\n }));\n var win;\n }\n }));\n }({\n on: on,\n send: send,\n receiveMessage: receiveMessage\n });\n }\n function cleanupProxyWindows() {\n var idToProxyWindow = globalStore(\"idToProxyWindow\");\n for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) {\n var id = _idToProxyWindow$keys2[_i2];\n idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id);\n }\n }\n function getSerializedWindow(winPromise, _ref) {\n var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id;\n var windowNamePromise = winPromise.then((function(win) {\n if (isSameDomain(win)) return assertSameDomain(win).name;\n }));\n var windowTypePromise = winPromise.then((function(window) {\n if (isWindowClosed(window)) throw new Error(\"Window is closed, can not determine type\");\n return getOpener(window) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME;\n }));\n windowNamePromise.catch(src_util_noop);\n windowTypePromise.catch(src_util_noop);\n var getName = function() {\n return winPromise.then((function(win) {\n if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise;\n }));\n };\n return {\n id: id,\n getType: function() {\n return windowTypePromise;\n },\n getInstanceID: memoizePromise((function() {\n return winPromise.then((function(win) {\n return getWindowInstanceID(win, {\n send: send\n });\n }));\n })),\n close: function() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function() {\n return winPromise.then((function(win) {\n win.focus();\n }));\n },\n isClosed: function() {\n return winPromise.then((function(win) {\n return isWindowClosed(win);\n }));\n },\n setLocation: function(href, opts) {\n void 0 === opts && (opts = {});\n return winPromise.then((function(win) {\n var domain = window.location.protocol + \"//\" + window.location.host;\n var _opts$method = opts.method, method = void 0 === _opts$method ? \"get\" : _opts$method, body = opts.body;\n if (0 === href.indexOf(\"/\")) href = \"\" + domain + href; else if (!href.match(/^https?:\\/\\//) && 0 !== href.indexOf(domain)) throw new Error(\"Expected url to be http or https url, or absolute path, got \" + JSON.stringify(href));\n if (\"post\" === method) return getName().then((function(name) {\n if (!name) throw new Error(\"Can not post to window without target name\");\n !function(_ref3) {\n var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? \"post\" : _ref3$method;\n var form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) {\n var _body$key;\n var key = _Object$keys4[_i24];\n var input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", null == (_body$key = body[key]) ? void 0 : _body$key.toString());\n form.appendChild(input);\n }\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n }({\n url: href,\n target: name,\n method: method,\n body: body\n });\n }));\n if (\"get\" !== method) throw new Error(\"Unsupported method: \" + method);\n if (isSameDomain(win)) try {\n if (win.location && \"function\" == typeof win.location.replace) {\n win.location.replace(href);\n return;\n }\n } catch (err) {}\n win.location = href;\n }));\n },\n setName: function(name) {\n return winPromise.then((function(win) {\n linkWindow({\n win: win,\n name: name\n });\n var sameDomain = isSameDomain(win);\n var frame = getFrameForWindow(win);\n if (!sameDomain) throw new Error(\"Can not set name for cross-domain window: \" + name);\n assertSameDomain(win).name = name;\n frame && frame.setAttribute(\"name\", name);\n windowNamePromise = promise_ZalgoPromise.resolve(name);\n }));\n }\n };\n }\n var window_ProxyWindow = function() {\n function ProxyWindow(_ref2) {\n var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow;\n this.id = void 0;\n this.isProxyWindow = !0;\n this.serializedWindow = void 0;\n this.actualWindow = void 0;\n this.actualWindowPromise = void 0;\n this.send = void 0;\n this.name = void 0;\n this.actualWindowPromise = new promise_ZalgoPromise;\n this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, {\n send: send\n });\n globalStore(\"idToProxyWindow\").set(this.getID(), this);\n win && this.setWindow(win, {\n send: send\n });\n }\n var _proto = ProxyWindow.prototype;\n _proto.getID = function() {\n return this.serializedWindow.id;\n };\n _proto.getType = function() {\n return this.serializedWindow.getType();\n };\n _proto.isPopup = function() {\n return this.getType().then((function(type) {\n return type === WINDOW_TYPE.POPUP;\n }));\n };\n _proto.setLocation = function(href, opts) {\n var _this = this;\n return this.serializedWindow.setLocation(href, opts).then((function() {\n return _this;\n }));\n };\n _proto.getName = function() {\n return this.serializedWindow.getName();\n };\n _proto.setName = function(name) {\n var _this2 = this;\n return this.serializedWindow.setName(name).then((function() {\n return _this2;\n }));\n };\n _proto.close = function() {\n var _this3 = this;\n return this.serializedWindow.close().then((function() {\n return _this3;\n }));\n };\n _proto.focus = function() {\n var _this4 = this;\n var isPopupPromise = this.isPopup();\n var getNamePromise = this.getName();\n var reopenPromise = promise_ZalgoPromise.hash({\n isPopup: isPopupPromise,\n name: getNamePromise\n }).then((function(_ref3) {\n var name = _ref3.name;\n _ref3.isPopup && name && window.open(\"\", name, \"noopener\");\n }));\n var focusPromise = this.serializedWindow.focus();\n return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() {\n return _this4;\n }));\n };\n _proto.isClosed = function() {\n return this.serializedWindow.isClosed();\n };\n _proto.getWindow = function() {\n return this.actualWindow;\n };\n _proto.setWindow = function(win, _ref4) {\n var send = _ref4.send;\n this.actualWindow = win;\n this.actualWindowPromise.resolve(this.actualWindow);\n this.serializedWindow = getSerializedWindow(this.actualWindowPromise, {\n send: send,\n id: this.getID()\n });\n windowStore(\"winToProxyWindow\").set(win, this);\n };\n _proto.awaitWindow = function() {\n return this.actualWindowPromise;\n };\n _proto.matchWindow = function(win, _ref5) {\n var _this5 = this;\n var send = _ref5.send;\n return promise_ZalgoPromise.try((function() {\n return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({\n proxyInstanceID: _this5.getInstanceID(),\n knownWindowInstanceID: getWindowInstanceID(win, {\n send: send\n })\n }).then((function(_ref6) {\n var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID;\n match && _this5.setWindow(win, {\n send: send\n });\n return match;\n }));\n }));\n };\n _proto.unwrap = function() {\n return this.actualWindow || this;\n };\n _proto.getInstanceID = function() {\n return this.serializedWindow.getInstanceID();\n };\n _proto.shouldClean = function() {\n return Boolean(this.actualWindow && isWindowClosed(this.actualWindow));\n };\n _proto.serialize = function() {\n return this.serializedWindow;\n };\n ProxyWindow.unwrap = function(win) {\n return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win;\n };\n ProxyWindow.serialize = function(win, _ref7) {\n var send = _ref7.send;\n cleanupProxyWindows();\n return ProxyWindow.toProxyWindow(win, {\n send: send\n }).serialize();\n };\n ProxyWindow.deserialize = function(serializedWindow, _ref8) {\n var send = _ref8.send;\n cleanupProxyWindows();\n return globalStore(\"idToProxyWindow\").get(serializedWindow.id) || new ProxyWindow({\n serializedWindow: serializedWindow,\n send: send\n });\n };\n ProxyWindow.isProxyWindow = function(obj) {\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n };\n ProxyWindow.toProxyWindow = function(win, _ref9) {\n var send = _ref9.send;\n cleanupProxyWindows();\n if (ProxyWindow.isProxyWindow(win)) return win;\n var actualWindow = win;\n return windowStore(\"winToProxyWindow\").get(actualWindow) || new ProxyWindow({\n win: actualWindow,\n send: send\n });\n };\n return ProxyWindow;\n }();\n function addMethod(id, val, name, source, domain) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, {\n val: val,\n name: name,\n domain: domain,\n source: source\n }); else {\n proxyWindowMethods.del(id);\n methodStore.getOrSet(source, (function() {\n return {};\n }))[id] = {\n domain: domain,\n name: name,\n val: val,\n source: source\n };\n }\n }\n function lookupMethod(source, id) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n return methodStore.getOrSet(source, (function() {\n return {};\n }))[id] || proxyWindowMethods.get(id);\n }\n function function_serializeFunction(destination, domain, val, key, _ref3) {\n on = (_ref = {\n on: _ref3.on,\n send: _ref3.send\n }).on, send = _ref.send, globalStore(\"builtinListeners\").getOrSet(\"functionCalls\", (function() {\n return on(\"postrobot_method\", {\n domain: \"*\"\n }, (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var id = data.id, name = data.name;\n var meth = lookupMethod(source, id);\n if (!meth) throw new Error(\"Could not find method '\" + name + \"' with id: \" + data.id + \" in \" + getDomain(window));\n var methodSource = meth.source, domain = meth.domain, val = meth.val;\n return promise_ZalgoPromise.try((function() {\n if (!matchDomain(domain, origin)) throw new Error(\"Method '\" + data.name + \"' domain \" + JSON.stringify(util_isRegex(meth.domain) ? meth.domain.source : meth.domain) + \" does not match origin \" + origin + \" in \" + getDomain(window));\n if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, {\n send: send\n }).then((function(match) {\n if (!match) throw new Error(\"Method call '\" + data.name + \"' failed - proxy window does not match source in \" + getDomain(window));\n }));\n })).then((function() {\n return val.apply({\n source: source,\n origin: origin\n }, data.args);\n }), (function(err) {\n return promise_ZalgoPromise.try((function() {\n if (val.onError) return val.onError(err);\n })).then((function() {\n err.stack && (err.stack = \"Remote call to \" + name + \"(\" + function(args) {\n void 0 === args && (args = []);\n return arrayFrom(args).map((function(arg) {\n return \"string\" == typeof arg ? \"'\" + arg + \"'\" : void 0 === arg ? \"undefined\" : null === arg ? \"null\" : \"boolean\" == typeof arg ? arg.toString() : Array.isArray(arg) ? \"[ ... ]\" : \"object\" == typeof arg ? \"{ ... }\" : \"function\" == typeof arg ? \"() => { ... }\" : \"<\" + typeof arg + \">\";\n })).join(\", \");\n }(data.args) + \") failed\\n\\n\" + err.stack);\n throw err;\n }));\n })).then((function(result) {\n return {\n result: result,\n id: id,\n name: name\n };\n }));\n }));\n }));\n var _ref, on, send;\n var id = val.__id__ || uniqueID();\n destination = window_ProxyWindow.unwrap(destination);\n var name = val.__name__ || val.name || key;\n \"string\" == typeof name && \"function\" == typeof name.indexOf && 0 === name.indexOf(\"anonymous::\") && (name = name.replace(\"anonymous::\", key + \"::\"));\n if (window_ProxyWindow.isProxyWindow(destination)) {\n addMethod(id, val, name, destination, domain);\n destination.awaitWindow().then((function(win) {\n addMethod(id, val, name, win, domain);\n }));\n } else addMethod(id, val, name, destination, domain);\n return serializeType(\"cross_domain_function\", {\n id: id,\n name: name\n });\n }\n function serializeMessage(destination, domain, obj, _ref) {\n var _serialize;\n var on = _ref.on, send = _ref.send;\n return function(obj, serializers) {\n void 0 === serializers && (serializers = defaultSerializers);\n var result = JSON.stringify(obj, (function(key) {\n var val = this[key];\n if (isSerializedType(this)) return val;\n var type = determineType(val);\n if (!type) return val;\n var serializer = serializers[type] || SERIALIZER[type];\n return serializer ? serializer(val, key) : val;\n }));\n return void 0 === result ? \"undefined\" : result;\n }(obj, ((_serialize = {}).promise = function(val, key) {\n return function(destination, domain, val, key, _ref) {\n return serializeType(\"cross_domain_zalgo_promise\", {\n then: function_serializeFunction(destination, domain, (function(resolve, reject) {\n return val.then(resolve, reject);\n }), key, {\n on: _ref.on,\n send: _ref.send\n })\n });\n }(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.function = function(val, key) {\n return function_serializeFunction(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.object = function(val) {\n return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType(\"cross_domain_window\", window_ProxyWindow.serialize(val, {\n send: send\n })) : val;\n }, _serialize));\n }\n function deserializeMessage(source, origin, message, _ref2) {\n var _deserialize;\n var send = _ref2.send;\n return function(str, deserializers) {\n void 0 === deserializers && (deserializers = defaultDeserializers);\n if (\"undefined\" !== str) return JSON.parse(str, (function(key, val) {\n if (isSerializedType(this)) return val;\n var type;\n var value;\n if (isSerializedType(val)) {\n type = val.__type__;\n value = val.__val__;\n } else {\n type = determineType(val);\n value = val;\n }\n if (!type) return value;\n var deserializer = deserializers[type] || DESERIALIZER[type];\n return deserializer ? deserializer(value, key) : value;\n }));\n }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) {\n return function(source, origin, _ref2) {\n return new promise_ZalgoPromise(_ref2.then);\n }(0, 0, serializedPromise);\n }, _deserialize.cross_domain_function = function(serializedFunction) {\n return function(source, origin, _ref4, _ref5) {\n var id = _ref4.id, name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function(opts) {\n void 0 === opts && (opts = {});\n function crossDomainFunctionWrapper() {\n var _arguments = arguments;\n return window_ProxyWindow.toProxyWindow(source, {\n send: send\n }).awaitWindow().then((function(win) {\n var meth = lookupMethod(win, id);\n if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({\n source: window,\n origin: getDomain()\n }, _arguments);\n var _args = [].slice.call(_arguments);\n return opts.fireAndForget ? send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !0\n }) : send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !1\n }).then((function(res) {\n return res.data.result;\n }));\n })).catch((function(err) {\n throw err;\n }));\n }\n crossDomainFunctionWrapper.__name__ = name;\n crossDomainFunctionWrapper.__origin__ = origin;\n crossDomainFunctionWrapper.__source__ = source;\n crossDomainFunctionWrapper.__id__ = id;\n crossDomainFunctionWrapper.origin = origin;\n return crossDomainFunctionWrapper;\n };\n var crossDomainFunctionWrapper = getDeserializedFunction();\n crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({\n fireAndForget: !0\n });\n return crossDomainFunctionWrapper;\n }(source, origin, serializedFunction, {\n send: send\n });\n }, _deserialize.cross_domain_window = function(serializedWindow) {\n return window_ProxyWindow.deserialize(serializedWindow, {\n send: send\n });\n }, _deserialize));\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) {\n 0 === domain.indexOf(\"file:\") && (domain = \"*\");\n win.postMessage(serializedMessage, domain);\n };\n SEND_MESSAGE_STRATEGIES.postrobot_bridge = function(win, serializedMessage, domain) {\n if (!needsBridgeForBrowser() && !isBridge()) throw new Error(\"Bridge not needed for browser\");\n if (isSameDomain(win)) throw new Error(\"Post message through bridge disabled between same domain windows\");\n if (!1 !== isSameTopWindow(window, win)) throw new Error(\"Can only use bridge to communicate between two different windows, not between frames\");\n !function(win, domain, message) {\n var messagingChild = isOpener(window, win);\n var messagingParent = isOpener(win, window);\n if (!messagingChild && !messagingParent) throw new Error(\"Can only send messages to and from parent and popup windows\");\n findRemoteWindow(win).then((function(sendMessage) {\n return sendMessage(win, domain, message);\n }));\n }(win, domain, serializedMessage);\n };\n SEND_MESSAGE_STRATEGIES.postrobot_global = function(win, serializedMessage) {\n if (!utils_getUserAgent(window).match(/MSIE|rv:11|trident|edge\\/12|edge\\/13/i)) throw new Error(\"Global messaging not needed for browser\");\n if (!isSameDomain(win)) throw new Error(\"Post message through global disabled between different domain windows\");\n if (!1 !== isSameTopWindow(window, win)) throw new Error(\"Can only use global to communicate between two different windows, not between frames\");\n var foreignGlobal = global_getGlobal(win);\n if (!foreignGlobal) throw new Error(\"Can not find postRobot global on foreign window\");\n foreignGlobal.receiveMessage({\n source: window,\n origin: getDomain(),\n data: serializedMessage\n });\n };\n function send_sendMessage(win, domain, message, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n return promise_ZalgoPromise.try((function() {\n var domainBuffer = windowStore().getOrSet(win, (function() {\n return {};\n }));\n domainBuffer.buffer = domainBuffer.buffer || [];\n domainBuffer.buffer.push(message);\n domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() {\n if (isWindowClosed(win)) throw new Error(\"Window is closed\");\n var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_11_0_0__ = domainBuffer.buffer || [], \n _ref), {\n on: on,\n send: send\n });\n var _ref;\n delete domainBuffer.buffer;\n var strategies = Object.keys(SEND_MESSAGE_STRATEGIES);\n var errors = [];\n for (var _i2 = 0; _i2 < strategies.length; _i2++) {\n var strategyName = strategies[_i2];\n try {\n SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n } catch (err) {\n errors.push(err);\n }\n }\n if (errors.length === strategies.length) throw new Error(\"All post-robot messaging strategies failed:\\n\\n\" + errors.map((function(err, i) {\n return i + \". \" + stringifyError(err);\n })).join(\"\\n\\n\"));\n }));\n return domainBuffer.flush.then((function() {\n delete domainBuffer.flush;\n }));\n })).then(src_util_noop);\n }\n function getResponseListener(hash) {\n return globalStore(\"responseListeners\").get(hash);\n }\n function deleteResponseListener(hash) {\n globalStore(\"responseListeners\").del(hash);\n }\n function isResponseListenerErrored(hash) {\n return globalStore(\"erroredResponseListeners\").has(hash);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n var requestListeners = windowStore(\"requestListeners\");\n \"*\" === win && (win = null);\n \"*\" === domain && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) {\n var winQualifier = _ref3[_i4];\n if (winQualifier) {\n var nameListeners = requestListeners.get(winQualifier);\n if (nameListeners) {\n var domainListeners = nameListeners[name];\n if (domainListeners) {\n if (domain && \"string\" == typeof domain) {\n if (domainListeners[domain]) return domainListeners[domain];\n if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) {\n var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener;\n if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener;\n }\n }\n if (domainListeners[\"*\"]) return domainListeners[\"*\"];\n }\n }\n }\n }\n }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n var receivedMessages = globalStore(\"receivedMessages\");\n try {\n if (!window || window.closed || !event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin;\n var messages = function(message, source, origin, _ref) {\n var on = _ref.on, send = _ref.send;\n var parsedMessage;\n try {\n parsedMessage = deserializeMessage(source, origin, message, {\n on: on,\n send: send\n });\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" == typeof parsedMessage && null !== parsedMessage) {\n var parseMessages = parsedMessage.__post_robot_11_0_0__;\n if (Array.isArray(parseMessages)) return parseMessages;\n }\n }(event.data, source, origin, {\n on: on,\n send: send\n });\n if (messages) {\n markWindowKnown(source);\n var _loop = function() {\n var message = messages[_i2];\n if (receivedMessages.has(message.id)) return {\n v: void 0\n };\n receivedMessages.set(message.id, !0);\n if (isWindowClosed(source) && !message.fireAndForget) return {\n v: void 0\n };\n 0 === message.origin.indexOf(\"file:\") && (origin = \"file://\");\n try {\n \"postrobot_message_request\" === message.type ? function(source, origin, message, _ref) {\n var on = _ref.on, send = _ref.send;\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n var logName = \"postrobot_method\" === message.name && message.data && \"string\" == typeof message.data.name ? message.data.name + \"()\" : message.name;\n function sendResponse(ack, data, error) {\n return promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_response\",\n hash: message.hash,\n name: message.name,\n ack: ack,\n data: data,\n error: error\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send response message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n }));\n }\n promise_ZalgoPromise.all([ promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_ack\",\n hash: message.hash,\n name: message.name\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send ack message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n })), promise_ZalgoPromise.try((function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n return options.handler({\n source: source,\n origin: origin,\n data: message.data\n });\n })).then((function(data) {\n return sendResponse(\"success\", data);\n }), (function(error) {\n return sendResponse(\"error\", null, error);\n })) ]).then(src_util_noop).catch((function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n }));\n }(source, origin, message, {\n on: on,\n send: send\n }) : \"postrobot_message_response\" === message.type ? function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!matchDomain(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + (pattern = options.domain, \n Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() + \")\" : pattern.toString()));\n var pattern;\n if (source !== options.win) throw new Error(\"Response source does not match registered window\");\n deleteResponseListener(message.hash);\n \"error\" === message.ack ? options.promise.reject(message.error) : \"success\" === message.ack && options.promise.resolve({\n source: source,\n origin: origin,\n data: message.data\n });\n }\n }(source, origin, message) : \"postrobot_message_ack\" === message.type && function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n try {\n if (!matchDomain(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n if (source !== options.win) throw new Error(\"Ack source does not match registered window\");\n } catch (err) {\n options.promise.reject(err);\n }\n options.ack = !0;\n }\n }(source, origin, message);\n } catch (err) {\n setTimeout((function() {\n throw err;\n }), 0);\n }\n };\n for (var _i2 = 0; _i2 < messages.length; _i2++) {\n var _ret = _loop();\n if (\"object\" == typeof _ret) return _ret.v;\n }\n }\n }\n function on_on(name, options, handler) {\n if (!name) throw new Error(\"Expected name\");\n if (\"function\" == typeof (options = options || {})) {\n handler = options;\n options = {};\n }\n if (!handler) throw new Error(\"Expected handler\");\n var requestListener = function addRequestListener(_ref4, listener) {\n var name = _ref4.name, winCandidate = _ref4.win, domain = _ref4.domain;\n var requestListeners = windowStore(\"requestListeners\");\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (winCandidate && \"*\" !== winCandidate && window_ProxyWindow.isProxyWindow(winCandidate)) {\n var requestListenerPromise = winCandidate.awaitWindow().then((function(actualWin) {\n return addRequestListener({\n name: name,\n win: actualWin,\n domain: domain\n }, listener);\n }));\n return {\n cancel: function() {\n requestListenerPromise.then((function(requestListener) {\n return requestListener.cancel();\n }), src_util_noop);\n }\n };\n }\n var win = winCandidate;\n if (Array.isArray(win)) {\n var listenersCollection = [];\n for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: _win2[_i8]\n }, listener));\n return {\n cancel: function() {\n for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n var _listenersCollection = [];\n for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _domain2[_i12]\n }, listener));\n return {\n cancel: function() {\n for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && \"*\" !== win || (win = getWildcard());\n var strDomain = (domain = domain || \"*\").toString();\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === getWildcard() ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === getWildcard() ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var winNameListeners = requestListeners.getOrSet(win, (function() {\n return {};\n }));\n var winNameDomainListeners = util_getOrSet(winNameListeners, name, (function() {\n return {};\n }));\n var winNameDomainRegexListeners;\n var winNameDomainRegexListener;\n util_isRegex(domain) ? (winNameDomainRegexListeners = util_getOrSet(winNameDomainListeners, \"__domain_regex__\", (function() {\n return [];\n }))).push(winNameDomainRegexListener = {\n regex: domain,\n listener: listener\n }) : winNameDomainListeners[strDomain] = listener;\n return {\n cancel: function() {\n delete winNameDomainListeners[strDomain];\n if (winNameDomainRegexListener) {\n winNameDomainRegexListeners.splice(winNameDomainRegexListeners.indexOf(winNameDomainRegexListener, 1));\n winNameDomainRegexListeners.length || delete winNameDomainListeners.__domain_regex__;\n }\n Object.keys(winNameDomainListeners).length || delete winNameListeners[name];\n win && !Object.keys(winNameListeners).length && requestListeners.del(win);\n }\n };\n }({\n name: name,\n win: options.window,\n domain: options.domain || \"*\"\n }, {\n handler: handler || options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n }\n });\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n var send_send = function send(winOrProxyWin, name, data, options) {\n var domainMatcher = (options = options || {}).domain || \"*\";\n var responseTimeout = options.timeout || -1;\n var childTimeout = options.timeout || 5e3;\n var fireAndForget = options.fireAndForget || !1;\n return window_ProxyWindow.toProxyWindow(winOrProxyWin, {\n send: send\n }).awaitWindow().then((function(win) {\n return promise_ZalgoPromise.try((function() {\n !function(name, win, domain) {\n if (!name) throw new Error(\"Expected name\");\n if (domain && \"string\" != typeof domain && !Array.isArray(domain) && !util_isRegex(domain)) throw new TypeError(\"Can not send \" + name + \". Expected domain \" + JSON.stringify(domain) + \" to be a string, array, or regex\");\n if (isWindowClosed(win)) throw new Error(\"Can not send \" + name + \". Target window is closed\");\n }(name, win, domainMatcher);\n if (function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (getTop(child) === child) return !1;\n for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) if (_getFrames8[_i15] === child) return !0;\n return !1;\n }(window, win)) return awaitWindowHello(win, childTimeout);\n })).then((function(_temp) {\n return function(win, targetDomain, actualDomain, _ref) {\n var send = _ref.send;\n return promise_ZalgoPromise.try((function() {\n return \"string\" == typeof targetDomain ? targetDomain : promise_ZalgoPromise.try((function() {\n return actualDomain || sayHello(win, {\n send: send\n }).then((function(_ref2) {\n return _ref2.domain;\n }));\n })).then((function(normalizedDomain) {\n if (!matchDomain(targetDomain, targetDomain)) throw new Error(\"Domain \" + stringify(targetDomain) + \" does not match \" + stringify(targetDomain));\n return normalizedDomain;\n }));\n }));\n }(win, domainMatcher, (void 0 === _temp ? {} : _temp).domain, {\n send: send\n });\n })).then((function(targetDomain) {\n var domain = targetDomain;\n var logName = \"postrobot_method\" === name && data && \"string\" == typeof data.name ? data.name + \"()\" : name;\n var promise = new promise_ZalgoPromise;\n var hash = name + \"_\" + uniqueID();\n if (!fireAndForget) {\n var responseListener = {\n name: name,\n win: win,\n domain: domain,\n promise: promise\n };\n !function(hash, listener) {\n globalStore(\"responseListeners\").set(hash, listener);\n }(hash, responseListener);\n var reqPromises = windowStore(\"requestPromises\").getOrSet(win, (function() {\n return [];\n }));\n reqPromises.push(promise);\n promise.catch((function() {\n !function(hash) {\n globalStore(\"erroredResponseListeners\").set(hash, !0);\n }(hash);\n deleteResponseListener(hash);\n }));\n var totalAckTimeout = function(win) {\n return windowStore(\"knownWindows\").get(win, !1);\n }(win) ? 1e4 : 2e3;\n var totalResTimeout = responseTimeout;\n var ackTimeout = totalAckTimeout;\n var resTimeout = totalResTimeout;\n var interval = safeInterval((function() {\n if (isWindowClosed(win)) return promise.reject(new Error(\"Window closed for \" + name + \" before \" + (responseListener.ack ? \"response\" : \"ack\")));\n if (responseListener.cancelled) return promise.reject(new Error(\"Response listener was cancelled for \" + name));\n ackTimeout = Math.max(ackTimeout - 500, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - 500, 0));\n return responseListener.ack || 0 !== ackTimeout ? 0 === resTimeout ? promise.reject(new Error(\"No response for postMessage \" + logName + \" in \" + getDomain() + \" in \" + totalResTimeout + \"ms\")) : void 0 : promise.reject(new Error(\"No ack for postMessage \" + logName + \" in \" + getDomain() + \" in \" + totalAckTimeout + \"ms\"));\n }), 500);\n promise.finally((function() {\n interval.cancel();\n reqPromises.splice(reqPromises.indexOf(promise, 1));\n })).catch(src_util_noop);\n }\n return send_sendMessage(win, domain, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_request\",\n hash: hash,\n name: name,\n data: data,\n fireAndForget: fireAndForget\n }, {\n on: on_on,\n send: send\n }).then((function() {\n return fireAndForget ? promise.resolve() : promise;\n }), (function(err) {\n throw new Error(\"Send request message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }));\n }));\n }));\n };\n function setup_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function cleanUpWindow(win) {\n for (var _i2 = 0, _requestPromises$get2 = windowStore(\"requestPromises\").get(win, []); _i2 < _requestPromises$get2.length; _i2++) _requestPromises$get2[_i2].reject(new Error(\"Window \" + (isWindowClosed(win) ? \"closed\" : \"cleaned up\") + \" before response\")).catch(src_util_noop);\n }\n var src_bridge;\n src_bridge = {\n setupBridge: setupBridge,\n openBridge: function(url, domain) {\n var bridges = globalStore(\"bridges\");\n var bridgeFrames = globalStore(\"bridgeFrames\");\n domain = domain || getDomainFromUrl(url);\n return bridges.getOrSet(domain, (function() {\n return promise_ZalgoPromise.try((function() {\n if (getDomain() === domain) throw new Error(\"Can not open bridge on the same domain as current domain: \" + domain);\n var name = getBridgeName(domain);\n if (getFrameByName(window, name)) throw new Error(\"Frame with name \" + name + \" already exists on page\");\n var iframe = function(name, url) {\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"name\", name);\n iframe.setAttribute(\"id\", name);\n iframe.setAttribute(\"style\", \"display: none; margin: 0; padding: 0; border: 0px none; overflow: hidden;\");\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"border\", \"0\");\n iframe.setAttribute(\"scrolling\", \"no\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"tabindex\", \"-1\");\n iframe.setAttribute(\"hidden\", \"true\");\n iframe.setAttribute(\"title\", \"\");\n iframe.setAttribute(\"role\", \"presentation\");\n iframe.src = url;\n return iframe;\n }(name, url);\n bridgeFrames.set(domain, iframe);\n return documentBodyReady.then((function(body) {\n body.appendChild(iframe);\n var bridge = iframe.contentWindow;\n return new promise_ZalgoPromise((function(resolve, reject) {\n iframe.addEventListener(\"load\", resolve);\n iframe.addEventListener(\"error\", reject);\n })).then((function() {\n return awaitWindowHello(bridge, 5e3, \"Bridge \" + url);\n })).then((function() {\n return bridge;\n }));\n }));\n }));\n }));\n },\n linkWindow: linkWindow,\n linkUrl: function(win, url) {\n linkWindow({\n win: win,\n domain: getDomainFromUrl(url)\n });\n },\n isBridge: isBridge,\n needsBridge: needsBridge,\n needsBridgeForBrowser: needsBridgeForBrowser,\n hasBridge: function(url, domain) {\n return globalStore(\"bridges\").has(domain || getDomainFromUrl(url));\n },\n needsBridgeForWin: needsBridgeForWin,\n needsBridgeForDomain: needsBridgeForDomain,\n destroyBridges: function() {\n var bridges = globalStore(\"bridges\");\n var bridgeFrames = globalStore(\"bridgeFrames\");\n for (var _i4 = 0, _bridgeFrames$keys2 = bridgeFrames.keys(); _i4 < _bridgeFrames$keys2.length; _i4++) {\n var frame = bridgeFrames.get(_bridgeFrames$keys2[_i4]);\n frame && frame.parentNode && frame.parentNode.removeChild(frame);\n }\n bridgeFrames.reset();\n bridges.reset();\n }\n };\n function lib_global_getGlobal(win) {\n if (!isSameDomain(win)) throw new Error(\"Can not get global for window on different domain\");\n win.__zoid_10_3_1__ || (win.__zoid_10_3_1__ = {});\n return win.__zoid_10_3_1__;\n }\n function tryGlobal(win, handler) {\n try {\n return handler(lib_global_getGlobal(win));\n } catch (err) {}\n }\n function getProxyObject(obj) {\n return {\n get: function() {\n var _this = this;\n return promise_ZalgoPromise.try((function() {\n if (_this.source && _this.source !== window) throw new Error(\"Can not call get on proxy object from a remote window\");\n return obj;\n }));\n }\n };\n }\n function basicSerialize(data) {\n return base64encode(JSON.stringify(data));\n }\n function getUIDRefStore(win) {\n var global = lib_global_getGlobal(win);\n global.references = global.references || {};\n return global.references;\n }\n function crossDomainSerialize(_ref) {\n var data = _ref.data, metaData = _ref.metaData, sender = _ref.sender, receiver = _ref.receiver, _ref$passByReference = _ref.passByReference, passByReference = void 0 !== _ref$passByReference && _ref$passByReference, _ref$basic = _ref.basic, basic = void 0 !== _ref$basic && _ref$basic;\n var proxyWin = setup_toProxyWindow(receiver.win);\n var serializedMessage = basic ? JSON.stringify(data) : serializeMessage(proxyWin, receiver.domain, data, {\n on: on_on,\n send: send_send\n });\n var reference = passByReference ? function(val) {\n var uid = uniqueID();\n getUIDRefStore(window)[uid] = val;\n return {\n type: \"uid\",\n uid: uid\n };\n }(serializedMessage) : {\n type: \"raw\",\n val: serializedMessage\n };\n return {\n serializedData: basicSerialize({\n sender: {\n domain: sender.domain\n },\n metaData: metaData,\n reference: reference\n }),\n cleanReference: function() {\n win = window, \"uid\" === (ref = reference).type && delete getUIDRefStore(win)[ref.uid];\n var win, ref;\n }\n };\n }\n function crossDomainDeserialize(_ref2) {\n var sender = _ref2.sender, _ref2$basic = _ref2.basic, basic = void 0 !== _ref2$basic && _ref2$basic;\n var message = function(serializedData) {\n return JSON.parse(function(str) {\n if (\"function\" == typeof atob) return decodeURIComponent([].map.call(atob(str), (function(c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })).join(\"\"));\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"base64\").toString(\"utf8\");\n throw new Error(\"Can not find window.atob or Buffer\");\n }(serializedData));\n }(_ref2.data);\n var reference = message.reference, metaData = message.metaData;\n var win;\n win = \"function\" == typeof sender.win ? sender.win({\n metaData: metaData\n }) : sender.win;\n var domain;\n domain = \"function\" == typeof sender.domain ? sender.domain({\n metaData: metaData\n }) : \"string\" == typeof sender.domain ? sender.domain : message.sender.domain;\n var serializedData = function(win, ref) {\n if (\"raw\" === ref.type) return ref.val;\n if (\"uid\" === ref.type) return getUIDRefStore(win)[ref.uid];\n throw new Error(\"Unsupported ref type: \" + ref.type);\n }(win, reference);\n return {\n data: basic ? JSON.parse(serializedData) : function(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }(win, domain, serializedData),\n metaData: metaData,\n sender: {\n win: win,\n domain: domain\n },\n reference: reference\n };\n }\n var PROP_TYPE = {\n STRING: \"string\",\n OBJECT: \"object\",\n FUNCTION: \"function\",\n BOOLEAN: \"boolean\",\n NUMBER: \"number\",\n ARRAY: \"array\"\n };\n var PROP_SERIALIZATION = {\n JSON: \"json\",\n DOTIFY: \"dotify\",\n BASE64: \"base64\"\n };\n var CONTEXT = WINDOW_TYPE;\n var EVENT = {\n RENDER: \"zoid-render\",\n RENDERED: \"zoid-rendered\",\n PRERENDER: \"zoid-prerender\",\n PRERENDERED: \"zoid-prerendered\",\n DISPLAY: \"zoid-display\",\n ERROR: \"zoid-error\",\n CLOSE: \"zoid-close\",\n DESTROY: \"zoid-destroy\",\n PROPS: \"zoid-props\",\n RESIZE: \"zoid-resize\",\n FOCUS: \"zoid-focus\"\n };\n function buildChildWindowName(_ref) {\n return \"__zoid__\" + _ref.name + \"__\" + _ref.serializedPayload + \"__\";\n }\n function parseWindowName(windowName) {\n if (!windowName) throw new Error(\"No window name\");\n var _windowName$split = windowName.split(\"__\"), zoidcomp = _windowName$split[1], name = _windowName$split[2], serializedInitialPayload = _windowName$split[3];\n if (\"zoid\" !== zoidcomp) throw new Error(\"Window not rendered by zoid - got \" + zoidcomp);\n if (!name) throw new Error(\"Expected component name\");\n if (!serializedInitialPayload) throw new Error(\"Expected serialized payload ref\");\n return {\n name: name,\n serializedInitialPayload: serializedInitialPayload\n };\n }\n var parseInitialParentPayload = memoize((function(windowName) {\n var _crossDomainDeseriali = crossDomainDeserialize({\n data: parseWindowName(windowName).serializedInitialPayload,\n sender: {\n win: function(_ref2) {\n return function(windowRef) {\n if (\"opener\" === windowRef.type) return assertExists(\"opener\", getOpener(window));\n if (\"parent\" === windowRef.type && \"number\" == typeof windowRef.distance) return assertExists(\"parent\", function(win, n) {\n void 0 === n && (n = 1);\n return function(win, n) {\n void 0 === n && (n = 1);\n var parent = win;\n for (var i = 0; i < n; i++) {\n if (!parent) return;\n parent = utils_getParent(parent);\n }\n return parent;\n }(win, getDistanceFromTop(win) - n);\n }(window, windowRef.distance));\n if (\"global\" === windowRef.type && windowRef.uid && \"string\" == typeof windowRef.uid) {\n var uid = windowRef.uid;\n var ancestor = getAncestor(window);\n if (!ancestor) throw new Error(\"Can not find ancestor window\");\n for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(ancestor); _i2 < _getAllFramesInWindow2.length; _i2++) {\n var frame = _getAllFramesInWindow2[_i2];\n if (isSameDomain(frame)) {\n var win = tryGlobal(frame, (function(global) {\n return global.windows && global.windows[uid];\n }));\n if (win) return win;\n }\n }\n } else if (\"name\" === windowRef.type) {\n var name = windowRef.name;\n return assertExists(\"namedWindow\", function(win, name) {\n return getFrameByName(win, name) || function findChildFrameByName(win, name) {\n var frame = getFrameByName(win, name);\n if (frame) return frame;\n for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) {\n var namedFrame = findChildFrameByName(_getFrames4[_i11], name);\n if (namedFrame) return namedFrame;\n }\n }(getTop(win) || win, name);\n }(assertExists(\"ancestor\", getAncestor(window)), name));\n }\n throw new Error(\"Unable to find \" + windowRef.type + \" parent component window\");\n }(_ref2.metaData.windowRef);\n }\n }\n });\n return {\n parent: _crossDomainDeseriali.sender,\n payload: _crossDomainDeseriali.data,\n reference: _crossDomainDeseriali.reference\n };\n }));\n function getInitialParentPayload() {\n return parseInitialParentPayload(window.name);\n }\n function window_getWindowRef(targetWindow, currentWindow) {\n void 0 === currentWindow && (currentWindow = window);\n if (targetWindow === utils_getParent(currentWindow)) return {\n type: \"parent\",\n distance: getDistanceFromTop(targetWindow)\n };\n if (targetWindow === getOpener(currentWindow)) return {\n type: \"opener\"\n };\n if (isSameDomain(targetWindow) && !(win = targetWindow, win === getTop(win))) {\n var windowName = assertSameDomain(targetWindow).name;\n if (windowName) return {\n type: \"name\",\n name: windowName\n };\n }\n var win;\n }\n function normalizeChildProp(propsDef, props, key, value, helpers) {\n if (!propsDef.hasOwnProperty(key)) return value;\n var prop = propsDef[key];\n return \"function\" == typeof prop.childDecorate ? prop.childDecorate({\n value: value,\n uid: helpers.uid,\n tag: helpers.tag,\n close: helpers.close,\n focus: helpers.focus,\n onError: helpers.onError,\n onProps: helpers.onProps,\n resize: helpers.resize,\n getParent: helpers.getParent,\n getParentDomain: helpers.getParentDomain,\n show: helpers.show,\n hide: helpers.hide,\n export: helpers.export,\n getSiblings: helpers.getSiblings\n }) : value;\n }\n function child_focus() {\n return promise_ZalgoPromise.try((function() {\n window.focus();\n }));\n }\n function child_destroy() {\n return promise_ZalgoPromise.try((function() {\n window.close();\n }));\n }\n var props_defaultNoop = function() {\n return src_util_noop;\n };\n var props_decorateOnce = function(_ref) {\n return once(_ref.value);\n };\n function eachProp(props, propsDef, handler) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(_extends({}, props, propsDef)); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n handler(key, propsDef[key], props[key]);\n }\n }\n function serializeProps(propsDef, props, method) {\n var params = {};\n return promise_ZalgoPromise.all(function(props, propsDef, handler) {\n var results = [];\n eachProp(props, propsDef, (function(key, propDef, value) {\n var result = function(key, propDef, value) {\n return promise_ZalgoPromise.resolve().then((function() {\n var _METHOD$GET$METHOD$PO, _METHOD$GET$METHOD$PO2;\n if (null != value && propDef) {\n var getParam = (_METHOD$GET$METHOD$PO = {}, _METHOD$GET$METHOD$PO.get = propDef.queryParam, \n _METHOD$GET$METHOD$PO.post = propDef.bodyParam, _METHOD$GET$METHOD$PO)[method];\n var getValue = (_METHOD$GET$METHOD$PO2 = {}, _METHOD$GET$METHOD$PO2.get = propDef.queryValue, \n _METHOD$GET$METHOD$PO2.post = propDef.bodyValue, _METHOD$GET$METHOD$PO2)[method];\n if (getParam) return promise_ZalgoPromise.hash({\n finalParam: promise_ZalgoPromise.try((function() {\n return \"function\" == typeof getParam ? getParam({\n value: value\n }) : \"string\" == typeof getParam ? getParam : key;\n })),\n finalValue: promise_ZalgoPromise.try((function() {\n return \"function\" == typeof getValue && isDefined(value) ? getValue({\n value: value\n }) : value;\n }))\n }).then((function(_ref) {\n var finalParam = _ref.finalParam, finalValue = _ref.finalValue;\n var result;\n if (\"boolean\" == typeof finalValue) result = finalValue.toString(); else if (\"string\" == typeof finalValue) result = finalValue.toString(); else if (\"object\" == typeof finalValue && null !== finalValue) {\n if (propDef.serialization === PROP_SERIALIZATION.JSON) result = JSON.stringify(finalValue); else if (propDef.serialization === PROP_SERIALIZATION.BASE64) result = base64encode(JSON.stringify(finalValue)); else if (propDef.serialization === PROP_SERIALIZATION.DOTIFY || !propDef.serialization) {\n result = function dotify(obj, prefix, newobj) {\n void 0 === prefix && (prefix = \"\");\n void 0 === newobj && (newobj = {});\n prefix = prefix ? prefix + \".\" : prefix;\n for (var key in obj) obj.hasOwnProperty(key) && null != obj[key] && \"function\" != typeof obj[key] && (obj[key] && Array.isArray(obj[key]) && obj[key].length && obj[key].every((function(val) {\n return \"object\" != typeof val;\n })) ? newobj[\"\" + prefix + key + \"[]\"] = obj[key].join(\",\") : obj[key] && \"object\" == typeof obj[key] ? newobj = dotify(obj[key], \"\" + prefix + key, newobj) : newobj[\"\" + prefix + key] = obj[key].toString());\n return newobj;\n }(finalValue, key);\n for (var _i2 = 0, _Object$keys2 = Object.keys(result); _i2 < _Object$keys2.length; _i2++) {\n var dotkey = _Object$keys2[_i2];\n params[dotkey] = result[dotkey];\n }\n return;\n }\n } else \"number\" == typeof finalValue && (result = finalValue.toString());\n params[finalParam] = result;\n }));\n }\n }));\n }(key, propDef, value);\n results.push(result);\n }));\n return results;\n }(props, propsDef)).then((function() {\n return params;\n }));\n }\n function parentComponent(_ref) {\n var uid = _ref.uid, options = _ref.options, _ref$overrides = _ref.overrides, overrides = void 0 === _ref$overrides ? {} : _ref$overrides, _ref$parentWin = _ref.parentWin, parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin;\n var propsDef = options.propsDef, containerTemplate = options.containerTemplate, prerenderTemplate = options.prerenderTemplate, tag = options.tag, name = options.name, attributes = options.attributes, dimensions = options.dimensions, autoResize = options.autoResize, url = options.url, domainMatch = options.domain, xports = options.exports;\n var initPromise = new promise_ZalgoPromise;\n var handledErrors = [];\n var clean = cleanup();\n var state = {};\n var inputProps = {};\n var internalState = {\n visible: !0\n };\n var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, \n emitter = {\n on: function(eventName, handler) {\n var handlerList = handlers[eventName] = handlers[eventName] || [];\n handlerList.push(handler);\n var cancelled = !1;\n return {\n cancel: function() {\n if (!cancelled) {\n cancelled = !0;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n }\n };\n },\n once: function(eventName, handler) {\n var listener = emitter.on(eventName, (function() {\n listener.cancel();\n handler();\n }));\n return listener;\n },\n trigger: function(eventName) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3];\n var handlerList = handlers[eventName];\n var promises = [];\n if (handlerList) {\n var _loop = function() {\n var handler = handlerList[_i2];\n promises.push(promise_ZalgoPromise.try((function() {\n return handler.apply(void 0, args);\n })));\n };\n for (var _i2 = 0; _i2 < handlerList.length; _i2++) _loop();\n }\n return promise_ZalgoPromise.all(promises).then(src_util_noop);\n },\n triggerOnce: function(eventName) {\n if (triggered[eventName]) return promise_ZalgoPromise.resolve();\n triggered[eventName] = !0;\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) args[_key4 - 1] = arguments[_key4];\n return emitter.trigger.apply(emitter, [ eventName ].concat(args));\n },\n reset: function() {\n handlers = {};\n }\n });\n var triggered, handlers, emitter;\n var props = overrides.props ? overrides.props : {};\n var currentProxyWin;\n var currentProxyContainer;\n var childComponent;\n var currentChildDomain;\n var currentContainer;\n var onErrorOverride = overrides.onError;\n var getProxyContainerOverride = overrides.getProxyContainer;\n var showOverride = overrides.show;\n var hideOverride = overrides.hide;\n var closeOverride = overrides.close;\n var renderContainerOverride = overrides.renderContainer;\n var getProxyWindowOverride = overrides.getProxyWindow;\n var setProxyWinOverride = overrides.setProxyWin;\n var openFrameOverride = overrides.openFrame;\n var openPrerenderFrameOverride = overrides.openPrerenderFrame;\n var prerenderOverride = overrides.prerender;\n var openOverride = overrides.open;\n var openPrerenderOverride = overrides.openPrerender;\n var watchForUnloadOverride = overrides.watchForUnload;\n var getInternalStateOverride = overrides.getInternalState;\n var setInternalStateOverride = overrides.setInternalState;\n var getDimensions = function() {\n return \"function\" == typeof dimensions ? dimensions({\n props: props\n }) : dimensions;\n };\n var resolveInitPromise = function() {\n return promise_ZalgoPromise.try((function() {\n return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve();\n }));\n };\n var rejectInitPromise = function(err) {\n return promise_ZalgoPromise.try((function() {\n return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err);\n }));\n };\n var getPropsForChild = function(initialChildDomain) {\n var result = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var prop = propsDef[key];\n if (!prop || !1 !== prop.sendToChild) {\n var trustedChild = prop && prop.trustedDomains && prop.trustedDomains.length > 0 ? prop.trustedDomains.reduce((function(acc, val) {\n return acc || matchDomain(val, initialChildDomain);\n }), !1) : matchDomain(initialChildDomain, getDomain(window));\n prop && prop.sameDomain && !trustedChild || prop && prop.trustedDomains && !trustedChild || (result[key] = props[key]);\n }\n }\n return promise_ZalgoPromise.hash(result);\n };\n var getInternalState = function() {\n return promise_ZalgoPromise.try((function() {\n return getInternalStateOverride ? getInternalStateOverride() : internalState;\n }));\n };\n var setInternalState = function(newInternalState) {\n return promise_ZalgoPromise.try((function() {\n return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState);\n }));\n };\n var getProxyWindow = function() {\n return getProxyWindowOverride ? getProxyWindowOverride() : promise_ZalgoPromise.try((function() {\n var windowProp = props.window;\n if (windowProp) {\n var _proxyWin = setup_toProxyWindow(windowProp);\n clean.register((function() {\n return windowProp.close();\n }));\n return _proxyWin;\n }\n return new window_ProxyWindow({\n send: send_send\n });\n }));\n };\n var setProxyWin = function(proxyWin) {\n return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise.try((function() {\n currentProxyWin = proxyWin;\n }));\n };\n var show = function() {\n return showOverride ? showOverride() : promise_ZalgoPromise.hash({\n setState: setInternalState({\n visible: !0\n }),\n showElement: currentProxyContainer ? currentProxyContainer.get().then(showElement) : null\n }).then(src_util_noop);\n };\n var hide = function() {\n return hideOverride ? hideOverride() : promise_ZalgoPromise.hash({\n setState: setInternalState({\n visible: !1\n }),\n showElement: currentProxyContainer ? currentProxyContainer.get().then(hideElement) : null\n }).then(src_util_noop);\n };\n var getUrl = function() {\n return \"function\" == typeof url ? url({\n props: props\n }) : url;\n };\n var getAttributes = function() {\n return \"function\" == typeof attributes ? attributes({\n props: props\n }) : attributes;\n };\n var getInitialChildDomain = function() {\n return getDomainFromUrl(getUrl());\n };\n var openFrame = function(context, _ref2) {\n var windowName = _ref2.windowName;\n return openFrameOverride ? openFrameOverride(context, {\n windowName: windowName\n }) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({\n attributes: _extends({\n name: windowName,\n title: name\n }, getAttributes().iframe)\n }));\n }));\n };\n var openPrerenderFrame = function(context) {\n return openPrerenderFrameOverride ? openPrerenderFrameOverride(context) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({\n attributes: _extends({\n name: \"__zoid_prerender_frame__\" + name + \"_\" + uniqueID() + \"__\",\n title: \"prerender__\" + name\n }, getAttributes().iframe)\n }));\n }));\n };\n var openPrerender = function(context, proxyWin, proxyPrerenderFrame) {\n return openPrerenderOverride ? openPrerenderOverride(context, proxyWin, proxyPrerenderFrame) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) {\n if (!proxyPrerenderFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyPrerenderFrame.get().then((function(prerenderFrame) {\n clean.register((function() {\n return destroyElement(prerenderFrame);\n }));\n return awaitFrameWindow(prerenderFrame).then((function(prerenderFrameWindow) {\n return assertSameDomain(prerenderFrameWindow);\n })).then((function(win) {\n return setup_toProxyWindow(win);\n }));\n }));\n }\n if (context === CONTEXT.POPUP) return proxyWin;\n throw new Error(\"No render context available for \" + context);\n }));\n };\n var focus = function() {\n return promise_ZalgoPromise.try((function() {\n if (currentProxyWin) return promise_ZalgoPromise.all([ event.trigger(EVENT.FOCUS), currentProxyWin.focus() ]).then(src_util_noop);\n }));\n };\n var getCurrentWindowReferenceUID = function() {\n var global = lib_global_getGlobal(window);\n global.windows = global.windows || {};\n global.windows[uid] = window;\n clean.register((function() {\n delete global.windows[uid];\n }));\n return uid;\n };\n var getWindowRef = function(target, initialChildDomain, context, proxyWin) {\n if (initialChildDomain === getDomain(window)) return {\n type: \"global\",\n uid: getCurrentWindowReferenceUID()\n };\n if (target !== window) throw new Error(\"Can not construct cross-domain window reference for different target window\");\n if (props.window) {\n var actualComponentWindow = proxyWin.getWindow();\n if (!actualComponentWindow) throw new Error(\"Can not construct cross-domain window reference for lazy window prop\");\n if (getAncestor(actualComponentWindow) !== window) throw new Error(\"Can not construct cross-domain window reference for window prop with different ancestor\");\n }\n if (context === CONTEXT.POPUP) return {\n type: \"opener\"\n };\n if (context === CONTEXT.IFRAME) return {\n type: \"parent\",\n distance: getDistanceFromTop(window)\n };\n throw new Error(\"Can not construct window reference for child\");\n };\n var initChild = function(childDomain, childExports) {\n return promise_ZalgoPromise.try((function() {\n currentChildDomain = childDomain;\n childComponent = childExports;\n resolveInitPromise();\n clean.register((function() {\n return childExports.close.fireAndForget().catch(src_util_noop);\n }));\n }));\n };\n var resize = function(_ref3) {\n var width = _ref3.width, height = _ref3.height;\n return promise_ZalgoPromise.try((function() {\n event.trigger(EVENT.RESIZE, {\n width: width,\n height: height\n });\n }));\n };\n var destroy = function(err) {\n return promise_ZalgoPromise.try((function() {\n return event.trigger(EVENT.DESTROY);\n })).catch(src_util_noop).then((function() {\n return clean.all(err);\n })).then((function() {\n var error = err || new Error(\"Component destroyed\");\n currentContainer && isElementClosed(currentContainer) || \"Window navigated away\" === error.message ? initPromise.resolve() : initPromise.asyncReject(error);\n }));\n };\n var close = memoize((function(err) {\n return promise_ZalgoPromise.try((function() {\n if (closeOverride) {\n if (isWindowClosed(closeOverride.__source__)) return;\n return closeOverride();\n }\n return promise_ZalgoPromise.try((function() {\n return event.trigger(EVENT.CLOSE);\n })).then((function() {\n return destroy(err || new Error(\"Component closed\"));\n }));\n }));\n }));\n var open = function(context, _ref4) {\n var proxyWin = _ref4.proxyWin, proxyFrame = _ref4.proxyFrame, windowName = _ref4.windowName;\n return openOverride ? openOverride(context, {\n proxyWin: proxyWin,\n proxyFrame: proxyFrame,\n windowName: windowName\n }) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) {\n if (!proxyFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyFrame.get().then((function(frame) {\n return awaitFrameWindow(frame).then((function(win) {\n clean.register((function() {\n return destroyElement(frame);\n }));\n clean.register((function() {\n return cleanUpWindow(win);\n }));\n return win;\n }));\n }));\n }\n if (context === CONTEXT.POPUP) {\n var _getDimensions = getDimensions(), _getDimensions$width = _getDimensions.width, width = void 0 === _getDimensions$width ? \"300px\" : _getDimensions$width, _getDimensions$height = _getDimensions.height, height = void 0 === _getDimensions$height ? \"150px\" : _getDimensions$height;\n width = normalizeDimension(width, window.outerWidth);\n height = normalizeDimension(height, window.outerWidth);\n var win = function(url, options) {\n var _options$closeOnUnloa = (options = options || {}).closeOnUnload, closeOnUnload = void 0 === _options$closeOnUnloa ? 1 : _options$closeOnUnloa, _options$name = options.name, name = void 0 === _options$name ? \"\" : _options$name, width = options.width, height = options.height;\n var top = 0;\n var left = 0;\n width && (window.outerWidth ? left = Math.round((window.outerWidth - width) / 2) + window.screenX : window.screen.width && (left = Math.round((window.screen.width - width) / 2)));\n height && (window.outerHeight ? top = Math.round((window.outerHeight - height) / 2) + window.screenY : window.screen.height && (top = Math.round((window.screen.height - height) / 2)));\n delete options.closeOnUnload;\n delete options.name;\n width && height && (options = _extends({\n top: top,\n left: left,\n width: width,\n height: height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1\n }, options));\n var params = Object.keys(options).map((function(key) {\n if (null != options[key]) return key + \"=\" + stringify(options[key]);\n })).filter(Boolean).join(\",\");\n var win;\n try {\n win = window.open(\"\", name, params);\n } catch (err) {\n throw new dom_PopupOpenError(\"Can not open popup window - \" + (err.stack || err.message));\n }\n if (isWindowClosed(win)) {\n var err;\n throw new dom_PopupOpenError(\"Can not open popup window - blocked\");\n }\n closeOnUnload && window.addEventListener(\"unload\", (function() {\n return win.close();\n }));\n return win;\n }(0, _extends({\n name: windowName,\n width: width,\n height: height\n }, getAttributes().popup));\n clean.register((function() {\n return closeWindow(win);\n }));\n clean.register((function() {\n return cleanUpWindow(win);\n }));\n return win;\n }\n throw new Error(\"No render context available for \" + context);\n })).then((function(win) {\n proxyWin.setWindow(win, {\n send: send_send\n });\n return proxyWin.setName(windowName).then((function() {\n return proxyWin;\n }));\n }));\n };\n var watchForUnload = function() {\n return promise_ZalgoPromise.try((function() {\n var unloadWindowListener = addEventListener(window, \"unload\", once((function() {\n destroy(new Error(\"Window navigated away\"));\n })));\n var closeParentWindowListener = onCloseWindow(parentWin, destroy, 3e3);\n clean.register(closeParentWindowListener.cancel);\n clean.register(unloadWindowListener.cancel);\n if (watchForUnloadOverride) return watchForUnloadOverride();\n }));\n };\n var checkWindowClose = function(proxyWin) {\n var closed = !1;\n return proxyWin.isClosed().then((function(isClosed) {\n if (isClosed) {\n closed = !0;\n return close(new Error(\"Detected component window close\"));\n }\n return promise_ZalgoPromise.delay(200).then((function() {\n return proxyWin.isClosed();\n })).then((function(secondIsClosed) {\n if (secondIsClosed) {\n closed = !0;\n return close(new Error(\"Detected component window close\"));\n }\n }));\n })).then((function() {\n return closed;\n }));\n };\n var onError = function(err) {\n return onErrorOverride ? onErrorOverride(err) : promise_ZalgoPromise.try((function() {\n if (-1 === handledErrors.indexOf(err)) {\n handledErrors.push(err);\n initPromise.asyncReject(err);\n return event.trigger(EVENT.ERROR, err);\n }\n }));\n };\n var exportsPromise = new promise_ZalgoPromise;\n var xport = function(actualExports) {\n return promise_ZalgoPromise.try((function() {\n exportsPromise.resolve(actualExports);\n }));\n };\n initChild.onError = onError;\n var renderTemplate = function(renderer, _ref8) {\n return renderer({\n uid: uid,\n container: _ref8.container,\n context: _ref8.context,\n doc: _ref8.doc,\n frame: _ref8.frame,\n prerenderFrame: _ref8.prerenderFrame,\n focus: focus,\n close: close,\n state: state,\n props: props,\n tag: tag,\n dimensions: getDimensions(),\n event: event\n });\n };\n var prerender = function(proxyPrerenderWin, _ref9) {\n var context = _ref9.context;\n return prerenderOverride ? prerenderOverride(proxyPrerenderWin, {\n context: context\n }) : promise_ZalgoPromise.try((function() {\n if (prerenderTemplate) {\n event.trigger(EVENT.PRERENDER);\n var prerenderWindow = proxyPrerenderWin.getWindow();\n if (prerenderWindow && isSameDomain(prerenderWindow) && function(win) {\n try {\n if (!win.location.href) return !0;\n if (\"about:blank\" === win.location.href) return !0;\n } catch (err) {}\n return !1;\n }(prerenderWindow)) {\n var doc = (prerenderWindow = assertSameDomain(prerenderWindow)).document;\n var el = renderTemplate(prerenderTemplate, {\n context: context,\n doc: doc\n });\n if (el) {\n if (el.ownerDocument !== doc) throw new Error(\"Expected prerender template to have been created with document from child window\");\n !function(win, el) {\n var tag = el.tagName.toLowerCase();\n if (\"html\" !== tag) throw new Error(\"Expected element to be html, got \" + tag);\n var documentElement = win.document.documentElement;\n for (var _i6 = 0, _arrayFrom2 = arrayFrom(documentElement.children); _i6 < _arrayFrom2.length; _i6++) documentElement.removeChild(_arrayFrom2[_i6]);\n for (var _i8 = 0, _arrayFrom4 = arrayFrom(el.children); _i8 < _arrayFrom4.length; _i8++) documentElement.appendChild(_arrayFrom4[_i8]);\n }(prerenderWindow, el);\n var _autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, _autoResize$element = autoResize.element, element = void 0 === _autoResize$element ? \"body\" : _autoResize$element;\n if ((element = getElementSafe(element, doc)) && (width || height)) {\n var prerenderResizeListener = onResize(element, (function(_ref10) {\n resize({\n width: width ? _ref10.width : void 0,\n height: height ? _ref10.height : void 0\n });\n }), {\n width: width,\n height: height,\n win: prerenderWindow\n });\n event.on(EVENT.RENDERED, prerenderResizeListener.cancel);\n }\n event.trigger(EVENT.PRERENDERED);\n }\n }\n }\n }));\n };\n var renderContainer = function(proxyContainer, _ref11) {\n var proxyFrame = _ref11.proxyFrame, proxyPrerenderFrame = _ref11.proxyPrerenderFrame, context = _ref11.context, rerender = _ref11.rerender;\n return renderContainerOverride ? renderContainerOverride(proxyContainer, {\n proxyFrame: proxyFrame,\n proxyPrerenderFrame: proxyPrerenderFrame,\n context: context,\n rerender: rerender\n }) : promise_ZalgoPromise.hash({\n container: proxyContainer.get(),\n frame: proxyFrame ? proxyFrame.get() : null,\n prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null,\n internalState: getInternalState()\n }).then((function(_ref12) {\n var container = _ref12.container, visible = _ref12.internalState.visible;\n var innerContainer = renderTemplate(containerTemplate, {\n context: context,\n container: container,\n frame: _ref12.frame,\n prerenderFrame: _ref12.prerenderFrame,\n doc: document\n });\n if (innerContainer) {\n visible || hideElement(innerContainer);\n appendChild(container, innerContainer);\n var containerWatcher = function(element, handler) {\n handler = once(handler);\n var cancelled = !1;\n var mutationObservers = [];\n var interval;\n var sacrificialFrame;\n var sacrificialFrameWin;\n var cancel = function() {\n cancelled = !0;\n for (var _i18 = 0; _i18 < mutationObservers.length; _i18++) mutationObservers[_i18].disconnect();\n interval && interval.cancel();\n sacrificialFrameWin && sacrificialFrameWin.removeEventListener(\"unload\", elementClosed);\n sacrificialFrame && destroyElement(sacrificialFrame);\n };\n var elementClosed = function() {\n if (!cancelled) {\n handler();\n cancel();\n }\n };\n if (isElementClosed(element)) {\n elementClosed();\n return {\n cancel: cancel\n };\n }\n if (window.MutationObserver) {\n var mutationElement = element.parentElement;\n for (;mutationElement; ) {\n var mutationObserver = new window.MutationObserver((function() {\n isElementClosed(element) && elementClosed();\n }));\n mutationObserver.observe(mutationElement, {\n childList: !0\n });\n mutationObservers.push(mutationObserver);\n mutationElement = mutationElement.parentElement;\n }\n }\n (sacrificialFrame = document.createElement(\"iframe\")).setAttribute(\"name\", \"__detect_close_\" + uniqueID() + \"__\");\n sacrificialFrame.style.display = \"none\";\n awaitFrameWindow(sacrificialFrame).then((function(frameWin) {\n (sacrificialFrameWin = assertSameDomain(frameWin)).addEventListener(\"unload\", elementClosed);\n }));\n element.appendChild(sacrificialFrame);\n interval = safeInterval((function() {\n isElementClosed(element) && elementClosed();\n }), 1e3);\n return {\n cancel: cancel\n };\n }(innerContainer, (function() {\n var removeError = new Error(\"Detected container element removed from DOM\");\n return promise_ZalgoPromise.delay(1).then((function() {\n if (!isElementClosed(innerContainer)) {\n clean.all(removeError);\n return rerender().then(resolveInitPromise, rejectInitPromise);\n }\n close(removeError);\n }));\n }));\n clean.register((function() {\n return containerWatcher.cancel();\n }));\n clean.register((function() {\n return destroyElement(innerContainer);\n }));\n return currentProxyContainer = getProxyObject(innerContainer);\n }\n }));\n };\n var getHelpers = function() {\n return {\n state: state,\n event: event,\n close: close,\n focus: focus,\n resize: resize,\n onError: onError,\n updateProps: updateProps,\n show: show,\n hide: hide\n };\n };\n var setProps = function(newInputProps) {\n void 0 === newInputProps && (newInputProps = {});\n var container = currentContainer;\n var helpers = getHelpers();\n extend(inputProps, newInputProps);\n !function(propsDef, existingProps, inputProps, helpers, container) {\n var state = helpers.state, close = helpers.close, focus = helpers.focus, event = helpers.event, onError = helpers.onError;\n eachProp(inputProps, propsDef, (function(key, propDef, val) {\n var valueDetermined = !1;\n var value = val;\n Object.defineProperty(existingProps, key, {\n configurable: !0,\n enumerable: !0,\n get: function() {\n if (valueDetermined) return value;\n valueDetermined = !0;\n return function() {\n if (!propDef) return value;\n var alias = propDef.alias;\n alias && !isDefined(val) && isDefined(inputProps[alias]) && (value = inputProps[alias]);\n propDef.value && (value = propDef.value({\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n !propDef.default || isDefined(value) || isDefined(inputProps[key]) || (value = propDef.default({\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n if (isDefined(value)) {\n if (propDef.type === PROP_TYPE.ARRAY ? !Array.isArray(value) : typeof value !== propDef.type) throw new TypeError(\"Prop is not of type \" + propDef.type + \": \" + key);\n } else if (!1 !== propDef.required && !isDefined(inputProps[key])) throw new Error('Expected prop \"' + key + '\" to be defined');\n isDefined(value) && propDef.decorate && (value = propDef.decorate({\n value: value,\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n return value;\n }();\n }\n });\n }));\n eachProp(existingProps, propsDef, src_util_noop);\n }(propsDef, props, inputProps, helpers, container);\n };\n var updateProps = function(newProps) {\n setProps(newProps);\n return initPromise.then((function() {\n var child = childComponent;\n var proxyWin = currentProxyWin;\n if (child && proxyWin && currentChildDomain) return getPropsForChild(currentChildDomain).then((function(childProps) {\n return child.updateProps(childProps).catch((function(err) {\n return checkWindowClose(proxyWin).then((function(closed) {\n if (!closed) throw err;\n }));\n }));\n }));\n }));\n };\n var getProxyContainer = function(container) {\n return getProxyContainerOverride ? getProxyContainerOverride(container) : promise_ZalgoPromise.try((function() {\n return elementReady(container);\n })).then((function(containerElement) {\n isShadowElement(containerElement) && (containerElement = function insertShadowSlot(element) {\n var shadowHost = function(element) {\n var shadowRoot = function(element) {\n for (;element.parentNode; ) element = element.parentNode;\n if (isShadowElement(element)) return element;\n }(element);\n if (shadowRoot && shadowRoot.host) return shadowRoot.host;\n }(element);\n if (!shadowHost) throw new Error(\"Element is not in shadow dom\");\n var slotName = \"shadow-slot-\" + uniqueID();\n var slot = document.createElement(\"slot\");\n slot.setAttribute(\"name\", slotName);\n element.appendChild(slot);\n var slotProvider = document.createElement(\"div\");\n slotProvider.setAttribute(\"slot\", slotName);\n shadowHost.appendChild(slotProvider);\n return isShadowElement(shadowHost) ? insertShadowSlot(slotProvider) : slotProvider;\n }(containerElement));\n currentContainer = containerElement;\n return getProxyObject(containerElement);\n }));\n };\n return {\n init: function() {\n !function() {\n event.on(EVENT.RENDER, (function() {\n return props.onRender();\n }));\n event.on(EVENT.PRERENDER, (function() {\n return props.onPrerender();\n }));\n event.on(EVENT.DISPLAY, (function() {\n return props.onDisplay();\n }));\n event.on(EVENT.RENDERED, (function() {\n return props.onRendered();\n }));\n event.on(EVENT.PRERENDERED, (function() {\n return props.onPrerendered();\n }));\n event.on(EVENT.CLOSE, (function() {\n return props.onClose();\n }));\n event.on(EVENT.DESTROY, (function() {\n return props.onDestroy();\n }));\n event.on(EVENT.RESIZE, (function() {\n return props.onResize();\n }));\n event.on(EVENT.FOCUS, (function() {\n return props.onFocus();\n }));\n event.on(EVENT.PROPS, (function(newProps) {\n return props.onProps(newProps);\n }));\n event.on(EVENT.ERROR, (function(err) {\n return props && props.onError ? props.onError(err) : rejectInitPromise(err).then((function() {\n setTimeout((function() {\n throw err;\n }), 1);\n }));\n }));\n clean.register(event.reset);\n }();\n },\n render: function(_ref14) {\n var target = _ref14.target, container = _ref14.container, context = _ref14.context, rerender = _ref14.rerender;\n return promise_ZalgoPromise.try((function() {\n var initialChildDomain = getInitialChildDomain();\n var childDomainMatch = domainMatch || getInitialChildDomain();\n !function(target, childDomainMatch, container) {\n if (target !== window) {\n if (!isSameTopWindow(window, target)) throw new Error(\"Can only renderTo an adjacent frame\");\n var origin = getDomain();\n if (!matchDomain(childDomainMatch, origin) && !isSameDomain(target)) throw new Error(\"Can not render remotely to \" + childDomainMatch.toString() + \" - can only render to \" + origin);\n if (container && \"string\" != typeof container) throw new Error(\"Container passed to renderTo must be a string selector, got \" + typeof container + \" }\");\n }\n }(target, childDomainMatch, container);\n var delegatePromise = promise_ZalgoPromise.try((function() {\n if (target !== window) return function(context, target) {\n var delegateProps = {};\n for (var _i4 = 0, _Object$keys4 = Object.keys(props); _i4 < _Object$keys4.length; _i4++) {\n var propName = _Object$keys4[_i4];\n var propDef = propsDef[propName];\n propDef && propDef.allowDelegate && (delegateProps[propName] = props[propName]);\n }\n var childOverridesPromise = send_send(target, \"zoid_delegate_\" + name, {\n uid: uid,\n overrides: {\n props: delegateProps,\n event: event,\n close: close,\n onError: onError,\n getInternalState: getInternalState,\n setInternalState: setInternalState,\n resolveInitPromise: resolveInitPromise,\n rejectInitPromise: rejectInitPromise\n }\n }).then((function(_ref13) {\n var parentComp = _ref13.data.parent;\n clean.register((function(err) {\n if (!isWindowClosed(target)) return parentComp.destroy(err);\n }));\n return parentComp.getDelegateOverrides();\n })).catch((function(err) {\n throw new Error(\"Unable to delegate rendering. Possibly the component is not loaded in the target window.\\n\\n\" + stringifyError(err));\n }));\n getProxyContainerOverride = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.getProxyContainer.apply(childOverrides, args);\n }));\n };\n renderContainerOverride = function() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.renderContainer.apply(childOverrides, args);\n }));\n };\n showOverride = function() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) args[_key3] = arguments[_key3];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.show.apply(childOverrides, args);\n }));\n };\n hideOverride = function() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.hide.apply(childOverrides, args);\n }));\n };\n watchForUnloadOverride = function() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) args[_key5] = arguments[_key5];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.watchForUnload.apply(childOverrides, args);\n }));\n };\n if (context === CONTEXT.IFRAME) {\n getProxyWindowOverride = function() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) args[_key6] = arguments[_key6];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.getProxyWindow.apply(childOverrides, args);\n }));\n };\n openFrameOverride = function() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) args[_key7] = arguments[_key7];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openFrame.apply(childOverrides, args);\n }));\n };\n openPrerenderFrameOverride = function() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) args[_key8] = arguments[_key8];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openPrerenderFrame.apply(childOverrides, args);\n }));\n };\n prerenderOverride = function() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) args[_key9] = arguments[_key9];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.prerender.apply(childOverrides, args);\n }));\n };\n openOverride = function() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) args[_key10] = arguments[_key10];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.open.apply(childOverrides, args);\n }));\n };\n openPrerenderOverride = function() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) args[_key11] = arguments[_key11];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openPrerender.apply(childOverrides, args);\n }));\n };\n } else context === CONTEXT.POPUP && (setProxyWinOverride = function() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) args[_key12] = arguments[_key12];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.setProxyWin.apply(childOverrides, args);\n }));\n });\n return childOverridesPromise;\n }(context, target);\n }));\n var windowProp = props.window;\n var watchForUnloadPromise = watchForUnload();\n var buildBodyPromise = serializeProps(propsDef, props, \"post\");\n var onRenderPromise = event.trigger(EVENT.RENDER);\n var getProxyContainerPromise = getProxyContainer(container);\n var getProxyWindowPromise = getProxyWindow();\n var finalSetPropsPromise = getProxyContainerPromise.then((function() {\n return setProps();\n }));\n var buildUrlPromise = finalSetPropsPromise.then((function() {\n return serializeProps(propsDef, props, \"get\").then((function(query) {\n return function(url, options) {\n var query = options.query || {};\n var hash = options.hash || {};\n var originalUrl;\n var originalHash;\n var _url$split = url.split(\"#\");\n originalHash = _url$split[1];\n var _originalUrl$split = (originalUrl = _url$split[0]).split(\"?\");\n originalUrl = _originalUrl$split[0];\n var queryString = extendQuery(_originalUrl$split[1], query);\n var hashString = extendQuery(originalHash, hash);\n queryString && (originalUrl = originalUrl + \"?\" + queryString);\n hashString && (originalUrl = originalUrl + \"#\" + hashString);\n return originalUrl;\n }(normalizeMockUrl(getUrl()), {\n query: query\n });\n }));\n }));\n var buildWindowNamePromise = getProxyWindowPromise.then((function(proxyWin) {\n return function(_temp2) {\n var _ref6 = void 0 === _temp2 ? {} : _temp2, proxyWin = _ref6.proxyWin, initialChildDomain = _ref6.initialChildDomain, childDomainMatch = _ref6.childDomainMatch, _ref6$target = _ref6.target, target = void 0 === _ref6$target ? window : _ref6$target, context = _ref6.context;\n return function(_temp) {\n var _ref5 = void 0 === _temp ? {} : _temp, proxyWin = _ref5.proxyWin, childDomainMatch = _ref5.childDomainMatch, context = _ref5.context;\n return getPropsForChild(_ref5.initialChildDomain).then((function(childProps) {\n return {\n uid: uid,\n context: context,\n tag: tag,\n childDomainMatch: childDomainMatch,\n version: \"10_3_1\",\n props: childProps,\n exports: (win = proxyWin, {\n init: function(childExports) {\n return initChild(this.origin, childExports);\n },\n close: close,\n checkClose: function() {\n return checkWindowClose(win);\n },\n resize: resize,\n onError: onError,\n show: show,\n hide: hide,\n export: xport\n })\n };\n var win;\n }));\n }({\n proxyWin: proxyWin,\n initialChildDomain: initialChildDomain,\n childDomainMatch: childDomainMatch,\n context: context\n }).then((function(childPayload) {\n var _crossDomainSerialize = crossDomainSerialize({\n data: childPayload,\n metaData: {\n windowRef: getWindowRef(target, initialChildDomain, context, proxyWin)\n },\n sender: {\n domain: getDomain(window)\n },\n receiver: {\n win: proxyWin,\n domain: childDomainMatch\n },\n passByReference: initialChildDomain === getDomain()\n }), serializedData = _crossDomainSerialize.serializedData;\n clean.register(_crossDomainSerialize.cleanReference);\n return serializedData;\n }));\n }({\n proxyWin: (_ref7 = {\n proxyWin: proxyWin,\n initialChildDomain: initialChildDomain,\n childDomainMatch: childDomainMatch,\n target: target,\n context: context\n }).proxyWin,\n initialChildDomain: _ref7.initialChildDomain,\n childDomainMatch: _ref7.childDomainMatch,\n target: _ref7.target,\n context: _ref7.context\n }).then((function(serializedPayload) {\n return buildChildWindowName({\n name: name,\n serializedPayload: serializedPayload\n });\n }));\n var _ref7;\n }));\n var openFramePromise = buildWindowNamePromise.then((function(windowName) {\n return openFrame(context, {\n windowName: windowName\n });\n }));\n var openPrerenderFramePromise = openPrerenderFrame(context);\n var renderContainerPromise = promise_ZalgoPromise.hash({\n proxyContainer: getProxyContainerPromise,\n proxyFrame: openFramePromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then((function(_ref15) {\n return renderContainer(_ref15.proxyContainer, {\n context: context,\n proxyFrame: _ref15.proxyFrame,\n proxyPrerenderFrame: _ref15.proxyPrerenderFrame,\n rerender: rerender\n });\n })).then((function(proxyContainer) {\n return proxyContainer;\n }));\n var openPromise = promise_ZalgoPromise.hash({\n windowName: buildWindowNamePromise,\n proxyFrame: openFramePromise,\n proxyWin: getProxyWindowPromise\n }).then((function(_ref16) {\n var proxyWin = _ref16.proxyWin;\n return windowProp ? proxyWin : open(context, {\n windowName: _ref16.windowName,\n proxyWin: proxyWin,\n proxyFrame: _ref16.proxyFrame\n });\n }));\n var openPrerenderPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then((function(_ref17) {\n return openPrerender(context, _ref17.proxyWin, _ref17.proxyPrerenderFrame);\n }));\n var setStatePromise = openPromise.then((function(proxyWin) {\n currentProxyWin = proxyWin;\n return setProxyWin(proxyWin);\n }));\n var prerenderPromise = promise_ZalgoPromise.hash({\n proxyPrerenderWin: openPrerenderPromise,\n state: setStatePromise\n }).then((function(_ref18) {\n return prerender(_ref18.proxyPrerenderWin, {\n context: context\n });\n }));\n var setWindowNamePromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowName: buildWindowNamePromise\n }).then((function(_ref19) {\n if (windowProp) return _ref19.proxyWin.setName(_ref19.windowName);\n }));\n var getMethodPromise = promise_ZalgoPromise.hash({\n body: buildBodyPromise\n }).then((function(_ref20) {\n return options.method ? options.method : Object.keys(_ref20.body).length ? \"post\" : \"get\";\n }));\n var loadUrlPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowUrl: buildUrlPromise,\n body: buildBodyPromise,\n method: getMethodPromise,\n windowName: setWindowNamePromise,\n prerender: prerenderPromise\n }).then((function(_ref21) {\n return _ref21.proxyWin.setLocation(_ref21.windowUrl, {\n method: _ref21.method,\n body: _ref21.body\n });\n }));\n var watchForClosePromise = openPromise.then((function(proxyWin) {\n !function watchForClose(proxyWin, context) {\n var cancelled = !1;\n clean.register((function() {\n cancelled = !0;\n }));\n return promise_ZalgoPromise.delay(2e3).then((function() {\n return proxyWin.isClosed();\n })).then((function(isClosed) {\n if (!cancelled) return isClosed ? close(new Error(\"Detected \" + context + \" close\")) : watchForClose(proxyWin, context);\n }));\n }(proxyWin, context);\n }));\n var onDisplayPromise = promise_ZalgoPromise.hash({\n container: renderContainerPromise,\n prerender: prerenderPromise\n }).then((function() {\n return event.trigger(EVENT.DISPLAY);\n }));\n var openBridgePromise = openPromise.then((function(proxyWin) {\n return function(proxyWin, initialChildDomain, context) {\n return promise_ZalgoPromise.try((function() {\n return proxyWin.awaitWindow();\n })).then((function(win) {\n if (src_bridge && src_bridge.needsBridge({\n win: win,\n domain: initialChildDomain\n }) && !src_bridge.hasBridge(initialChildDomain, initialChildDomain)) {\n var bridgeUrl = \"function\" == typeof options.bridgeUrl ? options.bridgeUrl({\n props: props\n }) : options.bridgeUrl;\n if (!bridgeUrl) throw new Error(\"Bridge needed to render \" + context);\n var bridgeDomain = getDomainFromUrl(bridgeUrl);\n src_bridge.linkUrl(win, initialChildDomain);\n return src_bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain);\n }\n }));\n }(proxyWin, initialChildDomain, context);\n }));\n var runTimeoutPromise = loadUrlPromise.then((function() {\n return promise_ZalgoPromise.try((function() {\n var timeout = props.timeout;\n if (timeout) return initPromise.timeout(timeout, new Error(\"Loading component timed out after \" + timeout + \" milliseconds\"));\n }));\n }));\n var onRenderedPromise = initPromise.then((function() {\n return event.trigger(EVENT.RENDERED);\n }));\n return promise_ZalgoPromise.hash({\n initPromise: initPromise,\n buildUrlPromise: buildUrlPromise,\n onRenderPromise: onRenderPromise,\n getProxyContainerPromise: getProxyContainerPromise,\n openFramePromise: openFramePromise,\n openPrerenderFramePromise: openPrerenderFramePromise,\n renderContainerPromise: renderContainerPromise,\n openPromise: openPromise,\n openPrerenderPromise: openPrerenderPromise,\n setStatePromise: setStatePromise,\n prerenderPromise: prerenderPromise,\n loadUrlPromise: loadUrlPromise,\n buildWindowNamePromise: buildWindowNamePromise,\n setWindowNamePromise: setWindowNamePromise,\n watchForClosePromise: watchForClosePromise,\n onDisplayPromise: onDisplayPromise,\n openBridgePromise: openBridgePromise,\n runTimeoutPromise: runTimeoutPromise,\n onRenderedPromise: onRenderedPromise,\n delegatePromise: delegatePromise,\n watchForUnloadPromise: watchForUnloadPromise,\n finalSetPropsPromise: finalSetPropsPromise\n });\n })).catch((function(err) {\n return promise_ZalgoPromise.all([ onError(err), destroy(err) ]).then((function() {\n throw err;\n }), (function() {\n throw err;\n }));\n })).then(src_util_noop);\n },\n destroy: destroy,\n getProps: function() {\n return props;\n },\n setProps: setProps,\n export: xport,\n getHelpers: getHelpers,\n getDelegateOverrides: function() {\n return promise_ZalgoPromise.try((function() {\n return {\n getProxyContainer: getProxyContainer,\n show: show,\n hide: hide,\n renderContainer: renderContainer,\n getProxyWindow: getProxyWindow,\n watchForUnload: watchForUnload,\n openFrame: openFrame,\n openPrerenderFrame: openPrerenderFrame,\n prerender: prerender,\n open: open,\n openPrerender: openPrerender,\n setProxyWin: setProxyWin\n };\n }));\n },\n getExports: function() {\n return xports({\n getExports: function() {\n return exportsPromise;\n }\n });\n }\n };\n }\n function defaultContainerTemplate(_ref) {\n var uid = _ref.uid, frame = _ref.frame, prerenderFrame = _ref.prerenderFrame, doc = _ref.doc, props = _ref.props, event = _ref.event, dimensions = _ref.dimensions;\n var width = dimensions.width, height = dimensions.height;\n if (frame && prerenderFrame) {\n var div = doc.createElement(\"div\");\n div.setAttribute(\"id\", uid);\n var style = doc.createElement(\"style\");\n props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce);\n style.appendChild(doc.createTextNode(\"\\n #\" + uid + \" {\\n display: inline-block;\\n position: relative;\\n width: \" + width + \";\\n height: \" + height + \";\\n }\\n\\n #\" + uid + \" > iframe {\\n display: inline-block;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n transition: opacity .2s ease-in-out;\\n }\\n\\n #\" + uid + \" > iframe.zoid-invisible {\\n opacity: 0;\\n }\\n\\n #\" + uid + \" > iframe.zoid-visible {\\n opacity: 1;\\n }\\n \"));\n div.appendChild(frame);\n div.appendChild(prerenderFrame);\n div.appendChild(style);\n prerenderFrame.classList.add(\"zoid-visible\");\n frame.classList.add(\"zoid-invisible\");\n event.on(EVENT.RENDERED, (function() {\n prerenderFrame.classList.remove(\"zoid-visible\");\n prerenderFrame.classList.add(\"zoid-invisible\");\n frame.classList.remove(\"zoid-invisible\");\n frame.classList.add(\"zoid-visible\");\n setTimeout((function() {\n destroyElement(prerenderFrame);\n }), 1);\n }));\n event.on(EVENT.RESIZE, (function(_ref2) {\n var newWidth = _ref2.width, newHeight = _ref2.height;\n \"number\" == typeof newWidth && (div.style.width = toCSS(newWidth));\n \"number\" == typeof newHeight && (div.style.height = toCSS(newHeight));\n }));\n return div;\n }\n }\n function defaultPrerenderTemplate(_ref) {\n var doc = _ref.doc, props = _ref.props;\n var html = doc.createElement(\"html\");\n var body = doc.createElement(\"body\");\n var style = doc.createElement(\"style\");\n var spinner = doc.createElement(\"div\");\n spinner.classList.add(\"spinner\");\n props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce);\n html.appendChild(body);\n body.appendChild(spinner);\n body.appendChild(style);\n style.appendChild(doc.createTextNode(\"\\n html, body {\\n width: 100%;\\n height: 100%;\\n }\\n\\n .spinner {\\n position: fixed;\\n max-height: 60vmin;\\n max-width: 60vmin;\\n height: 40px;\\n width: 40px;\\n top: 50%;\\n left: 50%;\\n box-sizing: border-box;\\n border: 3px solid rgba(0, 0, 0, .2);\\n border-top-color: rgba(33, 128, 192, 0.8);\\n border-radius: 100%;\\n animation: rotation .7s infinite linear;\\n }\\n\\n @keyframes rotation {\\n from {\\n transform: translateX(-50%) translateY(-50%) rotate(0deg);\\n }\\n to {\\n transform: translateX(-50%) translateY(-50%) rotate(359deg);\\n }\\n }\\n \"));\n return html;\n }\n var cleanInstances = cleanup();\n var cleanZoid = cleanup();\n function component(opts) {\n var options = function(options) {\n var tag = options.tag, url = options.url, domain = options.domain, bridgeUrl = options.bridgeUrl, _options$props = options.props, props = void 0 === _options$props ? {} : _options$props, _options$dimensions = options.dimensions, dimensions = void 0 === _options$dimensions ? {} : _options$dimensions, _options$autoResize = options.autoResize, autoResize = void 0 === _options$autoResize ? {} : _options$autoResize, _options$allowedParen = options.allowedParentDomains, allowedParentDomains = void 0 === _options$allowedParen ? \"*\" : _options$allowedParen, _options$attributes = options.attributes, attributes = void 0 === _options$attributes ? {} : _options$attributes, _options$defaultConte = options.defaultContext, defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte, _options$containerTem = options.containerTemplate, containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem, _options$prerenderTem = options.prerenderTemplate, prerenderTemplate = void 0 === _options$prerenderTem ? defaultPrerenderTemplate : _options$prerenderTem, validate = options.validate, _options$eligible = options.eligible, eligible = void 0 === _options$eligible ? function() {\n return {\n eligible: !0\n };\n } : _options$eligible, _options$logger = options.logger, logger = void 0 === _options$logger ? {\n info: src_util_noop\n } : _options$logger, _options$exports = options.exports, xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports, method = options.method, _options$children = options.children, children = void 0 === _options$children ? function() {\n return {};\n } : _options$children;\n var name = tag.replace(/-/g, \"_\");\n var propsDef = _extends({}, {\n window: {\n type: PROP_TYPE.OBJECT,\n sendToChild: !1,\n required: !1,\n allowDelegate: !0,\n validate: function(_ref2) {\n var value = _ref2.value;\n if (!isWindow(value) && !window_ProxyWindow.isProxyWindow(value)) throw new Error(\"Expected Window or ProxyWindow\");\n if (isWindow(value)) {\n if (isWindowClosed(value)) throw new Error(\"Window is closed\");\n if (!isSameDomain(value)) throw new Error(\"Window is not same domain\");\n }\n },\n decorate: function(_ref3) {\n return setup_toProxyWindow(_ref3.value);\n }\n },\n timeout: {\n type: PROP_TYPE.NUMBER,\n required: !1,\n sendToChild: !1\n },\n cspNonce: {\n type: PROP_TYPE.STRING,\n required: !1\n },\n onDisplay: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRendered: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRender: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onPrerendered: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onPrerender: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onClose: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onDestroy: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onResize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop\n },\n onFocus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop\n },\n close: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref4) {\n return _ref4.close;\n }\n },\n focus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref5) {\n return _ref5.focus;\n }\n },\n resize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref6) {\n return _ref6.resize;\n }\n },\n uid: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref7) {\n return _ref7.uid;\n }\n },\n tag: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref8) {\n return _ref8.tag;\n }\n },\n getParent: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref9) {\n return _ref9.getParent;\n }\n },\n getParentDomain: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref10) {\n return _ref10.getParentDomain;\n }\n },\n show: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref11) {\n return _ref11.show;\n }\n },\n hide: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref12) {\n return _ref12.hide;\n }\n },\n export: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref13) {\n return _ref13.export;\n }\n },\n onError: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref14) {\n return _ref14.onError;\n }\n },\n onProps: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref15) {\n return _ref15.onProps;\n }\n },\n getSiblings: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref16) {\n return _ref16.getSiblings;\n }\n }\n }, props);\n if (!containerTemplate) throw new Error(\"Container template required\");\n return {\n name: name,\n tag: tag,\n url: url,\n domain: domain,\n bridgeUrl: bridgeUrl,\n method: method,\n propsDef: propsDef,\n dimensions: dimensions,\n autoResize: autoResize,\n allowedParentDomains: allowedParentDomains,\n attributes: attributes,\n defaultContext: defaultContext,\n containerTemplate: containerTemplate,\n prerenderTemplate: prerenderTemplate,\n validate: validate,\n logger: logger,\n eligible: eligible,\n children: children,\n exports: \"function\" == typeof xportsDefinition ? xportsDefinition : function(_ref) {\n var getExports = _ref.getExports;\n var result = {};\n var _loop = function() {\n var key = _Object$keys2[_i2];\n var type = xportsDefinition[key].type;\n var valuePromise = getExports().then((function(res) {\n return res[key];\n }));\n result[key] = type === PROP_TYPE.FUNCTION ? function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n return valuePromise.then((function(value) {\n return value.apply(void 0, args);\n }));\n } : valuePromise;\n };\n for (var _i2 = 0, _Object$keys2 = Object.keys(xportsDefinition); _i2 < _Object$keys2.length; _i2++) _loop();\n return result;\n }\n };\n }(opts);\n var name = options.name, tag = options.tag, defaultContext = options.defaultContext, eligible = options.eligible, children = options.children;\n var global = lib_global_getGlobal(window);\n var instances = [];\n var isChild = function() {\n if (function(name) {\n try {\n return parseWindowName(window.name).name === name;\n } catch (err) {}\n return !1;\n }(name)) {\n var _payload = getInitialParentPayload().payload;\n if (_payload.tag === tag && matchDomain(_payload.childDomainMatch, getDomain())) return !0;\n }\n return !1;\n };\n var registerChild = memoize((function() {\n if (isChild()) {\n if (window.xprops) {\n delete global.components[tag];\n throw new Error(\"Can not register \" + name + \" as child - child already registered\");\n }\n var child = function(options) {\n var tag = options.tag, propsDef = options.propsDef, autoResize = options.autoResize, allowedParentDomains = options.allowedParentDomains;\n var onPropHandlers = [];\n var _getInitialParentPayl = getInitialParentPayload(), parent = _getInitialParentPayl.parent, payload = _getInitialParentPayl.payload;\n var parentComponentWindow = parent.win, parentDomain = parent.domain;\n var props;\n var exportsPromise = new promise_ZalgoPromise;\n var version = payload.version, uid = payload.uid, parentExports = payload.exports, context = payload.context, initialProps = payload.props;\n if (!function(version1, version2) {\n if (!/_/.test(version1) || !/_/.test(\"10_3_1\")) throw new Error(\"Versions are in an invalid format (\" + version1 + \", 10_3_1)\");\n return version1.split(\"_\")[0] === \"10_3_1\".split(\"_\")[0];\n }(version)) throw new Error(\"Parent window has zoid version \" + version + \", child window has version 10_3_1\");\n var show = parentExports.show, hide = parentExports.hide, close = parentExports.close, onError = parentExports.onError, checkClose = parentExports.checkClose, parentExport = parentExports.export, parentResize = parentExports.resize, parentInit = parentExports.init;\n var getParent = function() {\n return parentComponentWindow;\n };\n var getParentDomain = function() {\n return parentDomain;\n };\n var onProps = function(handler) {\n onPropHandlers.push(handler);\n return {\n cancel: function() {\n onPropHandlers.splice(onPropHandlers.indexOf(handler), 1);\n }\n };\n };\n var resize = function(_ref) {\n return parentResize.fireAndForget({\n width: _ref.width,\n height: _ref.height\n });\n };\n var xport = function(xports) {\n exportsPromise.resolve(xports);\n return parentExport(xports);\n };\n var getSiblings = function(_temp) {\n var anyParent = (void 0 === _temp ? {} : _temp).anyParent;\n var result = [];\n var currentParent = props.parent;\n void 0 === anyParent && (anyParent = !currentParent);\n if (!anyParent && !currentParent) throw new Error(\"No parent found for \" + tag + \" child\");\n for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(window); _i2 < _getAllFramesInWindow2.length; _i2++) {\n var win = _getAllFramesInWindow2[_i2];\n if (isSameDomain(win)) {\n var xprops = assertSameDomain(win).xprops;\n if (xprops && getParent() === xprops.getParent()) {\n var winParent = xprops.parent;\n if (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) {\n var xports = tryGlobal(win, (function(global) {\n return global.exports;\n }));\n result.push({\n props: xprops,\n exports: xports\n });\n }\n }\n }\n }\n return result;\n };\n var setProps = function(newProps, origin, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var normalizedProps = function(parentComponentWindow, propsDef, props, origin, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var result = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var prop = propsDef[key];\n var trustedChild = prop && prop.trustedDomains && prop.trustedDomains.length > 0 ? prop.trustedDomains.reduce((function(acc, val) {\n return acc || matchDomain(val, getDomain(window));\n }), !1) : origin === getDomain(window) || isSameDomain(parentComponentWindow);\n if ((!prop || !prop.sameDomain || trustedChild) && (!prop || !prop.trustedDomains || trustedChild)) {\n var value = normalizeChildProp(propsDef, 0, key, props[key], helpers);\n result[key] = value;\n prop && prop.alias && !result[prop.alias] && (result[prop.alias] = value);\n }\n }\n if (!isUpdate) for (var _i4 = 0, _Object$keys4 = Object.keys(propsDef); _i4 < _Object$keys4.length; _i4++) {\n var _key = _Object$keys4[_i4];\n props.hasOwnProperty(_key) || (result[_key] = normalizeChildProp(propsDef, 0, _key, void 0, helpers));\n }\n return result;\n }(parentComponentWindow, propsDef, newProps, origin, {\n tag: tag,\n show: show,\n hide: hide,\n close: close,\n focus: child_focus,\n onError: onError,\n resize: resize,\n getSiblings: getSiblings,\n onProps: onProps,\n getParent: getParent,\n getParentDomain: getParentDomain,\n uid: uid,\n export: xport\n }, isUpdate);\n props ? extend(props, normalizedProps) : props = normalizedProps;\n for (var _i4 = 0; _i4 < onPropHandlers.length; _i4++) (0, onPropHandlers[_i4])(props);\n };\n var updateProps = function(newProps) {\n return promise_ZalgoPromise.try((function() {\n return setProps(newProps, parentDomain, !0);\n }));\n };\n return {\n init: function() {\n return promise_ZalgoPromise.try((function() {\n isSameDomain(parentComponentWindow) && function(_ref3) {\n var componentName = _ref3.componentName, parentComponentWindow = _ref3.parentComponentWindow;\n var _crossDomainDeseriali2 = crossDomainDeserialize({\n data: parseWindowName(window.name).serializedInitialPayload,\n sender: {\n win: parentComponentWindow\n },\n basic: !0\n }), sender = _crossDomainDeseriali2.sender;\n if (\"uid\" === _crossDomainDeseriali2.reference.type || \"global\" === _crossDomainDeseriali2.metaData.windowRef.type) {\n var _crossDomainSerialize = crossDomainSerialize({\n data: _crossDomainDeseriali2.data,\n metaData: {\n windowRef: window_getWindowRef(parentComponentWindow)\n },\n sender: {\n domain: sender.domain\n },\n receiver: {\n win: window,\n domain: getDomain()\n },\n basic: !0\n });\n window.name = buildChildWindowName({\n name: componentName,\n serializedPayload: _crossDomainSerialize.serializedData\n });\n }\n }({\n componentName: options.name,\n parentComponentWindow: parentComponentWindow\n });\n lib_global_getGlobal(window).exports = options.exports({\n getExports: function() {\n return exportsPromise;\n }\n });\n !function(allowedParentDomains, domain) {\n if (!matchDomain(allowedParentDomains, domain)) throw new Error(\"Can not be rendered by domain: \" + domain);\n }(allowedParentDomains, parentDomain);\n markWindowKnown(parentComponentWindow);\n !function() {\n window.addEventListener(\"beforeunload\", (function() {\n checkClose.fireAndForget();\n }));\n window.addEventListener(\"unload\", (function() {\n checkClose.fireAndForget();\n }));\n onCloseWindow(parentComponentWindow, (function() {\n child_destroy();\n }));\n }();\n return parentInit({\n updateProps: updateProps,\n close: child_destroy\n });\n })).then((function() {\n return (_autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, \n _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, \n _autoResize$element = autoResize.element, elementReady(void 0 === _autoResize$element ? \"body\" : _autoResize$element).catch(src_util_noop).then((function(element) {\n return {\n width: width,\n height: height,\n element: element\n };\n }))).then((function(_ref3) {\n var width = _ref3.width, height = _ref3.height, element = _ref3.element;\n element && (width || height) && context !== CONTEXT.POPUP && onResize(element, (function(_ref4) {\n resize({\n width: width ? _ref4.width : void 0,\n height: height ? _ref4.height : void 0\n });\n }), {\n width: width,\n height: height\n });\n }));\n var _autoResize$width, width, _autoResize$height, height, _autoResize$element;\n })).catch((function(err) {\n onError(err);\n }));\n },\n getProps: function() {\n if (props) return props;\n setProps(initialProps, parentDomain);\n return props;\n }\n };\n }(options);\n child.init();\n return child;\n }\n }));\n registerChild();\n !function() {\n var allowDelegateListener = on_on(\"zoid_allow_delegate_\" + name, (function() {\n return !0;\n }));\n var delegateListener = on_on(\"zoid_delegate_\" + name, (function(_ref2) {\n var _ref2$data = _ref2.data;\n return {\n parent: parentComponent({\n uid: _ref2$data.uid,\n options: options,\n overrides: _ref2$data.overrides,\n parentWin: _ref2.source\n })\n };\n }));\n cleanZoid.register(allowDelegateListener.cancel);\n cleanZoid.register(delegateListener.cancel);\n }();\n global.components = global.components || {};\n if (global.components[tag]) throw new Error(\"Can not register multiple components with the same tag: \" + tag);\n global.components[tag] = !0;\n return {\n init: function init(inputProps) {\n var instance;\n var uid = \"zoid-\" + tag + \"-\" + uniqueID();\n var props = inputProps || {};\n var _eligible = eligible({\n props: props\n }), eligibility = _eligible.eligible, reason = _eligible.reason;\n var onDestroy = props.onDestroy;\n props.onDestroy = function() {\n instance && eligibility && instances.splice(instances.indexOf(instance), 1);\n if (onDestroy) return onDestroy.apply(void 0, arguments);\n };\n var parent = parentComponent({\n uid: uid,\n options: options\n });\n parent.init();\n eligibility ? parent.setProps(props) : props.onDestroy && props.onDestroy();\n cleanInstances.register((function(err) {\n return parent.destroy(err || new Error(\"zoid destroyed all components\"));\n }));\n var clone = function(_temp) {\n var _ref4$decorate = (void 0 === _temp ? {} : _temp).decorate;\n return init((void 0 === _ref4$decorate ? identity : _ref4$decorate)(props));\n };\n var _render = function(target, container, context) {\n return promise_ZalgoPromise.try((function() {\n if (!eligibility) {\n var err = new Error(reason || name + \" component is not eligible\");\n return parent.destroy(err).then((function() {\n throw err;\n }));\n }\n if (!isWindow(target)) throw new Error(\"Must pass window to renderTo\");\n return function(props, context) {\n return promise_ZalgoPromise.try((function() {\n if (props.window) return setup_toProxyWindow(props.window).getType();\n if (context) {\n if (context !== CONTEXT.IFRAME && context !== CONTEXT.POPUP) throw new Error(\"Unrecognized context: \" + context);\n return context;\n }\n return defaultContext;\n }));\n }(props, context);\n })).then((function(finalContext) {\n container = function(context, container) {\n if (container) {\n if (\"string\" != typeof container && !isElement(container)) throw new TypeError(\"Expected string or element selector to be passed\");\n return container;\n }\n if (context === CONTEXT.POPUP) return \"body\";\n throw new Error(\"Expected element to be passed to render iframe\");\n }(finalContext, container);\n if (target !== window && \"string\" != typeof container) throw new Error(\"Must pass string element when rendering to another window\");\n return parent.render({\n target: target,\n container: container,\n context: finalContext,\n rerender: function() {\n var newInstance = clone();\n extend(instance, newInstance);\n return newInstance.renderTo(target, container, context);\n }\n });\n })).catch((function(err) {\n return parent.destroy(err).then((function() {\n throw err;\n }));\n }));\n };\n instance = _extends({}, parent.getExports(), parent.getHelpers(), function() {\n var childComponents = children();\n var result = {};\n var _loop2 = function() {\n var childName = _Object$keys4[_i4];\n var Child = childComponents[childName];\n result[childName] = function(childInputProps) {\n var parentProps = parent.getProps();\n var childProps = _extends({}, childInputProps, {\n parent: {\n uid: uid,\n props: parentProps,\n export: parent.export\n }\n });\n return Child(childProps);\n };\n };\n for (var _i4 = 0, _Object$keys4 = Object.keys(childComponents); _i4 < _Object$keys4.length; _i4++) _loop2();\n return result;\n }(), {\n isEligible: function() {\n return eligibility;\n },\n clone: clone,\n render: function(container, context) {\n return _render(window, container, context);\n },\n renderTo: function(target, container, context) {\n return _render(target, container, context);\n }\n });\n eligibility && instances.push(instance);\n return instance;\n },\n instances: instances,\n driver: function(driverName, dep) {\n throw new Error(\"Driver support not enabled\");\n },\n isChild: isChild,\n canRenderTo: function(win) {\n return send_send(win, \"zoid_allow_delegate_\" + name).then((function(_ref3) {\n return _ref3.data;\n })).catch((function() {\n return !1;\n }));\n },\n registerChild: registerChild\n };\n }\n var component_create = function(options) {\n !function() {\n if (!global_getGlobal().initialized) {\n global_getGlobal().initialized = !0;\n on = (_ref3 = {\n on: on_on,\n send: send_send\n }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) {\n return receive_receiveMessage(message, {\n on: on,\n send: send\n });\n };\n !function(_ref5) {\n var on = _ref5.on, send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", (function() {\n return addEventListener(window, \"message\", (function(event) {\n !function(event, _ref4) {\n var on = _ref4.on, send = _ref4.send;\n promise_ZalgoPromise.try((function() {\n var source = event.source || event.sourceElement;\n var origin = event.origin || event.originalEvent && event.originalEvent.origin;\n var data = event.data;\n \"null\" === origin && (origin = \"file://\");\n if (source) {\n if (!origin) throw new Error(\"Post message did not have origin domain\");\n receive_receiveMessage({\n source: source,\n origin: origin,\n data: data\n }, {\n on: on,\n send: send\n });\n }\n }));\n }(event, {\n on: on,\n send: send\n });\n }));\n }));\n }({\n on: on_on,\n send: send_send\n });\n setupBridge({\n on: on_on,\n send: send_send,\n receiveMessage: receive_receiveMessage\n });\n !function(_ref8) {\n var on = _ref8.on, send = _ref8.send;\n globalStore(\"builtinListeners\").getOrSet(\"helloListener\", (function() {\n var listener = on(\"postrobot_hello\", {\n domain: \"*\"\n }, (function(_ref3) {\n resolveHelloPromise(_ref3.source, {\n domain: _ref3.origin\n });\n return {\n instanceID: getInstanceID()\n };\n }));\n var parent = getAncestor();\n parent && sayHello(parent, {\n send: send\n }).catch((function(err) {}));\n return listener;\n }));\n }({\n on: on_on,\n send: send_send\n });\n }\n var _ref3, on, send, global;\n }();\n var comp = component(options);\n var init = function(props) {\n return comp.init(props);\n };\n init.driver = function(name, dep) {\n return comp.driver(name, dep);\n };\n init.isChild = function() {\n return comp.isChild();\n };\n init.canRenderTo = function(win) {\n return comp.canRenderTo(win);\n };\n init.instances = comp.instances;\n var child = comp.registerChild();\n child && (window.xprops = init.xprops = child.getProps());\n return init;\n };\n function destroyComponents(err) {\n src_bridge && src_bridge.destroyBridges();\n var destroyPromise = cleanInstances.all(err);\n cleanInstances = cleanup();\n return destroyPromise;\n }\n var destroyAll = destroyComponents;\n function component_destroy(err) {\n destroyAll();\n delete window.__zoid_10_3_1__;\n !function() {\n !function() {\n var responseListeners = globalStore(\"responseListeners\");\n for (var _i2 = 0, _responseListeners$ke2 = responseListeners.keys(); _i2 < _responseListeners$ke2.length; _i2++) {\n var hash = _responseListeners$ke2[_i2];\n var listener = responseListeners.get(hash);\n listener && (listener.cancelled = !0);\n responseListeners.del(hash);\n }\n }();\n (listener = globalStore().get(\"postMessageListener\")) && listener.cancel();\n var listener;\n delete window.__post_robot_11_0_0__;\n }();\n return cleanZoid.all(err);\n }\n } ]);\n}));","/*!\r\nMIT License\r\n\r\nCopyright (c) Sindre Sorhus (sindresorhus.com)\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n*/\r\nimport { ZalgoPromise } from 'zalgo-promise';\r\nexport default (function screenfull() {\r\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\r\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\r\n\r\n\tvar fn = (function () {\r\n\t\tvar val;\r\n\r\n\t\tvar fnMap = [\r\n\t\t\t[\r\n\t\t\t\t'requestFullscreen',\r\n\t\t\t\t'exitFullscreen',\r\n\t\t\t\t'fullscreenElement',\r\n\t\t\t\t'fullscreenEnabled',\r\n\t\t\t\t'fullscreenchange',\r\n\t\t\t\t'fullscreenerror'\r\n\t\t\t],\r\n\t\t\t// New WebKit\r\n\t\t\t[\r\n\t\t\t\t'webkitRequestFullscreen',\r\n\t\t\t\t'webkitExitFullscreen',\r\n\t\t\t\t'webkitFullscreenElement',\r\n\t\t\t\t'webkitFullscreenEnabled',\r\n\t\t\t\t'webkitfullscreenchange',\r\n\t\t\t\t'webkitfullscreenerror'\r\n\r\n\t\t\t],\r\n\t\t\t// Old WebKit\r\n\t\t\t[\r\n\t\t\t\t'webkitRequestFullScreen',\r\n\t\t\t\t'webkitCancelFullScreen',\r\n\t\t\t\t'webkitCurrentFullScreenElement',\r\n\t\t\t\t'webkitCancelFullScreen',\r\n\t\t\t\t'webkitfullscreenchange',\r\n\t\t\t\t'webkitfullscreenerror'\r\n\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'mozRequestFullScreen',\r\n\t\t\t\t'mozCancelFullScreen',\r\n\t\t\t\t'mozFullScreenElement',\r\n\t\t\t\t'mozFullScreenEnabled',\r\n\t\t\t\t'mozfullscreenchange',\r\n\t\t\t\t'mozfullscreenerror'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'msRequestFullscreen',\r\n\t\t\t\t'msExitFullscreen',\r\n\t\t\t\t'msFullscreenElement',\r\n\t\t\t\t'msFullscreenEnabled',\r\n\t\t\t\t'MSFullscreenChange',\r\n\t\t\t\t'MSFullscreenError'\r\n\t\t\t]\r\n\t\t];\r\n\r\n\t\tvar i = 0;\r\n\t\tvar l = fnMap.length;\r\n\t\tvar ret = {};\r\n\r\n\t\tfor (; i < l; i++) {\r\n\t\t\tval = fnMap[i];\r\n\t\t\tif (val && val[1] in document) {\r\n\t\t\t\tfor (i = 0; i < val.length; i++) {\r\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\r\n\t\t\t\t}\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t})();\r\n\r\n\tvar eventNameMap = {\r\n\t\tchange: fn.fullscreenchange,\r\n\t\terror: fn.fullscreenerror\r\n\t};\r\n\r\n\tvar screenfull = {\r\n\t\trequest: function (element, options) {\r\n\t\t\treturn new ZalgoPromise(function (resolve, reject) {\r\n\t\t\t\tvar onFullScreenEntered = function () {\r\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t}.bind(this);\r\n\r\n\t\t\t\tthis.on('change', onFullScreenEntered);\r\n\r\n\t\t\t\telement = element || document.documentElement;\r\n\r\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\r\n\r\n\t\t\t\tif (returnPromise instanceof ZalgoPromise) {\r\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\r\n\t\t\t\t}\r\n\t\t\t}.bind(this));\r\n\t\t},\r\n\t\texit: function () {\r\n\t\t\treturn new ZalgoPromise(function (resolve, reject) {\r\n\t\t\t\tif (!this.isFullscreen) {\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar onFullScreenExit = function () {\r\n\t\t\t\t\tthis.off('change', onFullScreenExit);\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t}.bind(this);\r\n\r\n\t\t\t\tthis.on('change', onFullScreenExit);\r\n\r\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\r\n\r\n\t\t\t\tif (returnPromise instanceof ZalgoPromise) {\r\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\r\n\t\t\t\t}\r\n\t\t\t}.bind(this));\r\n\t\t},\r\n\t\ttoggle: function (element, options) {\r\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\r\n\t\t},\r\n\t\tonchange: function (callback) {\r\n\t\t\tthis.on('change', callback);\r\n\t\t},\r\n\t\tonerror: function (callback) {\r\n\t\t\tthis.on('error', callback);\r\n\t\t},\r\n\t\ton: function (event, callback) {\r\n\t\t\tvar eventName = eventNameMap[event];\r\n\t\t\tif (eventName) {\r\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\r\n\t\t\t}\r\n\t\t},\r\n\t\toff: function (event, callback) {\r\n\t\t\tvar eventName = eventNameMap[event];\r\n\t\t\tif (eventName) {\r\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\r\n\t\t\t}\r\n\t\t},\r\n\t\traw: fn\r\n\t};\r\n\r\n\tif (!fn) {\r\n return { enabled: false };\r\n\t}\r\n\r\n\tObject.defineProperties(screenfull, {\r\n\t\tisFullscreen: {\r\n\t\t\tget: function () {\r\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\r\n\t\t\t}\r\n\t\t},\r\n\t\telement: {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function () {\r\n\t\t\t\treturn document[fn.fullscreenElement];\r\n\t\t\t}\r\n\t\t},\r\n\t\tenabled: {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function () {\r\n\t\t\t\t// Coerce to boolean in case of old WebKit\r\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n return screenfull;\r\n})();","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.31.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var searchParams2 = new URLSearchParams('a=1&a=2');\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n searchParams2['delete']('a', 2);\n return (IS_PURE && (!url.toJSON || !searchParams2.has('a', 1) || searchParams2.has('a', 2)))\n || (!searchParams.size && (IS_PURE || !DESCRIPTORS))\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"ZalgoPromise\",[],t):\"object\"==typeof exports?exports.ZalgoPromise=t():e.ZalgoPromise=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return{}.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=0)}([function(e,t,r){\"use strict\";function n(e){try{if(!e)return!1;if(\"undefined\"!=typeof Promise&&e instanceof Promise)return!0;if(\"undefined\"!=typeof window&&\"function\"==typeof window.Window&&e instanceof window.Window)return!1;if(\"undefined\"!=typeof window&&\"function\"==typeof window.constructor&&e instanceof window.constructor)return!1;var t={}.toString;if(t){var r=t.call(e);if(\"[object Window]\"===r||\"[object global]\"===r||\"[object DOMWindow]\"===r)return!1}if(\"function\"==typeof e.then)return!0}catch(e){return!1}return!1}r.r(t),r.d(t,\"ZalgoPromise\",(function(){return a}));var o,i=[],c=[],u=0;function s(){if(!u&&o){var e=o;o=null,e.resolve()}}function f(){u+=1}function l(){u-=1,s()}var a=function(){function e(e){var t=this;if(this.resolved=void 0,this.rejected=void 0,this.errorHandled=void 0,this.value=void 0,this.error=void 0,this.handlers=void 0,this.dispatching=void 0,this.stack=void 0,this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],e){var r,n,o=!1,i=!1,c=!1;f();try{e((function(e){c?t.resolve(e):(o=!0,r=e)}),(function(e){c?t.reject(e):(i=!0,n=e)}))}catch(e){return l(),void this.reject(e)}l(),c=!0,o?this.resolve(r):i&&this.reject(n)}}var t=e.prototype;return t.resolve=function(e){if(this.resolved||this.rejected)return this;if(n(e))throw new Error(\"Can not resolve promise with another promise\");return this.resolved=!0,this.value=e,this.dispatch(),this},t.reject=function(e){var t=this;if(this.resolved||this.rejected)return this;if(n(e))throw new Error(\"Can not reject promise with another promise\");if(!e){var r=e&&\"function\"==typeof e.toString?e.toString():{}.toString.call(e);e=new Error(\"Expected reject to be called with Error, got \"+r)}return this.rejected=!0,this.error=e,this.errorHandled||setTimeout((function(){t.errorHandled||function(e,t){if(-1===i.indexOf(e)){i.push(e),setTimeout((function(){throw e}),1);for(var r=0;r {\r\n func();\r\n loop();\r\n }, time);\r\n }\r\n\r\n loop();\r\n\r\n return {\r\n cancel() {\r\n clearTimeout(timeout);\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function parseQuery(queryString) {\r\n \r\n const params = {};\r\n\r\n if (!queryString) {\r\n return params;\r\n }\r\n\r\n if (queryString.indexOf('=') === -1) {\r\n return params;\r\n }\r\n\r\n for (let pair of queryString.split('&')) {\r\n pair = pair.split('=');\r\n\r\n if (pair[0] && pair[1]) {\r\n params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return params;\r\n}\r\n\r\nexport function getQueryParam(name) {\r\n return parseQuery(window.location.search.slice(1))[name];\r\n}\r\n\r\nexport function arrayFrom(item) {\r\n return Array.prototype.slice.call(item);\r\n}\r\n\r\nexport function isPerc(str) {\r\n return typeof str === 'string' && (/^[0-9]+%$/).test(str);\r\n}\r\n\r\nexport function isPx(str) {\r\n return typeof str === 'string' && (/^[0-9]+px$/).test(str);\r\n}\r\n\r\nexport function toNum(val) {\r\n\r\n if (typeof val === 'number') {\r\n return val;\r\n }\r\n\r\n const match = val.match(/^([0-9]+)(px|%)$/);\r\n\r\n if (!match) {\r\n throw new Error(`Could not match css value from ${ val }`);\r\n }\r\n\r\n return parseInt(match[1], 10);\r\n}\r\n\r\nexport function toPx(val) {\r\n return `${ toNum(val) }px`;\r\n}\r\n\r\nexport function toCSS(val) {\r\n\r\n if (typeof val === 'number') {\r\n return toPx(val);\r\n }\r\n\r\n return isPerc(val) ? val : toPx(val);\r\n}\r\n\r\nexport function percOf(num, perc) {\r\n return parseInt(num * toNum(perc) / 100, 10);\r\n}\r\n\r\nexport function normalizeDimension(dim , max) {\r\n if (typeof dim === 'number') {\r\n return dim;\r\n } else if (isPerc(dim)) {\r\n return percOf(max, dim);\r\n } else if (isPx(dim)) {\r\n return toNum(dim);\r\n } else {\r\n throw new Error(`Can not normalize dimension: ${ dim }`);\r\n }\r\n}\r\n\r\nexport function isIFrame(win = window) {\r\n try {\r\n if (win && win.parent && win.parent !== win) {\r\n return true;\r\n }\r\n } catch (err) {\r\n //pass\r\n }\r\n return false;\r\n}\r\n\r\nexport function base64encode(str) {\r\n if ('function' == typeof btoa) {\r\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(m, p1) {\r\n return String.fromCharCode(parseInt(p1, 16));\r\n })).replace(/[=]/g, '');\r\n }\r\n if ('undefined' != typeof Buffer) {\r\n return Buffer.from(str, 'utf8').toString('base64').replace(/[=]/g, '');\r\n }\r\n throw new Error('Can not find window.btoa or Buffer');\r\n}\r\nexport function uniqueID() {\r\n const chars = '0123456789abcdef';\r\n return 'uid_' + 'xxxxxxxxxx'.replace(/./g, function() {\r\n return chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n ) \r\n + '_' \r\n + base64encode((new Date).toISOString().slice(11, 19).replace('T', '.')).replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\r\n}\r\n\r\nconst attPropMapping = [\r\n ['toolCompanyCode', 'companyCode'],\r\n ['toolName', 'toolName'],\r\n ['toolVersion', 'toolVer'],\r\n ['toolLanguage', 'lang'],\r\n ['toolApiVersion', 'apiVersion'],\r\n ['toolWidth', 'width'],\r\n ['toolHeight', 'height'],\r\n ['toolUrlBase', 'urlBase'],\r\n ['toolUrl', 'absoluteToolUrl'] // Use for development environment\r\n];\r\n\r\n/**\r\n * Converts attributes of a element into an object.\r\n * @param {HTMLElement} element \r\n * @returns { companyCode, toolName, toolVer, lang, apiVersion, width, height, urlBase, absoluteToolUrl }\r\n */\r\nexport function attributeToObject(element) {\r\n var obj = {};\r\n for (const map of attPropMapping) {\r\n obj[map[1]] = (map[0] in Object.assign({}, element.dataset|| {}) === true) ? element.dataset[map[0]] : null;\r\n }\r\n\r\n return obj;\r\n}\r\n\r\nexport function stringifyError(err, level) {\r\n void 0 === level && (level = 1);\r\n if (level >= 3) return 'stringifyError stack overflow';\r\n try {\r\n if (!err) return ``;\r\n if ('string' == typeof err) return err;\r\n if (err instanceof Error) {\r\n var stack = err && err.stack;\r\n var message = err && err.message;\r\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + '\\n' + stack;\r\n if (stack) return stack;\r\n if (message) return message;\r\n }\r\n return err && err.toString && 'function' == typeof err.toString ? err.toString() : {}.toString.call(err);\r\n } catch (newErr) {\r\n return 'Error while stringifying error: ' + stringifyError(newErr, level + 1);\r\n }\r\n}","export const PROTOCOL = {\r\n MOCK: 'mock:',\r\n FILE: 'file:',\r\n ABOUT: 'about:'\r\n};\r\n\r\nexport const WILDCARD = '*';\r\n\r\nexport const WINDOW_TYPE = {\r\n IFRAME: 'iframe',\r\n POPUP: 'popup'\r\n};\r\n\r\nexport const DEFAULT_DIMENSIONS = {\r\n WIDTH: '300px',\r\n HEIGHT: '150px'\r\n};\r\n\r\nexport const EVENT = {\r\n RENDER: 'zoid-render',\r\n RENDERED: 'zoid-rendered',\r\n DISPLAY: 'zoid-display',\r\n ERROR: 'zoid-error',\r\n CLOSE: 'zoid-close',\r\n DESTROY: 'zoid-destroy',\r\n PROPS: 'zoid-props',\r\n RESIZE: 'zoid-resize',\r\n FOCUS: 'zoid-focus',\r\n DEF_REQUEST: 'tool-definition-request'\r\n};\r\n\r\nexport const WINDOW_EVENT = {\r\n CREATE: 'window-create',\r\n CREATED: 'window-created'\r\n};\r\n\r\nexport const PROPS_EVENT = {\r\n CHANGE_TITLE: 'titleChange',\r\n FULLSCREEN: 'fullscreen',\r\n SCROLL_TO: 'scrollTop'\r\n};\r\n\r\nexport const METHOD = {\r\n GET: 'get',\r\n POST: 'post'\r\n};\r\n\r\nexport const KEY_CODES = {\r\n ENTER: 13,\r\n SPACE: 32\r\n};\r\n\r\nexport const EUROLAND_TOOL = 'euroland-tool';\r\n\r\nexport const FULLSCREEN_LIB = 'fullscreenLib';\r\n\r\n/**\r\n * Provives ability to disable watching element on host site.\r\n * Watching element on host site enabling the embed.js can monitor\r\n * and create a tool on the fly. This is handly for the host site which\r\n * is SPA, but not good at performance. If host site has any issue on the \r\n * performance, they can set if to False by providing this variable before\r\n * embed.js is executed. \r\n */\r\nexport const DISABLE_LIVE_WATCH = '__EUROLAND_DISABLE_LIVE_WATCH_ELEMENT__';\r\n","\r\nimport { noop } from './util';\r\nimport { PROTOCOL } from '../constants';\r\n\r\nconst IE_WIN_ACCESS_ERROR = 'Call was rejected by callee.\\r\\n';\r\n\r\nexport function isFileProtocol(win = window) {\r\n return win.location.protocol === PROTOCOL.FILE;\r\n}\r\n\r\nexport function isAboutProtocol(win = window) {\r\n return win.location.protocol === PROTOCOL.ABOUT;\r\n}\r\n\r\nexport function getParent(win = window) {\r\n\r\n if (!win) {\r\n return;\r\n }\r\n\r\n try {\r\n if (win.parent && win.parent !== win) {\r\n return win.parent;\r\n }\r\n } catch (err) {\r\n // pass\r\n }\r\n}\r\n\r\nexport function getOpener(win = window) {\r\n\r\n if (!win) {\r\n return;\r\n }\r\n\r\n // Make sure we're not actually an iframe which has had window.open() called on us\r\n if (getParent(win)) {\r\n return;\r\n }\r\n\r\n try {\r\n return win.opener;\r\n } catch (err) {\r\n // pass\r\n }\r\n}\r\n\r\nexport function canReadFromWindow(win) {\r\n try {\r\n // $FlowFixMe\r\n noop(win && win.location && win.location.href);\r\n return true;\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function getActualDomain(win = window) {\r\n\r\n const location = win.location;\r\n\r\n if (!location) {\r\n throw new Error('Can not read window location');\r\n }\r\n\r\n const protocol = location.protocol;\r\n\r\n if (!protocol) {\r\n throw new Error('Can not read window protocol');\r\n }\r\n\r\n if (protocol === PROTOCOL.FILE) {\r\n return `${ PROTOCOL.FILE }//`;\r\n }\r\n\r\n if (protocol === PROTOCOL.ABOUT) {\r\n\r\n const parent = getParent(win);\r\n if (parent && canReadFromWindow(parent)) {\r\n return getActualDomain(parent);\r\n }\r\n\r\n return `${ PROTOCOL.ABOUT }//`;\r\n }\r\n\r\n const host = location.host;\r\n\r\n if (!host) {\r\n throw new Error('Can not read window host');\r\n }\r\n\r\n return `${ protocol }//${ host }`;\r\n}\r\n\r\nexport function getDomain(win = window) {\r\n\r\n const domain = getActualDomain(win);\r\n\r\n if (domain && win.mockDomain && win.mockDomain.indexOf(PROTOCOL.MOCK) === 0) {\r\n return win.mockDomain;\r\n }\r\n\r\n return domain;\r\n}\r\n\r\nexport function isBlankDomain(win) {\r\n try {\r\n \r\n if (!win.location.href) {\r\n return true;\r\n }\r\n\r\n if (win.location.href === 'about:blank') {\r\n return true;\r\n }\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function isActuallySameDomain(win) {\r\n\r\n try {\r\n if (win === window) {\r\n return true;\r\n }\r\n\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n try {\r\n const desc = Object.getOwnPropertyDescriptor(win, 'location');\r\n\r\n if (desc && desc.enumerable === false) {\r\n return false;\r\n }\r\n\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n try {\r\n \r\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\r\n return true;\r\n }\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n try {\r\n \r\n if (getActualDomain(win) === getActualDomain(window)) {\r\n return true;\r\n }\r\n\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function isSameDomain(win) {\r\n\r\n if (!isActuallySameDomain(win)) {\r\n return false;\r\n }\r\n\r\n try {\r\n\r\n if (win === window) {\r\n return true;\r\n }\r\n\r\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\r\n return true;\r\n }\r\n\r\n if (getDomain(window) === getDomain(win)) {\r\n return true;\r\n }\r\n\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n return false;\r\n}\r\n\r\n\r\nexport function assertSameDomain(win) {\r\n if (!isSameDomain(win)) {\r\n throw new Error('Expected window to be same domain');\r\n }\r\n\r\n return win;\r\n}\r\n\r\nexport function getParents(win) {\r\n\r\n const result = [];\r\n\r\n try {\r\n\r\n while (win.parent !== win) {\r\n result.push(win.parent);\r\n win = win.parent;\r\n }\r\n\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function isAncestorParent(parent, child) {\r\n\r\n if (!parent || !child) {\r\n return false;\r\n }\r\n\r\n const childParent = getParent(child);\r\n\r\n if (childParent) {\r\n return childParent === parent;\r\n }\r\n\r\n if (getParents(child).indexOf(parent) !== -1) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n\r\nconst iframeWindows = [];\r\nconst iframeFrames = [];\r\n\r\nexport function isFrameWindowClosed(frame) {\r\n\r\n if (!frame.contentWindow) {\r\n return true;\r\n }\r\n\r\n if (!frame.parentNode) {\r\n return true;\r\n }\r\n\r\n const doc = frame.ownerDocument;\r\n\r\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\r\n let parent = frame;\r\n\r\n while (parent.parentNode && parent.parentNode !== parent) {\r\n parent = parent.parentNode;\r\n }\r\n\r\n // $FlowFixMe\r\n if (!parent.host || !doc.documentElement.contains(parent.host)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport function isWindowClosed(win, allowMock = true) {\r\n\r\n try {\r\n if (win === window) {\r\n return false;\r\n }\r\n } catch (err) {\r\n return true;\r\n }\r\n\r\n try {\r\n if (!win) {\r\n return true;\r\n }\r\n\r\n } catch (err) {\r\n return true;\r\n }\r\n\r\n try {\r\n if (win.closed) {\r\n return true;\r\n }\r\n\r\n } catch (err) {\r\n\r\n // I love you so much IE\r\n\r\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n if (allowMock && isSameDomain(win)) {\r\n try {\r\n if (win.mockclosed) {\r\n return true;\r\n }\r\n } catch (err) {\r\n // pass\r\n }\r\n }\r\n\r\n // Mobile safari\r\n\r\n try {\r\n if (!win.parent || !win.top) {\r\n return true;\r\n }\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n // This actually happens in IE. win === win errors out when the window\r\n // is from an iframe, and the iframe was removed from the page.\r\n\r\n try {\r\n noop(win === win); // eslint-disable-line no-self-compare\r\n } catch (err) {\r\n return true;\r\n }\r\n\r\n // IE orphaned frame\r\n\r\n const iframeIndex = iframeFrames.findIndex((item) => item === win);\r\n\r\n if (iframeIndex !== -1) {\r\n const frame = iframeFrames[iframeIndex];\r\n\r\n if (frame && isFrameWindowClosed(frame)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction cleanIframes() {\r\n for (let i = 0; i < iframeWindows.length; i++) {\r\n let closed = false;\r\n\r\n try {\r\n closed = iframeWindows[i].closed;\r\n } catch (err) {\r\n // pass\r\n }\r\n\r\n if (closed) {\r\n iframeFrames.splice(i, 1);\r\n iframeWindows.splice(i, 1);\r\n }\r\n }\r\n}\r\n\r\nexport function linkFrameWindow(frame) {\r\n\r\n cleanIframes();\r\n\r\n if (frame && frame.contentWindow) {\r\n try {\r\n iframeWindows.push(frame.contentWindow);\r\n iframeFrames.push(frame);\r\n } catch (err) {\r\n // pass\r\n }\r\n }\r\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { KEY_CODES } from '../constants';\r\nimport { noop, uniqueID } from '../helpers';\r\nimport { ZalgoPromise } from 'zalgo-promise';\r\n\r\nexport function getBody() {\r\n var body = document.body;\r\n if (!body) throw new Error('Body element not found');\r\n return body;\r\n}\r\nexport function isDocumentReady() {\r\n return Boolean(document.body) && 'complete' === document.readyState;\r\n}\r\nexport function isDocumentInteractive() {\r\n return Boolean(document.body) && 'interactive' === document.readyState;\r\n}\r\n\r\n/**\r\n * \r\n * @returns ZalgoPromise object\r\n */\r\nexport function waitForDocumentReady() {\r\n return new ZalgoPromise((resolve) => {\r\n if (isDocumentReady() || isDocumentInteractive()) {\r\n resolve();\r\n } else {\r\n var interval = setInterval(() => {\r\n if (isDocumentReady() || isDocumentInteractive()) {\r\n clearInterval(interval);\r\n resolve();\r\n }\r\n }, 10);\r\n }\r\n });\r\n}\r\n\r\nexport function waitForWindowReady() {\r\n return new ZalgoPromise(resolve => {\r\n if (isDocumentReady()) {\r\n resolve();\r\n }\r\n\r\n window.addEventListener('load', () => resolve());\r\n });\r\n}\r\n\r\nexport function htmlEncode(html = '') {\r\n return html.toString()\r\n .replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(/\\//g, '/');\r\n}\r\n\r\nexport function isBrowser() {\r\n return (typeof window !== 'undefined') && window.location !== undefined;\r\n}\r\n\r\nexport function querySelectorAll(selector, doc = window.document) {\r\n return Array.prototype.slice.call(doc.querySelectorAll(selector));\r\n}\r\n\r\n\r\nexport function bindEvents(element, eventNames, handler) {\r\n\r\n for (const eventName of eventNames) {\r\n element.addEventListener(eventName, handler);\r\n }\r\n\r\n return {\r\n cancel: () => {\r\n for (const eventName of eventNames) {\r\n element.removeEventListener(eventName, handler);\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function onClick(element, handler) {\r\n element.addEventListener('touchstart', noop);\r\n element.addEventListener('click', handler);\r\n element.addEventListener('keypress', (event) => {\r\n if (event.keyCode === KEY_CODES.ENTER || event.keyCode === KEY_CODES.SPACE) {\r\n return handler(event);\r\n }\r\n });\r\n}\r\n\r\n\r\nexport function isNode(o) {\r\n return (typeof Node === 'object' && o instanceof Node)\r\n || (o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string');\r\n}\r\n\r\n//Returns true if it is a DOM element \r\nexport function isElement(o) {\r\n return (typeof HTMLElement === 'object' && o instanceof HTMLElement)\r\n || (o && typeof o === 'object' && o !== null && o.nodeType === 1 && typeof o.nodeName === 'string');\r\n}\r\n\r\nexport function getElementSafe(selector, doc = document) {\r\n\r\n if (isElement(selector)) {\r\n return selector;\r\n }\r\n\r\n if (typeof selector === 'string') {\r\n return doc.querySelector(selector);\r\n }\r\n}\r\n\r\nexport function getElement(selector, doc = document) {\r\n\r\n const element = getElementSafe(selector, doc);\r\n\r\n if (element) {\r\n return element;\r\n }\r\n\r\n throw new Error('Can not find element with provided selector');\r\n}\r\n\r\nconst matches = HTMLElement.prototype.matches\r\n || HTMLElement.prototype.webkitMatchesSelector\r\n || HTMLElement.prototype.mozMatchesSelector\r\n || HTMLElement.prototype.msMatchesSelector;\r\n\r\nconst matchesSelector = (elm, sl) => elm instanceof HTMLElement && matches.call(elm, sl);\r\nconst matchNodeRecursively = (nodes, selector, callback) => {\r\n const addedNodes = [...nodes];\r\n const nodeMatches = addedNodes\r\n .filter(node => node.nodeType === 1)\r\n .reduce((acc, node) => {\r\n // If current node is matched with provide selector\r\n if (matchesSelector(node, selector)) {\r\n acc = acc.concat([node]);\r\n }\r\n // Otherwise, try to match the selector with children of current node.\r\n // This usually happens if the children is appended via innerHTML attribute,\r\n // and MutationObserver is not going to fire with this case.\r\n else {\r\n var childList = [...node.querySelectorAll(selector)];\r\n if (childList.length) {\r\n acc = acc.concat(childList);\r\n }\r\n }\r\n return acc;\r\n }, []);\r\n\r\n if (nodeMatches.length) {\r\n callback(nodeMatches);\r\n }\r\n};\r\n\r\nexport function waitForElementReady(selector, doc = document) {\r\n const promise = new ZalgoPromise();\r\n\r\n if (selector && selector.nodeType === 1) {\r\n return promise.resolve(selector);\r\n }\r\n\r\n if (!selector || Object.prototype.toString.call(selector) !== '[object String]') {\r\n return promise.reject('Must provide a valid selector');\r\n }\r\n\r\n const bodyObserver = new MutationObserver((records) => {\r\n records.forEach(record => {\r\n if (record.type !== 'childList' || !record.addedNodes || !record.addedNodes.length) {\r\n return;\r\n }\r\n\r\n matchNodeRecursively(record.addedNodes, selector, (nodes) => {\r\n promise.resolve(nodes);\r\n bodyObserver.disconnect();\r\n });\r\n });\r\n });\r\n\r\n bodyObserver.observe(getBody(), {\r\n childList: true,\r\n subtree: true,\r\n attributes: false,\r\n characterData: false\r\n });\r\n\r\n // Try query selector at the first load\r\n const firstLoadMatches = [...doc.querySelectorAll(selector)];\r\n if (firstLoadMatches.length) {\r\n promise.resolve(firstLoadMatches);\r\n bodyObserver.disconnect();\r\n }\r\n\r\n return promise;\r\n}\r\n\r\nexport function watchForever({ selector = '[data-euroland-tool]', callback = noop, doc = document }) {\r\n \r\n if (!selector || Object.prototype.toString.call(selector) !== '[object String]') {\r\n throw new Error('Must provide a valid selector');\r\n }\r\n\r\n const bodyObserver = new MutationObserver((records) => {\r\n records.forEach(record => {\r\n if (record.type !== 'childList') {\r\n return;\r\n }\r\n\r\n if (!record.addedNodes || !record.addedNodes.length) {\r\n return;\r\n }\r\n\r\n matchNodeRecursively(record.addedNodes, selector, (nodes) => {\r\n callback(nodes);\r\n });\r\n });\r\n });\r\n\r\n bodyObserver.observe(getBody(), {\r\n childList: true,\r\n subtree: true,\r\n attributes: false,\r\n characterData: false\r\n });\r\n\r\n return {\r\n cancel: () => bodyObserver.disconnect()\r\n };\r\n}\r\n\r\nexport function isShadowElement(node) {\r\n do {\r\n // ShadowDOM Ref: http://www.w3.org/TR/shadow-dom/#shadowroot-object\r\n if (node.nodeType === 11) {\r\n return true;\r\n }\r\n } while ((node = node.parentNode));\r\n\r\n return false;\r\n}\r\n\r\nexport function getShadowHost(node) {\r\n do {\r\n if (node.nodeType === 11) {\r\n return node.host;\r\n }\r\n } while ((node = node.parentNode));\r\n\r\n return null;\r\n}\r\n\r\n\r\nexport function insertShadowSlot(element) {\r\n const shadowHost = getShadowHost(element);\r\n\r\n if (!shadowHost) {\r\n throw new Error('Element is not in shadow dom');\r\n }\r\n\r\n const slotName = `shadow-slot-${uniqueID()}`;\r\n const slot = document.createElement('slot');\r\n slot.setAttribute('name', slotName);\r\n element.appendChild(slot);\r\n\r\n const slotProvider = document.createElement('div');\r\n slotProvider.setAttribute('slot', slotName);\r\n shadowHost.appendChild(slotProvider);\r\n\r\n if (isShadowElement(shadowHost)) {\r\n return insertShadowSlot(slotProvider);\r\n }\r\n\r\n return slotProvider;\r\n}\r\n\r\nexport function makeElementVisible(element) {\r\n element.style.setProperty('visibility', '');\r\n}\r\n\r\nexport function makeElementInvisible(element) {\r\n element.style.setProperty('visibility', 'hidden', 'important');\r\n}\r\n\r\n\r\nexport function showElement(element) {\r\n element.style.setProperty('display', '');\r\n}\r\n\r\nexport function hideElement(element) {\r\n element.style.setProperty('display', 'none', 'important');\r\n}\r\n\r\nexport function destroyElement(element) {\r\n if (element && element.parentNode) {\r\n element.parentNode.removeChild(element);\r\n }\r\n}\r\n\r\nexport function addClass(element, name) {\r\n element.classList.add(name);\r\n}\r\n\r\nexport function removeClass(element, name) {\r\n element.classList.remove(name);\r\n}\r\n\r\nexport function setStyle(el, styleText, doc = window.document) {\r\n if (el.styleSheet) {\r\n el.styleSheet.cssText = styleText;\r\n } else {\r\n el.appendChild(doc.createTextNode(styleText));\r\n }\r\n}\r\n\r\nexport const isRTL = () => document.documentElement.dir === 'rtl';","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/**\r\n * Simple EventEmitter\r\n */\r\nexport class EventEmitter {\r\n constructor() {\r\n this.events = {};\r\n }\r\n \r\n on(event, listener) {\r\n if (!(event in this.events)) {\r\n this.events[event] = [];\r\n }\r\n this.events[event].push(listener);\r\n return () => this.removeListener(event, listener);\r\n }\r\n\r\n removeListener(event, listener) {\r\n if (!(event in this.events)) {\r\n return;\r\n }\r\n const idx = this.events[event].indexOf(listener);\r\n if (idx > -1) {\r\n this.events[event].splice(idx, 1);\r\n }\r\n if (this.events[event].length === 0) {\r\n delete this.events[event];\r\n }\r\n }\r\n\r\n emit(event, ...args) {\r\n if (!(event in this.events)) {\r\n return;\r\n }\r\n this.events[event].forEach(listener => listener(...args));\r\n }\r\n\r\n once(event, listener) {\r\n const remove = this.on(event, (...args) => {\r\n remove();\r\n listener(...args);\r\n });\r\n }\r\n\r\n reset() {\r\n this.events = {};\r\n }\r\n }","import { isSameDomain } from '../helpers/window-util';\r\n\r\nconst pkg = require('../../package.json');\r\n\r\nconst URL_BASE = process.env.ORIGIN;\r\n\r\nconst formatVersion = (ver) => { \r\n return ver.replace(/[^\\d]+/g, '_');\r\n};\r\n\r\nexport function getToolUrlBase() {\r\n return URL_BASE;\r\n}\r\n\r\nexport function getGlobalKey() {\r\n return `___uid_integration_component_factory_${formatVersion(pkg.version)}___`;\r\n}\r\n\r\nexport function getGlobal(win = window){\r\n const globalKey = getGlobalKey();\r\n\r\n if (!isSameDomain(win)) {\r\n throw new Error('Can not get global for window on different domain');\r\n }\r\n\r\n if (!win[globalKey]) {\r\n win[globalKey] = {};\r\n }\r\n\r\n return win[globalKey];\r\n}\r\n\r\nexport function destroyGlobal() {\r\n const globalKey = getGlobalKey();\r\n delete window[globalKey];\r\n}\r\n\r\n\r\nexport const __FLIPIT_INTEGRATION__ = {\r\n VERSION: pkg.version,\r\n URL_BASE: URL_BASE\r\n};\r\n","import { isNode, setStyle } from './document-util';\r\nimport { isString } from './util';\r\n\r\nexport function createElement(tagName, attrs, events, ...children) {\r\n attrs = Object.assign(attrs || {});\r\n events = Object.assign(events || {});\r\n children = children || [];\r\n \r\n var el = (isNode(tagName)) ? tagName : document.createElement(tagName);\r\n \r\n Object.keys(attrs).forEach((key) => {\r\n if (attrs[key] !== undefined) {\r\n if (key === 'style') {\r\n for (let styleName in attrs[key]) {\r\n el.style[styleName] = attrs[key][styleName];\r\n }\r\n }\r\n else if (key === 'id') {\r\n el.id = attrs[key];\r\n }\r\n else {\r\n el.setAttribute(key, attrs[key]);\r\n }\r\n }\r\n });\r\n \r\n Object.keys(events).forEach((key) => {\r\n if (typeof events[key] === 'function') {\r\n el.addEventListener(key, events[key]);\r\n }\r\n });\r\n if (children.length) {\r\n if (el.tagName === 'IFRAME') {\r\n const firstChild = children[0];\r\n if (children.length !== 1\r\n || !isNode(firstChild)\r\n || firstChild.tagName !== 'HTML'\r\n ) {\r\n throw new Error('Expected only single html element node as child of IFRAME element');\r\n }\r\n \r\n el.addEventListener('load', () => {\r\n const win = el.contentWindow;\r\n \r\n if (!win) {\r\n throw new Error('Expected frame to have contentWindow');\r\n }\r\n\r\n const document = win.document;\r\n const docElement = document.documentElement;\r\n\r\n while (docElement.children && docElement.children.length) {\r\n docElement.removeChild(docElement.children[0]);\r\n }\r\n\r\n docElement.appendChild(firstChild);\r\n });\r\n\r\n }\r\n else if (el.tagName === 'STYLE') {\r\n const firstChild = children[0];\r\n if (children.length !== 1\r\n || !isString(firstChild)\r\n ) {\r\n throw new Error('Expected only string as child of STYLE element');\r\n }\r\n\r\n setStyle(el, children);\r\n }\r\n else {\r\n var docFrag = document.createDocumentFragment();\r\n \r\n children.forEach(child => {\r\n docFrag.appendChild(isNode(child) ? child : document.createTextNode(String(child || '')));\r\n });\r\n \r\n el.appendChild(docFrag);\r\n }\r\n }\r\n\r\n return el;\r\n}","import { getElement, bindEvents } from './document-util';\r\nimport { ZalgoPromise } from 'zalgo-promise';\r\n\r\n\r\nconst VENDOR_PREFIXES = [ 'webkit', 'moz', 'ms', 'o' ];\r\n\r\nexport function setVendorCSS(element, name, value) {\r\n element.style[name] = value;\r\n \r\n const capitalizedName = name.charAt(0).toUpperCase() + name.slice(1).toLowerCase();\r\n\r\n for (const prefix of VENDOR_PREFIXES) {\r\n // $FlowFixMe\r\n element.style[`${ prefix }${ capitalizedName }`] = value;\r\n }\r\n}\r\n\r\nconst ANIMATION_START_EVENTS = [ 'animationstart', 'webkitAnimationStart', 'oAnimationStart', 'MSAnimationStart' ];\r\nconst ANIMATION_END_EVENTS = [ 'animationend', 'webkitAnimationEnd', 'oAnimationEnd', 'MSAnimationEnd' ];\r\n\r\nexport function animate(element, name, clean, timeout = 1000) {\r\n return new ZalgoPromise((resolve, reject) => {\r\n\r\n const el = getElement(element);\r\n\r\n if (!el) {\r\n return resolve();\r\n }\r\n\r\n let hasStarted = false;\r\n\r\n let startTimeout;\r\n let endTimeout;\r\n \r\n let startEvent;\r\n let endEvent;\r\n\r\n function cleanUp() {\r\n clearTimeout(startTimeout);\r\n clearTimeout(endTimeout);\r\n startEvent.cancel();\r\n endEvent.cancel();\r\n }\r\n\r\n startEvent = bindEvents(el, ANIMATION_START_EVENTS, event => {\r\n\r\n if (event.target !== el || event.animationName !== name) {\r\n return;\r\n }\r\n\r\n clearTimeout(startTimeout);\r\n\r\n event.stopPropagation();\r\n\r\n startEvent.cancel();\r\n hasStarted = true;\r\n\r\n endTimeout = setTimeout(() => {\r\n cleanUp();\r\n resolve();\r\n }, timeout);\r\n });\r\n\r\n endEvent = bindEvents(el, ANIMATION_END_EVENTS, event => {\r\n\r\n if (event.target !== el || event.animationName !== name) {\r\n return;\r\n }\r\n\r\n cleanUp();\r\n\r\n if (typeof event.animationName === 'string' && event.animationName !== name) {\r\n return reject(`Expected animation name to be ${ name }, found ${ event.animationName }`);\r\n }\r\n\r\n return resolve();\r\n });\r\n\r\n setVendorCSS(el, 'animationName', name);\r\n\r\n startTimeout = setTimeout(() => {\r\n if (!hasStarted) {\r\n cleanUp();\r\n return resolve();\r\n }\r\n }, 200);\r\n\r\n if (clean) {\r\n clean(cleanUp);\r\n }\r\n });\r\n}","export function getUserAgent() {\r\n return window.navigator.userAgent;\r\n}\r\n\r\nexport function isIos() {\r\n return (/iPhone|iPod|iPad/).test(getUserAgent());\r\n}\r\n\r\nexport function isQQBrowser() {\r\n return (/QQBrowser/).test(getUserAgent());\r\n}\r\n\r\nexport function isIosWebview() {\r\n if (isIos(getUserAgent())) {\r\n return (/.+AppleWebKit(?!.*Safari)|.*WKWebView/).test(getUserAgent());\r\n }\r\n return false;\r\n}\r\n\r\nexport function isOperaMini() {\r\n return (/Opera Mini/i).test(getUserAgent());\r\n}\r\n\r\nexport function isAndroid() {\r\n return (/Android/).test(getUserAgent());\r\n}\r\n\r\n\r\nexport function isAndroidWebview() {\r\n if (isAndroid(getUserAgent())) {\r\n return (/Version\\/[\\d.]+/).test(getUserAgent()) && !isOperaMini(getUserAgent());\r\n }\r\n return false;\r\n}\r\n\r\nexport function isFirefox() {\r\n return (/Firefox/i).test(getUserAgent());\r\n}\r\n\r\nexport function isFirefoxIOS() {\r\n return (/FxiOS/i).test(getUserAgent());\r\n}\r\n\r\nexport function isEdgeIOS() {\r\n return (/EdgiOS/i).test(getUserAgent());\r\n}\r\n\r\nexport function isChrome() {\r\n return (/Chrome|Chromium|CriOS/).test(getUserAgent());\r\n}\r\n\r\nexport function isSafari() {\r\n const ua = getUserAgent();\r\n return (/Safari/).test(ua) && !isChrome(ua);\r\n}\r\n\r\nexport function isIE() {\r\n\r\n if (window.document.documentMode) {\r\n return true;\r\n }\r\n\r\n return Boolean(\r\n window.navigator &&\r\n window.navigator.userAgent &&\r\n (/Edge|MSIE|rv:11/i).test(window.navigator.userAgent)\r\n );\r\n}\r\n\r\nexport function supportsPopups() {\r\n return !(isIosWebview() || isAndroidWebview() || isOperaMini() ||\r\n isFirefoxIOS() || isEdgeIOS() || isQQBrowser());\r\n}","import { getGlobal } from './global';\r\n\r\nconst global = getGlobal();\r\nglobal['____debug___'] = false;\r\n\r\nconst setDebug = (enabled = false) => {\r\n global['____debug___'] = enabled;\r\n};\r\n\r\nconst isDebug = () => global['____debug___'];\r\n\r\nexport {\r\n setDebug,\r\n isDebug\r\n};","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.1): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(val) {\r\n if (val === 'true') {\r\n return true;\r\n }\r\n\r\n if (val === 'false') {\r\n return false;\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val);\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-euroland-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-euroland-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {};\r\n\r\n Object.keys(element.dataset)\r\n .filter(key => key.startsWith('euroland'))\r\n .forEach(key => {\r\n let pureKey = key.replace(/^euroland/, '');\r\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\r\n attributes[pureKey] = normalizeData(element.dataset[key]);\r\n });\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-euroland-${normalizeDataKey(key)}`));\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + window.pageYOffset,\r\n left: rect.left + window.pageXOffset\r\n };\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft\r\n };\r\n }\r\n};\r\n\r\nexport default Manipulator;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.1): util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Manipulator from './manipulator';\r\nimport { isElement } from './document-util';\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\r\n\r\nclass ScrollBarHelper {\r\n constructor(doc = document) {\r\n this._element = doc.body;\r\n this._doc = doc;\r\n }\r\n\r\n getWidth() {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n const documentWidth = this._doc.documentElement.clientWidth;\r\n return Math.abs(window.innerWidth - documentWidth);\r\n }\r\n\r\n hide() {\r\n const width = this.getWidth();\r\n this._disableOverFlow();\r\n // give padding to element to balance the hidden scrollbar width\r\n this._setElementAttributes(this._element, 'paddingRight', calculatedValue => calculatedValue + width);\r\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);\r\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);\r\n }\r\n\r\n _disableOverFlow() {\r\n this._saveInitialAttribute(this._element, 'overflow');\r\n this._element.style.overflow = 'hidden';\r\n }\r\n\r\n _setElementAttributes(selector, styleProp, callback) {\r\n const scrollbarWidth = this.getWidth();\r\n const manipulationCallBack = element => {\r\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n return;\r\n }\r\n\r\n this._saveInitialAttribute(element, styleProp);\r\n const calculatedValue = window.getComputedStyle(element)[styleProp];\r\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n reset() {\r\n this._resetElementAttributes(this._element, 'overflow');\r\n this._resetElementAttributes(this._element, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\r\n }\r\n\r\n _saveInitialAttribute(element, styleProp) {\r\n const actualValue = element.style[styleProp];\r\n if (actualValue) {\r\n Manipulator.setDataAttribute(element, styleProp, actualValue);\r\n }\r\n }\r\n\r\n _resetElementAttributes(selector, styleProp) {\r\n const manipulationCallBack = element => {\r\n const value = Manipulator.getDataAttribute(element, styleProp);\r\n if (typeof value === 'undefined') {\r\n element.style.removeProperty(styleProp);\r\n } else {\r\n Manipulator.removeDataAttribute(element, styleProp);\r\n element.style[styleProp] = value;\r\n }\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n _applyManipulationCallback(selector, callBack) {\r\n if (isElement(selector)) {\r\n callBack(selector);\r\n } else {\r\n [].concat(...Element.prototype.querySelectorAll.call(this._element, selector)).forEach(callBack);\r\n }\r\n }\r\n\r\n isOverflowing() {\r\n return this.getWidth() > 0;\r\n }\r\n}\r\n\r\nexport default ScrollBarHelper;\r\n","import { isIE } from '../../helpers';\r\n\r\nexport const CLASS = {\r\n OUTLET: 'outlet',\r\n VISIBLE: 'visible',\r\n INVISIBLE: 'invisible',\r\n COMPONENT_FRAME: 'component-frame',\r\n PRERENDER_FRAME: 'prerender-frame'\r\n};\r\n\r\nexport function getSandboxStyle({ uid }){\r\n return `\r\n #${ uid }.euroland-tool-overlay-sandbox {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n\r\n width: 100%;\r\n height: 100%;\r\n width: 100vw;\r\n height: 100vh;\r\n max-width: 100%;\r\n max-height: 100%;\r\n min-width: 100%;\r\n min-height: 100%;\r\n\r\n z-index: 2147483647;\r\n\r\n animation-duration: 0.3s;\r\n animation-iteration-count: 1;\r\n animation-fill-mode: forwards !important;\r\n opacity: 0;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-sandbox .euroland-tool-overlay-sandbox-iframe {\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: transparent;\r\n border: none;\r\n }\r\n\r\n @keyframes show-container {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n @keyframes hide-container {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n 50% {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n `;\r\n}\r\n\r\nexport function getContainerStyle({ uid, width, height, backdropBgColor }) {\r\n return `\r\n #${ uid } {\r\n position: absolute;\r\n z-index: 2147483647;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${backdropBgColor};\r\n color: #fff;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n #${ uid } a {\r\n color: #fff;\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-close:before,\r\n #${ uid } .euroland-tool-overlay-close:after {\r\n background-color: #fff;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-popup {\r\n cursor: pointer;\r\n }\r\n\r\n #${ uid } a {\r\n text-decoration: none;\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-modal {\r\n box-sizing: border-box;\r\n max-width: 350px;\r\n top: 50%;\r\n left: 50%;\r\n position: absolute;\r\n transform: translateX(-50%) translateY(-50%);\r\n cursor: pointer;\r\n text-align: center;\r\n }\r\n\r\n .euroland-tool-overlay-loader {\r\n display: none;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-loading .euroland-tool-overlay-loader {\r\n display: block;\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-close {\r\n position: absolute;\r\n right: 16px;\r\n top: 16px;\r\n width: 16px;\r\n height: 16px;\r\n opacity: 0.6;\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-close:hover {\r\n opacity: 1;\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-close:before, .euroland-tool-overlay-close:after {\r\n position: absolute;\r\n left: 8px;\r\n content: ' ';\r\n height: 16px;\r\n width: 2px;\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-close:before {\r\n transform: rotate(45deg);\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-close:after {\r\n transform: rotate(-45deg);\r\n }\r\n\r\n #${ uid } .euroland-tool-overlay-iframe-container {\r\n display: none;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .euroland-tool-overlay-iframe-container,\r\n #${ uid }.euroland-tool-overlay-context-iframe .euroland-tool-overlay-iframe-container > .${ CLASS.OUTLET },\r\n #${ uid }.euroland-tool-overlay-context-iframe .euroland-tool-overlay-iframe-container > .${ CLASS.OUTLET } > iframe {\r\n max-height: 95vh;\r\n max-width: 95vw;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .euroland-tool-overlay-iframe-container {\r\n border-radius: .3rem;\r\n border: 1px solid rgba(0,0,0,.2);\r\n outline: 0;\r\n display: block;\r\n min-width: 450px;\r\n position: ${ isIE() ? 'relative' : 'absolute' };\r\n overflow: hidden;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } {\r\n\r\n position: relative;\r\n\r\n transition: all 0.3s ease;\r\n animation-duration: 0.3s;\r\n animation-fill-mode: forwards !important;\r\n\r\n min-width: 450px;\r\n max-width: 450px;\r\n width: ${width};\r\n height: ${height};\r\n\r\n background-color: #FFF;\r\n overflow: auto;\r\n opacity: 0;\r\n -webkit-overflow-scrolling: touch;\r\n transition: -webkit-transform .3s ease-out;\r\n transition: transform .3s ease-out;\r\n transition: transform .3s ease-out,-webkit-transform .3s ease-out;\r\n -webkit-transform: translate(0,-25%);\r\n -ms-transform: translate(0, -25%);\r\n transform: translate(0,-25%);\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } > iframe {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transition: opacity .4s ease-in-out;\r\n border-radius: 5px;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } > iframe.${ CLASS.COMPONENT_FRAME } {\r\n z-index: 100;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } > iframe.${ CLASS.PRERENDER_FRAME } {\r\n z-index: 200;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } > iframe.${ CLASS.VISIBLE } {\r\n opacity: 1;\r\n z-index: 200;\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } > iframe.${ CLASS.INVISIBLE } {\r\n opacity: 0;\r\n z-index: 100;\r\n }\r\n\r\n @media screen and (max-width: 470px) {\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .euroland-tool-overlay-iframe-container,\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } {\r\n min-width: 100%;\r\n min-width: calc(100% - 20px);\r\n\r\n max-width: 100%;\r\n max-width: calc(100% - 20px);\r\n }\r\n }\r\n\r\n #${ uid }.euroland-tool-overlay-context-iframe .${ CLASS.OUTLET } iframe {\r\n width: 1px;\r\n min-width: 100%;\r\n height: 100%;\r\n }\r\n\r\n @keyframes show-component {\r\n from {\r\n opacity: 0;\r\n -webkit-transform: translate(0,-25%);\r\n -ms-transform: translate(0,-25%);\r\n transform: translate(0,-25%);\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n -webkit-transform: translate(0,0);\r\n -ms-transform: translate(0,0);\r\n transform: translate(0,0);\r\n }\r\n }\r\n\r\n @keyframes hide-component {\r\n from {\r\n opacity: 1;\r\n -webkit-transform: translate(0,0);\r\n -ms-transform: translate(0,0);\r\n transform: translate(0,0);;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n -webkit-transform: translate(0,-25%);\r\n -ms-transform: translate(0,-25%);\r\n transform: translate(0,-25%);\r\n }\r\n }\r\n\r\n .euroland-spinner {\r\n height: 30px;\r\n width: 30px;\r\n display: inline-block;\r\n box-sizing: content-box;\r\n opacity: 1;\r\n filter: alpha(opacity=100);\r\n animation: rotation .7s infinite linear;\r\n border-left: 8px solid rgba(0, 0, 0, .2);\r\n border-right: 8px solid rgba(0, 0, 0, .2);\r\n border-bottom: 8px solid rgba(0, 0, 0, .2);\r\n border-top: 8px solid #fff;\r\n border-radius: 100%\r\n }\r\n\r\n @keyframes rotation {\r\n from {\r\n -webkit-transform: rotate(0deg);\r\n -ms-transform: rotate(0deg);\r\n transform: rotate(0deg)\r\n }\r\n to {\r\n -webkit-transform: rotate(359deg);\r\n -ms-transform: rotate(359deg);\r\n transform: rotate(359deg)\r\n }\r\n }\r\n `;\r\n}\r\n","import {\r\n createElement,\r\n uniqueID,\r\n animate,\r\n supportsPopups,\r\n isFirefox,\r\n noop,\r\n toCSS,\r\n isIos,\r\n destroyElement,\r\n setStyle,\r\n bindEvents\r\n} from '../../helpers';\r\nimport { CLASS, getSandboxStyle, getContainerStyle } from './style';\r\nimport { EVENT, WINDOW_TYPE } from '../../constants';\r\n\r\nexport function OverlayContainerTemplate({ autoResize = true, hideCloseButton = false, backdropBgColor, ignoreBackdropClick = false, styles = {} }) {\r\n return function ({ context, close, doc, props, focus, event, frame, prerenderFrame, dimensions: { width, height } }) {\r\n const uid = `euroland-tool-overlay-${uniqueID()}`;\r\n const overlay = createElement('div', {\r\n 'id': uid,\r\n 'class': 'euroland-tool-overlay-sandbox'\r\n });\r\n\r\n let sandboxIFrame = null;\r\n let enforceFocusEvent = null;\r\n\r\n function closePopup(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n close();\r\n }\r\n\r\n function focusPopup(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (ignoreBackdropClick) {\r\n return;\r\n }\r\n\r\n if (context === WINDOW_TYPE.IFRAME) {\r\n // Close popup on backdrop clicked.\r\n if (e.currentTarget === e.target) {\r\n close();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (!supportsPopups()) {\r\n return;\r\n }\r\n\r\n if (isIos()) {\r\n window.alert('Please switch tabs to reactivate the window');\r\n } else if (isFirefox()) {\r\n window.alert('Don\\'t see the popup window?\\n\\nSelect \"Window\" in your toolbar to find out');\r\n } else {\r\n focus();\r\n }\r\n }\r\n\r\n const enforceFocus = () => {\r\n if (enforceFocusEvent) enforceFocusEvent.cancel();\r\n bindEvents(document, ['focusin'], () => {\r\n console.log('Parent document focused!');\r\n });\r\n\r\n enforceFocusEvent = bindEvents(sandboxIFrame.contentWindow.document, ['focusin'], (event) => {\r\n console.log('Sandbox document focused!');\r\n if (sandboxIFrame\r\n && document.activeElement !== sandboxIFrame) {\r\n console.log('SandboxIFrame focus');\r\n if (sandboxIFrame.contentWindow) {\r\n sandboxIFrame.contentWindow.focus();\r\n }\r\n }\r\n });\r\n bindEvents(frame.contentWindow.document, ['focusin'], (event) => {\r\n console.log('Frame document focused!');\r\n });\r\n if (frame && frame.contentWindow) {\r\n frame.contentWindow.focus();\r\n }\r\n };\r\n\r\n const unenforceFocus = () => {\r\n if (enforceFocusEvent) {\r\n enforceFocusEvent.cancel();\r\n enforceFocusEvent = null;\r\n }\r\n };\r\n\r\n const setupAnimations = (name, el) => {\r\n const showContainer = () => animate(el, `show-${name}`, noop);\r\n const hideContainer = () => animate(el, `hide-${name}`, noop);\r\n event.on(EVENT.DISPLAY, showContainer);\r\n event.on(EVENT.CLOSE, hideContainer);\r\n };\r\n\r\n const setupAutoResize = (el) => {\r\n event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {\r\n if (typeof newWidth === 'number') {\r\n el.style.width = toCSS(newWidth);\r\n }\r\n\r\n if (typeof newHeight === 'number') {\r\n el.style.height = toCSS(newHeight);\r\n }\r\n });\r\n };\r\n \r\n const outletOnRender = (el) => {\r\n setupAnimations('component', el);\r\n if (autoResize) {\r\n setupAutoResize(el);\r\n }\r\n };\r\n \r\n let outlet = null;\r\n\r\n if (frame && prerenderFrame) {\r\n frame.classList.add(CLASS.COMPONENT_FRAME);\r\n prerenderFrame.classList.add(CLASS.PRERENDER_FRAME);\r\n \r\n prerenderFrame.classList.add(CLASS.VISIBLE);\r\n frame.classList.add(CLASS.INVISIBLE);\r\n \r\n event.on(EVENT.RENDERED, () => {\r\n prerenderFrame.classList.remove(CLASS.VISIBLE);\r\n prerenderFrame.classList.add(CLASS.INVISIBLE);\r\n \r\n frame.classList.remove(CLASS.INVISIBLE);\r\n frame.classList.add(CLASS.VISIBLE);\r\n \r\n setTimeout(() => {\r\n destroyElement(prerenderFrame);\r\n }, 1);\r\n });\r\n \r\n outlet = createElement('div',\r\n {\r\n 'class': CLASS.OUTLET\r\n },\r\n null,\r\n frame,\r\n prerenderFrame\r\n );\r\n outletOnRender(outlet);\r\n\r\n }\r\n \r\n const sandboxStyle = createElement('style', { 'type': 'text/css' }, null);\r\n setStyle(sandboxStyle, getSandboxStyle({ uid: uid }));\r\n\r\n const containerStyle = createElement('style', { 'type': 'text/css' }, null);\r\n setStyle(containerStyle, getContainerStyle({ uid: uid, width: width, height: height, backdropBgColor: backdropBgColor }));\r\n\r\n sandboxIFrame = createElement('iframe', {\r\n 'title': 'Euroland tool overlay',\r\n 'name': `euroland_tool_overlay_sandbox_${uid}`,\r\n 'scrolling': 'no',\r\n 'allowtransparency': 'true',\r\n 'class': 'euroland-tool-overlay-sandbox-iframe'\r\n },\r\n null,\r\n createElement('html', null, null,\r\n createElement('body', null, null,\r\n createElement('div', {\r\n 'id': uid,\r\n 'class': `euroland-tool-overlay-context-${context}`\r\n }, {\r\n 'click': focusPopup\r\n },\r\n (!hideCloseButton ?\r\n createElement('a', {\r\n 'href': '#',\r\n 'class': 'euroland-tool-overlay-close',\r\n 'aria-label': 'close',\r\n 'role': 'button'\r\n }, {\r\n 'click': closePopup\r\n })\r\n : ''\r\n ),\r\n createElement('div', { 'class': 'euroland-tool-overlay-iframe-container' }, null, outlet),\r\n containerStyle\r\n )\r\n )\r\n )\r\n );\r\n\r\n overlay.appendChild(sandboxStyle);\r\n overlay.appendChild(sandboxIFrame);\r\n\r\n setupAnimations('container', overlay);\r\n\r\n return overlay;\r\n };\r\n}","import { EUROLAND_TOOL } from '../../constants';\r\n\r\nexport const CLASS = {\r\n VISIBLE: 'visible',\r\n INVISIBLE: 'invisible'\r\n};\r\nexport function invertColor(hex, bw) {\r\n const padZero = (str, len) => {\r\n len = len || 2;\r\n var zeros = new Array(len).join('0');\r\n return (zeros + str).slice(-len);\r\n };\r\n\r\n if (hex.indexOf('#') === 0) {\r\n hex = hex.slice(1);\r\n }\r\n \r\n if (hex.length === 3) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n if (hex.length !== 6) {\r\n throw new Error('Invalid HEX color.');\r\n }\r\n var r = parseInt(hex.slice(0, 2), 16),\r\n g = parseInt(hex.slice(2, 4), 16),\r\n b = parseInt(hex.slice(4, 6), 16);\r\n if (bw) {\r\n \r\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\r\n ? '#000000'\r\n : '#FFFFFF';\r\n }\r\n \r\n r = (255 - r).toString(16);\r\n g = (255 - g).toString(16);\r\n b = (255 - b).toString(16);\r\n \r\n return '#' + padZero(r) + padZero(g) + padZero(b);\r\n}\r\n\r\nexport function getContainerSandboxStyle({ hideCloseButton, backdrop, backdropBgColor, uid, dimensions: { width, height } }) {\r\n return `\r\n #${ uid } {\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n width: 100vw;\r\n height: 100vh;\r\n max-width: 100%;\r\n max-height: 100%;\r\n min-width: 100%;\r\n min-height: 100%;\r\n z-index: 200000;\r\n outline: 0;\r\n }\r\n #${ uid} .${EUROLAND_TOOL }-modal-overlay {\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${ backdrop ? backdropBgColor : 'transparent' };\r\n color: #fff;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n #${ uid } a {\r\n color: #fff;\r\n text-decoration: none;\r\n }\r\n\r\n #${ uid } .${ EUROLAND_TOOL }-modal-overlay-close {\r\n position: absolute;\r\n right: 16px;\r\n top: 16px;\r\n width: 16px;\r\n height: 16px;\r\n opacity: 0.6;\r\n display: ${ hideCloseButton ? 'none' : 'block' }\r\n }\r\n #${ uid } .${ EUROLAND_TOOL }-modal-overlay-close:hover {\r\n opacity: 1;\r\n }\r\n #${ uid} .${ EUROLAND_TOOL }-modal-overlay-close:before,\r\n #${ uid} .${ EUROLAND_TOOL }-modal-overlay-close:after {\r\n position: absolute;\r\n left: 8px;\r\n content: ' ';\r\n height: 16px;\r\n width: 2px;\r\n background-color: #FFF;\r\n }\r\n #${ uid } .${ EUROLAND_TOOL }-modal-overlay-close:before {\r\n transform: rotate(45deg);\r\n }\r\n #${ uid } .${ EUROLAND_TOOL }-modal-overlay-close:after {\r\n transform: rotate(-45deg);\r\n }\r\n #${ uid} .${EUROLAND_TOOL}-modal-overlay-iframe-container {\r\n position: relative;\r\n width: ${ width };\r\n height: ${ height };\r\n margin: 1.75rem auto;\r\n }\r\n\r\n #${ uid} .${EUROLAND_TOOL}-modal-overlay-iframe-container > iframe {\r\n display: inline-block;\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n transition: opacity .2s ease-in-out;\r\n border-radius: 5px;\r\n }\r\n #${ uid} .${EUROLAND_TOOL}-modal-overlay-iframe-container > iframe.${ CLASS.INVISIBLE } {\r\n /*opacity: 0;*/\r\n animation: fadeOut 0.3s;\r\n }\r\n #${ uid} .${EUROLAND_TOOL}-modal-overlay-iframe-container > iframe.${ CLASS.VISIBLE } {\r\n /*opacity: 1;*/\r\n animation: fadeIn 0.3s;\r\n }\r\n\r\n @keyframes fadeIn {\r\n 0% {opacity:0;}\r\n 100% {opacity:1;}\r\n }\r\n \r\n @keyframes fadeOut {\r\n 0% {opacity: 1;}\r\n 100% {opacity: 0;} \r\n }\r\n\r\n\r\n @media (max-width: 768px) {\r\n #${ uid} .${EUROLAND_TOOL}-modal-overlay-iframe-container {\r\n width: calc(100vw - 1rem);\r\n height: calc(100vh - 1rem);\r\n margin: .5rem;\r\n }\r\n }\r\n `;\r\n}","import { EVENT, EUROLAND_TOOL, WINDOW_TYPE, PROPS_EVENT, FULLSCREEN_LIB } from '../../constants';\r\nimport {\r\n destroyElement,\r\n createElement,\r\n toCSS,\r\n uniqueID,\r\n supportsPopups,\r\n isIos,\r\n isFirefox,\r\n getGlobal,\r\n isRTL,\r\n ScrollBarHelper\r\n} from '../../helpers';\r\nimport { getContainerSandboxStyle, CLASS } from './style';\r\n\r\n\r\nexport function ModalContainerTemplate({ eventEmitter, hideCloseButton = true, backdrop = true, ignoreBackdropClick = false, backdropBgColor }) {\r\n return function ({ context, doc, frame, prerenderFrame, event, close, focus, dimensions: { width, height } }) {\r\n if (!frame || !prerenderFrame) {\r\n return;\r\n }\r\n\r\n function closePopup(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n close();\r\n }\r\n\r\n function focusPopup(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (ignoreBackdropClick) {\r\n return;\r\n }\r\n\r\n if (context === WINDOW_TYPE.IFRAME) {\r\n // Close popup on backdrop clicked.\r\n if (e.currentTarget === e.target) {\r\n close();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (!supportsPopups()) {\r\n return;\r\n }\r\n\r\n if (isIos()) {\r\n window.alert('Please switch tabs to reactivate the window');\r\n } else if (isFirefox()) {\r\n window.alert('Don\\'t see the popup window?\\n\\nSelect \"Window\" in your toolbar to find out');\r\n } else {\r\n focus();\r\n }\r\n }\r\n\r\n const uid = `${EUROLAND_TOOL}-modal-${uniqueID()}`;\r\n const global = getGlobal();\r\n const scrollbar = new ScrollBarHelper(doc);\r\n \r\n prerenderFrame.classList.add(CLASS.VISIBLE);\r\n frame.classList.add(CLASS.INVISIBLE);\r\n\r\n const style = createElement('style', { type: 'text/css' }, null, getContainerSandboxStyle({\r\n uid: uid,\r\n hideCloseButton: hideCloseButton,\r\n backdrop: backdrop,\r\n backdropBgColor: backdropBgColor,\r\n dimensions: { width: width, height: height }\r\n }));\r\n \r\n const closeButton = (!hideCloseButton ?\r\n createElement('a', {\r\n 'href': '#',\r\n 'class': `${EUROLAND_TOOL}-modal-overlay-close`,\r\n 'aria-label': 'close',\r\n 'role': 'button'\r\n }, {\r\n 'click': closePopup\r\n })\r\n : ''\r\n );\r\n const overlayIrameContainer = createElement('div',\r\n { 'class': `${EUROLAND_TOOL}-modal-overlay-iframe-container` },\r\n null,\r\n prerenderFrame,\r\n frame\r\n );\r\n \r\n const overlay = createElement(\r\n 'div',\r\n { 'class': `${EUROLAND_TOOL}-modal-overlay` },\r\n {\r\n click: focusPopup\r\n },\r\n overlayIrameContainer,\r\n closeButton\r\n );\r\n\r\n const container = createElement('div',\r\n { id: uid },\r\n null,\r\n style,\r\n overlay\r\n );\r\n\r\n const adjustModal = () => {\r\n const isModalOverflowing = overlay.scrollHeight > doc.documentElement.clientHeight;\r\n const scrollbarWidth = scrollbar.getWidth();\r\n const isBodyOverflowing = scrollbarWidth > 0;\r\n\r\n if ((!isBodyOverflowing && isModalOverflowing && !isRTL()) || (isBodyOverflowing && !isModalOverflowing && isRTL())) {\r\n overlay.style.paddingLeft = `${scrollbarWidth}px`;\r\n }\r\n\r\n if ((isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!isBodyOverflowing && isModalOverflowing && isRTL())) {\r\n overlay.style.paddingRight = `${scrollbarWidth}px`;\r\n }\r\n };\r\n\r\n const resetAdjustments = () => {\r\n overlay.style.paddingLeft = '';\r\n overlay.style.paddingRight = '';\r\n };\r\n\r\n if (eventEmitter) {\r\n eventEmitter.on(PROPS_EVENT.CHANGE_TITLE, (title) => frame.setAttribute('title', title));\r\n if (global[FULLSCREEN_LIB]) {\r\n eventEmitter.on(PROPS_EVENT.FULLSCREEN, () => global[FULLSCREEN_LIB].request(frame));\r\n }\r\n }\r\n\r\n event.on(EVENT.RENDERED, () => {\r\n prerenderFrame.classList.remove(CLASS.VISIBLE);\r\n prerenderFrame.classList.add(CLASS.INVISIBLE);\r\n\r\n frame.classList.remove(CLASS.INVISIBLE);\r\n frame.classList.add(CLASS.VISIBLE);\r\n\r\n setTimeout(() => {\r\n destroyElement(prerenderFrame);\r\n }, 1);\r\n });\r\n\r\n event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {\r\n if (typeof newWidth === 'number') {\r\n overlayIrameContainer.style.width = toCSS(newWidth);\r\n }\r\n\r\n if (typeof newHeight === 'number') {\r\n overlayIrameContainer.style.height = toCSS(newHeight);\r\n }\r\n\r\n adjustModal();\r\n });\r\n\r\n event.on(EVENT.CLOSE, () => {\r\n resetAdjustments();\r\n scrollbar.reset();\r\n });\r\n\r\n event.on(EVENT.DISPLAY, () => {\r\n scrollbar.hide();\r\n adjustModal();\r\n });\r\n\r\n return container;\r\n };\r\n}","export const CLASS = {\r\n VISIBLE: 'visible',\r\n INVISIBLE: 'invisible'\r\n};\r\n\r\nexport function getContainerStyle({ uid, width, height }) {\r\n return `\r\n #${ uid } {\r\n display: inline-block;\r\n position: relative;\r\n width: ${ width };\r\n height: ${ height };\r\n }\r\n\r\n #${ uid } > iframe {\r\n display: inline-block;\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n transition: opacity .2s ease-in-out;\r\n }\r\n\r\n #${ uid } > iframe.${ CLASS.INVISIBLE } {\r\n opacity: 0;\r\n }\r\n\r\n #${ uid } > iframe.${ CLASS.VISIBLE } {\r\n opacity: 1;\r\n }`;\r\n}\r\n","import {\r\n createElement,\r\n uniqueID,\r\n toCSS,\r\n destroyElement,\r\n getGlobal\r\n} from '../../helpers';\r\nimport { CLASS, getContainerStyle } from './style';\r\nimport { EVENT, PROPS_EVENT, FULLSCREEN_LIB } from '../../constants';\r\n\r\nexport function DefaultContainerTemplate({ eventEmitter }) {\r\n return ({ tag, frame, prerenderFrame, event, dimensions: { width, height } }) => {\r\n if (!frame || !prerenderFrame) {\r\n return;\r\n }\r\n\r\n const uid = `euroland-tool-${tag}-${uniqueID()}`;\r\n const global = getGlobal();\r\n\r\n const container = createElement(\r\n 'div',\r\n { id: uid },\r\n null,\r\n frame,\r\n prerenderFrame,\r\n createElement('style', { type: 'text/css' }, null, getContainerStyle({\r\n uid: uid,\r\n width: width,\r\n height: height\r\n }))\r\n );\r\n\r\n prerenderFrame.classList.add(CLASS.VISIBLE);\r\n frame.classList.add(CLASS.INVISIBLE);\r\n\r\n event.on(EVENT.RENDERED, () => {\r\n prerenderFrame.classList.remove(CLASS.VISIBLE);\r\n prerenderFrame.classList.add(CLASS.INVISIBLE);\r\n\r\n frame.classList.remove(CLASS.INVISIBLE);\r\n frame.classList.add(CLASS.VISIBLE);\r\n\r\n setTimeout(() => {\r\n destroyElement(prerenderFrame);\r\n }, 1);\r\n });\r\n\r\n event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {\r\n if (typeof newWidth === 'number') {\r\n container.style.width = toCSS(newWidth);\r\n }\r\n\r\n if (typeof newHeight === 'number') {\r\n container.style.height = toCSS(newHeight);\r\n }\r\n });\r\n\r\n if (eventEmitter) {\r\n eventEmitter.on(PROPS_EVENT.CHANGE_TITLE, (title) => frame.setAttribute('title', title));\r\n if (global[FULLSCREEN_LIB]) {\r\n eventEmitter.on(PROPS_EVENT.FULLSCREEN, () => global[FULLSCREEN_LIB].request(frame));\r\n }\r\n }\r\n\r\n return container;\r\n };\r\n}","export function defaultPrerenderTemplate({ doc, props }) {\r\n const html = doc.createElement('html');\r\n const body = doc.createElement('body');\r\n const style = doc.createElement('style');\r\n const spinner = doc.createElement('div');\r\n const tallMan = doc.createElement('div');\r\n \r\n tallMan.classList.add('tall-man');\r\n spinner.classList.add('spinner', 'tall-man');\r\n\r\n if (props.cspNonce) {\r\n style.setAttribute('nonce', props.cspNonce);\r\n }\r\n\r\n html.appendChild(body);\r\n body.appendChild(tallMan);\r\n body.appendChild(spinner);\r\n body.appendChild(style);\r\n style.appendChild(doc.createTextNode(`\r\n html, body {\r\n box-sizing: border-box;\r\n background-color: #FFF;\r\n overflow: hidden;\r\n }\r\n .tall-man {\r\n height: 60px;\r\n }\r\n .spinner {\r\n position: fixed;\r\n max-height: 60vmin;\r\n max-width: 60vmin;\r\n width: 60px;\r\n top: 50%;\r\n left: 50%;\r\n box-sizing: border-box;\r\n border: 3px solid rgba(0, 0, 0, .2);\r\n border-top-color: rgba(33, 128, 192, 0.8);\r\n border-radius: 100%;\r\n animation: rotation .7s infinite linear;\r\n }\r\n\r\n @keyframes rotation {\r\n from {\r\n transform: translateX(-50%) translateY(-50%) rotate(0deg);\r\n }\r\n to {\r\n transform: translateX(-50%) translateY(-50%) rotate(359deg);\r\n }\r\n }\r\n `));\r\n\r\n return html;\r\n}","import { getGlobal, isIFrame, isString, isObject, noop, EventEmitter } from '../helpers';\r\nimport { OverlayContainerTemplate } from './overlay/template';\r\nimport { ModalContainerTemplate } from './modal/template';\r\nimport { DefaultContainerTemplate } from './side-by-side/template';\r\nimport { defaultPrerenderTemplate } from './default-prerender-template';\r\nimport { DEBUG } from '../constants';\r\nimport { isDebug } from '../helpers/debug';\r\n\r\nexport function LeafComponentFactory(componentName, template, {\r\n tag,\r\n url,\r\n domain,\r\n bridgeUrl,\r\n method,\r\n props,\r\n dimensions,\r\n autoResize,\r\n attributes,\r\n defaultContext\r\n}) {\r\n \r\n const global = getGlobal();\r\n const eventEmitter = new EventEmitter();\r\n const getContainerTemplate = (template) => {\r\n let {\r\n hideCloseButton = false,\r\n name,\r\n ignoreBackdropClick = false,\r\n customStyles,\r\n backdropBgColor,\r\n autoResize = true\r\n } = isObject(template) ? template : { name: isString(template) ? template : '' };\r\n\r\n backdropBgColor = backdropBgColor || 'rgba(0, 0, 0, 0.6)';\r\n \r\n switch (String(name).toLocaleLowerCase()) {\r\n case 'modal': return ModalContainerTemplate({\r\n eventEmitter: eventEmitter,\r\n autoResize: autoResize,\r\n hideCloseButton: hideCloseButton,\r\n backdropBgColor: backdropBgColor,\r\n ignoreBackdropClick: ignoreBackdropClick,\r\n styles: customStyles\r\n });\r\n case 'popup': return OverlayContainerTemplate({\r\n autoResize: autoResize,\r\n hideCloseButton: hideCloseButton,\r\n ignoreBackdropClick: ignoreBackdropClick,\r\n backdropBgColor: backdropBgColor,\r\n styles: customStyles\r\n });\r\n case 'default':\r\n default: return DefaultContainerTemplate({ eventEmitter: eventEmitter });\r\n }\r\n };\r\n const componentOptions = {\r\n tag: tag,\r\n url: url,\r\n domain: domain,\r\n bridgeUrl: bridgeUrl,\r\n method: method,\r\n props: props,\r\n dimensions: dimensions,\r\n autoResize: autoResize,\r\n attributes: attributes,\r\n prerenderTemplate: defaultPrerenderTemplate,\r\n validate: noop,\r\n defaultContext: defaultContext\r\n };\r\n\r\n var containerTemplate = getContainerTemplate(template);\r\n if (containerTemplate) {\r\n componentOptions.containerTemplate = containerTemplate;\r\n }\r\n\r\n global.components = global.components || {};\r\n\r\n if (!componentName) {\r\n throw new Error(`Invalid componentName value: ${componentName}`);\r\n }\r\n\r\n if (global.components[componentName]) {\r\n if(isDebug()) {\r\n console.debug(`There's already a registered component with name: ${ componentName }.`);\r\n }\r\n return global.components[componentName];\r\n }\r\n\r\n const createZoidComponent = () => {\r\n const component = zoid.create(componentOptions);\r\n \r\n if (isIFrame()) {\r\n component.componentOptions = componentOptions;\r\n component.containerTemplate = template;\r\n }\r\n\r\n return component;\r\n };\r\n\r\n // Gonna access to instance of component definition like: window.components.MyLoginComponent()\r\n const component = global.components[componentName] = createZoidComponent();\r\n return component;\r\n\r\n}","import {\r\n waitForElementReady,\r\n isIFrame,\r\n getToolUrlBase,\r\n uniqueID,\r\n toCSS,\r\n noop,\r\n isString,\r\n isPerc,\r\n stringifyError,\r\n createElement,\r\n destroyElement,\r\n getGlobal,\r\n EventEmitter,\r\n htmlEncode,\r\n parseQuery\r\n} from '../helpers';\r\nimport { EVENT, EUROLAND_TOOL, FULLSCREEN_LIB, PROPS_EVENT } from '../constants';\r\nimport { LeafComponentFactory } from './componentdef-factory';\r\nimport { defaultPrerenderTemplate } from './default-prerender-template';\r\nimport { ZalgoPromise } from 'zalgo-promise';\r\n\r\n/**\r\n * ToolComponent which embeding tool to the customer site inside an iframe \r\n * and setting up the features like auto-resize, exchanges cross-origin message between\r\n * parent and child iframe, etc.\r\n */\r\n\r\nconst CLASS = {\r\n VISIBLE: 'visible',\r\n INVISIBLE: 'invisible'\r\n};\r\n\r\nfunction ToolCompomentContainerTemplate({eventEmitter, tag, frame, prerenderFrame, event, dimensions: { width, height } }) {\r\n if (!frame || !prerenderFrame) {\r\n return;\r\n }\r\n\r\n const uid = `euroland-tool-${tag}-${uniqueID()}`;\r\n const global = getGlobal();\r\n\r\n const containerStyle = `\r\n #${ uid } {\r\n display: inline-block;\r\n position: relative;\r\n width: ${ width };\r\n height: ${ height };\r\n }\r\n\r\n #${ uid } > iframe {\r\n display: inline-block;\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n transition: opacity .2s ease-in-out;\r\n }\r\n\r\n #${ uid } > iframe.${ CLASS.INVISIBLE } {\r\n opacity: 0;\r\n }\r\n\r\n #${ uid } > iframe.${ CLASS.VISIBLE } {\r\n opacity: 1;\r\n }`;\r\n\r\n const container = createElement(\r\n 'div',\r\n { id: uid },\r\n null,\r\n frame,\r\n prerenderFrame,\r\n createElement('style', { type: 'text/css' }, null, containerStyle)\r\n );\r\n\r\n prerenderFrame.classList.add(CLASS.VISIBLE);\r\n frame.classList.add(CLASS.INVISIBLE);\r\n \r\n event.on(EVENT.RENDERED, () => {\r\n prerenderFrame.classList.remove(CLASS.VISIBLE);\r\n prerenderFrame.classList.add(CLASS.INVISIBLE);\r\n\r\n frame.classList.remove(CLASS.INVISIBLE);\r\n frame.classList.add(CLASS.VISIBLE);\r\n\r\n setTimeout(() => {\r\n destroyElement(prerenderFrame);\r\n }, 1);\r\n });\r\n \r\n event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {\r\n if (typeof newWidth === 'number') {\r\n container.style.width = toCSS(newWidth);\r\n }\r\n\r\n if (typeof newHeight === 'number') {\r\n container.style.height = toCSS(newHeight);\r\n }\r\n });\r\n\r\n if (eventEmitter) {\r\n eventEmitter.on(PROPS_EVENT.CHANGE_TITLE, (title) => {\r\n frame.title = title;\r\n });\r\n if (global[FULLSCREEN_LIB]) {\r\n eventEmitter.on(PROPS_EVENT.FULLSCREEN, () => {\r\n global[FULLSCREEN_LIB].request(frame);\r\n });\r\n }\r\n\r\n eventEmitter.on(PROPS_EVENT.SCROLL_TO, (scrollTop) => {\r\n if (typeof (scrollTop) !== 'undefined'\r\n && !isNaN(scrollTop)\r\n && isFinite(scrollTop)\r\n && scrollTop >= 0) {\r\n window.scrollTo({\r\n left: 0, \r\n top: scrollTop, \r\n behavior: 'smooth'\r\n });\r\n } else if(['top-frame', 'bottom-frame'].indexOf(scrollTop) !== -1) {\r\n frame.scrollIntoView({\r\n behavior: 'smooth', \r\n\t\t\t\t\tblock: scrollTop === 'top-frame' ? 'start' : 'end', \r\n\t\t\t\t\tinline: 'nearest'\r\n });\r\n } \r\n });\r\n }\r\n\r\n return container;\r\n}\r\n\r\nexport function ToolComponent({\r\n urlBase,\r\n toolName,\r\n absoluteToolUrl,\r\n companyCode,\r\n lang,\r\n toolVer,\r\n width,\r\n height,\r\n attributes,\r\n allowedParentDomains = '*',\r\n resizeElement = 'body'\r\n}) {\r\n const global = getGlobal();\r\n urlBase = isString(urlBase) && urlBase.length > 0 ? urlBase : getToolUrlBase();\r\n let eventEmitter;\r\n const screenfullLib = getGlobal()[FULLSCREEN_LIB];\r\n\r\n const isHttpUrl = (value) => {\r\n return isString(value) && (value.match(/^https?:\\/\\//i) || value.match(/^mock:\\/\\//));\r\n };\r\n\r\n const propsDef = {\r\n toolName: {\r\n type: 'string',\r\n required: true\r\n },\r\n toolUrl: {\r\n type: 'string',\r\n required: false,\r\n validate: function ({ value }) {\r\n return !isString(value) || !value.length || isHttpUrl(value);\r\n }\r\n },\r\n companyCode: {\r\n type: 'string',\r\n required: true,\r\n queryParam: true\r\n },\r\n lang: {\r\n type: 'string',\r\n required: false,\r\n queryParam: true,\r\n default: () => ('en-gb')\r\n },\r\n toolVer: {\r\n type: 'string',\r\n required: false,\r\n queryParam: false,\r\n default: () => ('')\r\n },\r\n 'v': {\r\n type: 'string',\r\n required: false,\r\n queryParam: true,\r\n alias: 'toolVer'\r\n },\r\n origin: {\r\n type: 'string',\r\n required: true,\r\n queryParam: true\r\n },\r\n onCreateComponent: {\r\n type: 'function',\r\n required: false,\r\n default: () => noop\r\n },\r\n requestFullscreen: {\r\n type: 'function',\r\n required: false,\r\n default: () => noop\r\n },\r\n exitFullscreen: {\r\n type: 'function',\r\n required: false,\r\n default: () => noop\r\n },\r\n maximize: {\r\n type: 'function',\r\n required: false,\r\n default: () => noop\r\n },\r\n unMaximize: {\r\n type: 'function',\r\n required: false,\r\n default: () => noop\r\n },\r\n setTitle: {\r\n type: 'function',\r\n required: false,\r\n default: () => noop\r\n },\r\n scrollTop: {\r\n type: 'function',\r\n required: false,\r\n default: () => window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop || 0\r\n }\r\n };\r\n\r\n const getSafeWidth = () => {\r\n try {\r\n return toCSS(width);\r\n } catch (err) {\r\n return '100%';\r\n }\r\n };\r\n\r\n const getSafeHeight = () => {\r\n try {\r\n return toCSS(height);\r\n } catch (err) {\r\n return '100%';\r\n }\r\n };\r\n\r\n const getUrl = ({ props }) => {\r\n const { toolName, toolUrl/*, companyCode, lang, toolVer, origin*/ } = props;\r\n \r\n return isHttpUrl(toolUrl)\r\n ? `${toolUrl}`\r\n : new URL(`${toolName}/`, urlBase).href;\r\n };\r\n \r\n const createTreeComponent = () => {\r\n const treeComponentTagName = toolName.toLowerCase();\r\n let component = zoid.create({\r\n url: getUrl,\r\n tag: treeComponentTagName,\r\n allowedParentDomains: allowedParentDomains,\r\n attributes: {\r\n iframe: {\r\n allowfullscreen: 'true',\r\n scrolling: 'no'\r\n }\r\n },\r\n dimensions: {\r\n width: getSafeWidth(),\r\n height: getSafeHeight()\r\n },\r\n autoResize: {\r\n width: false /*isPerc(getSafeWidth())*/, // autoResize width get strange behavior, disable it this time.\r\n height: isPerc(getSafeHeight()),\r\n element: resizeElement || 'body'\r\n },\r\n containerTemplate: ({ tag, frame, prerenderFrame, event, dimensions: { width, height } }) => {\r\n return ToolCompomentContainerTemplate({\r\n eventEmitter: eventEmitter,\r\n tag: tag,\r\n frame: frame,\r\n prerenderFrame: prerenderFrame,\r\n event: event,\r\n dimensions: { width, height }\r\n });\r\n },\r\n prerenderTemplate: defaultPrerenderTemplate,\r\n props: propsDef\r\n });\r\n \r\n return component;\r\n };\r\n\r\n const createLayout = () => {\r\n const uid = uniqueID();\r\n const topUID = `${EUROLAND_TOOL}-layout-top-${uid}`;\r\n const bottomUID = `${EUROLAND_TOOL}-layout-bottom-${uid}`;\r\n const middleUID = `${EUROLAND_TOOL}-layout-middle-${uid}`;\r\n\r\n const style = `\r\n #${topUID}, #${bottomUID}, #${middleUID} {\r\n flex: 1 100%;\r\n border: none;\r\n }\r\n `;\r\n \r\n return {\r\n topContainer: createElement('div', { id: topUID }),\r\n middleContainer: createElement('div', { id: middleUID }),\r\n bottomContainer: createElement('div', { id: bottomUID }),\r\n style: createElement('style', { type: 'text/css' }, null, style)\r\n };\r\n };\r\n\r\n const treeComponent = createTreeComponent();\r\n const isChild = treeComponent.isChild();\r\n\r\n if (!isChild) {\r\n eventEmitter = new EventEmitter();\r\n }\r\n \r\n const createLeafComponent = ({ componentName, template, options }) => {\r\n LeafComponentFactory(componentName, template, { ...options });\r\n };\r\n\r\n const requestFullscreen = (selector) => {\r\n if (!screenfullLib) {\r\n return ZalgoPromise.reject('screenfull lib not available.');\r\n }\r\n\r\n if (!screenfullLib.enabled) {\r\n return ZalgoPromise.reject('Current browser does not support fullscreen');\r\n }\r\n\r\n if (eventEmitter) {\r\n eventEmitter.emit(PROPS_EVENT.FULLSCREEN);\r\n return ZalgoPromise.resolve();\r\n }\r\n };\r\n\r\n const exitFullscreen = () => {\r\n if (!screenfullLib || !screenfullLib.enabled) {\r\n return ZalgoPromise.resolve();\r\n } else {\r\n return screenfullLib.exit();\r\n }\r\n };\r\n\r\n const setTitle = (title) => {\r\n if (!isString(title)) {\r\n return;\r\n }\r\n title = htmlEncode(title);\r\n if (eventEmitter) {\r\n eventEmitter.emit(PROPS_EVENT.CHANGE_TITLE, title);\r\n }\r\n };\r\n\r\n const scrollTop = (scrollTopNumber) => {\r\n if(scrollTopNumber !== undefined && scrollTopNumber !== null) {\r\n eventEmitter && eventEmitter.emit(PROPS_EVENT.SCROLL_TO, scrollTopNumber);\r\n }\r\n else {\r\n return window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop || 0;\r\n }\r\n };\r\n\r\n const render = (container) => {\r\n if (isChild) {\r\n console.warn('You\\'re sitting in an iframe. `euroland.render()` aims to call from parent site only.');\r\n return ZalgoPromise.reject(new Error('You\\'re sitting in an iframe. `euroland.render()` aims to call from parent site only.'));\r\n }\r\n\r\n return waitForElementReady(container).then(el => {\r\n let containerId = el.id || '';\r\n\r\n if (!containerId.length) {\r\n containerId = uniqueID();\r\n el.id = containerId;\r\n }\r\n\r\n const { topContainer, bottomContainer, middleContainer, style } = createLayout();\r\n el.appendChild(topContainer);\r\n el.appendChild(middleContainer);\r\n el.appendChild(bottomContainer);\r\n el.appendChild(style);\r\n\r\n return treeComponent({\r\n layout: {\r\n top: `#${topContainer.id}`,\r\n middle: `#${middleContainer.id}`,\r\n bottom: `#${ bottomContainer.id }`\r\n },\r\n toolName: toolName,\r\n toolUrl: absoluteToolUrl,\r\n companyCode: companyCode,\r\n toolVer: toolVer,\r\n lang: lang,\r\n origin: location.origin,\r\n onCreateComponent: function onCreateComponent({ props }) {\r\n createLeafComponent({ ...props });\r\n },\r\n requestFullscreen: requestFullscreen,\r\n exitFullscreen: exitFullscreen,\r\n setTitle: setTitle,\r\n scrollTop: scrollTop\r\n }).render(middleContainer, 'iframe');\r\n\r\n }).catch(err => {\r\n console.error(`Could not render tool \"${toolName}\" to the document. Error: ${stringifyError(err)}`);\r\n throw err;\r\n });\r\n };\r\n\r\n const destroyAll = () => {\r\n zoid.destroy('Destroy all components');\r\n };\r\n\r\n return {\r\n render: render,\r\n destroy: destroyAll\r\n };\r\n}","import { ZalgoPromise } from 'zalgo-promise';\r\nimport {\r\n waitForDocumentReady,\r\n watchForever,\r\n attributeToObject,\r\n getElementSafe,\r\n stringifyError,\r\n getGlobal,\r\n destroyGlobal,\r\n setDebug,\r\n cleanup,\r\n isElement,\r\n isNode,\r\n querySelectorAll,\r\n isLiveWatchEleemntDisabled\r\n} from '../helpers';\r\nimport { FULLSCREEN_LIB, DEBUG } from '../constants';\r\nimport { ToolComponent } from '../shared/ToolComponent';\r\nimport { default as screenfull } from '../lib/screenfull';\r\n\r\nconst global = getGlobal();\r\nconst cleanupInstances = cleanup();\r\nglobal[FULLSCREEN_LIB] = screenfull;\r\n\r\nglobal.parentComponentInstances = [];\r\n\r\nconst getOrCreateParentComponent = ({ urlBase, toolName, companyCode, lang, toolVer, width, height, absoluteToolUrl }) => {\r\n let component = global.parentComponentInstances.find(instance => instance.tag.toLowerCase() === toolName.toLowerCase());\r\n \r\n if(!component) {\r\n component = {\r\n tag: toolName.toLowerCase(),\r\n instance: new ToolComponent({\r\n urlBase,\r\n toolName,\r\n companyCode,\r\n lang,\r\n toolVer,\r\n width,\r\n height,\r\n absoluteToolUrl\r\n })\r\n };\r\n\r\n global.parentComponentInstances.push(component);\r\n }\r\n\r\n return component.instance;\r\n};\r\n\r\n/**\r\n * Provives ability to disable watching element on host site.\r\n * Watching element on host site enabling the embed.js can monitor\r\n * and create a tool on the fly. This is handly for the host site which\r\n * is SPA, but not good at performance. If host site has any issue on the \r\n * performance, they can set if to False by providing this variable before\r\n * embed.js is executed. \r\n * e.g:\r\n * \r\n * __EUROLAND_DISABLE_LIVE_WATCH_ELEMENT__ = false;\r\n */\r\nconst watchLiveElement = () => {\r\n \r\n watchForever({\r\n callback: (nodes) => {\r\n nodes.forEach(element => {\r\n const toolConfig = attributeToObject(element);\r\n \r\n getOrCreateParentComponent({...toolConfig}).render(element);\r\n cleanupInstances.register((function(needEmptyElm) {\r\n const el = needEmptyElm;\r\n return () => {\r\n try{\r\n while(el.firstChild) {\r\n el.removeChild(el.firstChild);\r\n }\r\n }finally{\r\n //\r\n }\r\n };\r\n })(element));\r\n });\r\n }\r\n });\r\n \r\n};\r\n\r\nexport function bootstrap(selector) {\r\n waitForDocumentReady().then(() => {\r\n if(!selector) {\r\n console.warn('Not any selector provided.');\r\n }\r\n\r\n var tools = [];\r\n if(isElement(selector) || isNode(selector)) {\r\n tools = [selector];\r\n } else {\r\n //tools = document.querySelectorAll(selector);\r\n tools = querySelectorAll(selector);\r\n }\r\n \r\n tools.forEach(element => {\r\n const toolConfig = attributeToObject(element);\r\n \r\n getOrCreateParentComponent({...toolConfig}).render(element);\r\n\r\n cleanupInstances.register((function(needEmptyElm) {\r\n const el = needEmptyElm;\r\n return () => {\r\n try{\r\n while(el.firstChild) {\r\n el.removeChild(el.firstChild);\r\n }\r\n }finally{\r\n //\r\n }\r\n };\r\n })(element));\r\n });\r\n \r\n\r\n })\r\n .catch(err => {\r\n console.warn(err);\r\n })\r\n .finally(() => {\r\n if(!isLiveWatchEleemntDisabled()) {\r\n watchLiveElement();\r\n }\r\n });\r\n} \r\n\r\nexport function create({ urlBase, container, name, company, language, version, width, height }) {\r\n return waitForDocumentReady().then(() => {\r\n container = getElementSafe(container);\r\n if (!container) {\r\n console.error(`Unable to get container to initialize the tool ${name}. Check the container ${container} is correct element or selector.`);\r\n //throw new Error(`Unable to get container to initialize the tool ${name}. Check the container ${container} is correct element or selector.`);\r\n return;\r\n }\r\n\r\n cleanupInstances.register((function(needEmptyElm) {\r\n const el = needEmptyElm;\r\n return () => {\r\n try{\r\n while(el.firstChild) {\r\n el.removeChild(el.firstChild);\r\n }\r\n } finally {\r\n //\r\n }\r\n };\r\n })(container));\r\n\r\n return getOrCreateParentComponent({\r\n urlBase: urlBase,\r\n toolName: name,\r\n companyCode: company,\r\n lang: language,\r\n toolVer: version,\r\n width: width,\r\n height: height\r\n }).render(container);\r\n\r\n }).catch(err => {\r\n console.error(`[euroland]: Unable to create tool ${name}. ERR: ${stringifyError(err)}`);\r\n //throw err;\r\n });\r\n \r\n\r\n}\r\n\r\nexport function destroy() {\r\n zoid\r\n .destroy('Destroy all components')\r\n .then(cleanupInstances.all)\r\n .then(()=> destroyGlobal());\r\n}\r\n\r\nexport function ____debug() { setDebug(true); }","import { noop } from '../helpers';\r\nimport { ZalgoPromise } from 'zalgo-promise';\r\n\r\nexport function cleanup(obj) {\r\n const tasks = [];\r\n obj = obj || {};\r\n \r\n let cleaned = false;\r\n let cleanErr;\r\n const cleaner = {\r\n set: function(name, item) {\r\n if (!cleaned) {\r\n obj[name] = item;\r\n cleaner.register(() => {\r\n delete obj[name];\r\n });\r\n }\r\n return item;\r\n },\r\n register: function(func) {\r\n if (cleaned) {\r\n func(cleanErr);\r\n } else {\r\n tasks.push(() => func(cleanErr));\r\n }\r\n },\r\n /**\r\n * \r\n * @param {String} err \r\n * @returns ZalgoPromise object\r\n */\r\n all: function(err) {\r\n cleanErr = err;\r\n const results = [];\r\n cleaned = true;\r\n while (tasks.length) {\r\n const task = tasks.shift();\r\n results.push(task());\r\n }\r\n return ZalgoPromise.all(results).then(noop);\r\n }\r\n };\r\n return cleaner;\r\n}","// \"core-js\" provides polyfill for old browsers,\r\n//import 'core-js/stable';\r\nimport '../corejsImport';\r\n//import 'regenerator-runtime/runtime';\r\n\r\n/* Import all vendor.scss / css here[e.g. Import 'font-awesome/scss/font-awesome.scss';] */\r\n//import { Routes, DefaultRoute } from './view/routes';\r\n\r\n/* Include global app styles here, so that it will override component's css styles*/\r\n//import './app.scss';\r\n\r\nimport { bootstrap, create as createTool, destroy, ____debug } from './bootstrap';\r\nimport { __FLIPIT_INTEGRATION__ } from '../helpers';\r\n\r\nif (module.hot) {\r\n module.hot.accept();\r\n}\r\n\r\nif (process.env.NODE_ENV !== 'production') {\r\n console.log('Looks like we are in development mode!');\r\n console.log('ORIGIN ===>', process.env.ORIGIN, process.env.NODE_ENV, process.env.ZOID_FRAME_ONLY);\r\n}\r\n\r\n/**\r\n * Try to initialize pre-defined tool via selector `[euroland]` attribute.\r\n */\r\nbootstrap('euroland-tool, [data-euroland-tool]');\r\n\r\n\r\n/**\r\n * Export create() API to the module in order to be accessible via `euroland.create({})`.\r\n * Example:\r\n * ```\r\n * euroland.createTool({\r\n * container: 'mySelector',\r\n * name: 'sharegraph',\r\n * company: 's-volv',\r\n * language: 'en-gb',\r\n * version: '',\r\n * width: '100%',\r\n * height: '600px'\r\n * });\r\n * \r\n * ```\r\n */\r\n //const components = getGlobal().components = (getGlobal().components || {});\r\nexport {\r\n createTool,\r\n destroy,\r\n ____debug,\r\n //components,\r\n __FLIPIT_INTEGRATION__\r\n};","import { DISABLE_LIVE_WATCH } from '../constants';\r\n\r\n/**\r\n * Determines whether disable watching element on host site.\r\n * Watching element on host site enabling the embed.js can monitor\r\n * and create a tool on the fly. This is handly for the host site which\r\n * is SPA, but not good at performance. If host site has any issue on the \r\n * performance, they can set if to False by providing this variable before\r\n * embed.js is executed. \r\n */\r\nexport function isLiveWatchEleemntDisabled(win = window) {\r\n return win[DISABLE_LIVE_WATCH] === true;\r\n}"],"sourceRoot":""}