{"version":3,"sources":["webpack://euroland/webpack/universalModuleDefinition","webpack://euroland/../node_modules/@krakenjs/zoid/dist/zoid.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/define property getters","webpack://euroland/webpack/runtime/global","webpack://euroland/webpack/runtime/hasOwnProperty shorthand","webpack://euroland/webpack/runtime/make namespace object","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/../node_modules/@babel/runtime/helpers/esm/typeof.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/toPropertyKey.js","webpack://euroland/../node_modules/@babel/runtime/helpers/esm/toPrimitive.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/../node_modules/@babel/runtime/helpers/esm/defineProperty.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/./integration/bootstrap.js","webpack://euroland/./integration/index.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","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","defineProperties","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","__webpack_modules__","definition","isEmptyObject","isString","getQueryParam","_step","_iterator","_createForOfIteratorHelper","PROTOCOL","DEF_REQUEST","PROPS_EVENT","EUROLAND_TOOL","isActuallySameDomain","arr","arr2","_toConsumableArray","iter","minLen","_typeof","bindEvents","eventNames","_step2","_iterator2","isNode","Node","nodeName","HTMLElement","selector","getElement","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","matchNodeRecursively","nodes","nodeMatches","node","sl","elm","setStyle","isRTL","dir","_classCallCheck","Constructor","_toPropertyKey","hint","prim","Number","_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","_defineProperty","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","request","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","requestFullscreen","exitFullscreen","maximize","unMaximize","setTitle","scrollTop","getSafeWidth","getSafeHeight","treeComponent","allowfullscreen","scrolling","_ref6$dimensions","isNaN","isFinite","scrollTo","behavior","scrollIntoView","block","inline","ToolCompomentContainerTemplate","enabled","emit","exit","htmlEncode","scrollTopNumber","warn","bodyObserver","records","record","addedNodes","firstLoadMatches","waitForElementReady","containerId","_createLayout","topUID","bottomUID","middleUID","topContainer","middleContainer","bottomContainer","createLayout","layout","bottom","_objectSpread","createComponent","_ref$template","integrate","_ref2$resizeElement","_ref2$allowedParentDo","getToolNameFromUrl","segments","toolComponentReady"],"mappings":"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","file":"js/integration.js?7394aac1f4a741870957","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}));","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}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\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 _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\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 toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\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 { isEmptyObject, getGlobal, getQueryParam, isString, stringifyError, isFunction } from '../helpers';\r\nimport { ToolComponent } from '../shared/ToolComponent';\r\nimport { LeafComponentFactory } from '../shared/componentdef-factory';\r\nimport { ZalgoPromise } from 'zalgo-promise';\r\n\r\n/**\r\n * Creates a child component\r\n * @param {String} componentName \r\n * @param {*} param1 \r\n * @returns {ZoidComponent}\r\n */\r\nexport function createComponent(componentName, {\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 template = null,\r\n defaultContext\r\n}) {\r\n return 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\r\n/**\r\n * Integrates tool into host site.\r\n * @returns {Promise}\r\n */\r\nexport function integrate({\r\n toolName,\r\n companyCode,\r\n lang,\r\n version,\r\n resizeElement = 'body',\r\n allowedParentDomains = '*'\r\n}) {\r\n const global = getGlobal();\r\n\r\n if (global.initialized === true) {\r\n return;\r\n }\r\n\r\n const getToolNameFromUrl = () => {\r\n const url = location.pathname; // pathname look like: /tools/sharegraph/?query=xxx\r\n if (url.match(/^\\/tools\\//i)) {\r\n const segments = url.split('/');\r\n if (segments.length >= 3) {\r\n return segments[2];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n const getCompanyCodeFromUrl = () => {\r\n return getQueryParam('companycode');\r\n };\r\n\r\n const getLanguageFromUrl = () => {\r\n return getQueryParam('lang');\r\n };\r\n\r\n const getVersionFromUrl = () => {\r\n return getQueryParam('v');\r\n };\r\n \r\n if (!isString(toolName) || toolName.length === 0) {\r\n //throw new Error('')\r\n }\r\n\r\n let toolComponentReady = false;\r\n \r\n const initToolComponent = () => {\r\n if (toolComponentReady) {\r\n return ZalgoPromise.resolve(true);\r\n }\r\n else {\r\n return new ZalgoPromise(resolve => {\r\n ToolComponent({\r\n toolName: toolName || getToolNameFromUrl(),\r\n companyCode: companyCode || getCompanyCodeFromUrl(),\r\n lang: lang || getLanguageFromUrl(),\r\n toolVer: version || getVersionFromUrl(),\r\n resizeElement: resizeElement || 'body',\r\n allowedParentDomains: allowedParentDomains || '*'\r\n });\r\n toolComponentReady = true;\r\n resolve(true);\r\n });\r\n }\r\n };\r\n\r\n const pushComponents = () => {\r\n return new ZalgoPromise(resolve => {\r\n for (var name in global.components) {\r\n if (({}).hasOwnProperty.call(global.components, name)\r\n && !isEmptyObject(global.components[name].componentOptions)\r\n && window.xprops\r\n && isFunction(window.xprops.onCreateComponent)\r\n ) {\r\n window.xprops.onCreateComponent({\r\n props: {\r\n componentName: name,\r\n template: global.components[name].containerTemplate,\r\n options: global.components[name].componentOptions\r\n }\r\n });\r\n }\r\n }\r\n\r\n resolve();\r\n });\r\n };\r\n\r\n return ZalgoPromise.all([initToolComponent(), pushComponents()])\r\n .then(() => {\r\n global.initialized = true;\r\n }).catch(err => {\r\n console.error(`Prolem occurred when trying to integrate tool with parent site. Err: ${stringifyError(err)}`);\r\n throw err;\r\n });\r\n}","import '../corejsImport';\r\n//import 'regenerator-runtime/runtime';\r\n\r\nimport { getGlobal, EventEmitter, __FLIPIT_INTEGRATION__ } from '../helpers';\r\nimport { createComponent, integrate } from './bootstrap';\r\n\r\nimport { WINDOW_TYPE, EVENT } from '../constants'; \r\n\r\nconst components = getGlobal().components = (getGlobal().components || {});\r\n\r\nexport {\r\n createComponent,\r\n integrate,\r\n components,\r\n EventEmitter,\r\n WINDOW_TYPE,\r\n EVENT,\r\n __FLIPIT_INTEGRATION__\r\n};"],"sourceRoot":""}