{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/autotrack/lib/utilities.js","webpack:///./node_modules/@segment/analytics-next/node_modules/js-cookie/dist/js.cookie.js","webpack:///./node_modules/autotrack/lib/provide.js","webpack:///./node_modules/new-date/lib/index.js","webpack:///./node_modules/@segment/facade/dist/track.js","webpack:///./node_modules/micromodal/dist/micromodal.es.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/get-process-env.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/priority-queue/index.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/priority-queue/backoff.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/@appsignal/javascript/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@appsignal/core/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/functional.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/hashmap.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/error.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/async.js","webpack:///./node_modules/@appsignal/core/dist/esm/serializable.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/environment.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/xdomain.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/xhr.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/fetch.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/transports/node.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/api.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/url.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/span.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/queue.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/dispatcher.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/index.js","webpack:///./node_modules/@appsignal/javascript/dist/esm/version.js","webpack:///./app/javascript/utils/logger.js","webpack:///./node_modules/@appsignal/core/dist/esm/utils/environment.js","webpack:///./node_modules/isomorphic-unfetch/browser.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/context/index.js","webpack:///./node_modules/@segment/isodate/lib/index.js","webpack:///./node_modules/@segment/facade/dist/identify.js","webpack:///./node_modules/@segment/facade/dist/page.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/logger/index.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/context/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/generated/version.js","webpack:///./node_modules/@segment/analytics-next/node_modules/tslib/tslib.es6.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/connection/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/merged-options.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/middleware/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/query-string/gracefulDecodeURIComponent.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/p-while.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/stats/index.js","webpack:///./node_modules/spark-md5/spark-md5.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/callback/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/fetch.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/user/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/@segment/facade/dist/address.js","webpack:///./node_modules/@segment/facade/dist/clone.js","webpack:///./node_modules/@segment/facade/dist/is-enabled.js","webpack:///./node_modules/new-date/lib/milliseconds.js","webpack:///./node_modules/new-date/lib/seconds.js","webpack:///./node_modules/@segment/isodate-traverse/lib/index.js","webpack:///./node_modules/@segment/facade/dist/index.js","webpack:///./node_modules/@segment/facade/dist/alias.js","webpack:///./node_modules/@segment/facade/dist/group.js","webpack:///./node_modules/@segment/facade/dist/screen.js","webpack:///./node_modules/@segment/facade/dist/delete.js","webpack:///./app/javascript/controllers/analytics_controller.js","webpack:///./app/javascript/controllers/bundle_embed_controller.js","webpack:///./app/javascript/controllers/frame_controller.js","webpack:///./app/javascript/controllers/ingredient_list_controller.js","webpack:///./app/javascript/controllers/modal_trigger_controller.js","webpack:///./app/javascript/controllers/powered_by_provenance_controller.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/validation/helpers.js","webpack:///./app/javascript/controllers/proof_point_status_controller.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/@segment/facade/dist/facade.js","webpack:///./node_modules/rails-ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/zoid9031/dist/zoid.frame.js","webpack:///./app/javascript/controllers/horizontal_bundle_analytics_controller.js","webpack:///./app/javascript/controllers/tabpanels_controller.js","webpack:///./app/javascript/controllers/tabs_controller.js","webpack:///./node_modules/autotrack/lib/plugins/media-query-tracker.js","webpack:///./node_modules/autotrack/lib/plugins/outbound-link-tracker.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/priority-queue/persisted.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/get-global.js","webpack:///./node_modules/@lukeed/uuid/dist/index.mjs","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/to-facade.js","webpack:///./node_modules/autotrack/lib/constants.js","webpack:///./node_modules/autotrack/lib/event-emitter.js","webpack:///./node_modules/autotrack/lib/store.js","webpack:///./node_modules/autotrack/lib/session.js","webpack:///./node_modules/autotrack/lib/plugins/max-scroll-tracker.js","webpack:///./node_modules/zoid9078/index.js","webpack:///./app/javascript/components/frame-factory.js","webpack:///./app/javascript/utils/hashing.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/embedded-write-key.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/parse-cdn.js","webpack:///./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:///./node_modules/dset/dist/index.mjs","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/bind-all.js","webpack:///./node_modules/zoid9078/dist/zoid.frame.js","webpack:///./node_modules/zoid9078/dist/zoid.js","webpack:///./node_modules/autotrack/lib/method-chain.js","webpack:///./app/javascript/packs/embed.js","webpack:///./node_modules/autotrack/lib/usage.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/queue/delivery.js","webpack:///./node_modules/unfetch/dist/unfetch.module.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/arguments-resolver/index.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/analytics/dispatch.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/events/index.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/utils/is-thenable.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/task/task-group.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/queue/event-queue.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/queue/event-queue.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/utils/group-by.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/analytics/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/page-enrichment/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/pick.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/remote-loader/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/on-page-leave.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/batched-dispatcher.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/fetch-dispatcher.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/schedule-flush.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/client-hints/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/index.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/validation/errors.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/validation/assertions.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/validation/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/is-thenable.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/buffer/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/buffer/snippet.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/inspector/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/browser/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/create-deferred.js","webpack:///./app/javascript/utils/analytics.js","webpack:///./node_modules/dom-utils/lib/matches.js","webpack:///./node_modules/dom-utils/lib/delegate.js","webpack:///./node_modules/dom-utils/lib/closest.js","webpack:///./node_modules/dom-utils/lib/parents.js","webpack:///./node_modules/dom-utils/lib/get-attributes.js","webpack:///./node_modules/dom-utils/lib/parse-url.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@segment/analytics-core/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/obj-case/index.js","webpack:///./node_modules/@segment/facade/dist/is-email.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/environment/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/constants/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/plugins/segmentio/normalize.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/user/tld.js","webpack:///./node_modules/@segment/analytics-core/dist/esm/emitter/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/stats/remote-metrics.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/core/stats/index.js","webpack:///./node_modules/@segment/analytics-next/dist/pkg/lib/load-script.js","webpack:///./node_modules/zoid9031/index.js","webpack:///./app/javascript/utils/modal.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","_typeof","obj","iterator","constructor","createFieldsObj","defaultFields","userFields","hitFilter","arguments","originalBuildHitTask","buildHitTask","model","set","assign","getAttributeFields","element","prefix","attributes","attributeFields","keys","forEach","attribute","indexOf","field","replace","match","p1","toUpperCase","debounce","fn","wait","_len","args","Array","_key","apply","withTimeout","callback","called","len","source","capitalize","str","charAt","isObject","toArray","isArray","now","Date","uuid","b","a","Math","random","toString","factory","api","init","converter","defaultAttributes","expires","toUTCString","encodeURIComponent","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","join","foundKey","read","remove","withAttributes","this","withConverter","freeze","path","provide","pluginName","pluginConstructor","gaAlias","GoogleAnalyticsObject","q","gaDevIds","gaplugins","isodate","milliseconds","seconds","toStr","val","isNumber","num","is","parse","__importDefault","mod","Track","inherits_1","facade_1","identify_1","is_email_1","obj_case_1","dictionary","opts","Facade","action","proxy","category","id","productId","promotionId","cartId","checkoutId","paymentId","couponId","wishlistId","reviewId","orderId","sku","tax","price","total","repeat","coupon","shipping","discount","shippingMethod","paymentMethod","description","plan","subtotal","properties","revenue","products","props","filter","item","quantity","currency","referrer","query","aliases","ret","alias","username","userId","sessionId","email","parseFloat","isNaN","cents","identify","json","traits","Identify","configurable","writable","from","test","TypeError","targetModal","triggers","onShow","onClose","openTrigger","u","f","closeTrigger","h","v","openClass","g","disableScroll","y","disableFocus","w","awaitCloseAnimation","E","k","awaitOpenAnimation","M","A","debugMode","C","modal","getElementById","config","registerTriggers","onClick","onKeydown","Boolean","addEventListener","showModal","activeElement","classList","add","scrollBehaviour","addEventListeners","removeEventListener","setFocusToFirstNode","removeEventListeners","focus","closeModal","querySelector","style","overflow","hasAttribute","parentNode","preventDefault","stopPropagation","keyCode","retainFocus","querySelectorAll","getFocusableNodes","offsetParent","contains","shiftKey","warn","concat","show","close","closeModalById","MicroModal","getProcessEnv","process","env","ON_REMOVE_FROM_FUTURE","_super","PriorityQueue","maxAttempts","queue","seen","_this","future","items","_i","accepted","map","operation","updateAttempts","includes","sort","getAttempts","pushWithBackoff","attempt","params","_a","minTimeout","_b","factor","_c","maxTimeout","Infinity","min","pow","backoff","emit","find","pop","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","allocUnsafe","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","isBuffer","checked","copy","buffer","fromObject","assertSize","size","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","x","list","pos","swap16","swap32","swap64","equals","inspect","max","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","_arr","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","stringtrim","base64clean","dst","_extendStatics","setPrototypeOf","__extends","__","_assign","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","verb","op","__values","__read","ar","__spreadArray","to","pack","compose","funcs","reduce","toHashMap","JSON","stringify","getStacktrace","stacktrace","line","stack","Serializable","_data","serialize","Environment","transport","origin","globals","location","protocol","hostname","jest","XDomainRequest","XMLHttpRequest","fetch","supportsPromises","XDomainTransport","url","send","req","rx","RegExp","open","XHRTransport","req_1","onreadystatechange","readyState","DONE","FetchTransport","headers","statusText","method","ok","NodeTransport","options","on","PushApi","_uri","uri","_apiKey","_clientVersion","version","_transport","_createTransport","_url","span","auth","_authorization","api_key","Span","timestamp","round","getTime","namespace","backtrace","setAction","setNamespace","setError","isError","setTags","tags","toHashMapString","setParams","setBreadcrumbs","breadcrumbs","Queue","clear","values","drain","Dispatcher","_retries","_timerID","_duration","_api","_queue","initialDuration","reset","schedule","time","expDuration","e_2_1","e_2","_d","Appsignal","VERSION","ignored","_breadcrumbs","_hooks","decorators","overrides","_env","revision","ignoreErrors","info","_dispatcher","_options","tagsOrFn","some","el","error_1","_createSpanFromError","sendError","use","plugin","createSpan","environment","wrap","e_1","addDecorator","decorator","addOverride","override","demo","demo_sample","addBreadcrumb","breadcrumb","crumb","metadata","unshift","initLogging","provenance","appsignalApiKey","applicationEnvironment","appsignal","internalLog","log","isNodeEnv","getGlobalObject","self","Context","system","matcher","iso","numericKeys","exec","substring","getTimezoneOffset","millis","UTC","strict","new_date_1","created","companyCreated","companyName","firstName","lastName","space","uid","age","date","birthday","getFullYear","avatar","position","website","one","websites","multi","phone","phones","address","gender","Page","track_1","title","fullName","track","CoreLogger","_logs","level","extras","flush","logs","formatted","toISOString","table","logEntry","ContextCancelation","retry","reason","CoreContext","stats","logger","attempts","_id","isSame","other","cancel","updateEvent","integrationName","integrations","failedDelivery","_failedDelivery","setFailedDelivery","metrics","__rest","getOwnPropertySymbols","propertyIsEnumerable","webpackPolyfill","deprecate","paths","children","isOnline","navigator","onLine","isOffline","Function","mergedOptions","settings","optionOverrides","entries","integration","integrationSettings","applyDestinationMiddleware","destination","evt","middleware","applyMiddleware","nextCalled","returnedEvent","payload","clone","traverse","modifiedEvent","middleware_1","md","rawEvent","sourceMiddlewarePlugin","ctx","isLoaded","load","page","group","gracefulDecodeURIComponent","encodedURIComponent","pWhile","condition","_loop","actionResult","CoreStats","increment","metric","by","gauge","counter","NullStats","_args","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","state","rhex","hex","toUtf8","unescape","hexToBinaryString","SparkMD5","clamp","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","buff","_finish","getState","hash","setState","destroy","hashBinary","content","first","second","returnUInt8Array","utf8Str2ArrayBuffer","md51_array","pTimeout","timeoutId","invokeCallback","delay","timeoutInMs","cb","defaults","persist","oldKey","localStorage","Store","cache","Cookie","available","cookieEnabled","maxage","domain","href","sameSite","secure","localStorageWarning","LocalStorage","setItem","removeItem","getItem","UniversalStorage","stores","storageOptions","enabledStores","getStores","storeTypes","storeType","storage","getAndSync","coercedValue","getAvailableStorageOptions","cookieOptions","memory","User","disable","prevId","identityStore","idKey","anonymousId","retId","retLeg","legacyUserStore","anonKey","legacySIO","traitsStore","traitsKey","isDisabled","shouldPersist","defaultStorageTargets","localStorageFallbackDisabled","legacyUser","currentId","logout","save","groupDefaults","Group","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","trait","proto","zip","country","street","city","region","temp","disabled","Salesforce","input","traverseObject","index","traverseArray","__assign","Delete","Screen","Alias","alias_1","group_1","page_1","screen_1","delete_1","previousId","groupId","industry","employees","_class","Controller","click","context","eventType","brandName","subjectName","currentTarget","dataset","channel","prodOrBrand","ppSubjectType","bundleType","dtc","eventName","nodeName","actionValue","hasNameValue","nameValue","eventLabel","analytics","eventAction","hasSubjectValue","subjectValue","hasLabelValue","labelValue","adapter","_objectSpread","brand_name","subject_name","subject_value","subject_type","event_label","bundle_type","hasVersionValue","ui_version","versionValue","_defineProperty","default","subject","targets","initialize","top","xprops","debug","ProvenanceEmbedComponent","zoid","tag","dimensions","width","height","autoResize","connect","setupImpressionTracking","proofPoints","proofPointNames","linkTargets","link","proofPointType","slug","proofPointName","getSlug","initModals","defineParentEventHandler","onChildEvent","export","onParentEvent","trackImpression","getCombinedBundlePPsInView","pp","ppType","eventCategory","openModal","initFrame","variant","modalSize","URL","searchParams","frameFactory","getFrame","ingredientTargets","ingredient","behavior","modalVariant","suffix","getAttribute","mouseOver","screen","flagTarget","display","logosTarget","mouseOut","isString","isFunction","exists","isPlainObject","statusValue","hidden","status","ctor","superCtor","super_","TempCtor","address_1","clone_1","is_enabled_1","isodate_traverse_1","transform","fields","enabled","allEnabled","providers","active","library","device","userAgent","timezone","ip","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","expando","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","CustomEvent","fire","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopImmediatePropagation","delegate","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","ajax","response","responseText","getResponseHeader","success","complete","beforeSend","OPENED","dataType","accept","crossDomain","withCredentials","parser","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","host","serializeElement","additionalParam","inputs","elements","option","selected","formElements","form","allowAction","handleConfirm","answer","confirm","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","isRemote","handleRemote","button","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","runtime","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","awrap","async","iter","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_exports__","_extends","utils_isPromise","Window","_toString","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","startActive","endActive","promise_ZalgoPromise","ZalgoPromise","resolved","errorHandled","handlers","dispatching","_result","_error","isAsync","_proto","dispatch","_this2","_err","asyncReject","_this3","_handlers$i","onSuccess","onError","onFinally","_this4","toPromise","count","results","_loop2","prom","onPossiblyUnhandledException","splice","_delay","isPromise","isRegex","PROTOCOL","MOCK","FILE","ABOUT","WILDCARD","WINDOW_TYPE","IFRAME","POPUP","IE_WIN_ACCESS_ERROR","isAboutProtocol","win","getParent","parent","getOpener","opener","canReadFromWindow","getActualDomain","utils_getDomain","mockDomain","isSameDomain","getOwnPropertyDescriptor","assertSameDomain","isAncestorParent","child","childParent","getFrames","frames","frame","_frame","getAllChildFrames","_i3","_getFrames2","_i5","_getAllChildFrames2","getTop","_i7","_getAllChildFrames4","getAllFramesInWindow","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","mockclosed","iframeIndex","collection","contentWindow","doc","ownerDocument","documentElement","getAncestor","anyMatch","collection1","collection2","_i17","item1","_i19","getDistanceFromTop","distance","isSameTopWindow","win1","win2","top1","top2","allFrames1","allFrames2","opener1","opener2","matchDomain","pattern","subpattern","getDomainFromUrl","onCloseWindow","maxtime","check","isWindow","__cross_domain_utils_window_check__","util_safeIndexOf","objectIDs","awaitFrameLoadPromises","weakmap_CrossDomainSafeWeakMap","CrossDomainSafeWeakMap","weakmap","WeakMap","testWeakMap","testKey","_cleanupClosedWindows","isSafeToReadWrite","has","getOrSet","base64encode","btoa","uniqueID","chars","serializeArgs","subkey","memoizePromise","memoizedPromiseFunction","_len2","_key2","inlineMemoize","logic","__inline_memoize_cache__","src_util_noop","once","stringifyError","newErr","extend","safeInterval","loop","arrayFrom","isDefined","util_isRegex","util_getOrSet","cleanup","tasks","cleaned","register","task","assertExists","thing","isDocumentReady","urlEncode","waitForDocumentReady","interval","setInterval","clearInterval","parseQuery","queryString","_i2","_queryString$split2","pair","extendQuery","originalQuery","isElement","nodeType","getElementSafe","elementReady","PopupOpenError","awaitFrameLoad","_promise","awaitFrameWindow","loadedFrame","dom_iframe","container","styleText","className","_i10","_Object$keys2","styleSheet","cssText","createTextNode","allowTransparency","backgroundColor","border","isIE","destroyElement","isElementClosed","onResize","_temp","_ref2","_ref2$width","_ref2$height","_ref2$interval","_ref2$win","currentWidth","offsetWidth","currentHeight","offsetHeight","observer","newWidth","newHeight","ResizeObserver","observe","MutationObserver","childList","subtree","characterData","disconnect","isPerc","isPx","toPx","toCSS","MESSAGE_NAME","METHOD","HELLO","OPEN_TUNNEL","constants_WILDCARD","SERIALIZATION_TYPE","CROSS_DOMAIN_ZALGO_PROMISE","CROSS_DOMAIN_FUNCTION","CROSS_DOMAIN_WINDOW","global_getGlobal","__post_robot_10_0_18__","getObj","globalStore","defStore","store","storeKey","defVal","del","WildCard","getWildcard","WINDOW_WILDCARD","windowStore","winStore","getStore","getInstanceID","getHelloPromise","sayHello","_ref3","instanceID","_ref4","getWindowInstanceID","_ref5","_ref6","markWindowKnown","_SERIALIZER","TYPE","FUNCTION","ERROR","PROMISE","REGEX","DATE","ARRAY","OBJECT","STRING","NUMBER","BOOLEAN","NULL","UNDEFINED","isSerializedType","__type__","determineType","serializeType","__val__","_DESERIALIZER","SERIALIZER","_ref","defaultSerializers","DESERIALIZER","defaultDeserializers","cleanupProxyWindows","idToProxyWindow","_idToProxyWindow$keys2","shouldClean","getSerializedWindow","windowName","getName","isClosed","setLocation","setName","frameElement","window_ProxyWindow","ProxyWindow","serializedWindow","actualWindow","isProxyWindow","actualWindowPromise","setWindow","getType","isPopup","isIframe","getWindow","awaitWindow","matchWindow","_this5","proxyInstanceID","knownWindowInstanceID","unwrap","toProxyWindow","deserialize","realWin","proxyWindow","addMethod","methodStore","proxyWindowMethods","lookupMethod","function_serializeFunction","meth","methodSource","__id__","__name__","serializeMessage","_serialize","serializers","serializer","deserializeMessage","_deserialize","deserializers","deserializer","serializedPromise","serializedFunction","getDeserializedFunction","crossDomainFunctionWrapper","fireAndForget","__origin__","__source__","_ref8","SEND_MESSAGE_STRATEGIES","send_sendMessage","_serializeMessage","serializedMessage","strategies","errors","strategyName","postrobot_post_message","dom","postMessage","postrobot_global","mockUserAgent","foreignGlobal","receiveMessage","_RECEIVE_MESSAGE_TYPE","__DOMAIN_REGEX__","getResponseListener","deleteResponseListener","isResponseListenerErrored","getRequestListener","requestListeners","_i4","winQualifier","nameListeners","domainListeners","_i6","_domainListeners$__DO2","_domainListeners$__DO3","listener","regex","RECEIVE_MESSAGE_TYPES","postrobot_message_request","sendResponse","ack","pathname","handleError","postrobot_message_ack","postrobot_message_response","receive_receiveMessage","receivedMessages","parsedMessage","on_on","requestListener","addRequestListener","listenersCollection","_i8","_win2","_listenersCollection","_i12","_domain2","_i14","existingListener","regexListeners","regexListener","strDomain","errorHandler","src_bridge","send_send","responseTimeout","childTimeout","actualParent","_i15","_getFrames8","targetDomain","logName","responseListener","reqPromises","totalAckTimeout","totalResTimeout","ackTimeout","resTimeout","cancelled","setup_serializeMessage","setup_deserializeMessage","setup_toProxyWindow","lib_global_getGlobal","__zoid_9_0_31__","getProxyObject","ZOID","POST_MESSAGE_DELEGATE","POST_MESSAGE_ALLOW_DELEGATE","PROP_TYPE","PROP_SERIALIZATION","DOTIFY","BASE64","CONTEXT","DEFAULT_DIMENSIONS","EVENT","RENDER","RENDERED","DISPLAY","CLOSE","PROPS","RESIZE","FOCUS","normalizeChildProp","component","helpers","prop","getPropDefinition","childDecorate","onProps","resize","parseChildWindowName","_windowName$split","zoidcomp","encodedPayload","atob","getChildPayload","child_ChildComponent","ChildComponent","parentDomain","parentComponentWindow","onPropHandlers","childPayload","getParentComponentWindow","checkParentDomain","initialProps","getPropsByRef","setProps","watchForClose","buildExports","watchForResize","getHelpers","getParentDomain","allowedParentDomains","ancestor","_getAllFramesInWindow2","windows","getProps","isUpdate","existingProps","sameDomain","_component$getPropNam2","getPropNames","_this$onPropHandlers2","checkClose","getAutoResize","_ref3$width","_ref3$height","_ref3$element","_this4$getAutoResize","updateProps","_this6","RENDER_DRIVERS","props_getQueryParam","queryParam","getQueryValue","queryValue","openOnClick","openFrame","iframe","proxyFrame","frameWatcher","clean","_requestPromises$get2","openPrerenderFrame","openPrerender","proxyWin","proxyPrerenderFrame","prerenderFrame","prerenderFrameWindow","parent_ParentComponent","ParentComponent","driver","initPromise","handledErrors","setupEvents","registerActiveComponent","destroyActiveComponent","watchForUnload","triggered","handlerList","trigger","_len3","_key3","triggerOnce","_len4","_key4","onRender","onDisplay","onRendered","onFocus","render","getDomain","childDomain","getChildDomain","checkAllowRender","buildUrl","getProxyContainer","renderContainer","proxyContainer","setProxyWin","prerender","proxyPrerenderWin","buildWindowName","setWindowName","loadUrl","openBridge","runTimeout","containerElement","buildChildPayload","getPropsRef","getPropsForChild","propRef","_ref7","_ref7$target","getWindowRef","buildParentExports","validate","inputProps","propNames","propDef","_Object$keys4","_propDef","_value","decorate","required","propsDef","builtinProps","serialization","dotify","newobj","every","_Object$keys6","dotkey","originalUrl","originalHash","_url$split","_originalUrl$split","hashString","getUrl","sendToChild","_this7","_this8","_this9","_this10","windowProp","_this11","_this12","_this13","_this$component$getPr2","propName","allowDelegate","overridesPromise","_ref9","_this$driver$delegate2","_this14","_this15","_this16","unloadWindowListener","_this17","initChild","_this18","_this19","_ref10","_ref11","_this20","_this21","secondClosed","_this22","_ref12","_this23","prerenderTemplate","prerenderWindow","renderTemplate","tagName","_arrayFrom2","_arrayFrom4","_ref13","_ref13$width","_ref13$height","_ref13$element","_ref14","renderer","_ref15","_this24","_ref16","_this25","_ref17","innerContainer","containerTemplate","_this26","_this27","delegate_DelegateComponent","DelegateComponent","watchForSourceClose","getDelegate","getOverrides","closeSourceWindowListener","CLASS","defaultContainerTemplate","_ref$dimensions","div","defaultPrerenderTemplate","spinner","props_defaultNoop","props_decorateOnce","component_Component","Component","bridgeUrl","defaultContext","driverCache","PROP_TYPE_LIST","components","_ref$width","_ref$height","popup","registerChild","listenDelegate","dep","isChild","_ref2$data","canRenderTo","getBridgeUrl","getDefaultContainer","getDefaultContext","_render","renderTo","instance","activeComponents","initialized","sourceElement","originalEvent","destroyAll","destroyBridges","destroyComponents","component_destroy","responseListeners","_responseListeners$ke2","handleScroll","scrolled","bundle","bundleId","bundle_id","bundle_style","onKeyUp","parentElement","numberOfTabs","closest","tabFocus","switch","innerText","grandparent","scrollIntoView","block","vendor","changeTabs","trackBundleTabClicked","brandProofPointNames","grandParent","brandPanel","brandPP","getBrandProofPointNames","brandProofPointName","trackBrandProofPointImpressions","onTabListKeyDown","tabs","tabTargets","_defineProperties","descriptor","hint","prim","toPrimitive","_toPrimitive","mediaMap","MediaQueryTracker","tracker","Constructor","_classCallCheck","MEDIA_QUERY_TRACKER","matchMedia","defaultOpts","changeTemplate","changeTimeout","fieldsObj","definitions","changeListeners","processMediaQueries","protoProps","staticProps","definition","dimensionIndex","mediaName","getMatchName","addChangeListeners","getMediaList","media","mql","handleChanges","addListener","newValue","oldValue","nonInteraction","removeListener","OutboundLinkTracker","OUTBOUND_LINK_TRACKER","events","linkSelector","shouldTrackOutboundLink","attributePrefix","handleLinkInteractions","delegates","composed","useCapture","sendBeacon","altKey","which","linkClickWillUnloadCurrentPage","clickHandler","oldHitCallback","hitCallback","parseUrlFn","persisted","stored","mutex","onUnlock","lockKey","rawLock","lock","allowed","expired","PersistedPriorityQueue","itemsKey","seenKey","saved","lastSeen","todo","items_1","existing","merged","acc","persistItems","persistSeen","getGlobal","BUFFER","IDX","HEX","v4","toFacade","fcd","DEV_ID","VERSION_PARAM","USAGE_PARAM","NULL_DIMENSION","EventEmitter","registry_","getRegistry_","eventRegistry","handlerIndex","eventCount","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","browserSupportsLocalStorage","AUTOTRACK_PREFIX","instances","isListening","_EventEmitter","subClass","superClass","_inherits","key_","defaults_","cache_","trackingId","storageListener","isSupported_","get_","newData","set_","clear_","oldData","Session","timeZone","DEFAULT_TIMEOUT","sendHitTaskOverride","dateTimeFormatter","Intl","DateTimeFormat","getOrCreate","hitTime","isExpired","getId","sessionData","oldHitTime","currentDate","oldHitDate","datesAreDifferentInTimezone","d1","d2","format","originalMethod","sessionControl","sessionWillStart","sessionWillEnd","MaxScrollTracker","MAX_SCROLL_TRACKER","increaseThreshold","sessionTimeout","pagePath","getPagePath","trackerSetOverride","session","listenForMaxScrollChanges","getMaxScrollPercentageForCurrentPage","pageHeight","scrollHeight","scrollPos","pageYOffset","windowHeight","innerHeight","scrollPercentage","maxScrollPercentage","stopListeningForMaxScrollChanges","increaseAmount","setMaxScrollPercentageForCurrentPage","sendMaxScrollEvent","lastPagePath","eventValue","maxScrollMetricIndex","_this$store$set","search","FrameFactory","frameComponents","rootUrl","autoResizeHeight","class","analyticsWriteKey","_globalCDN","analyticsScriptRegex","setGlobalCDNUrl","cdn","_cdn","getCDN","globalCdnUrl","cdnFromScriptTag","getNextIntegrationsURL","_regeneratorRuntime","asyncGeneratorStep","gen","_next","_throw","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_s","_e","_x","_r","_n","_iterableToArrayLimit","_nonIterableRest","_toPropertyKey","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","normalCompletion","didErr","_e3","minLen","arr2","_createClass","EventListener","eventTarget","eventOptions","unorderedBindings","Set","binding","_step","extendedEvent","_stopImmediatePropagation","immediatePropagationStopped","extendEvent","_iterator","bindings","handleEvent","left","right","leftIndex","rightIndex","application","eventListenerMaps","Map","started","eventListeners","eventListener","listeners","fetchEventListenerForBinding","bindingConnected","bindingDisconnected","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","descriptorPattern","parseEventTarget","eventTargetName","camelize","_char","dasherize","_char2","Action","defaultEventNames","getDefaultEventNameForElement","identifier","eventNameSuffix","getParamsFromEventTargetAttributes","o_O","typecast","descriptorString","Binding","willBeInvokedByEvent","invokeWithEvent","controller","actionEvent","logDebugActivity","scope","containsElement","ElementObserver","mutationObserverInit","mutationObserver","mutations","processMutations","refresh","takeRecords","matchElementsInTree","_Array$from","removeElement","_Array$from2","_element","addElement","_step2","_iterator2","mutation","processMutation","processAttributeChange","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","_Array$from3","elementFromNode","processTree","_Array$from4","elementIsActive","tree","processor","_step3","_iterator3","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","pause","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","attributeOldValue","_step4","_iterator4","knownAttributeNames","refreshAttribute","_step5","_iterator5","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","_oldValue","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","_add","prune","Multimap","valuesByKey","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","getValuesForKey","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","forToken","connectAction","disconnectAction","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","hasValue","invokeChangedCallback","writer","defaultValue","valueDescriptorNameMap","_step6","_iterator6","valueDescriptors","_step6$value","rawValue","rawOldValue","changedMethodName","changedMethod","reader","descriptors","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","connectTarget","disconnectTarget","targetConnected","targetDisconnected","_step7","_iterator7","_step8","_iterator8","functionName","controllerConstructor","bindingObserver","dispatcher","valueObserver","targetObserver","invokeControllerMethod","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","bless","shadowConstructor","shadowProperties","getOwnKeys","shadowingDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessings","blessedProperties","blessing","getBlessedProperties","getOwnPropertyNames","extendWithReflect","extended","_constructor","_super2","Module","blessDefinition","contextsByScope","connectedContexts","fetchContextForScope","ClassMap","getDataKey","getAll","getAttributeNameForKey","DataMap","removeAttribute","Guide","warnedKeysByObject","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","findTarget","findLegacyTarget","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","targetDescriptor","targetAttribute","revisedAttributeName","guide","Scope","classes","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","unloadIdentifier","connectModule","disconnectModule","connectContextForScope","disconnectContextForScope","defaultSchema","Application","logFormattedMessage","router","_start","_callee","_context","shouldLoad","rest","loadDefinition","_len5","_key5","getContextForElementAndIdentifier","groupCollapsed","groupEnd","parseValueDefinitionPair","typeDefinition","typeFromObject","typeObject","parseValueTypeConstant","defaultValueType","parseValueTypeDefault","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","number","writeJSON","_ref15$target","_ref15$detail","_ref15$prefix","_ref15$bubbles","_ref15$cancelable","classDefinition","getAttributeName","targetDefinition","findAll","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","propertiesForValueDefinitionPair","dset","bindAll","_inheritsLoose","dom_PopupOpenError","component_create","chain","firstPromise","secondPromise","_result2","promiseResult","awaitPromises","Zalgo","utils_getParent","getFrameForWindow","_i21","_document$querySelect2","closeWindow","construct_construct","Parent","Class","wrapNativeSuper_wrapNativeSuper","_cache","Wrapper","getFunctionName","setFunctionName","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","simpleCache","thisCache","_options$thisNamespac","thisNamespace","cacheTime","memoizeIndex","memoizedFunction","cacheResult","identity","cleanErr","cleaner","util_ExtendableError","_Error","ExtendableError","captureStackTrace","getBody","isDocumentInteractive","_ExtendableError","showElement","setProperty","hideElement","canceled","getClientRects","isShadowElement","currentScript","getCurrentScript","stackDetails","scriptLocation","_i22","_Array$prototype$slic2","getElementsByTagName","currentUID","globalKey","hashedString","resolveHelloPromise","helloPromises","existingPromise","newPromise","winPromise","_ref$id","windowNamePromise","windowTypePromise","_opts$method","_ref3$method","_i24","_body$key","submit","getID","isPopupPromise","getNamePromise","reopenPromise","focusPromise","cross_domain_zalgo_promise","cross_domain_function","cross_domain_window","domainBuffer","__post_robot_10_0_44__","__domain_regex__","messages","parseMessages","_loop3","handleRequest","handleResponse","handleAck","_ret","domainMatcher","actualDomain","normalizedDomain","__zoid_9_0_78__","DESTROY","hide","getSiblings","child_focus","child_destroy","eachProp","serializeProps","_METHOD$GET$METHOD$PO","_METHOD$GET$METHOD$PO2","getParam","post","bodyParam","getValue","bodyValue","finalParam","finalValue","parentComponent","emitter","currentProxyWin","currentProxyContainer","childComponent","_ref$overrides","_ref$parentWin","parentWin","domainMatch","xports","internalState","visible","onErrorOverride","getProxyContainerOverride","showOverride","hideOverride","closeOverride","renderContainerOverride","getProxyWindowOverride","getProxyWindow","setProxyWinOverride","openFrameOverride","openPrerenderFrameOverride","prerenderOverride","openOverride","openPrerenderOverride","watchForUnloadOverride","getInternalStateOverride","getInternalState","setInternalStateOverride","setInternalState","resolveInitPromise","rejectInitPromise","newInternalState","_proxyWin","insertShadowSlot","shadowHost","shadowRoot","slotName","slot","slotProvider","getAttributes","getDomainMatcher","childExports","closeParentWindowListener","checkWindowClose","secondIsClosed","exportsPromise","xport","actualExports","_autoResize$width","_autoResize$height","_autoResize$element","prerenderResizeListener","rerender","containerWatcher","sacrificialFrame","sacrificialFrameWin","mutationObservers","_i18","elementClosed","mutationElement","frameWin","removeError","newProps","decoratedValue","childProps","onDestroy","delegatePromise","delegateProps","childOverridesPromise","parentComp","getDelegateOverrides","childOverrides","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","_len11","_key11","watchForUnloadPromise","buildUrlPromise","buildBodyPromise","onRenderPromise","getProxyContainerPromise","getProxyWindowPromise","buildWindowNamePromise","propsRef","openFramePromise","openPrerenderFramePromise","renderContainerPromise","openPromise","openPrerenderPromise","setStatePromise","prerenderPromise","setWindowNamePromise","_ref18","getMethodPromise","_ref19","loadUrlPromise","windowUrl","_ref20","watchForClosePromise","onDisplayPromise","openBridgePromise","runTimeoutPromise","onRenderedPromise","getExports","cleanInstances","cleanZoid","comp","allowDelegateListener","delegateListener","_options$props","_options$dimensions","_options$autoResize","_options$allowedParen","_options$attributes","_options$defaultConte","_options$containerTem","_options$prerenderTem","_options$eligible","eligible","_options$logger","_options$exports","xportsDefinition","_options$children","valuePromise","parentExports","anyParent","currentParent","_getAllFramesInWindow4","winParent","normalizedProps","_eligible","eligibility","_ref4$decorate","finalContext","newInstance","childComponents","childName","Child","childInputProps","parentProps","isEligible","driverName","destroyPromise","utils_getUserAgent","getFrameByName","winFrames","_i9","childFrame","isOpener","normalizeMockUrl","toNum","normalizeDimension","dim","awaitWindowHello","needsBridgeForBrowser","needsBridgeForWin","needsBridgeForDomain","needsBridge","getBridgeName","isBridge","documentBodyReady","registerRemoteWindow","findRemoteWindow","remoteWinPromise","registerRemoteSendMessage","sendMessage","remoteWin","remoteDomain","rejectRemoteSendMessage","linkWindow","popupWindowsByName","popupWindowsByWin","_popupWindowsByName$k2","winName","_details","details","setupBridge","windowOpen","last","bridgePromise","bridge","getWindowDetails","openTunnelToParent","canary","tunnelWindows","parentWindow","_tunnelWindows$keys2","tunnelWindow","postrobot_bridge","messagingChild","messagingParent","cleanUpWindow","bridges","bridgeFrames","linkUrl","hasBridge","_bridgeFrames$keys2","getDimensions","_getDimensions","_getDimensions$width","_getDimensions$height","outerWidth","screenX","outerHeight","screenY","toolbar","menubar","resizable","scrollbars","_len12","_key12","bridgeDomain","MethodChain","isTask","originalMethodReference","methodChain","boundMethodChain","wrappedMethod","methodOverride","getOrCreateMethodChain","overrideMethod","rebindMethodChain","previousMethod","controllers","AnalyticsController","BundleEmbedController","FrameController","HorizontalBundleAnalyticsController","IngredientListController","ModalTriggerController","ProofPointStatusController","PoweredByProvenanceController","TabsController","tabpanels","TabpanelsController","plugins","CLEAN_URL_TRACKER","EVENT_TRACKER","IMPRESSION_TRACKER","OUTBOUND_FORM_TRACKER","PAGE_VISIBILITY_TRACKER","SOCIAL_WIDGET_TRACKER","URL_CHANGE_TRACKER","PLUGIN_COUNT","trackUsage","trackVersion","pluginIndex","usageHex","usageBin","toAdd","padZeros","bin","trackPlugin","hook","err_1","tryAsync","ensure","newContext","responseURL","blob","Blob","getAllResponseHeaders","credentials","resolveArguments","resolvePageArguments","resolvedCategory","resolvedName","strings","resolvedCallback","objects","resolvedProperties","resolvedOptions","user","resolveAliasArguments","aliasTo","aliasFrom","startTime","dispatched","isEmpty","dispatchSingle","startTimeInEpochMS","timeoutInMS","elapsedTime","EventFactory","globalIntegrations","normalize","baseEvent","base","optionsKeys","providedOptionsKeys","integrationBooleans","integrationNames","allIntegrations","messageId","taskCompletionPromise","resolvePromise","run","returnValue","EventQueue","nameOrQueue","CoreEventQueue","priorityQueue","criticalTasks","failedInitializations","flushing","scheduleFlush","deregister","unload","willDeliver","subscribeToDelivery","onDeliver","flushed","delivered","off","deliver","enqueuRetry","flushOne","err_2","isReady","availableExtensions","denyList","grouper","alternativeNameMatch","alternativeNames","All","suggestedKey","before","enrichment","after","destinations","before_1","beforeWare","enrichment_1","enrichmentWare","afterCalls","_f","deprecationWarning","_analytics","_stub","Analytics","_debug","_user","addIntegrationMiddleware","removeAllListeners","hasListeners","addIntegration","disablePersistance","disableClientPersistence","retryQueue","createDefaultQueue","writeKey","_universalStorage","_group","eventFactory","segmentEvent","_dispatch","_traits","groupTraits","trackClick","autotrack","trackLink","trackSubmit","trackForm","registrations","xt","deregistrations","pl","toggle","addSourceMiddleware","addDestinationMiddleware","middlewares","addMiddleware","setAnonymousId","useQueryString","legacyPluginFactory","ready","noConflict","msg","_settings","pageview","_plugins","nested","Integration","canonical","canon","canonicalPath","startsWith","canonicalUrl","enrichPageContext","defaultPageContext","pageContextFromEventProps","pageEnrichment","ActionDestination","_createMethod","transformedContext","remoteLoader","userIntegrations","mergedIntegrations","obfuscate","routingMiddleware","allPlugins","routingRules","pluginPromises","middlewareSettings","remotePlugins","remotePlugin","defaultCdn","urlSplit","name_1","obfuscatedURL","libraryName","routing_1","error_2","creationNameEnabled","creationName","currentNameEnabled","isPluginDisabled","pluginFactory","pluginLike","rule","destinationName","wrapper","onPageLeave","unloaded","visibilityState","MAX_PAYLOAD_SIZE","kilobytes","encodeURI","apiHost","pageUnloaded","sendBatch","batch","keepalive","batch_1","reqs","bufferOverflow","approachingTrackingAPILimit","flushQueue","failedQueue","failed","isFlushing","newBuffer","clientHints","hints","userAgentData","getHighEntropyValues","segmentio","inflightEvents","onAlias","client","remote","deliveryStrategy","apiKey","strategy","highEntropyValuesClientHints","ValidationError","stringError","objError","nilError","assertUserIdentity","USER_FIELD_NAME","getAnyUserId","assertEventExists","assertEventType","assertTrackEventName","validation","flushSyncAnalyticsCalls","getCalls","callAnalyticsMethod","flushOn","flushSetAnonymousID","flushAnalyticsCallsInNewTask","PreInitMethodCallBuffer","calls","AnalyticsBuffered","loader","_preInitBuffer","pageView","_createChainableMethod","ajs","transformSnippetCall","popSnippetWindowBuffer","wa","buffered","inspectorHost","flushFinalBuffer","registerPlugins","legacySettings","legacyIntegrationSources","tsubMiddleware","legacyDestinations","schemaFilter","mergedSettings","toRegister","_g","_h","_j","NODE_ENV","hasTsubMiddleware","ajsDestinations","legacyVideoPluginsEnabled","loadLegacyVideoPlugins","enabledMiddleware","remoteMiddlewares","mdw","loadAnalytics","preInitBuffer","classicIntegrations","term","cdnURL","cdnSettings","baseUrl","errorResponseMessage","updateCDNSettings","attach","attachInspector","initRemoteMetrics","flushPreBuffer","initialPageview","AnalyticsBrowser","_resolve","_reject","loadStart","resolveLoadStart","_resolveLoadStart","standalone","segmentAnalytics","segmentWriteKey","segmentUserId","postEventToSegment","undefinedProvEventProps","postEventToGTM","eventData","dataLayer","trackInApp","nativeMatches","delegateTarget","composedPath","shouldCheckSelf","parentElements","parents","attrs","attr","HTTP_PORT","HTTPS_PORT","DEFAULT_PORT","parseUrl","port","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","nextTick","browser","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","multiple","normalizer","defaultNormalize","finished","normalizedKey","isBrowser","isServer","SEGMENT_API_HOST","_version","getVersionType","referrerId","getCookieOptions","ad","queryIds","btid","urid","parts_1","ads","locale","userLanguage","language","campaign","utmParam","utm","sentAt","_metadata","bundled","unbundled","bundlingStatus","unbundledIntegrations","settingsUnbundled","configIds","maybeBundledConfigIds","bundledConfigIds","addBundledMetadata","bundledIds","amp","ampId","tld","parsedUrl","lvls","levels","cname","Emitter","callbacks","without","logError","remoteMetrics","RemoteMetrics","sampleRate","flushTimer","maxQueueSize","flushing_1","run_1","remoteMetric","versionType","formattedTags","library_version","series","Stats","findScript","loadScript","status_1","insertBefore","unloadScript","openModalFromEmbed","modalHtml","buildModalElement","template","firstElementChild","cloneNode","insertContentInModal","insertAdjacentHTML","openDrawer","closeDrawer","catch"],"mappings":"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","file":"js/embed-36ec89c19088cf908cc0.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t5: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"1\":\"ajs-destination\",\"3\":\"auto-track\",\"6\":\"legacyVideos\",\"9\":\"queryString\",\"10\":\"remoteMiddleware\",\"11\":\"schemaFilter\",\"12\":\"vendors~tsub-middleware\"}[chunkId]||chunkId) + \"-\" + {\"1\":\"27c03976dfd474037767\",\"3\":\"5a0a5e2b8642b70fd2ab\",\"6\":\"a8e4da9f8daaf0a9a7a5\",\"9\":\"080b97eec5f2910a6eca\",\"10\":\"fe1ae44c121fa1d7cefa\",\"11\":\"503dca88b02a1553e81e\",\"12\":\"c1775ca5bc6af5e4b07f\",\"13\":\"593a98d7974cf096dab6\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//legacy.provenance.org/packs/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 624);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getAttributes } from 'dom-utils';\nimport MethodChain from './method-chain';\n\n/**\n * Accepts default and user override fields and an optional tracker, hit\n * filter, and target element and returns a single object that can be used in\n * `ga('send', ...)` commands.\n * @param {FieldsObj} defaultFields The default fields to return.\n * @param {FieldsObj} userFields Fields set by the user to override the\n * defaults.\n * @param {Tracker=} tracker The tracker object to apply the hit filter to.\n * @param {Function=} hitFilter A filter function that gets\n * called with the tracker model right before the `buildHitTask`. It can\n * be used to modify the model for the current hit only.\n * @param {Element=} target If the hit originated from an interaction\n * with a DOM element, hitFilter is invoked with that element as the\n * second argument.\n * @param {(Event|TwttrEvent)=} event If the hit originated via a DOM event,\n * hitFilter is invoked with that event as the third argument.\n * @return {!FieldsObj} The final fields object.\n */\nexport function createFieldsObj(defaultFields, userFields) {\n var tracker = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var hitFilter = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var target = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n var event = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : undefined;\n if (typeof hitFilter == 'function') {\n var originalBuildHitTask = tracker.get('buildHitTask');\n return {\n buildHitTask: function buildHitTask( /** @type {!Model} */model) {\n model.set(defaultFields, null, true);\n model.set(userFields, null, true);\n hitFilter(model, target, event);\n originalBuildHitTask(model);\n }\n };\n } else {\n return assign({}, defaultFields, userFields);\n }\n}\n\n/**\n * Retrieves the attributes from an DOM element and returns a fields object\n * for all attributes matching the passed prefix string.\n * @param {Element} element The DOM element to get attributes from.\n * @param {string} prefix An attribute prefix. Only the attributes matching\n * the prefix will be returned on the fields object.\n * @return {FieldsObj} An object of analytics.js fields and values\n */\nexport function getAttributeFields(element, prefix) {\n var attributes = getAttributes(element);\n var attributeFields = {};\n Object.keys(attributes).forEach(function (attribute) {\n // The `on` prefix is used for event handling but isn't a field.\n if (attribute.indexOf(prefix) === 0 && attribute != prefix + 'on') {\n var value = attributes[attribute];\n\n // Detects Boolean value strings.\n if (value == 'true') value = true;\n if (value == 'false') value = false;\n var field = camelCase(attribute.slice(prefix.length));\n attributeFields[field] = value;\n }\n });\n return attributeFields;\n}\n\n/**\n * Accepts a function to be invoked once the DOM is ready. If the DOM is\n * already ready, the callback is invoked immediately.\n * @param {!Function} callback The ready callback.\n */\nexport function domReady(callback) {\n if (document.readyState == 'loading') {\n document.addEventListener('DOMContentLoaded', function fn() {\n document.removeEventListener('DOMContentLoaded', fn);\n callback();\n });\n } else {\n callback();\n }\n}\n\n/**\n * Returns a function, that, as long as it continues to be called, will not\n * actually run. The function will only run after it stops being called for\n * `wait` milliseconds.\n * @param {!Function} fn The function to debounce.\n * @param {number} wait The debounce wait timeout in ms.\n * @return {!Function} The debounced function.\n */\nexport function debounce(fn, wait) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n return fn.apply(void 0, args);\n }, wait);\n };\n}\n\n/**\n * Accepts a function and returns a wrapped version of the function that is\n * expected to be called elsewhere in the system. If it's not called\n * elsewhere after the timeout period, it's called regardless. The wrapper\n * function also prevents the callback from being called more than once.\n * @param {!Function} callback The function to call.\n * @param {number=} wait How many milliseconds to wait before invoking\n * the callback.\n * @return {!Function} The wrapped version of the passed function.\n */\nexport function withTimeout(callback) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var called = false;\n var fn = function fn() {\n if (!called) {\n called = true;\n callback();\n }\n };\n setTimeout(fn, wait);\n return fn;\n}\n\n// Maps trackers to queue by tracking ID.\nvar queueMap = {};\n\n/**\n * Queues a function for execution in the next call stack, or immediately\n * before any send commands are executed on the tracker. This allows\n * autotrack plugins to defer running commands until after all other plugins\n * are required but before any other hits are sent.\n * @param {!Tracker} tracker\n * @param {!Function} fn\n */\nexport function deferUntilPluginsLoaded(tracker, fn) {\n var trackingId = tracker.get('trackingId');\n var ref = queueMap[trackingId] = queueMap[trackingId] || {};\n var processQueue = function processQueue() {\n clearTimeout(ref.timeout);\n if (ref.send) {\n MethodChain.remove(tracker, 'send', ref.send);\n }\n delete queueMap[trackingId];\n ref.queue.forEach(function (fn) {\n return fn();\n });\n };\n clearTimeout(ref.timeout);\n ref.timeout = setTimeout(processQueue, 0);\n ref.queue = ref.queue || [];\n ref.queue.push(fn);\n if (!ref.send) {\n ref.send = function (originalMethod) {\n return function () {\n processQueue();\n originalMethod.apply(void 0, arguments);\n };\n };\n MethodChain.add(tracker, 'send', ref.send);\n }\n}\n\n/**\n * A small shim of Object.assign that aims for brevity over spec-compliant\n * handling all the edge cases.\n * @param {!Object} target The target object to assign to.\n * @param {...?Object} sources Additional objects who properties should be\n * assigned to target. Non-objects are converted to objects.\n * @return {!Object} The modified target object.\n */\nexport var assign = Object.assign || function (target) {\n for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; i++) {\n var source = Object(i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1]);\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n/**\n * Accepts a string containing hyphen or underscore word separators and\n * converts it to camelCase.\n * @param {string} str The string to camelCase.\n * @return {string} The camelCased version of the string.\n */\nexport function camelCase(str) {\n return str.replace(/[\\-\\_]+(\\w?)/g, function (match, p1) {\n return p1.toUpperCase();\n });\n}\n\n/**\n * Capitalizes the first letter of a string.\n * @param {string} str The input string.\n * @return {string} The capitalized string\n */\nexport function capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n/**\n * Indicates whether the passed variable is a JavaScript object.\n * @param {*} value The input variable to test.\n * @return {boolean} Whether or not the test is an object.\n */\nexport function isObject(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n\n/**\n * Accepts a value that may or may not be an array. If it is not an array,\n * it is returned as the first item in a single-item array.\n * @param {*} value The value to convert to an array if it is not.\n * @return {!Array} The array-ified value.\n */\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * @return {number} The current date timestamp\n */\nexport function now() {\n return +new Date();\n}\n\n/*eslint-disable */\n// https://gist.github.com/jed/982883\n/** @param {?=} a */\nexport var uuid = function b(a) {\n return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, b);\n};\n/*eslint-enable */","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/*! js-cookie v3.0.1 | MIT */\n;\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, function () {\n var current = global.Cookies;\n var exports = global.Cookies = factory();\n exports.noConflict = function () {\n global.Cookies = current;\n return exports;\n };\n }());\n})(this, function () {\n 'use strict';\n\n /* eslint-disable no-var */\n function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n }\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n var defaultConverter = {\n read: function read(value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\n },\n write: function write(value) {\n return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\n }\n };\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n\n function init(converter, defaultAttributes) {\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n attributes = assign({}, defaultAttributes, attributes);\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n key = encodeURIComponent(key).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n stringifiedAttributes += '; ' + attributeName;\n if (attributes[attributeName] === true) {\n continue;\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n return document.cookie = key + '=' + converter.write(value, key) + stringifiedAttributes;\n }\n function get(key) {\n if (typeof document === 'undefined' || arguments.length && !key) {\n return;\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n if (key === foundKey) {\n break;\n }\n } catch (e) {}\n }\n return key ? jar[key] : jar;\n }\n return Object.create({\n set: set,\n get: get,\n remove: function remove(key, attributes) {\n set(key, '', assign({}, attributes, {\n expires: -1\n }));\n },\n withAttributes: function withAttributes(attributes) {\n return init(this.converter, assign({}, this.attributes, attributes));\n },\n withConverter: function withConverter(converter) {\n return init(assign({}, this.converter, converter), this.attributes);\n }\n }, {\n attributes: {\n value: Object.freeze(defaultAttributes)\n },\n converter: {\n value: Object.freeze(converter)\n }\n });\n }\n var api = init(defaultConverter, {\n path: '/'\n });\n /* eslint-enable no-var */\n\n return api;\n});","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DEV_ID } from './constants';\nimport { capitalize } from './utilities';\n\n/**\n * Provides a plugin for use with analytics.js, accounting for the possibility\n * that the global command queue has been renamed or not yet defined.\n * @param {string} pluginName The plugin name identifier.\n * @param {Function} pluginConstructor The plugin constructor function.\n */\nexport default function provide(pluginName, pluginConstructor) {\n var gaAlias = window.GoogleAnalyticsObject || 'ga';\n window[gaAlias] = window[gaAlias] || function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (window[gaAlias].q = window[gaAlias].q || []).push(args);\n };\n\n // Adds the autotrack dev ID if not already included.\n window.gaDevIds = window.gaDevIds || [];\n if (window.gaDevIds.indexOf(DEV_ID) < 0) {\n window.gaDevIds.push(DEV_ID);\n }\n\n // Formally provides the plugin for use with analytics.js.\n window[gaAlias]('provide', pluginName, pluginConstructor);\n\n // Registers the plugin on the global gaplugins object.\n window.gaplugins = window.gaplugins || {};\n window.gaplugins[capitalize(pluginName)] = pluginConstructor;\n}","\"use strict\";\n\nvar isodate = require(\"@segment/isodate\");\nvar milliseconds = require(\"./milliseconds\");\nvar seconds = require(\"./seconds\");\nvar objProto = Object.prototype;\nvar toStr = objProto.toString;\nfunction isDate(value) {\n return toStr.call(value) === \"[object Date]\";\n}\nfunction isNumber(value) {\n return toStr.call(value) === \"[object Number]\";\n}\n\n/**\n * Returns a new Javascript Date object, allowing a variety of extra input types\n * over the native Date constructor.\n *\n * @param {Date|string|number} val\n */\nmodule.exports = function newDate(val) {\n if (isDate(val)) return val;\n if (isNumber(val)) return new Date(toMs(val));\n\n // date strings\n if (isodate.is(val)) {\n return isodate.parse(val);\n }\n if (milliseconds.is(val)) {\n return milliseconds.parse(val);\n }\n if (seconds.is(val)) {\n return seconds.parse(val);\n }\n\n // fallback to Date.parse\n return new Date(val);\n};\n\n/**\n * If the number passed val is seconds from the epoch, turn it into milliseconds.\n * Milliseconds would be greater than 31557600000 (December 31, 1970).\n *\n * @param {number} num\n */\nfunction toMs(num) {\n if (num < 31557600000) return num * 1000;\n return num;\n}","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar identify_1 = require(\"./identify\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction Track(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Track = Track;\ninherits_1[\"default\"](Track, facade_1.Facade);\nvar t = Track.prototype;\nt.action = function () {\n return \"track\";\n};\nt.type = t.action;\nt.event = facade_1.Facade.field(\"event\");\nt.value = facade_1.Facade.proxy(\"properties.value\");\nt.category = facade_1.Facade.proxy(\"properties.category\");\nt.id = facade_1.Facade.proxy(\"properties.id\");\nt.productId = function () {\n return this.proxy(\"properties.product_id\") || this.proxy(\"properties.productId\");\n};\nt.promotionId = function () {\n return this.proxy(\"properties.promotion_id\") || this.proxy(\"properties.promotionId\");\n};\nt.cartId = function () {\n return this.proxy(\"properties.cart_id\") || this.proxy(\"properties.cartId\");\n};\nt.checkoutId = function () {\n return this.proxy(\"properties.checkout_id\") || this.proxy(\"properties.checkoutId\");\n};\nt.paymentId = function () {\n return this.proxy(\"properties.payment_id\") || this.proxy(\"properties.paymentId\");\n};\nt.couponId = function () {\n return this.proxy(\"properties.coupon_id\") || this.proxy(\"properties.couponId\");\n};\nt.wishlistId = function () {\n return this.proxy(\"properties.wishlist_id\") || this.proxy(\"properties.wishlistId\");\n};\nt.reviewId = function () {\n return this.proxy(\"properties.review_id\") || this.proxy(\"properties.reviewId\");\n};\nt.orderId = function () {\n return this.proxy(\"properties.id\") || this.proxy(\"properties.order_id\") || this.proxy(\"properties.orderId\");\n};\nt.sku = facade_1.Facade.proxy(\"properties.sku\");\nt.tax = facade_1.Facade.proxy(\"properties.tax\");\nt.name = facade_1.Facade.proxy(\"properties.name\");\nt.price = facade_1.Facade.proxy(\"properties.price\");\nt.total = facade_1.Facade.proxy(\"properties.total\");\nt.repeat = facade_1.Facade.proxy(\"properties.repeat\");\nt.coupon = facade_1.Facade.proxy(\"properties.coupon\");\nt.shipping = facade_1.Facade.proxy(\"properties.shipping\");\nt.discount = facade_1.Facade.proxy(\"properties.discount\");\nt.shippingMethod = function () {\n return this.proxy(\"properties.shipping_method\") || this.proxy(\"properties.shippingMethod\");\n};\nt.paymentMethod = function () {\n return this.proxy(\"properties.payment_method\") || this.proxy(\"properties.paymentMethod\");\n};\nt.description = facade_1.Facade.proxy(\"properties.description\");\nt.plan = facade_1.Facade.proxy(\"properties.plan\");\nt.subtotal = function () {\n var subtotal = obj_case_1[\"default\"](this.properties(), \"subtotal\");\n var total = this.total() || this.revenue();\n if (subtotal) return subtotal;\n if (!total) return 0;\n if (this.total()) {\n var n = this.tax();\n if (n) total -= n;\n n = this.shipping();\n if (n) total -= n;\n n = this.discount();\n if (n) total += n;\n }\n return total;\n};\nt.products = function () {\n var props = this.properties();\n var products = obj_case_1[\"default\"](props, \"products\");\n if (Array.isArray(products)) {\n return products.filter(function (item) {\n return item !== null;\n });\n }\n return [];\n};\nt.quantity = function () {\n var props = this.obj.properties || {};\n return props.quantity || 1;\n};\nt.currency = function () {\n var props = this.obj.properties || {};\n return props.currency || \"USD\";\n};\nt.referrer = function () {\n return this.proxy(\"context.referrer.url\") || this.proxy(\"context.page.referrer\") || this.proxy(\"properties.referrer\");\n};\nt.query = facade_1.Facade.proxy(\"options.query\");\nt.properties = function (aliases) {\n var ret = this.field(\"properties\") || {};\n aliases = aliases || {};\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null ? this.proxy(\"properties.\" + alias) : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nt.username = function () {\n return this.proxy(\"traits.username\") || this.proxy(\"properties.username\") || this.userId() || this.sessionId();\n};\nt.email = function () {\n var email = this.proxy(\"traits.email\") || this.proxy(\"properties.email\") || this.proxy(\"options.traits.email\");\n if (email) return email;\n var userId = this.userId();\n if (is_email_1[\"default\"](userId)) return userId;\n};\nt.revenue = function () {\n var revenue = this.proxy(\"properties.revenue\");\n var event = this.event();\n var orderCompletedRegExp = /^[ _]?completed[ _]?order[ _]?|^[ _]?order[ _]?completed[ _]?$/i;\n if (!revenue && event && event.match(orderCompletedRegExp)) {\n revenue = this.proxy(\"properties.total\");\n }\n return currency(revenue);\n};\nt.cents = function () {\n var revenue = this.revenue();\n return typeof revenue !== \"number\" ? this.value() || 0 : revenue * 100;\n};\nt.identify = function () {\n var json = this.json();\n json.traits = this.traits();\n return new identify_1.Identify(json, this.opts);\n};\nfunction currency(val) {\n if (!val) return;\n if (typeof val === \"number\") {\n return val;\n }\n if (typeof val !== \"string\") {\n return;\n }\n val = val.replace(/\\$/g, \"\");\n val = parseFloat(val);\n if (!isNaN(val)) {\n return val;\n }\n}","function e(e, t) {\n for (var o = 0; o < t.length; o++) {\n var n = t[o];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);\n }\n}\nfunction t(e) {\n return function (e) {\n if (Array.isArray(e)) return o(e);\n }(e) || function (e) {\n if (\"undefined\" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);\n }(e) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return o(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return o(e, t);\n }(e) || function () {\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 }();\n}\nfunction o(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var o = 0, n = new Array(t); o < t; o++) n[o] = e[o];\n return n;\n}\nvar n,\n i,\n a,\n r,\n s,\n l = (n = [\"a[href]\", \"area[href]\", 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', \"select:not([disabled]):not([aria-hidden])\", \"textarea:not([disabled]):not([aria-hidden])\", \"button:not([disabled]):not([aria-hidden])\", \"iframe\", \"object\", \"embed\", \"[contenteditable]\", '[tabindex]:not([tabindex^=\"-\"])'], i = function () {\n function o(e) {\n var n = e.targetModal,\n i = e.triggers,\n a = void 0 === i ? [] : i,\n r = e.onShow,\n s = void 0 === r ? function () {} : r,\n l = e.onClose,\n c = void 0 === l ? function () {} : l,\n d = e.openTrigger,\n u = void 0 === d ? \"data-micromodal-trigger\" : d,\n f = e.closeTrigger,\n h = void 0 === f ? \"data-micromodal-close\" : f,\n v = e.openClass,\n g = void 0 === v ? \"is-open\" : v,\n m = e.disableScroll,\n b = void 0 !== m && m,\n y = e.disableFocus,\n p = void 0 !== y && y,\n w = e.awaitCloseAnimation,\n E = void 0 !== w && w,\n k = e.awaitOpenAnimation,\n M = void 0 !== k && k,\n A = e.debugMode,\n C = void 0 !== A && A;\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, o), this.modal = document.getElementById(n), this.config = {\n debugMode: C,\n disableScroll: b,\n openTrigger: u,\n closeTrigger: h,\n openClass: g,\n onShow: s,\n onClose: c,\n awaitCloseAnimation: E,\n awaitOpenAnimation: M,\n disableFocus: p\n }, a.length > 0 && this.registerTriggers.apply(this, t(a)), this.onClick = this.onClick.bind(this), this.onKeydown = this.onKeydown.bind(this);\n }\n var i, a, r;\n return i = o, (a = [{\n key: \"registerTriggers\",\n value: function value() {\n for (var e = this, t = arguments.length, o = new Array(t), n = 0; n < t; n++) o[n] = arguments[n];\n o.filter(Boolean).forEach(function (t) {\n t.addEventListener(\"click\", function (t) {\n return e.showModal(t);\n });\n });\n }\n }, {\n key: \"showModal\",\n value: function value() {\n var e = this,\n t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;\n if (this.activeElement = document.activeElement, this.modal.setAttribute(\"aria-hidden\", \"false\"), this.modal.classList.add(this.config.openClass), this.scrollBehaviour(\"disable\"), this.addEventListeners(), this.config.awaitOpenAnimation) {\n var o = function t() {\n e.modal.removeEventListener(\"animationend\", t, !1), e.setFocusToFirstNode();\n };\n this.modal.addEventListener(\"animationend\", o, !1);\n } else this.setFocusToFirstNode();\n this.config.onShow(this.modal, this.activeElement, t);\n }\n }, {\n key: \"closeModal\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n t = this.modal;\n if (this.modal.setAttribute(\"aria-hidden\", \"true\"), this.removeEventListeners(), this.scrollBehaviour(\"enable\"), this.activeElement && this.activeElement.focus && this.activeElement.focus(), this.config.onClose(this.modal, this.activeElement, e), this.config.awaitCloseAnimation) {\n var o = this.config.openClass;\n this.modal.addEventListener(\"animationend\", function e() {\n t.classList.remove(o), t.removeEventListener(\"animationend\", e, !1);\n }, !1);\n } else t.classList.remove(this.config.openClass);\n }\n }, {\n key: \"closeModalById\",\n value: function value(e) {\n this.modal = document.getElementById(e), this.modal && this.closeModal();\n }\n }, {\n key: \"scrollBehaviour\",\n value: function value(e) {\n if (this.config.disableScroll) {\n var t = document.querySelector(\"body\");\n switch (e) {\n case \"enable\":\n Object.assign(t.style, {\n overflow: \"\"\n });\n break;\n case \"disable\":\n Object.assign(t.style, {\n overflow: \"hidden\"\n });\n }\n }\n }\n }, {\n key: \"addEventListeners\",\n value: function value() {\n this.modal.addEventListener(\"touchstart\", this.onClick), this.modal.addEventListener(\"click\", this.onClick), document.addEventListener(\"keydown\", this.onKeydown);\n }\n }, {\n key: \"removeEventListeners\",\n value: function value() {\n this.modal.removeEventListener(\"touchstart\", this.onClick), this.modal.removeEventListener(\"click\", this.onClick), document.removeEventListener(\"keydown\", this.onKeydown);\n }\n }, {\n key: \"onClick\",\n value: function value(e) {\n (e.target.hasAttribute(this.config.closeTrigger) || e.target.parentNode.hasAttribute(this.config.closeTrigger)) && (e.preventDefault(), e.stopPropagation(), this.closeModal(e));\n }\n }, {\n key: \"onKeydown\",\n value: function value(e) {\n 27 === e.keyCode && this.closeModal(e), 9 === e.keyCode && this.retainFocus(e);\n }\n }, {\n key: \"getFocusableNodes\",\n value: function value() {\n var e = this.modal.querySelectorAll(n);\n return Array.apply(void 0, t(e));\n }\n }, {\n key: \"setFocusToFirstNode\",\n value: function value() {\n var e = this;\n if (!this.config.disableFocus) {\n var t = this.getFocusableNodes();\n if (0 !== t.length) {\n var o = t.filter(function (t) {\n return !t.hasAttribute(e.config.closeTrigger);\n });\n o.length > 0 && o[0].focus(), 0 === o.length && t[0].focus();\n }\n }\n }\n }, {\n key: \"retainFocus\",\n value: function value(e) {\n var t = this.getFocusableNodes();\n if (0 !== t.length) if (t = t.filter(function (e) {\n return null !== e.offsetParent;\n }), this.modal.contains(document.activeElement)) {\n var o = t.indexOf(document.activeElement);\n e.shiftKey && 0 === o && (t[t.length - 1].focus(), e.preventDefault()), !e.shiftKey && t.length > 0 && o === t.length - 1 && (t[0].focus(), e.preventDefault());\n } else t[0].focus();\n }\n }]) && e(i.prototype, a), r && e(i, r), o;\n }(), a = null, r = function r(e) {\n if (!document.getElementById(e)) return console.warn(\"MicroModal: ❗Seems like you have missed %c'\".concat(e, \"'\"), \"background-color: #f8f9fa;color: #50596c;font-weight: bold;\", \"ID somewhere in your code. Refer example below to resolve it.\"), console.warn(\"%cExample:\", \"background-color: #f8f9fa;color: #50596c;font-weight: bold;\", '
')), !1;\n }, s = function s(e, t) {\n if (function (e) {\n e.length <= 0 && (console.warn(\"MicroModal: ❗Please specify at least one %c'micromodal-trigger'\", \"background-color: #f8f9fa;color: #50596c;font-weight: bold;\", \"data attribute.\"), console.warn(\"%cExample:\", \"background-color: #f8f9fa;color: #50596c;font-weight: bold;\", ''));\n }(e), !t) return !0;\n for (var o in t) r(o);\n return !0;\n }, {\n init: function init(e) {\n var o = Object.assign({}, {\n openTrigger: \"data-micromodal-trigger\"\n }, e),\n n = t(document.querySelectorAll(\"[\".concat(o.openTrigger, \"]\"))),\n r = function (e, t) {\n var o = [];\n return e.forEach(function (e) {\n var n = e.attributes[t].value;\n void 0 === o[n] && (o[n] = []), o[n].push(e);\n }), o;\n }(n, o.openTrigger);\n if (!0 !== o.debugMode || !1 !== s(n, r)) for (var l in r) {\n var c = r[l];\n o.targetModal = l, o.triggers = t(c), a = new i(o);\n }\n },\n show: function show(e, t) {\n var o = t || {};\n o.targetModal = e, !0 === o.debugMode && !1 === r(e) || (a && a.removeEventListeners(), (a = new i(o)).showModal());\n },\n close: function close(e) {\n e ? a.closeModalById(e) : a.closeModal();\n }\n });\n\"undefined\" != typeof window && (window.MicroModal = l);\nexport default l;","/**\n * Returns `process.env` if it is available in the environment.\n * Always returns an object make it similarly easy to use as `process.env`.\n */\nexport function getProcessEnv() {\n if (typeof process === 'undefined' || !process.env) {\n return {};\n }\n return process.env;\n}","import { __extends } from \"tslib\";\nimport { Emitter } from '../emitter';\nimport { backoff } from './backoff';\n/**\n * @internal\n */\nexport var ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture';\nvar PriorityQueue = /** @class */function (_super) {\n __extends(PriorityQueue, _super);\n function PriorityQueue(maxAttempts, queue, seen) {\n var _this = _super.call(this) || this;\n _this.future = [];\n _this.maxAttempts = maxAttempts;\n _this.queue = queue;\n _this.seen = seen !== null && seen !== void 0 ? seen : {};\n return _this;\n }\n PriorityQueue.prototype.push = function () {\n var _this = this;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var accepted = items.map(function (operation) {\n var attempts = _this.updateAttempts(operation);\n if (attempts > _this.maxAttempts || _this.includes(operation)) {\n return false;\n }\n _this.queue.push(operation);\n return true;\n });\n this.queue = this.queue.sort(function (a, b) {\n return _this.getAttempts(a) - _this.getAttempts(b);\n });\n return accepted;\n };\n PriorityQueue.prototype.pushWithBackoff = function (item) {\n var _this = this;\n if (this.getAttempts(item) === 0) {\n return this.push(item)[0];\n }\n var attempt = this.updateAttempts(item);\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false;\n }\n var timeout = backoff({\n attempt: attempt - 1\n });\n setTimeout(function () {\n _this.queue.push(item);\n // remove from future list\n _this.future = _this.future.filter(function (f) {\n return f.id !== item.id;\n });\n // Lets listeners know that a 'future' message is now available in the queue\n _this.emit(ON_REMOVE_FROM_FUTURE);\n }, timeout);\n this.future.push(item);\n return true;\n };\n PriorityQueue.prototype.getAttempts = function (item) {\n var _a;\n return (_a = this.seen[item.id]) !== null && _a !== void 0 ? _a : 0;\n };\n PriorityQueue.prototype.updateAttempts = function (item) {\n this.seen[item.id] = this.getAttempts(item) + 1;\n return this.getAttempts(item);\n };\n PriorityQueue.prototype.includes = function (item) {\n return this.queue.includes(item) || this.future.includes(item) || Boolean(this.queue.find(function (i) {\n return i.id === item.id;\n })) || Boolean(this.future.find(function (i) {\n return i.id === item.id;\n }));\n };\n PriorityQueue.prototype.pop = function () {\n return this.queue.shift();\n };\n Object.defineProperty(PriorityQueue.prototype, \"length\", {\n get: function get() {\n return this.queue.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PriorityQueue.prototype, \"todo\", {\n get: function get() {\n return this.queue.length + this.future.length;\n },\n enumerable: false,\n configurable: true\n });\n return PriorityQueue;\n}(Emitter);\nexport { PriorityQueue };","export function backoff(params) {\n var random = Math.random() + 1;\n var _a = params.minTimeout,\n minTimeout = _a === void 0 ? 500 : _a,\n _b = params.factor,\n factor = _b === void 0 ? 2 : _b,\n attempt = params.attempt,\n _c = params.maxTimeout,\n maxTimeout = _c === void 0 ? Infinity : _c;\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);\n}","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict';\n\nvar base64 = require('base64-js');\nvar ieee754 = require('ieee754');\nvar isArray = require('isarray');\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength();\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 &&\n // typed array instances can be augmented\n typeof arr.subarray === 'function' &&\n // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n return that;\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n return allocUnsafe(this, arg);\n }\n return from(this, arg, encodingOrOffset, length);\n}\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n return fromObject(that, value);\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size);\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n return createBuffer(that, size);\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that;\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n return that;\n}\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that;\n}\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that;\n}\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n if (that.length === 0) {\n return that;\n }\n obj.copy(that, 0, 0, len);\n return that;\n }\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n return fromArrayLike(that, obj);\n }\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n return length | 0;\n}\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length);\n}\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n default:\n return false;\n }\n};\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer;\n};\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n var len = string.length;\n if (len === 0) return 0;\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n case 'hex':\n return len >>> 1;\n case 'base64':\n return base64ToBytes(string).length;\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\nfunction slowToString(encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return '';\n }\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return '';\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return '';\n }\n if (!encoding) encoding = 'utf8';\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n case 'ascii':\n return asciiSlice(this, start, end);\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n case 'base64':\n return base64Slice(this, start, end);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n};\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n};\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n};\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '';\n};\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1;\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError('val must be string, number or Buffer');\n}\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i;\n }\n }\n return -1;\n}\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n}\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret;\n}\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n}\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out;\n}\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n}\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n return newBuf;\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n return val;\n};\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n return val;\n};\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2;\n};\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2;\n};\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4;\n};\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4;\n};\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n return offset + byteLength;\n};\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2;\n};\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2;\n};\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4;\n};\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4;\n};\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds');\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n var len = end - start;\n var i;\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n return len;\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return '';\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str;\n}\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n }\n\n // valid lead\n leadSurrogate = codePoint;\n continue;\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction asciiToBytes(str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray;\n}\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n}\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n}\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n};\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) {\n if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n return f;\n }\n var kind = contextIn.kind,\n key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _,\n done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) {\n if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n extraInitializers.push(accept(f || null));\n };\n var result = (0, decorators[i])(kind === \"accessor\" ? {\n get: descriptor.get,\n set: descriptor.set\n } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || _typeof(result) !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n } else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n}\n;\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n}\n;\nexport function __propKey(x) {\n return _typeof(x) === \"symbol\" ? x : \"\".concat(x);\n}\n;\nexport function __setFunctionName(f, name, prefix) {\n if (_typeof(name) === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", {\n configurable: true,\n value: prefix ? \"\".concat(prefix, \" \", name) : name\n });\n}\n;\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: false\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n}\n;\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport default {\n __extends: __extends,\n __assign: _assign,\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __createBinding: __createBinding,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __spreadArrays: __spreadArrays,\n __spreadArray: __spreadArray,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault,\n __classPrivateFieldGet: __classPrivateFieldGet,\n __classPrivateFieldSet: __classPrivateFieldSet,\n __classPrivateFieldIn: __classPrivateFieldIn\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n};\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) {\n if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n return f;\n }\n var kind = contextIn.kind,\n key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _,\n done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) {\n if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n extraInitializers.push(accept(f || null));\n };\n var result = (0, decorators[i])(kind === \"accessor\" ? {\n get: descriptor.get,\n set: descriptor.set\n } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || _typeof(result) !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n } else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n}\n;\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n}\n;\nexport function __propKey(x) {\n return _typeof(x) === \"symbol\" ? x : \"\".concat(x);\n}\n;\nexport function __setFunctionName(f, name, prefix) {\n if (_typeof(name) === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", {\n configurable: true,\n value: prefix ? \"\".concat(prefix, \" \", name) : name\n });\n}\n;\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: false\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n}\n;\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport default {\n __extends: __extends,\n __assign: _assign,\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __createBinding: __createBinding,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __spreadArrays: __spreadArrays,\n __spreadArray: __spreadArray,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault,\n __classPrivateFieldGet: __classPrivateFieldGet,\n __classPrivateFieldSet: __classPrivateFieldSet,\n __classPrivateFieldIn: __classPrivateFieldIn\n};","import { __read, __spreadArray } from \"tslib\";\nexport function compose() {\n var funcs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n funcs[_i] = arguments[_i];\n }\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce(function (a, b) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return a(b.apply(void 0, __spreadArray([], __read(args), false)));\n };\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nexport function toHashMapString(obj) {\n if (!obj) return;\n Object.keys(obj).forEach(function (k) {\n if (_typeof(obj[k]) === \"object\") {\n obj[k] = JSON.stringify(obj[k]);\n }\n obj[k] = String(obj[k]);\n });\n return obj;\n}\nexport function toHashMap(obj) {\n if (!obj) return;\n Object.keys(obj).forEach(function (k) {\n if (typeof obj[k] === \"string\" || typeof obj[k] === \"boolean\" || typeof obj[k] === \"number\") {\n return;\n }\n obj[k] = JSON.stringify(obj[k]);\n });\n return obj;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nexport function isError(error) {\n return _typeof(error) === \"object\" && typeof error.message !== \"undefined\";\n}\nexport function getStacktrace(error) {\n if (typeof error.stacktrace !== \"undefined\" || typeof error[\"opera#sourceloc\"] !== \"undefined\") {\n var _a = error.stacktrace,\n stacktrace = _a === void 0 ? \"\" : _a;\n return stacktrace.split(\"\\n\").filter(function (line) {\n return line !== \"\";\n });\n } else if (error.stack) {\n var _b = error.stack,\n stack = _b === void 0 ? \"\" : _b;\n return stack.split(\"\\n\").filter(function (line) {\n return line !== \"\";\n });\n } else {\n return [\"No stacktrace available\"];\n }\n}","export var isAsync = function isAsync(fn) {\n return fn.constructor.name === \"AsyncFunction\";\n};","var Serializable = function () {\n function Serializable(data) {\n this._data = data;\n }\n Serializable.prototype.toJSON = function () {\n return JSON.stringify(this._data);\n };\n Serializable.prototype.serialize = function () {\n return this._data;\n };\n return Serializable;\n}();\nexport { Serializable };","import { getGlobalObject, isNodeEnv } from \"@appsignal/core\";\nvar Environment = function () {\n function Environment() {}\n Environment.serialize = function () {\n return {\n transport: this.transport(),\n origin: this.origin()\n };\n };\n Environment.origin = function () {\n var globals = getGlobalObject();\n if (!globals.location) {\n return \"\";\n }\n return globals.location.origin || \"\".concat(globals.location.protocol, \"//\").concat(globals.location.hostname);\n };\n Environment.transport = function () {\n var globals = getGlobalObject();\n if (isNodeEnv() && typeof jest === \"undefined\") {\n return \"NodeHTTP\";\n } else if (globals.XDomainRequest) {\n return \"XDomainRequest\";\n } else if (globals.XMLHttpRequest && !globals.fetch) {\n return \"XMLHttpRequest\";\n } else {\n return \"fetch\";\n }\n };\n Environment.supportsPromises = function () {\n var globals = getGlobalObject();\n return \"Promise\" in globals && \"resolve\" in globals.Promise && \"reject\" in globals.Promise && \"all\" in globals.Promise && \"race\" in globals.Promise && function () {\n var resolve;\n new globals.Promise(function (r) {\n resolve = r;\n });\n return typeof resolve === \"function\";\n }();\n };\n return Environment;\n}();\nexport { Environment };","var XDomainTransport = function () {\n function XDomainTransport(url) {\n this.url = url;\n }\n XDomainTransport.prototype.send = function (data) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var _a;\n var req = new XDomainRequest();\n var rx = new RegExp(\"^https?:\");\n req.onload = function () {\n return resolve({});\n };\n req.open(\"POST\", _this.url.replace(rx, (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.protocol));\n setTimeout(function () {\n try {\n req.send(data);\n } catch (e) {\n reject(e);\n }\n }, 0);\n });\n };\n return XDomainTransport;\n}();\nexport { XDomainTransport };","var XHRTransport = function () {\n function XHRTransport(url) {\n this.url = url;\n }\n XHRTransport.prototype.send = function (data) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n try {\n var req_1 = new XMLHttpRequest();\n req_1.onreadystatechange = function () {\n if (req_1.readyState === XMLHttpRequest.DONE) {\n resolve({});\n }\n };\n req_1.open(\"POST\", _this.url);\n req_1.send(data);\n } catch (e) {\n reject(e);\n }\n });\n };\n return XHRTransport;\n}();\nexport { XHRTransport };","import { __awaiter, __generator } from \"tslib\";\nvar FetchTransport = function () {\n function FetchTransport(url, headers) {\n this.url = url;\n }\n FetchTransport.prototype.send = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var res, statusText, ok;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, fetch(this.url, {\n method: \"POST\",\n body: data\n })];\n case 1:\n res = _a.sent();\n statusText = res.statusText, ok = res.ok;\n return [2, ok ? Promise.resolve({}) : Promise.reject({\n statusText: statusText\n })];\n }\n });\n });\n };\n return FetchTransport;\n}();\nexport { FetchTransport };","import https from \"https\";\nvar NodeTransport = function () {\n function NodeTransport(url) {\n this.url = url;\n }\n NodeTransport.prototype.send = function (data) {\n var _this = this;\n var options = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Content-Length\": data.length\n }\n };\n return new Promise(function (resolve, reject) {\n var req = https.request(_this.url, options, function () {}).on(\"error\", function (error) {\n return reject(error);\n });\n req.write(data);\n req.end();\n resolve({});\n });\n };\n return NodeTransport;\n}();\nexport { NodeTransport };","import { __awaiter, __generator } from \"tslib\";\nimport { urlEncode } from \"@appsignal/core\";\nimport { Environment } from \"./environment\";\nimport { XDomainTransport } from \"./transports/xdomain\";\nimport { XHRTransport } from \"./transports/xhr\";\nimport { FetchTransport } from \"./transports/fetch\";\nimport { NodeTransport } from \"./transports/node\";\nvar PushApi = function () {\n function PushApi(options) {\n this._uri = options.uri || \"https://appsignal-endpoint.net/collect\";\n this._apiKey = options.key;\n this._clientVersion = options.version;\n this._transport = this._createTransport(this._url());\n }\n PushApi.prototype.push = function (span) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, this._transport.send(span.toJSON())];\n case 1:\n _a.sent();\n return [2, span];\n }\n });\n });\n };\n PushApi.prototype._createTransport = function (url) {\n switch (Environment.transport()) {\n case \"XDomainRequest\":\n return new XDomainTransport(url);\n case \"XMLHttpRequest\":\n return new XHRTransport(url);\n case \"NodeHTTP\":\n return new NodeTransport(url);\n default:\n return new FetchTransport(url);\n }\n };\n PushApi.prototype._url = function () {\n var auth = this._authorization();\n return \"\".concat(this._uri, \"?\").concat(urlEncode(auth));\n };\n PushApi.prototype._authorization = function () {\n return {\n api_key: this._apiKey,\n version: this._clientVersion\n };\n };\n return PushApi;\n}();\nexport { PushApi };","export function urlEncode(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(object[key]));\n }).join(\"&\");\n}","import { __assign, __extends } from \"tslib\";\nimport { Serializable, getStacktrace, toHashMapString, isError } from \"@appsignal/core\";\nvar Span = function (_super) {\n __extends(Span, _super);\n function Span(span) {\n return _super.call(this, __assign({\n timestamp: Math.round(new Date().getTime() / 1000),\n namespace: \"frontend\",\n error: {\n name: \"NullError\",\n message: \"No error has been set\",\n backtrace: []\n }\n }, span)) || this;\n }\n Span.prototype.setAction = function (name) {\n if (!name || typeof name !== \"string\") {\n return this;\n }\n this._data.action = name;\n return this;\n };\n Span.prototype.setNamespace = function (name) {\n if (!name || typeof name !== \"string\") {\n return this;\n }\n this._data.namespace = name;\n return this;\n };\n Span.prototype.setError = function (error) {\n if (!error || !isError(error)) return this;\n this._data.error = {\n name: error.name || \"[unknown]\",\n message: error.message,\n backtrace: getStacktrace(error)\n };\n return this;\n };\n Span.prototype.setTags = function (tags) {\n this._data.tags = __assign(__assign({}, this._data.tags), toHashMapString(tags));\n return this;\n };\n Span.prototype.setParams = function (params) {\n this._data.params = __assign(__assign({}, this._data.params), params);\n return this;\n };\n Span.prototype.setBreadcrumbs = function (breadcrumbs) {\n this._data.breadcrumbs = breadcrumbs;\n return this;\n };\n return Span;\n}(Serializable);\nexport { Span };","import { __generator, __read, __spreadArray } from \"tslib\";\nvar Queue = function () {\n function Queue(data) {\n this._data = data || [];\n }\n Queue.prototype.clear = function () {\n this._data = [];\n };\n Queue.prototype.values = function () {\n return this._data;\n };\n Queue.prototype.push = function (item) {\n var _a;\n return Array.isArray(item) ? (_a = this._data).push.apply(_a, __spreadArray([], __read(item), false)) : this._data.push(item);\n };\n Queue.prototype.drain = function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this._data.length > 0)) return [3, 2];\n return [4, this._data.shift()];\n case 1:\n _a.sent();\n return [3, 0];\n case 2:\n return [2];\n }\n });\n };\n return Queue;\n}();\nexport { Queue };","import { __assign, __awaiter, __generator, __values } from \"tslib\";\nimport { getGlobalObject } from \"@appsignal/core\";\nvar Dispatcher = function () {\n function Dispatcher(queue, api, options) {\n this._retries = 0;\n this._timerID = 0;\n this._duration = 0;\n this._api = api;\n this._queue = queue;\n this.options = __assign({\n limit: 5,\n initialDuration: 1000\n }, options);\n this.reset();\n }\n Dispatcher.prototype.schedule = function (time) {\n var _this = this;\n if (time === void 0) {\n time = this._duration;\n }\n var globals = getGlobalObject();\n var BACKOFF_FACTOR = 1.3;\n var cb = function cb() {\n return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, span, e_1, expDuration, e_2_1;\n var e_2, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 7, 8, 9]);\n _a = __values(this._queue.drain()), _b = _a.next();\n _d.label = 1;\n case 1:\n if (!!_b.done) return [3, 6];\n span = _b.value;\n if (!span) return [2];\n _d.label = 2;\n case 2:\n _d.trys.push([2, 4,, 5]);\n return [4, this._api.push(span)];\n case 3:\n _d.sent();\n return [3, 5];\n case 4:\n e_1 = _d.sent();\n expDuration = Math.floor(Math.pow(time, BACKOFF_FACTOR));\n this._retries = this._retries - 1;\n if (this._retries === 0) {\n this.reset();\n } else {\n this._queue.push(span);\n this._timerID = this.schedule(expDuration);\n }\n return [2];\n case 5:\n _b = _a.next();\n return [3, 1];\n case 6:\n return [3, 9];\n case 7:\n e_2_1 = _d.sent();\n e_2 = {\n error: e_2_1\n };\n return [3, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a[\"return\"])) _c.call(_a);\n } finally {\n if (e_2) throw e_2.error;\n }\n return [7];\n case 9:\n this.reset();\n return [2];\n }\n });\n });\n };\n return globals.setTimeout(cb, time);\n };\n Dispatcher.prototype.reset = function () {\n var _a = this.options,\n limit = _a.limit,\n initialDuration = _a.initialDuration;\n this._retries = limit;\n this._duration = initialDuration;\n };\n return Dispatcher;\n}();\nexport { Dispatcher };","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { compose, toHashMap } from \"@appsignal/core\";\nimport { VERSION } from \"./version\";\nimport { PushApi } from \"./api\";\nimport { Environment } from \"./environment\";\nimport { Span } from \"./span\";\nimport { Queue } from \"./queue\";\nimport { Dispatcher } from \"./dispatcher\";\nvar Appsignal = function () {\n function Appsignal(options) {\n this.VERSION = VERSION;\n this.ignored = [];\n this._breadcrumbs = [];\n this._hooks = {\n decorators: Array(),\n overrides: Array()\n };\n this._env = Environment.serialize();\n this._queue = new Queue([]);\n var _a = options.key,\n key = _a === void 0 ? \"\" : _a,\n uri = options.uri,\n revision = options.revision,\n ignoreErrors = options.ignoreErrors;\n if (revision && typeof revision !== \"string\") {\n options.revision = String(revision);\n }\n if (key === \"\") {\n console.info(\"[APPSIGNAL]: Started in development mode.\");\n }\n this._api = new PushApi({\n key: key,\n uri: uri,\n version: this.VERSION\n });\n if (ignoreErrors && Array.isArray(ignoreErrors)) {\n this.ignored = ignoreErrors;\n }\n this._dispatcher = new Dispatcher(this._queue, this._api);\n this._options = options;\n }\n Appsignal.prototype.send = function (data, tagsOrFn, namespace) {\n var _this = this;\n if (!(data instanceof Error) && !(data instanceof Span)) {\n console.error(\"[APPSIGNAL]: Can't send error, given error is not a valid type\");\n return;\n }\n if (this.ignored.length !== 0) {\n if (data instanceof Error && this.ignored.some(function (el) {\n return el.test(data.message);\n })) {\n console.warn(\"[APPSIGNAL]: Ignored an error: \".concat(data.message));\n return;\n }\n if (data instanceof Span) {\n var error_1 = data.serialize().error;\n if (error_1.message && this.ignored.some(function (el) {\n return el.test(error_1.message);\n })) {\n console.warn(\"[APPSIGNAL]: Ignored a span: \".concat(error_1.message));\n return;\n }\n }\n }\n var span = data instanceof Span ? data : this._createSpanFromError(data);\n if (this._hooks.decorators.length > 0) {\n compose.apply(void 0, __spreadArray([], __read(this._hooks.decorators), false))(span);\n }\n if (tagsOrFn) {\n if (typeof tagsOrFn === \"function\") {\n var callback = tagsOrFn;\n callback(span);\n } else {\n console.warn(\"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a tags object is deprecated. Use the callback argument instead.\");\n var tags = toHashMap(tagsOrFn) || {};\n span.setTags(tags);\n }\n }\n if (namespace) {\n console.warn(\"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a namespace is deprecated. Use the callback argument instead.\");\n span.setNamespace(namespace);\n }\n if (this._breadcrumbs.length > 0) span.setBreadcrumbs(this._breadcrumbs);\n if (this._hooks.overrides.length > 0) {\n compose.apply(void 0, __spreadArray([], __read(this._hooks.overrides), false))(span);\n }\n if (Environment.supportsPromises()) {\n this._breadcrumbs = [];\n if (!this._options.key) {\n console.warn(\"[APPSIGNAL]: Span not sent because we're in development mode:\", span);\n if (data instanceof Error) {\n throw data;\n }\n } else {\n return this._api.push(span)[\"catch\"](function () {\n _this._queue.push(span);\n setTimeout(function () {\n return _this._dispatcher.schedule();\n }, 0);\n });\n }\n } else {\n console.error(\"[APPSIGNAL]: Error not sent. A Promise polyfill is required.\");\n return;\n }\n };\n Appsignal.prototype.sendError = function (error, tagsOrFn, namespace) {\n return this.send(error, tagsOrFn, namespace);\n };\n Appsignal.prototype.use = function (plugin) {\n plugin.call(this);\n };\n Appsignal.prototype.createSpan = function (fn) {\n var _a = this._options,\n _b = _a.revision,\n revision = _b === void 0 ? \"\" : _b,\n namespace = _a.namespace;\n var span = new Span({\n environment: this._env,\n revision: revision\n });\n if (namespace) span.setNamespace(namespace);\n if (fn && typeof fn === \"function\") fn(span);\n return span;\n };\n Appsignal.prototype.wrap = function (fn, tagsOrFn, namespace) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 4]);\n return [4, fn()];\n case 1:\n return [2, _a.sent()];\n case 2:\n e_1 = _a.sent();\n return [4, this.sendError(e_1, tagsOrFn, namespace)];\n case 3:\n _a.sent();\n return [2, Promise.reject(e_1)];\n case 4:\n return [2];\n }\n });\n });\n };\n Appsignal.prototype.addDecorator = function (decorator) {\n this._hooks.decorators.push(decorator);\n };\n Appsignal.prototype.addOverride = function (override) {\n this._hooks.overrides.push(override);\n };\n Appsignal.prototype.demo = function () {\n var span = this._createSpanFromError(new Error(\"Hello world! This is an error used for demonstration purposes.\"));\n span.setAction(\"TestAction\").setParams({\n path: \"/hello\",\n method: \"GET\"\n }).setTags({\n demo_sample: \"true\"\n });\n this.send(span);\n };\n Appsignal.prototype.addBreadcrumb = function (breadcrumb) {\n var crumb = __assign(__assign({\n timestamp: Math.round(new Date().getTime() / 1000)\n }, breadcrumb), {\n metadata: toHashMap(breadcrumb.metadata)\n });\n if (!crumb.category) {\n console.warn(\"[APPSIGNAL]: Breadcrumb not added. `category` is missing.\");\n return;\n }\n if (!crumb.action) {\n console.warn(\"[APPSIGNAL]: Breadcrumb not added. `action` is missing.\");\n return;\n }\n if (this._breadcrumbs.length === 20) {\n this._breadcrumbs.pop();\n }\n this._breadcrumbs.unshift(crumb);\n };\n Appsignal.prototype._createSpanFromError = function (error) {\n var event = this.createSpan();\n event.setError(error);\n return event;\n };\n return Appsignal;\n}();\nexport default Appsignal;","export var VERSION = \"1.3.25\";","import Appsignal from '@appsignal/javascript'\n\n// Call at page initialization to initialize Appsignal logging\nexport function initLogging () {\n const globals = window.provenance\n if (!globals) return\n if (\n typeof globals !== 'undefined' ||\n typeof globals.appsignalApiKey !== 'undefined' ||\n typeof globals.applicationEnvironment !== 'undefined'\n ) {\n const appsignal = new Appsignal({\n key: globals.appsignalApiKey,\n revision: globals.revision\n })\n globals.appsignal = appsignal\n }\n}\n\n// Log an error to Appsignal only\nexport function internalLog (err) {\n const appsignal = window.provenance.appsignal\n if (appsignal) {\n appsignal.sendError(err)\n }\n}\n\n// Log an error to Appsignal and the JS console\nexport function log (err) {\n // eslint-disable-next-line no-console\n console.log(err.message)\n\n internalLog(err)\n}\n","export function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\n}\nexport function getGlobalObject() {\n return isNodeEnv() ? global : typeof window !== \"undefined\" ? window : typeof self !== \"undefined\" ? self : {};\n}","module.exports = self.fetch || (self.fetch = require('unfetch')[\"default\"] || require('unfetch'));","import { __extends } from \"tslib\";\nimport { CoreContext, ContextCancelation } from '@segment/analytics-core';\nimport { Stats } from '../stats';\nvar Context = /** @class */function (_super) {\n __extends(Context, _super);\n function Context(event, id) {\n return _super.call(this, event, id, new Stats()) || this;\n }\n Context.system = function () {\n return new this({\n type: 'track',\n event: 'system'\n });\n };\n return Context;\n}(CoreContext);\nexport { Context };\nexport { ContextCancelation };","'use strict';\n\n/**\n * Matcher, slightly modified from:\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n */\nvar matcher = /^(\\d{4})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:([ T])(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\n/**\n * Convert an ISO date string to a date. Fallback to native `Date.parse`.\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n *\n * @param {String} iso\n * @return {Date}\n */\n\nexports.parse = function (iso) {\n var numericKeys = [1, 5, 6, 7, 11, 12];\n var arr = matcher.exec(iso);\n var offset = 0;\n\n // fallback to native parsing\n if (!arr) {\n return new Date(iso);\n }\n\n /* eslint-disable no-cond-assign */\n // remove undefined values\n for (var i = 0, val; val = numericKeys[i]; i++) {\n arr[val] = parseInt(arr[val], 10) || 0;\n }\n /* eslint-enable no-cond-assign */\n\n // allow undefined days and months\n arr[2] = parseInt(arr[2], 10) || 1;\n arr[3] = parseInt(arr[3], 10) || 1;\n\n // month is 0-11\n arr[2]--;\n\n // allow abitrary sub-second precision\n arr[8] = arr[8] ? (arr[8] + '00').substring(0, 3) : 0;\n\n // apply timezone if one exists\n if (arr[4] === ' ') {\n offset = new Date().getTimezoneOffset();\n } else if (arr[9] !== 'Z' && arr[10]) {\n offset = arr[11] * 60 + arr[12];\n if (arr[10] === '+') {\n offset = 0 - offset;\n }\n }\n var millis = Date.UTC(arr[1], arr[2], arr[3], arr[5], arr[6] + offset, arr[7], arr[8]);\n return new Date(millis);\n};\n\n/**\n * Checks whether a `string` is an ISO date string. `strict` mode requires that\n * the date string at least have a year, month and date.\n *\n * @param {String} string\n * @param {Boolean} strict\n * @return {Boolean}\n */\n\nexports.is = function (string, strict) {\n if (typeof string !== 'string') {\n return false;\n }\n if (strict && /^\\d{4}-\\d{2}-\\d{2}/.test(string) === false) {\n return false;\n }\n return matcher.test(string);\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Identify = void 0;\nvar facade_1 = require(\"./facade\");\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar trim = function trim(str) {\n return str.trim();\n};\nfunction Identify(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Identify = Identify;\ninherits_1[\"default\"](Identify, facade_1.Facade);\nvar i = Identify.prototype;\ni.action = function () {\n return \"identify\";\n};\ni.type = i.action;\ni.traits = function (aliases) {\n var ret = this.field(\"traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id) ret.id = id;\n for (var alias in aliases) {\n var value = this[alias] == null ? this.proxy(\"traits.\" + alias) : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n if (alias !== aliases[alias]) delete ret[alias];\n }\n return ret;\n};\ni.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email) return email;\n var userId = this.userId();\n if (is_email_1[\"default\"](userId)) return userId;\n};\ni.created = function () {\n var created = this.proxy(\"traits.created\") || this.proxy(\"traits.createdAt\");\n if (created) return new_date_1[\"default\"](created);\n};\ni.companyCreated = function () {\n var created = this.proxy(\"traits.company.created\") || this.proxy(\"traits.company.createdAt\");\n if (created) {\n return new_date_1[\"default\"](created);\n }\n};\ni.companyName = function () {\n return this.proxy(\"traits.company.name\");\n};\ni.name = function () {\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name);\n }\n var firstName = this.firstName();\n var lastName = this.lastName();\n if (firstName && lastName) {\n return trim(firstName + \" \" + lastName);\n }\n};\ni.firstName = function () {\n var firstName = this.proxy(\"traits.firstName\");\n if (typeof firstName === \"string\") {\n return trim(firstName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name).split(\" \")[0];\n }\n};\ni.lastName = function () {\n var lastName = this.proxy(\"traits.lastName\");\n if (typeof lastName === \"string\") {\n return trim(lastName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name !== \"string\") {\n return;\n }\n var space = trim(name).indexOf(\" \");\n if (space === -1) {\n return;\n }\n return trim(name.substr(space + 1));\n};\ni.uid = function () {\n return this.userId() || this.username() || this.email();\n};\ni.description = function () {\n return this.proxy(\"traits.description\") || this.proxy(\"traits.background\");\n};\ni.age = function () {\n var date = this.birthday();\n var age = obj_case_1[\"default\"](this.traits(), \"age\");\n if (age != null) return age;\n if (!(date instanceof Date)) return;\n var now = new Date();\n return now.getFullYear() - date.getFullYear();\n};\ni.avatar = function () {\n var traits = this.traits();\n return obj_case_1[\"default\"](traits, \"avatar\") || obj_case_1[\"default\"](traits, \"photoUrl\") || obj_case_1[\"default\"](traits, \"avatarUrl\");\n};\ni.position = function () {\n var traits = this.traits();\n return obj_case_1[\"default\"](traits, \"position\") || obj_case_1[\"default\"](traits, \"jobTitle\");\n};\ni.username = facade_1.Facade.proxy(\"traits.username\");\ni.website = facade_1.Facade.one(\"traits.website\");\ni.websites = facade_1.Facade.multi(\"traits.website\");\ni.phone = facade_1.Facade.one(\"traits.phone\");\ni.phones = facade_1.Facade.multi(\"traits.phone\");\ni.address = facade_1.Facade.proxy(\"traits.address\");\ni.gender = facade_1.Facade.proxy(\"traits.gender\");\ni.birthday = facade_1.Facade.proxy(\"traits.birthday\");","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Page = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar track_1 = require(\"./track\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nfunction Page(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Page = Page;\ninherits_1[\"default\"](Page, facade_1.Facade);\nvar p = Page.prototype;\np.action = function () {\n return \"page\";\n};\np.type = p.action;\np.category = facade_1.Facade.field(\"category\");\np.name = facade_1.Facade.field(\"name\");\np.title = facade_1.Facade.proxy(\"properties.title\");\np.path = facade_1.Facade.proxy(\"properties.path\");\np.url = facade_1.Facade.proxy(\"properties.url\");\np.referrer = function () {\n return this.proxy(\"context.referrer.url\") || this.proxy(\"context.page.referrer\") || this.proxy(\"properties.referrer\");\n};\np.properties = function (aliases) {\n var props = this.field(\"properties\") || {};\n var category = this.category();\n var name = this.name();\n aliases = aliases || {};\n if (category) props.category = category;\n if (name) props.name = name;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null ? this.proxy(\"properties.\" + alias) : this[alias]();\n if (value == null) continue;\n props[aliases[alias]] = value;\n if (alias !== aliases[alias]) delete props[alias];\n }\n }\n return props;\n};\np.email = function () {\n var email = this.proxy(\"context.traits.email\") || this.proxy(\"properties.email\");\n if (email) return email;\n var userId = this.userId();\n if (is_email_1[\"default\"](userId)) return userId;\n};\np.fullName = function () {\n var category = this.category();\n var name = this.name();\n return name && category ? category + \" \" + name : name;\n};\np.event = function (name) {\n return name ? \"Viewed \" + name + \" Page\" : \"Loaded a Page\";\n};\np.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};","import { __assign } from \"tslib\";\nvar CoreLogger = /** @class */function () {\n function CoreLogger() {\n this._logs = [];\n }\n CoreLogger.prototype.log = function (level, message, extras) {\n var time = new Date();\n this._logs.push({\n level: level,\n message: message,\n time: time,\n extras: extras\n });\n };\n Object.defineProperty(CoreLogger.prototype, \"logs\", {\n get: function get() {\n return this._logs;\n },\n enumerable: false,\n configurable: true\n });\n CoreLogger.prototype.flush = function () {\n if (this.logs.length > 1) {\n var formatted = this._logs.reduce(function (logs, log) {\n var _a;\n var _b, _c;\n var line = __assign(__assign({}, log), {\n json: JSON.stringify(log.extras, null, ' '),\n extras: log.extras\n });\n delete line['time'];\n var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';\n if (logs[key]) {\n key = \"\".concat(key, \"-\").concat(Math.random());\n }\n return __assign(__assign({}, logs), (_a = {}, _a[key] = line, _a));\n }, {});\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n } else {\n console.log(formatted);\n }\n } else {\n this.logs.forEach(function (logEntry) {\n var level = logEntry.level,\n message = logEntry.message,\n extras = logEntry.extras;\n if (level === 'info' || level === 'debug') {\n console.log(message, extras !== null && extras !== void 0 ? extras : '');\n } else {\n console[level](message, extras !== null && extras !== void 0 ? extras : '');\n }\n });\n }\n this._logs = [];\n };\n return CoreLogger;\n}();\nexport { CoreLogger };","import { v4 as uuid } from '@lukeed/uuid';\nimport { dset } from 'dset';\nimport { CoreLogger } from '../logger';\nimport { NullStats } from '../stats';\nvar ContextCancelation = /** @class */function () {\n function ContextCancelation(options) {\n var _a, _b, _c;\n this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;\n this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';\n this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';\n }\n return ContextCancelation;\n}();\nexport { ContextCancelation };\nvar CoreContext = /** @class */function () {\n function CoreContext(event, id, stats, logger) {\n if (id === void 0) {\n id = uuid();\n }\n if (stats === void 0) {\n stats = new NullStats();\n }\n if (logger === void 0) {\n logger = new CoreLogger();\n }\n this.attempts = 0;\n this.event = event;\n this._id = id;\n this.logger = logger;\n this.stats = stats;\n }\n CoreContext.system = function () {\n // This should be overridden by the subclass to return an instance of the subclass.\n };\n CoreContext.prototype.isSame = function (other) {\n return other.id === this.id;\n };\n CoreContext.prototype.cancel = function (error) {\n if (error) {\n throw error;\n }\n throw new ContextCancelation({\n reason: 'Context Cancel'\n });\n };\n CoreContext.prototype.log = function (level, message, extras) {\n this.logger.log(level, message, extras);\n };\n Object.defineProperty(CoreContext.prototype, \"id\", {\n get: function get() {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n CoreContext.prototype.updateEvent = function (path, val) {\n var _a;\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n var integrationName = path.split('.')[1];\n if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {\n return this.event;\n }\n }\n dset(this.event, path, val);\n return this.event;\n };\n CoreContext.prototype.failedDelivery = function () {\n return this._failedDelivery;\n };\n CoreContext.prototype.setFailedDelivery = function (options) {\n this._failedDelivery = options;\n };\n CoreContext.prototype.logs = function () {\n return this.logger.logs;\n };\n CoreContext.prototype.flush = function () {\n this.logger.flush();\n this.stats.flush();\n };\n CoreContext.prototype.toJSON = function () {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics\n };\n };\n return CoreContext;\n}();\nexport { CoreContext };","// This file is generated.\nexport var version = '1.53.0';","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n};\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) {\n if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n return f;\n }\n var kind = contextIn.kind,\n key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _,\n done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) {\n if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n extraInitializers.push(accept(f || null));\n };\n var result = (0, decorators[i])(kind === \"accessor\" ? {\n get: descriptor.get,\n set: descriptor.set\n } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || _typeof(result) !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n } else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n}\n;\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n}\n;\nexport function __propKey(x) {\n return _typeof(x) === \"symbol\" ? x : \"\".concat(x);\n}\n;\nexport function __setFunctionName(f, name, prefix) {\n if (_typeof(name) === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", {\n configurable: true,\n value: prefix ? \"\".concat(prefix, \" \", name) : name\n });\n}\n;\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: false\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n}\n;\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport default {\n __extends: __extends,\n __assign: _assign,\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __createBinding: __createBinding,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __spreadArrays: __spreadArrays,\n __spreadArray: __spreadArray,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault,\n __classPrivateFieldGet: __classPrivateFieldGet,\n __classPrivateFieldSet: __classPrivateFieldSet,\n __classPrivateFieldIn: __classPrivateFieldIn\n};","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n module.paths = [];\n // module.parent = undefined by default\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n return module;\n};","import { isBrowser } from '../environment';\nexport function isOnline() {\n if (isBrowser()) {\n return window.navigator.onLine;\n }\n return true;\n}\nexport function isOffline() {\n return !isOnline();\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { __assign } from \"tslib\";\n/**\n * Merge legacy settings and initialized Integration option overrides.\n *\n * This will merge any options that were passed from initialization into\n * overrides for settings that are returned by the Segment CDN.\n *\n * i.e. this allows for passing options directly into destinations from\n * the Analytics constructor.\n */\nexport function mergedOptions(settings, options) {\n var _a;\n var optionOverrides = Object.entries((_a = options.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (overrides, _a) {\n var _b, _c;\n var integration = _a[0],\n options = _a[1];\n if (_typeof(options) === 'object') {\n return __assign(__assign({}, overrides), (_b = {}, _b[integration] = options, _b));\n }\n return __assign(__assign({}, overrides), (_c = {}, _c[integration] = {}, _c));\n }, {});\n return Object.entries(settings.integrations).reduce(function (integrationSettings, _a) {\n var _b;\n var integration = _a[0],\n settings = _a[1];\n return __assign(__assign({}, integrationSettings), (_b = {}, _b[integration] = __assign(__assign({}, settings), optionOverrides[integration]), _b));\n }, {});\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { ContextCancelation } from '../../core/context';\nimport { toFacade } from '../../lib/to-facade';\nexport function applyDestinationMiddleware(destination, evt, middleware) {\n return __awaiter(this, void 0, void 0, function () {\n function applyMiddleware(event, fn) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled, returnedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nextCalled = false;\n returnedEvent = null;\n return [4 /*yield*/, fn({\n payload: toFacade(event, {\n clone: true,\n traverse: false\n }),\n integration: destination,\n next: function next(evt) {\n nextCalled = true;\n if (evt === null) {\n returnedEvent = null;\n }\n if (evt) {\n returnedEvent = evt.obj;\n }\n }\n })];\n case 1:\n _b.sent();\n if (!nextCalled && returnedEvent !== null) {\n returnedEvent = returnedEvent;\n returnedEvent.integrations = __assign(__assign({}, event.integrations), (_a = {}, _a[destination] = false, _a));\n }\n return [2 /*return*/, returnedEvent];\n }\n });\n });\n }\n var modifiedEvent, _i, middleware_1, md, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n modifiedEvent = toFacade(evt, {\n clone: true,\n traverse: false\n }).rawEvent();\n _i = 0, middleware_1 = middleware;\n _a.label = 1;\n case 1:\n if (!(_i < middleware_1.length)) return [3 /*break*/, 4];\n md = middleware_1[_i];\n return [4 /*yield*/, applyMiddleware(modifiedEvent, md)];\n case 2:\n result = _a.sent();\n if (result === null) {\n return [2 /*return*/, null];\n }\n modifiedEvent = result;\n _a.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n return [2 /*return*/, modifiedEvent];\n }\n });\n });\n}\nexport function sourceMiddlewarePlugin(fn, integrations) {\n function apply(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n nextCalled = false;\n return [4 /*yield*/, fn({\n payload: toFacade(ctx.event, {\n clone: true,\n traverse: false\n }),\n integrations: integrations !== null && integrations !== void 0 ? integrations : {},\n next: function next(evt) {\n nextCalled = true;\n if (evt) {\n ctx.event = evt.obj;\n }\n }\n })];\n case 1:\n _a.sent();\n if (!nextCalled) {\n throw new ContextCancelation({\n retry: false,\n type: 'middleware_cancellation',\n reason: 'Middleware `next` function skipped'\n });\n }\n return [2 /*return*/, ctx];\n }\n });\n });\n }\n return {\n name: \"Source Middleware \".concat(fn.name),\n type: 'before',\n version: '0.1.0',\n isLoaded: function isLoaded() {\n return true;\n },\n load: function load(ctx) {\n return Promise.resolve(ctx);\n },\n track: apply,\n page: apply,\n identify: apply,\n alias: apply,\n group: apply\n };\n}","/**\n * Tries to gets the unencoded version of an encoded component of a\n * Uniform Resource Identifier (URI). If input string is malformed,\n * returns it back as-is.\n *\n * Note: All occurences of the `+` character become ` ` (spaces).\n **/\nexport function gracefulDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent.replace(/\\+/g, ' '));\n } catch (_a) {\n return encodedURIComponent;\n }\n}","import { __awaiter, __generator } from \"tslib\";\nexport var pWhile = function pWhile(condition, action) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _loop;\n return __generator(this, function (_a) {\n _loop = function loop(actionResult) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!condition(actionResult)) return [3 /*break*/, 2];\n _a = _loop;\n return [4 /*yield*/, action()];\n case 1:\n return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n case 2:\n return [2 /*return*/];\n }\n });\n });\n };\n\n return [2 /*return*/, _loop(undefined)];\n });\n });\n};","import { __assign, __extends } from \"tslib\";\nvar compactMetricType = function compactMetricType(type) {\n var enums = {\n gauge: 'g',\n counter: 'c'\n };\n return enums[type];\n};\nvar CoreStats = /** @class */function () {\n function CoreStats() {\n this.metrics = [];\n }\n CoreStats.prototype.increment = function (metric, by, tags) {\n if (by === void 0) {\n by = 1;\n }\n this.metrics.push({\n metric: metric,\n value: by,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'counter',\n timestamp: Date.now()\n });\n };\n CoreStats.prototype.gauge = function (metric, value, tags) {\n this.metrics.push({\n metric: metric,\n value: value,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'gauge',\n timestamp: Date.now()\n });\n };\n CoreStats.prototype.flush = function () {\n var formatted = this.metrics.map(function (m) {\n return __assign(__assign({}, m), {\n tags: m.tags.join(',')\n });\n });\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n } else {\n console.log(formatted);\n }\n this.metrics = [];\n };\n /**\n * compact keys for smaller payload\n */\n CoreStats.prototype.serialize = function () {\n return this.metrics.map(function (m) {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp\n };\n });\n };\n return CoreStats;\n}();\nexport { CoreStats };\nvar NullStats = /** @class */function (_super) {\n __extends(NullStats, _super);\n function NullStats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullStats.prototype.gauge = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.increment = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.flush = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.serialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n return [];\n };\n return NullStats;\n}(CoreStats);\nexport { NullStats };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n(function (factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n glob.SparkMD5 = factory();\n }\n})(function (undefined) {\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function add32(a, b) {\n return a + b & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32(a << s | a >>> 32 - s, b);\n }\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 0x0F] + hex_chr[n >> j * 8 & 0x0F];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function add32(x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xFFFF;\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n});","export function pTimeout(promise, timeout) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(Error('Promise timed out'));\n }, timeout);\n promise.then(function (val) {\n clearTimeout(timeoutId);\n return resolve(val);\n })[\"catch\"](reject);\n });\n}\nexport function sleep(timeoutInMs) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, timeoutInMs);\n });\n}\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nexport function invokeCallback(ctx, callback, delay) {\n var cb = function cb() {\n try {\n return Promise.resolve(callback(ctx));\n } catch (err) {\n return Promise.reject(err);\n }\n };\n return sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(function () {\n return pTimeout(cb(), 1000);\n })[\"catch\"](function (err) {\n ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', {\n error: err\n });\n ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');\n }).then(function () {\n return ctx;\n });\n}","import unfetch from 'unfetch';\nimport { getGlobal } from './get-global';\n/**\n * Wrapper around native `fetch` containing `unfetch` fallback.\n */\nexport var fetch = function fetch() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var global = getGlobal();\n return (global && global.fetch || unfetch).apply(void 0, args);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { __assign, __extends } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport jar from 'js-cookie';\nimport { tld } from './tld';\nimport autoBind from '../../lib/bind-all';\nvar defaults = {\n persist: true,\n cookie: {\n key: 'ajs_user_id',\n oldKey: 'ajs_user'\n },\n localStorage: {\n key: 'ajs_user_traits'\n }\n};\nvar Store = /** @class */function () {\n function Store() {\n this.cache = {};\n }\n Store.prototype.get = function (key) {\n return this.cache[key];\n };\n Store.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n Store.prototype.remove = function (key) {\n delete this.cache[key];\n };\n Object.defineProperty(Store.prototype, \"type\", {\n get: function get() {\n return 'memory';\n },\n enumerable: false,\n configurable: true\n });\n return Store;\n}();\nvar ONE_YEAR = 365;\nvar Cookie = /** @class */function (_super) {\n __extends(Cookie, _super);\n function Cookie(options) {\n if (options === void 0) {\n options = Cookie.defaults;\n }\n var _this = _super.call(this) || this;\n _this.options = __assign(__assign({}, Cookie.defaults), options);\n return _this;\n }\n Cookie.available = function () {\n var cookieEnabled = window.navigator.cookieEnabled;\n if (!cookieEnabled) {\n jar.set('ajs:cookies', 'test');\n cookieEnabled = document.cookie.includes('ajs:cookies');\n jar.remove('ajs:cookies');\n }\n return cookieEnabled;\n };\n Object.defineProperty(Cookie, \"defaults\", {\n get: function get() {\n return {\n maxage: ONE_YEAR,\n domain: tld(window.location.href),\n path: '/',\n sameSite: 'Lax'\n };\n },\n enumerable: false,\n configurable: true\n });\n Cookie.prototype.opts = function () {\n return {\n sameSite: this.options.sameSite,\n expires: this.options.maxage,\n domain: this.options.domain,\n path: this.options.path,\n secure: this.options.secure\n };\n };\n Cookie.prototype.get = function (key) {\n try {\n var value = jar.get(key);\n if (!value) {\n return null;\n }\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n } catch (e) {\n return null;\n }\n };\n Cookie.prototype.set = function (key, value) {\n if (typeof value === 'string') {\n jar.set(key, value, this.opts());\n } else if (value === null) {\n jar.remove(key, this.opts());\n } else {\n jar.set(key, JSON.stringify(value), this.opts());\n }\n };\n Cookie.prototype.remove = function (key) {\n return jar.remove(key, this.opts());\n };\n Object.defineProperty(Cookie.prototype, \"type\", {\n get: function get() {\n return 'cookie';\n },\n enumerable: false,\n configurable: true\n });\n return Cookie;\n}(Store);\nexport { Cookie };\nvar localStorageWarning = function localStorageWarning(key, state) {\n console.warn(\"Unable to access \".concat(key, \", localStorage may be \").concat(state));\n};\nvar LocalStorage = /** @class */function (_super) {\n __extends(LocalStorage, _super);\n function LocalStorage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LocalStorage.available = function () {\n var test = 'test';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n };\n LocalStorage.prototype.get = function (key) {\n try {\n var val = localStorage.getItem(key);\n if (val === null) {\n return null;\n }\n try {\n return JSON.parse(val);\n } catch (e) {\n return val;\n }\n } catch (err) {\n localStorageWarning(key, 'unavailable');\n return null;\n }\n };\n LocalStorage.prototype.set = function (key, value) {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch (_a) {\n localStorageWarning(key, 'full');\n }\n };\n LocalStorage.prototype.remove = function (key) {\n try {\n return localStorage.removeItem(key);\n } catch (err) {\n localStorageWarning(key, 'unavailable');\n }\n };\n Object.defineProperty(LocalStorage.prototype, \"type\", {\n get: function get() {\n return 'localStorage';\n },\n enumerable: false,\n configurable: true\n });\n return LocalStorage;\n}(Store);\nexport { LocalStorage };\nvar UniversalStorage = /** @class */function () {\n function UniversalStorage(stores, storageOptions) {\n this.storageOptions = storageOptions;\n this.enabledStores = stores;\n }\n UniversalStorage.prototype.getStores = function (storeTypes) {\n var _this = this;\n var stores = [];\n this.enabledStores.filter(function (i) {\n return !storeTypes || (storeTypes === null || storeTypes === void 0 ? void 0 : storeTypes.includes(i));\n }).forEach(function (storeType) {\n var storage = _this.storageOptions[storeType];\n if (storage !== undefined) {\n stores.push(storage);\n }\n });\n return stores;\n };\n /*\n This is to support few scenarios where:\n - value exist in one of the stores ( as a result of other stores being cleared from browser ) and we want to resync them\n - read values in AJS 1.0 format ( for customers after 1.0 --> 2.0 migration ) and then re-write them in AJS 2.0 format\n */\n /**\n * get value for the key from the stores. it will pick the first value found in the stores, and then sync the value to all the stores\n * if the found value is a number, it will be converted to a string. this is to support legacy behavior that existed in AJS 1.0\n * @param key key for the value to be retrieved\n * @param storeTypes optional array of store types to be used for performing get and sync\n * @returns value for the key or null if not found\n */\n UniversalStorage.prototype.getAndSync = function (key, storeTypes) {\n var val = this.get(key, storeTypes);\n // legacy behavior, getAndSync can change the type of a value from number to string (AJS 1.0 stores numerical values as a number)\n var coercedValue = typeof val === 'number' ? val.toString() : val;\n this.set(key, coercedValue, storeTypes);\n return coercedValue;\n };\n /**\n * get value for the key from the stores. it will return the first value found in the stores\n * @param key key for the value to be retrieved\n * @param storeTypes optional array of store types to be used for retrieving the value\n * @returns value for the key or null if not found\n */\n UniversalStorage.prototype.get = function (key, storeTypes) {\n var val = null;\n for (var _i = 0, _a = this.getStores(storeTypes); _i < _a.length; _i++) {\n var store = _a[_i];\n val = store.get(key);\n if (val) {\n return val;\n }\n }\n return null;\n };\n /**\n * it will set the value for the key in all the stores\n * @param key key for the value to be stored\n * @param value value to be stored\n * @param storeTypes optional array of store types to be used for storing the value\n * @returns value that was stored\n */\n UniversalStorage.prototype.set = function (key, value, storeTypes) {\n for (var _i = 0, _a = this.getStores(storeTypes); _i < _a.length; _i++) {\n var store = _a[_i];\n store.set(key, value);\n }\n };\n /**\n * remove the value for the key from all the stores\n * @param key key for the value to be removed\n * @param storeTypes optional array of store types to be used for removing the value\n */\n UniversalStorage.prototype.clear = function (key, storeTypes) {\n for (var _i = 0, _a = this.getStores(storeTypes); _i < _a.length; _i++) {\n var store = _a[_i];\n store.remove(key);\n }\n };\n return UniversalStorage;\n}();\nexport { UniversalStorage };\nexport function getAvailableStorageOptions(cookieOptions) {\n return {\n cookie: Cookie.available() ? new Cookie(cookieOptions) : undefined,\n localStorage: LocalStorage.available() ? new LocalStorage() : undefined,\n memory: new Store()\n };\n}\nvar User = /** @class */function () {\n function User(options, cookieOptions) {\n if (options === void 0) {\n options = defaults;\n }\n var _this = this;\n var _a, _b, _c, _d;\n this.options = {};\n this.id = function (id) {\n if (_this.options.disable) {\n return null;\n }\n var prevId = _this.identityStore.getAndSync(_this.idKey);\n if (id !== undefined) {\n _this.identityStore.set(_this.idKey, id);\n var changingIdentity = id !== prevId && prevId !== null && id !== null;\n if (changingIdentity) {\n _this.anonymousId(null);\n }\n }\n var retId = _this.identityStore.getAndSync(_this.idKey);\n if (retId) return retId;\n var retLeg = _this.legacyUserStore.get(defaults.cookie.oldKey);\n return retLeg ? _typeof(retLeg) === 'object' ? retLeg.id : retLeg : null;\n };\n this.anonymousId = function (id) {\n var _a, _b;\n if (_this.options.disable) {\n return null;\n }\n if (id === undefined) {\n var val = (_a = _this.identityStore.getAndSync(_this.anonKey)) !== null && _a !== void 0 ? _a : (_b = _this.legacySIO()) === null || _b === void 0 ? void 0 : _b[0];\n if (val) {\n return val;\n }\n }\n if (id === null) {\n _this.identityStore.set(_this.anonKey, null);\n return _this.identityStore.getAndSync(_this.anonKey);\n }\n _this.identityStore.set(_this.anonKey, id !== null && id !== void 0 ? id : uuid());\n return _this.identityStore.getAndSync(_this.anonKey);\n };\n this.traits = function (traits) {\n var _a;\n if (_this.options.disable) {\n return;\n }\n if (traits === null) {\n traits = {};\n }\n if (traits) {\n _this.traitsStore.set(_this.traitsKey, traits !== null && traits !== void 0 ? traits : {});\n }\n return (_a = _this.traitsStore.get(_this.traitsKey)) !== null && _a !== void 0 ? _a : {};\n };\n this.options = options;\n this.cookieOptions = cookieOptions;\n this.idKey = (_b = (_a = options.cookie) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : defaults.cookie.key;\n this.traitsKey = (_d = (_c = options.localStorage) === null || _c === void 0 ? void 0 : _c.key) !== null && _d !== void 0 ? _d : defaults.localStorage.key;\n this.anonKey = 'ajs_anonymous_id';\n var isDisabled = options.disable === true;\n var shouldPersist = options.persist !== false;\n var defaultStorageTargets = isDisabled ? [] : shouldPersist ? ['localStorage', 'cookie', 'memory'] : ['memory'];\n var storageOptions = getAvailableStorageOptions(cookieOptions);\n if (options.localStorageFallbackDisabled) {\n defaultStorageTargets = defaultStorageTargets.filter(function (t) {\n return t !== 'localStorage';\n });\n }\n this.identityStore = new UniversalStorage(defaultStorageTargets, storageOptions);\n // using only cookies for legacy user store\n this.legacyUserStore = new UniversalStorage(defaultStorageTargets.filter(function (t) {\n return t !== 'localStorage' && t !== 'memory';\n }), storageOptions);\n // using only localStorage / memory for traits store\n this.traitsStore = new UniversalStorage(defaultStorageTargets.filter(function (t) {\n return t !== 'cookie';\n }), storageOptions);\n var legacyUser = this.legacyUserStore.get(defaults.cookie.oldKey);\n if (legacyUser && _typeof(legacyUser) === 'object') {\n legacyUser.id && this.id(legacyUser.id);\n legacyUser.traits && this.traits(legacyUser.traits);\n }\n autoBind(this);\n }\n User.prototype.legacySIO = function () {\n var val = this.legacyUserStore.get('_sio');\n if (!val) {\n return null;\n }\n var _a = val.split('----'),\n anon = _a[0],\n user = _a[1];\n return [anon, user];\n };\n User.prototype.identify = function (id, traits) {\n if (this.options.disable) {\n return;\n }\n traits = traits !== null && traits !== void 0 ? traits : {};\n var currentId = this.id();\n if (currentId === null || currentId === id) {\n traits = __assign(__assign({}, this.traits()), traits);\n }\n if (id) {\n this.id(id);\n }\n this.traits(traits);\n };\n User.prototype.logout = function () {\n this.anonymousId(null);\n this.id(null);\n this.traits({});\n };\n User.prototype.reset = function () {\n this.logout();\n this.identityStore.clear(this.idKey);\n this.identityStore.clear(this.anonKey);\n this.traitsStore.clear(this.traitsKey);\n };\n User.prototype.load = function () {\n return new User(this.options, this.cookieOptions);\n };\n User.prototype.save = function () {\n return true;\n };\n User.defaults = defaults;\n return User;\n}();\nexport { User };\nvar groupDefaults = {\n persist: true,\n cookie: {\n key: 'ajs_group_id'\n },\n localStorage: {\n key: 'ajs_group_properties'\n }\n};\nvar Group = /** @class */function (_super) {\n __extends(Group, _super);\n function Group(options, cookie) {\n if (options === void 0) {\n options = groupDefaults;\n }\n var _this = _super.call(this, options, cookie) || this;\n _this.anonymousId = function (_id) {\n return undefined;\n };\n autoBind(_this);\n return _this;\n }\n return Group;\n}(User);\nexport { Group };","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\nfunction getLens(b64) {\n var len = b64.length;\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n return arr;\n}\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('');\n}\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n return parts.join('');\n}","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n buffer[offset + i - d] |= s * 128;\n};","var toString = {}.toString;\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction trait(a, b) {\n return function () {\n var traits = this.traits();\n var props = this.properties ? this.properties() : {};\n return obj_case_1[\"default\"](traits, \"address.\" + a) || obj_case_1[\"default\"](traits, a) || (b ? obj_case_1[\"default\"](traits, \"address.\" + b) : null) || (b ? obj_case_1[\"default\"](traits, b) : null) || obj_case_1[\"default\"](props, \"address.\" + a) || obj_case_1[\"default\"](props, a) || (b ? obj_case_1[\"default\"](props, \"address.\" + b) : null) || (b ? obj_case_1[\"default\"](props, b) : null);\n };\n}\nfunction default_1(proto) {\n proto.zip = trait(\"postalCode\", \"zip\");\n proto.country = trait(\"country\");\n proto.street = trait(\"street\");\n proto.state = trait(\"state\");\n proto.city = trait(\"city\");\n proto.region = trait(\"region\");\n}\nexports[\"default\"] = default_1;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clone = void 0;\nfunction clone(properties) {\n if (_typeof(properties) !== 'object') return properties;\n if (Object.prototype.toString.call(properties) === '[object Object]') {\n var temp = {};\n for (var key in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, key)) {\n temp[key] = clone(properties[key]);\n }\n }\n return temp;\n } else if (Array.isArray(properties)) {\n return properties.map(clone);\n } else {\n return properties;\n }\n}\nexports.clone = clone;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar disabled = {\n Salesforce: true\n};\nfunction default_1(integration) {\n return !disabled[integration];\n}\nexports[\"default\"] = default_1;","\"use strict\";\n\n/**\n * Matcher.\n */\nvar matcher = /\\d{13}/;\n\n/**\n * Check whether a string is a millisecond date string.\n *\n * @param {string} string\n * @return {boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a millisecond string to a date.\n *\n * @param {string} millis\n * @return {Date}\n */\nexports.parse = function (millis) {\n millis = parseInt(millis, 10);\n return new Date(millis);\n};","\"use strict\";\n\n/**\n * Matcher.\n */\nvar matcher = /\\d{10}/;\n\n/**\n * Check whether a string is a second date string.\n *\n * @param {string} string\n * @return {Boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a second string to a date.\n *\n * @param {string} seconds\n * @return {Date}\n */\nexports.parse = function (seconds) {\n var millis = parseInt(seconds, 10) * 1000;\n return new Date(millis);\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar isodate = require('@segment/isodate');\n\n/**\n * Expose `traverse`.\n */\nmodule.exports = traverse;\n\n/**\n * Recursively traverse an object or array, and convert\n * all ISO date strings parse into Date objects.\n *\n * @param {Object} input - object, array, or string to convert\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverse(input, strict) {\n if (strict === undefined) strict = true;\n if (input && _typeof(input) === 'object') {\n return traverseObject(input, strict);\n } else if (Array.isArray(input)) {\n return traverseArray(input, strict);\n } else if (isodate.is(input, strict)) {\n return isodate.parse(input);\n }\n return input;\n}\n\n/**\n * Object traverser helper function.\n *\n * @param {Object} obj - object to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverseObject(obj, strict) {\n Object.keys(obj).forEach(function (key) {\n obj[key] = traverse(obj[key], strict);\n });\n return obj;\n}\n\n/**\n * Array traverser helper function\n *\n * @param {Array} arr - array to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Array}\n */\nfunction traverseArray(arr, strict) {\n arr.forEach(function (value, index) {\n arr[index] = traverse(value, strict);\n });\n return arr;\n}","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Delete = exports.Screen = exports.Page = exports.Track = exports.Identify = exports.Group = exports.Alias = exports.Facade = void 0;\nvar facade_1 = require(\"./facade\");\nObject.defineProperty(exports, \"Facade\", {\n enumerable: true,\n get: function get() {\n return facade_1.Facade;\n }\n});\nvar alias_1 = require(\"./alias\");\nObject.defineProperty(exports, \"Alias\", {\n enumerable: true,\n get: function get() {\n return alias_1.Alias;\n }\n});\nvar group_1 = require(\"./group\");\nObject.defineProperty(exports, \"Group\", {\n enumerable: true,\n get: function get() {\n return group_1.Group;\n }\n});\nvar identify_1 = require(\"./identify\");\nObject.defineProperty(exports, \"Identify\", {\n enumerable: true,\n get: function get() {\n return identify_1.Identify;\n }\n});\nvar track_1 = require(\"./track\");\nObject.defineProperty(exports, \"Track\", {\n enumerable: true,\n get: function get() {\n return track_1.Track;\n }\n});\nvar page_1 = require(\"./page\");\nObject.defineProperty(exports, \"Page\", {\n enumerable: true,\n get: function get() {\n return page_1.Page;\n }\n});\nvar screen_1 = require(\"./screen\");\nObject.defineProperty(exports, \"Screen\", {\n enumerable: true,\n get: function get() {\n return screen_1.Screen;\n }\n});\nvar delete_1 = require(\"./delete\");\nObject.defineProperty(exports, \"Delete\", {\n enumerable: true,\n get: function get() {\n return delete_1.Delete;\n }\n});\nexports[\"default\"] = __assign(__assign({}, facade_1.Facade), {\n Alias: alias_1.Alias,\n Group: group_1.Group,\n Identify: identify_1.Identify,\n Track: track_1.Track,\n Page: page_1.Page,\n Screen: screen_1.Screen,\n Delete: delete_1.Delete\n});","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Alias = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Alias(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Alias = Alias;\ninherits_1[\"default\"](Alias, facade_1.Facade);\nAlias.prototype.action = function () {\n return \"alias\";\n};\nAlias.prototype.type = Alias.prototype.action;\nAlias.prototype.previousId = function () {\n return this.field(\"previousId\") || this.field(\"from\");\n};\nAlias.prototype.from = Alias.prototype.previousId;\nAlias.prototype.userId = function () {\n return this.field(\"userId\") || this.field(\"to\");\n};\nAlias.prototype.to = Alias.prototype.userId;","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Group = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar facade_1 = require(\"./facade\");\nfunction Group(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Group = Group;\ninherits_1[\"default\"](Group, facade_1.Facade);\nvar g = Group.prototype;\ng.action = function () {\n return \"group\";\n};\ng.type = g.action;\ng.groupId = facade_1.Facade.field(\"groupId\");\ng.created = function () {\n var created = this.proxy(\"traits.createdAt\") || this.proxy(\"traits.created\") || this.proxy(\"properties.createdAt\") || this.proxy(\"properties.created\");\n if (created) return new_date_1[\"default\"](created);\n};\ng.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email) return email;\n var groupId = this.groupId();\n if (is_email_1[\"default\"](groupId)) return groupId;\n};\ng.traits = function (aliases) {\n var ret = this.properties();\n var id = this.groupId();\n aliases = aliases || {};\n if (id) ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null ? this.proxy(\"traits.\" + alias) : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\ng.name = facade_1.Facade.proxy(\"traits.name\");\ng.industry = facade_1.Facade.proxy(\"traits.industry\");\ng.employees = facade_1.Facade.proxy(\"traits.employees\");\ng.properties = function () {\n return this.field(\"traits\") || this.field(\"properties\") || {};\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Screen = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar page_1 = require(\"./page\");\nvar track_1 = require(\"./track\");\nfunction Screen(dictionary, opts) {\n page_1.Page.call(this, dictionary, opts);\n}\nexports.Screen = Screen;\ninherits_1[\"default\"](Screen, page_1.Page);\nScreen.prototype.action = function () {\n return \"screen\";\n};\nScreen.prototype.type = Screen.prototype.action;\nScreen.prototype.event = function (name) {\n return name ? \"Viewed \" + name + \" Screen\" : \"Loaded a Screen\";\n};\nScreen.prototype.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Delete = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Delete(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Delete = Delete;\ninherits_1[\"default\"](Delete, facade_1.Facade);\nDelete.prototype.type = function () {\n return \"delete\";\n};","import { Controller } from '@hotwired/stimulus'\n\nimport * as analytics from '../utils/analytics'\n\n// The naming convention is: provenance:objectName_actionName\n// Example event name: provenance:bundleTab_clicked\n// This style is documented: https://davidwells.io/blog/clean-analytics\nexport default class extends Controller {\n // For improved clarity, we should prefer values over plain data attributes.\n // E.g. use data-analytics-label-value=\"Some Label\" over data-label=\"Some Label\"\n // See: https://stimulus.hotwired.dev/reference/values\n static values = {\n // The action name in past tense, e.g. clicked, or scrolled.\n // It is used to construct the event name.\n action: { type: String, default: 'clicked' },\n // The context, which follows a specific format.\n // E.g.: Retailer Name / Beauty brand / Sun Cream\n // TODO: Refactor this to be taken from the top level (more convenient than having to pass it through).\n label: String,\n // The name of the object being tracked.\n // It is used to construct the event name.\n name: String,\n // Subject can contain any useful info, e.g. the name of the PP being clicked.\n subject: String,\n // The version is currently only used to track which UI version of a claim\n // modal is being used, but it could be used for other purposes in the future.\n version: Number\n }\n\n // Use the click() method to track clicks.\n // Assumes that the event.currentTarget has type and label data attributes (for legacy reasons).\n //\n // Example usage:\n //\n // \n // 👍\n // \n // 👎\n // \n // \n //\n click (event) {\n const { context, label, type: eventType, brandName, subjectName } = event.currentTarget.dataset\n const { channel, type } = this.element.dataset\n let prodOrBrand\n let ppSubjectType\n let bundleType\n let dtc\n\n if (subjectName && brandName) {\n prodOrBrand = (subjectName === brandName) ? 'brand' : 'product'\n }\n if (channel && brandName) {\n dtc = channel === brandName\n }\n // if combined bundle, check whether product or brand tab selected\n if (type === 'combined_bundle') {\n bundleType = type\n const tabName = this.element.querySelector(\"[aria-selected='true']\").dataset.name\n ppSubjectType = (tabName === 'product-pp-tab') ? 'product' : 'brand'\n // else take from subjectName equaling brandName\n } else {\n bundleType = prodOrBrand\n ppSubjectType = prodOrBrand\n }\n\n let eventName = `click_${eventType}`\n if (type) eventName += `_${type}`\n\n if (this.element.nodeName === 'DETAILS') {\n this.actionValue = this.element.open ? 'opened' : 'closed'\n }\n\n if (this.hasNameValue) {\n eventName = `${this.nameValue}_${this.actionValue}`\n }\n\n const eventLabel = channel ? `${channel} / ${context}` : context\n\n analytics.track(eventName, {\n eventAction: this.hasSubjectValue ? this.subjectValue : label,\n eventLabel: this.hasLabelValue ? this.labelValue : eventLabel\n }, { adapter: 'gtm' })\n\n eventName = eventType ? `${eventType}_${this.actionValue}` : eventName\n\n analytics.track(eventName, {\n object: eventType,\n action: this.actionValue,\n type,\n channel,\n brand_name: brandName,\n subject_name: subjectName,\n subject_value: this.hasSubjectValue ? this.subjectValue : label,\n subject_type: ppSubjectType,\n event_label: eventLabel,\n bundle_type: bundleType,\n dtc,\n ...(this.hasVersionValue && { ui_version: this.versionValue })\n }, { adapter: 'segment' })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport zoid from 'zoid9031'\nimport * as analytics from '../utils/analytics'\n\nexport default class extends Controller {\n static get targets () {\n return ['link']\n }\n\n initialize () {\n // Don't run if we're not in an iframe\n if (window.self === window.top) return\n\n // If a version is present, legacy support isn't needed\n if (window.xprops && window.xprops.version) return\n console.debug('[bundle_embed_controller] initialized')\n\n window.ProvenanceEmbedComponent = zoid.create({\n tag: this.element.dataset.type,\n url: window.location.href, // window.location.href is the Bundle frame, not to be confused with the modal frame (link.dataset.href)\n dimensions: {\n width: '100%',\n height: '90px'\n },\n autoResize: {\n height: true,\n width: false\n }\n })\n }\n\n connect () {\n // Don't run if we're not in an iframe\n if (window.self === window.top) return\n\n // If a version is present, legacy support isn't needed\n if (window.xprops && window.xprops.version) {\n this.setupImpressionTracking()\n return\n }\n console.debug('[bundle_embed_controller] connected')\n\n const proofPoints = []\n this.proofPointNames = []\n\n this.linkTargets.forEach(link => {\n const { href, name, proofPointType, slug } = link.dataset\n proofPoints.push({\n url: href,\n proofPointName: name,\n proofPointType,\n tag: this.getSlug(slug)\n })\n\n this.proofPointNames.push(name)\n })\n\n window.xprops.initModals(proofPoints, this.element.dataset.subjectName, this.element.dataset.brandName, this.element.dataset.channel)\n }\n\n getSlug (slug) {\n if (slug) {\n return slug.toLowerCase()\n } else {\n console.error('[bundle_embed_controller] no slug found in element\\'s dataset.')\n }\n }\n\n // this could also be in analytics controller to further unify code\n setupImpressionTracking () {\n this.defineParentEventHandler()\n\n window.xprops.onChildEvent({\n name: 'setup_impression_tracking'\n })\n }\n\n // consider moving this to something like sdkEvents so we can have onParentEvent defined in a single place\n defineParentEventHandler () {\n window.xprops.export({\n onParentEvent: (event) => {\n switch (event.name) {\n case 'impression_detected':\n this.trackImpression()\n break\n default:\n console.warn('[Provenance] Unrecognised parent event:', event)\n }\n }\n })\n }\n\n getCombinedBundlePPsInView () {\n // get tab with aria selected\n const proofPointNames = []\n const tabName = this.element.querySelector(\"[aria-selected='true']\").dataset.name\n const panel = (tabName === 'product-pp-tab')\n ? this.element.querySelector(\"[data-name='product-pp-panel']\")\n : this.element.querySelector(\"[data-name='brand-pp-panel']\")\n const proofPoints = panel.querySelectorAll('button')\n proofPoints.forEach(pp => {\n proofPointNames.push(pp.dataset.name)\n })\n return proofPointNames\n }\n\n // this could also be in analytics controller to further unify code\n trackImpression () {\n const { channel, brandName, subjectName, type } = this.element.dataset\n const eventLabel = `${channel} / ${brandName} / ${subjectName}`\n let prodOrBrand\n let dtc\n\n if (subjectName && brandName) {\n prodOrBrand = (subjectName === brandName) ? 'brand' : 'product'\n }\n if (channel && brandName) {\n dtc = channel === brandName\n }\n // if combined bundle pp impressions tracked here, it will be product\n const ppType = (type === 'combined_bundle') ? 'product' : prodOrBrand\n const bundleType = (type === 'combined_bundle') ? 'combined_bundle' : prodOrBrand\n\n let proofPointNames =\n this.linkTargets.map(link => {\n return link.dataset.name\n })\n\n analytics.track('impression', {\n eventCategory: 'impression_bundle',\n eventAction: proofPointNames.join('|'),\n eventLabel\n }, { adapter: 'gtm' })\n\n analytics.track('bundle_impression', {\n object: 'bundle',\n action: 'impression',\n channel,\n brand_name: brandName,\n subject_name: subjectName,\n subject_value: proofPointNames.join('|'),\n subject_type: bundleType,\n event_label: eventLabel,\n bundle_type: bundleType,\n dtc\n }, { adapter: 'segment' })\n\n // if the bundle is combined, only track proof points that are in view\n if (type === 'combined_bundle') {\n proofPointNames = this.getCombinedBundlePPsInView()\n }\n\n proofPointNames.forEach((name) => {\n analytics.track('impression', {\n eventCategory: 'impression_proofpoint_bundle',\n eventAction: name,\n eventLabel\n }, { adapter: 'gtm' })\n\n analytics.track('proofpoint_impression', {\n object: 'proofpoint',\n action: 'impression',\n channel,\n brand_name: brandName,\n subject_name: subjectName,\n subject_value: name,\n subject_type: ppType,\n bundle_type: bundleType,\n dtc\n }, { adapter: 'segment' })\n })\n }\n\n open (event) {\n if (window.xprops && window.xprops.version) return\n\n // FIXME: Calling openModal here should be unnecessary, since\n // it's now handled by modal_trigger_controller.js\n // needed for backward compatibility (SDK < v0.8)\n console.debug('[bundle_embed_controller] opening modal (legacy)', event.currentTarget.dataset.href)\n window.xprops.openModal(event.currentTarget.dataset.href)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n connect () {\n // Prevent reinitialization or don't initialize if we're not in an iframe\n if (window.self === window.top) {\n return\n }\n\n this.initFrame()\n }\n\n initFrame () {\n let variant = 'embed'\n const url = new URL(document.location)\n const modalSize = url.searchParams.get('modal')\n\n if (modalSize && modalSize !== 'true') {\n variant = modalSize\n }\n\n window.provenance.frameFactory.getFrame(variant, document.location.href)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport * as analytics from '../utils/analytics'\n\nexport default class extends Controller {\n static get targets () {\n return ['ingredient']\n }\n\n connect () {\n if (window.xprops && window.xprops.version) {\n this.setupImpressionTracking()\n }\n }\n\n setupImpressionTracking () {\n this.defineParentEventHandler()\n\n window.xprops.onChildEvent({\n name: 'setup_impression_tracking'\n })\n }\n\n // dupe of code in bundle_embed_controller\n defineParentEventHandler () {\n window.xprops.export({\n onParentEvent: (event) => {\n switch (event.name) {\n case 'impression_detected':\n this.trackImpression()\n break\n default:\n console.warn('[Provenance] Unrecognised parent event:', event)\n }\n }\n })\n }\n\n trackImpression () {\n this.ingredientTargets.forEach(ingredient => {\n analytics.track('impression', {\n eventCategory: 'impression_ingredient_list',\n eventAction: ingredient.dataset.label,\n eventLabel: `${this.element.dataset.channel} / ${ingredient.dataset.context}`\n })\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport openModal from '../utils/modal'\n\nexport default class extends Controller {\n call (event) {\n event.preventDefault()\n\n let { behavior, href, modalVariant: variant, slug, suffix, type } = this.element.dataset\n\n let url = this.element.getAttribute('href') || href\n url = suffix ? `${url}/${suffix}` : url\n\n if (type === 'organization' || type === 'proofpoint' || type === 'connection') {\n behavior = 'drawer'\n variant = 'small'\n }\n const opts = { behavior, slug, url, variant }\n console.debug('[modal_trigger_controller] calling openModal', opts)\n openModal(opts)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['flag', 'logos']\n\n mouseOver () {\n if (window.screen.width > 1000) {\n this.flagTarget.style.display = 'none'\n this.logosTarget.style.display = 'flex'\n }\n }\n\n mouseOut () {\n if (window.screen.width > 1000) {\n this.flagTarget.style.display = 'flex'\n this.logosTarget.style.display = 'none'\n }\n }\n}\n","export function isString(obj) {\n return typeof obj === 'string';\n}\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\nexport function exists(val) {\n return val !== undefined && val !== null;\n}\nexport function isPlainObject(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object';\n}","import { Controller } from '@hotwired/stimulus'\n\nconst DELAY = 0 // Tweak this to increase the status change delay. 0 means no delay at all.\n\n/**\n * This controller is solely responsible for updating the Proof Point status\n * for vanity purposes. The status is 'checking' by default and gets updated\n * to either 'evidenced' or 'verified' after a random number of seconds.\n */\nexport default class extends Controller {\n static values = {\n status: String\n }\n\n connect () {\n if (this.statusValue !== 'evidenced' && this.statusValue !== 'verified') return\n\n setTimeout(() => {\n this.element.querySelector('[checking]').dataset.state = 'checked'\n this.element.querySelector(`[${this.statusValue}]`).hidden = false\n }, DELAY)\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function TempCtor() {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Facade = void 0;\nvar address_1 = __importDefault(require(\"./address\"));\nvar clone_1 = require(\"./clone\");\nvar is_enabled_1 = __importDefault(require(\"./is-enabled\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar isodate_traverse_1 = __importDefault(require(\"@segment/isodate-traverse\"));\nfunction Facade(obj, opts) {\n opts = opts || {};\n this.raw = clone_1.clone(obj);\n if (!(\"clone\" in opts)) opts.clone = true;\n if (opts.clone) obj = clone_1.clone(obj);\n if (!(\"traverse\" in opts)) opts.traverse = true;\n if (!(\"timestamp\" in obj)) obj.timestamp = new Date();else obj.timestamp = new_date_1[\"default\"](obj.timestamp);\n if (opts.traverse) isodate_traverse_1[\"default\"](obj);\n this.opts = opts;\n this.obj = obj;\n}\nexports.Facade = Facade;\nvar f = Facade.prototype;\nf.proxy = function (field) {\n var fields = field.split(\".\");\n field = fields.shift();\n var obj = this[field] || this.obj[field];\n if (!obj) return obj;\n if (typeof obj === \"function\") obj = obj.call(this) || {};\n if (fields.length === 0) return this.opts.clone ? transform(obj) : obj;\n obj = obj_case_1[\"default\"](obj, fields.join(\".\"));\n return this.opts.clone ? transform(obj) : obj;\n};\nf.field = function (field) {\n var obj = this.obj[field];\n return this.opts.clone ? transform(obj) : obj;\n};\nFacade.proxy = function (field) {\n return function () {\n return this.proxy(field);\n };\n};\nFacade.field = function (field) {\n return function () {\n return this.field(field);\n };\n};\nFacade.multi = function (path) {\n return function () {\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi)) return multi;\n var one = this.proxy(path);\n if (one) one = [this.opts.clone ? clone_1.clone(one) : one];\n return one || [];\n };\n};\nFacade.one = function (path) {\n return function () {\n var one = this.proxy(path);\n if (one) return one;\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi)) return multi[0];\n };\n};\nf.json = function () {\n var ret = this.opts.clone ? clone_1.clone(this.obj) : this.obj;\n if (this.type) ret.type = this.type();\n return ret;\n};\nf.rawEvent = function () {\n return this.raw;\n};\nf.options = function (integration) {\n var obj = this.obj.options || this.obj.context || {};\n var options = this.opts.clone ? clone_1.clone(obj) : obj;\n if (!integration) return options;\n if (!this.enabled(integration)) return;\n var integrations = this.integrations();\n var value = integrations[integration] || obj_case_1[\"default\"](integrations, integration);\n if (_typeof(value) !== \"object\") value = obj_case_1[\"default\"](this.options(), integration);\n return _typeof(value) === \"object\" ? value : {};\n};\nf.context = f.options;\nf.enabled = function (integration) {\n var allEnabled = this.proxy(\"options.providers.all\");\n if (typeof allEnabled !== \"boolean\") allEnabled = this.proxy(\"options.all\");\n if (typeof allEnabled !== \"boolean\") allEnabled = this.proxy(\"integrations.all\");\n if (typeof allEnabled !== \"boolean\") allEnabled = true;\n var enabled = allEnabled && is_enabled_1[\"default\"](integration);\n var options = this.integrations();\n if (options.providers && options.providers.hasOwnProperty(integration)) {\n enabled = options.providers[integration];\n }\n if (options.hasOwnProperty(integration)) {\n var settings = options[integration];\n if (typeof settings === \"boolean\") {\n enabled = settings;\n } else {\n enabled = true;\n }\n }\n return !!enabled;\n};\nf.integrations = function () {\n return this.obj.integrations || this.proxy(\"options.providers\") || this.options();\n};\nf.active = function () {\n var active = this.proxy(\"options.active\");\n if (active === null || active === undefined) active = true;\n return active;\n};\nf.anonymousId = function () {\n return this.field(\"anonymousId\") || this.field(\"sessionId\");\n};\nf.sessionId = f.anonymousId;\nf.groupId = Facade.proxy(\"options.groupId\");\nf.traits = function (aliases) {\n var ret = this.proxy(\"options.traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id) ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null ? this.proxy(\"options.traits.\" + alias) : this[alias]();\n if (value == null) continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nf.library = function () {\n var library = this.proxy(\"options.library\");\n if (!library) return {\n name: \"unknown\",\n version: null\n };\n if (typeof library === \"string\") return {\n name: library,\n version: null\n };\n return library;\n};\nf.device = function () {\n var device = this.proxy(\"context.device\");\n if (_typeof(device) !== \"object\" || device === null) {\n device = {};\n }\n var library = this.library().name;\n if (device.type) return device;\n if (library.indexOf(\"ios\") > -1) device.type = \"ios\";\n if (library.indexOf(\"android\") > -1) device.type = \"android\";\n return device;\n};\nf.userAgent = Facade.proxy(\"context.userAgent\");\nf.timezone = Facade.proxy(\"context.timezone\");\nf.timestamp = Facade.field(\"timestamp\");\nf.channel = Facade.field(\"channel\");\nf.ip = Facade.proxy(\"context.ip\");\nf.userId = Facade.field(\"userId\");\naddress_1[\"default\"](f);\nfunction transform(obj) {\n return clone_1.clone(obj);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function processResponse(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = confirm(message);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function disableFormElement(element) {\n var replacement;\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n!function (root, factory) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"zoid\", [], factory) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _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 return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), module.l = !0, module.exports;\n }\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, __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 }, __webpack_require__.r = function (exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n }, __webpack_require__.t = function (value, mode) {\n if (1 & mode && (value = __webpack_require__(value)), 8 & mode) return value;\n if (4 & mode && \"object\" == _typeof(value) && value && value.__esModule) return value;\n var ns = Object.create(null);\n if (__webpack_require__.r(ns), Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n }), 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 }, __webpack_require__.n = function (module) {\n var getter = module && module.__esModule ? function () {\n return module[\"default\"];\n } : function () {\n return module;\n };\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function (object, property) {\n return {}.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 0);\n }([function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\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 && window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && 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 __webpack_require__.r(__webpack_exports__);\n var flushPromise,\n dispatchedErrors = [],\n possiblyUnhandledPromiseHandlers = [],\n activeCount = 0;\n function flushActive() {\n if (!activeCount && flushPromise) {\n var promise = flushPromise;\n flushPromise = null, promise.resolve();\n }\n }\n function startActive() {\n activeCount += 1;\n }\n function endActive() {\n activeCount -= 1, flushActive();\n }\n var promise_ZalgoPromise = function () {\n function ZalgoPromise(handler) {\n var _this = this;\n 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 = [], handler) {\n var _result,\n _error,\n resolved = !1,\n rejected = !1,\n isAsync = !1;\n startActive();\n try {\n handler(function (res) {\n isAsync ? _this.resolve(res) : (resolved = !0, _result = res);\n }, function (err) {\n isAsync ? _this.reject(err) : (rejected = !0, _error = err);\n });\n } catch (err) {\n return endActive(), void this.reject(err);\n }\n endActive(), isAsync = !0, resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n var _proto = ZalgoPromise.prototype;\n return _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 return this.resolved = !0, this.value = result, this.dispatch(), this;\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 return this.rejected = !0, this.error = error, this.errorHandled || setTimeout(function () {\n _this2.errorHandled || function (err, promise) {\n if (-1 === dispatchedErrors.indexOf(err)) {\n dispatchedErrors.push(err), 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), this.dispatch(), this;\n }, _proto.asyncReject = function (error) {\n return this.errorHandled = !0, this.reject(error), this;\n }, _proto.dispatch = function () {\n var _this3 = this,\n resolved = this.resolved,\n rejected = this.rejected,\n handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0, startActive();\n for (var _loop = function _loop(i) {\n var _handlers$i = handlers[i],\n onSuccess = _handlers$i.onSuccess,\n onError = _handlers$i.onError,\n promise = _handlers$i.promise,\n result = void 0;\n if (resolved) try {\n result = onSuccess ? onSuccess(_this3.value) : _this3.value;\n } catch (err) {\n return promise.reject(err), \"continue\";\n } else if (rejected) {\n if (!onError) return promise.reject(_this3.error), \"continue\";\n try {\n result = onError(_this3.error);\n } catch (err) {\n return promise.reject(err), \"continue\";\n }\n }\n result instanceof ZalgoPromise && (result.resolved || result.rejected) ? (result.resolved ? promise.resolve(result.value) : promise.reject(result.error), result.errorHandled = !0) : utils_isPromise(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function (res) {\n promise.resolve(res);\n }, function (err) {\n promise.reject(err);\n }) : promise.resolve(result);\n }, i = 0; i < handlers.length; i++) _loop(i);\n handlers.length = 0, this.dispatching = !1, endActive();\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 return this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n }), this.errorHandled = !0, this.dispatch(), promise;\n }, _proto[\"catch\"] = function (onError) {\n return this.then(void 0, onError);\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 }, _proto.timeout = function (time, err) {\n var _this4 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout(function () {\n _this4.resolved || _this4.rejected || _this4.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }, time);\n return this.then(function (result) {\n return clearTimeout(timeout), result;\n });\n }, _proto.toPromise = function () {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\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 }, ZalgoPromise.reject = function (error) {\n return new ZalgoPromise().reject(error);\n }, ZalgoPromise.asyncReject = function (error) {\n return new ZalgoPromise().asyncReject(error);\n }, ZalgoPromise.all = function (promises) {\n var promise = new ZalgoPromise(),\n count = promises.length,\n results = [];\n if (!count) return promise.resolve(results), promise;\n for (var _loop2 = function _loop2(i) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) return results[i] = prom.value, count -= 1, \"continue\";\n } else if (!utils_isPromise(prom)) return results[i] = prom, count -= 1, \"continue\";\n ZalgoPromise.resolve(prom).then(function (result) {\n results[i] = result, 0 == (count -= 1) && promise.resolve(results);\n }, function (err) {\n promise.reject(err);\n });\n }, i = 0; i < promises.length; i++) _loop2(i);\n return 0 === count && promise.resolve(results), promise;\n }, ZalgoPromise.hash = function (promises) {\n var result = {};\n return ZalgoPromise.all(Object.keys(promises).map(function (key) {\n return ZalgoPromise.resolve(promises[key]).then(function (value) {\n result[key] = value;\n });\n })).then(function () {\n return result;\n });\n }, ZalgoPromise.map = function (items, method) {\n return ZalgoPromise.all(items.map(method));\n }, ZalgoPromise.onPossiblyUnhandledException = function (handler) {\n return function (handler) {\n return possiblyUnhandledPromiseHandlers.push(handler), {\n cancel: function cancel() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\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 return endActive(), ZalgoPromise.reject(err);\n }\n return endActive(), ZalgoPromise.resolve(result);\n }, ZalgoPromise.delay = function (_delay) {\n return new ZalgoPromise(function (resolve) {\n setTimeout(resolve, _delay);\n });\n }, ZalgoPromise.isPromise = function (value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n }, ZalgoPromise.flush = function () {\n return promise = flushPromise = flushPromise || new ZalgoPromise(), flushActive(), promise;\n var promise;\n }, ZalgoPromise;\n }();\n function isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n var PROTOCOL = {\n MOCK: \"mock:\",\n FILE: \"file:\",\n ABOUT: \"about:\"\n },\n WILDCARD = \"*\",\n WINDOW_TYPE = {\n IFRAME: \"iframe\",\n POPUP: \"popup\"\n },\n IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function isAboutProtocol(win) {\n return void 0 === win && (win = window), win.location.protocol === PROTOCOL.ABOUT;\n }\n function getParent(win) {\n if (void 0 === win && (win = window), win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n if (void 0 === win && (win = window), win && !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 var location = (win = win || window).location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = location.protocol;\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (protocol === PROTOCOL.FILE) return PROTOCOL.FILE + \"//\";\n if (protocol === PROTOCOL.ABOUT) {\n var parent = getParent(win);\n return parent && canReadFromWindow() ? getActualDomain(parent) : PROTOCOL.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 utils_getDomain(win) {\n var domain = getActualDomain(win = win || window);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(PROTOCOL.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 (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 (utils_getDomain(window) === utils_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 = getParent(child);\n return childParent ? childParent === parent : -1 !== function (win) {\n var result = [];\n try {\n for (; win.parent !== win;) result.push(win.parent), win = win.parent;\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var frames,\n len,\n result = [];\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\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 for (var result = [], _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 if (win) {\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (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 (getParent(frame) === frame) return frame;\n }\n }\n }\n function getAllFramesInWindow(win) {\n var top = getTop(win);\n if (!top) throw new Error(\"Can not determine top window\");\n return [].concat(getAllChildFrames(top), [top]);\n }\n var iframeWindows = [],\n 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 return !(!doc || !doc.documentElement || doc.documentElement.contains(frame));\n }(frame)) return !0;\n }\n return !1;\n }\n function getAncestor(win) {\n return void 0 === win && (win = window), getOpener(win = win || window) || getParent(win) || void 0;\n }\n function anyMatch(collection1, collection2) {\n for (var _i17 = 0; _i17 < collection1.length; _i17++) for (var item1 = collection1[_i17], _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0;\n return !1;\n }\n function getDistanceFromTop(win) {\n void 0 === win && (win = window);\n for (var distance = 0, parent = win; parent;) (parent = getParent(parent)) && (distance += 1);\n return distance;\n }\n function isSameTopWindow(win1, win2) {\n var top1 = getTop(win1) || win1,\n top2 = getTop(win2) || win2;\n try {\n if (top1 && top2) return top1 === top2;\n } catch (err) {}\n var allFrames1 = getAllFramesInWindow(win1),\n allFrames2 = getAllFramesInWindow(win2);\n if (anyMatch(allFrames1, allFrames2)) return !0;\n var opener1 = getOpener(top1),\n opener2 = getOpener(top2);\n return !(opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), 1));\n }\n function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return pattern === WILDCARD || 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(\"/\") : utils_getDomain();\n }\n function onCloseWindow(win, callback, delay, maxtime) {\n var timeout;\n return void 0 === delay && (delay = 1e3), void 0 === maxtime && (maxtime = 1 / 0), function check() {\n if (isWindowClosed(win)) return timeout && clearTimeout(timeout), callback();\n maxtime <= 0 ? clearTimeout(timeout) : (maxtime -= delay, timeout = setTimeout(check, delay));\n }(), {\n cancel: function cancel() {\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 return !1;\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 objectIDs,\n awaitFrameLoadPromises,\n weakmap_CrossDomainSafeWeakMap = function () {\n function CrossDomainSafeWeakMap() {\n if (this.name = void 0, this.weakmap = void 0, this.keys = void 0, this.values = void 0, this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\", function () {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap(),\n testKey = {};\n return Object.freeze(testKey), testWeakMap.set(testKey, \"__testvalue__\"), \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap();\n } catch (err) {}\n this.keys = [], this.values = [];\n }\n var _proto = CrossDomainSafeWeakMap.prototype;\n return _proto._cleanupClosedWindows = function () {\n for (var weakmap = this.weakmap, keys = this.keys, 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), this.values.splice(i, 1), i -= 1;\n }\n }\n }, _proto.isSafeToReadWrite = function (key) {\n return !isWindow(key);\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 entry = key[name];\n return void (entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {\n value: [key, value],\n writable: !0\n }));\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys,\n values = this.values,\n index = util_safeIndexOf(keys, key);\n -1 === index ? (keys.push(key), values.push(value)) : values[index] = value;\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 }, _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 index = util_safeIndexOf(keys, key);\n -1 !== index && (keys.splice(index, 1), this.values.splice(index, 1));\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 return this._cleanupClosedWindows(), -1 !== util_safeIndexOf(this.keys, key);\n }, _proto.getOrSet = function (key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n return this.set(key, value), value;\n }, CrossDomainSafeWeakMap;\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 }));\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"utf8\").toString(\"base64\");\n throw new Error(\"Can not find window.btoa or Buffer\");\n }\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"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 function serializeArgs(args) {\n try {\n return JSON.stringify([].slice.call(args), function (subkey, val) {\n return \"function\" == typeof val ? \"memoize[\" + function (obj) {\n if (objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap(), null == obj || \"object\" != _typeof(obj) && \"function\" != typeof obj) throw new Error(\"Invalid object\");\n var uid = objectIDs.get(obj);\n return uid || (uid = _typeof(obj) + \":\" + uniqueID(), objectIDs.set(obj, uid)), uid;\n }(val) + \"]\" : val;\n });\n } catch (err) {\n throw new Error(\"Arguments not serializable -- can not be used to memoize\");\n }\n }\n function memoizePromise(method) {\n var cache = {};\n function memoizedPromiseFunction() {\n for (var _this2 = this, _arguments = arguments, _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n var key = serializeArgs(args);\n return cache.hasOwnProperty(key) ? cache[key] : (cache[key] = promise_ZalgoPromise[\"try\"](function () {\n return method.apply(_this2, _arguments);\n })[\"finally\"](function () {\n delete cache[key];\n }), cache[key]);\n }\n return memoizedPromiseFunction.reset = function () {\n cache = {};\n }, memoizedPromiseFunction;\n }\n function inlineMemoize(method, logic, args) {\n void 0 === args && (args = []);\n var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {},\n key = serializeArgs(args);\n return cache.hasOwnProperty(key) ? cache[key] : cache[key] = logic.apply(void 0, args);\n }\n function src_util_noop() {}\n function once(method) {\n var called = !1;\n return function () {\n if (!called) return called = !0, method.apply(this, arguments);\n };\n }\n function stringifyError(err, level) {\n if (void 0 === level && (level = 1), 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 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 function safeInterval(method, time) {\n var timeout;\n return function loop() {\n timeout = setTimeout(function () {\n method(), loop();\n }, time);\n }(), {\n cancel: function cancel() {\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 return obj[key] = val, val;\n }\n function cleanup(obj) {\n var tasks = [],\n cleaned = !1;\n return {\n set: function set(name, item) {\n return cleaned || (obj[name] = item, this.register(function () {\n delete obj[name];\n })), item;\n },\n register: function register(method) {\n cleaned ? method() : tasks.push(once(method));\n },\n all: function all() {\n var results = [];\n for (cleaned = !0; tasks.length;) {\n var task = tasks.pop();\n results.push(task());\n }\n return promise_ZalgoPromise.all(results).then(src_util_noop);\n }\n };\n }\n function assertExists(name, thing) {\n if (null == thing) throw new Error(\"Expected \" + name + \" to be present\");\n return thing;\n }\n function isDocumentReady() {\n return Boolean(document.body) && \"complete\" === document.readyState;\n }\n function urlEncode(str) {\n return str.replace(/\\?/g, \"%3F\").replace(/&/g, \"%26\").replace(/#/g, \"%23\").replace(/\\+/g, \"%2B\");\n }\n function waitForDocumentReady() {\n return inlineMemoize(waitForDocumentReady, function () {\n return new promise_ZalgoPromise(function (resolve) {\n if (isDocumentReady()) return resolve();\n var interval = setInterval(function () {\n if (isDocumentReady()) return clearInterval(interval), resolve();\n }, 10);\n });\n });\n }\n function parseQuery(queryString) {\n return inlineMemoize(parseQuery, 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 }, [queryString]);\n }\n function extendQuery(originalQuery, props) {\n return void 0 === props && (props = {}), props && Object.keys(props).length ? (void 0 === (obj = _extends({}, parseQuery(originalQuery), {}, props)) && (obj = {}), Object.keys(obj).filter(function (key) {\n return \"string\" == typeof obj[key];\n }).map(function (key) {\n return urlEncode(key) + \"=\" + urlEncode(obj[key]);\n }).join(\"&\")) : originalQuery;\n var obj;\n }\n function appendChild(container, child) {\n container.appendChild(child);\n }\n function isElement(element) {\n return element instanceof window.Element || null !== element && \"object\" == _typeof(element) && 1 === element.nodeType && \"object\" == _typeof(element.style) && \"object\" == _typeof(element.ownerDocument);\n }\n function getElementSafe(id, doc) {\n return void 0 === doc && (doc = document), 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 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 return (el = getElementSafe(id)) ? (clearInterval(interval), resolve(el)) : isDocumentReady() ? (clearInterval(interval), reject(new Error(\"Document is ready and element \" + name + \" does not exist\"))) : void 0;\n }, 10);\n });\n }\n function PopupOpenError(message) {\n this.message = message;\n }\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 if (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 closed && (iframeFrames.splice(i, 1), iframeWindows.splice(i, 1));\n }\n }(), frame && frame.contentWindow) try {\n iframeWindows.push(frame.contentWindow), iframeFrames.push(frame);\n } catch (err) {}\n })(frame), resolve(frame);\n }), frame.addEventListener(\"error\", function (err) {\n frame.contentWindow ? resolve(frame) : reject(err);\n });\n });\n return awaitFrameLoadPromises.set(frame, promise), 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 frame = function (tag, options, container) {\n void 0 === tag && (tag = \"div\"), void 0 === options && (options = {}), tag = tag.toLowerCase();\n var el,\n styleText,\n doc,\n element = document.createElement(tag);\n if (options.style && extend(element.style, options.style), options[\"class\"] && (element.className = options[\"class\"].join(\" \")), options.id && element.setAttribute(\"id\", options.id), 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 if (options.styleSheet && (el = element, styleText = options.styleSheet, void 0 === doc && (doc = window.document), el.styleSheet ? el.styleSheet.cssText = styleText : el.appendChild(doc.createTextNode(styleText))), 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 isIE = window.navigator.userAgent.match(/MSIE|Edge/i);\n return frame.hasAttribute(\"id\") || frame.setAttribute(\"id\", uniqueID()), awaitFrameLoad(frame), 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), (options.url || isIE) && frame.setAttribute(\"src\", options.url || \"about:blank\"), frame;\n }\n function addEventListener(obj, event, handler) {\n return obj.addEventListener(event, handler), {\n cancel: function cancel() {\n obj.removeEventListener(event, handler);\n }\n };\n }\n function destroyElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n function isElementClosed(el) {\n return !el || !el.parentNode;\n }\n function onResize(el, handler, _temp) {\n var _ref2 = void 0 === _temp ? {} : _temp,\n _ref2$width = _ref2.width,\n width = void 0 === _ref2$width || _ref2$width,\n _ref2$height = _ref2.height,\n height = void 0 === _ref2$height || _ref2$height,\n _ref2$interval = _ref2.interval,\n interval = void 0 === _ref2$interval ? 100 : _ref2$interval,\n _ref2$win = _ref2.win,\n win = void 0 === _ref2$win ? window : _ref2$win,\n currentWidth = el.offsetWidth,\n currentHeight = el.offsetHeight;\n handler({\n width: currentWidth,\n height: currentHeight\n });\n var observer,\n timeout,\n check = function check() {\n var newWidth = el.offsetWidth,\n newHeight = el.offsetHeight;\n (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({\n width: newWidth,\n height: newHeight\n }), currentWidth = newWidth, currentHeight = newHeight;\n };\n return void 0 !== win.ResizeObserver ? (observer = new win.ResizeObserver(check)).observe(el) : void 0 !== win.MutationObserver ? ((observer = new win.MutationObserver(check)).observe(el, {\n attributes: !0,\n childList: !0,\n subtree: !0,\n characterData: !1\n }), win.addEventListener(\"resize\", check)) : function loop() {\n check(), timeout = setTimeout(loop, interval);\n }(), {\n cancel: function cancel() {\n observer.disconnect(), window.removeEventListener(\"resize\", check), clearTimeout(timeout);\n }\n };\n }\n function isPerc(str) {\n return \"string\" == typeof str && /^[0-9]+%$/.test(str);\n }\n function isPx(str) {\n return \"string\" == typeof str && /^[0-9]+px$/.test(str);\n }\n function toPx(val) {\n return function (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 }(val) + \"px\";\n }\n function toCSS(val) {\n return \"number\" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val);\n }\n PopupOpenError.prototype = Object.create(Error.prototype);\n var MESSAGE_NAME = {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_hello\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n },\n constants_WILDCARD = \"*\",\n SERIALIZATION_TYPE = {\n CROSS_DOMAIN_ZALGO_PROMISE: \"cross_domain_zalgo_promise\",\n CROSS_DOMAIN_FUNCTION: \"cross_domain_function\",\n CROSS_DOMAIN_WINDOW: \"cross_domain_window\"\n };\n function global_getGlobal(win) {\n return void 0 === win && (win = window), win !== window ? win.__post_robot_10_0_18__ : win.__post_robot_10_0_18__ = win.__post_robot_10_0_18__ || {};\n }\n var getObj = function getObj() {\n return {};\n };\n function globalStore(key, defStore) {\n return void 0 === key && (key = \"store\"), void 0 === defStore && (defStore = getObj), util_getOrSet(global_getGlobal(), key, function () {\n var store = defStore();\n return {\n has: function has(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function get(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function set(storeKey, val) {\n return store[storeKey] = val, val;\n },\n del: function del(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function getOrSet(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function reset() {\n store = defStore();\n },\n keys: function keys() {\n return Object.keys(store);\n }\n };\n });\n }\n var WildCard = function WildCard() {};\n function getWildcard() {\n var global = global_getGlobal();\n return global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard(), global.WINDOW_WILDCARD;\n }\n function windowStore(key, defStore) {\n return void 0 === key && (key = \"store\"), void 0 === defStore && (defStore = getObj), globalStore(\"windowStore\").getOrSet(key, function () {\n var winStore = new weakmap_CrossDomainSafeWeakMap(),\n getStore = function getStore(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function has(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function get(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function set(win, val) {\n return getStore(win)[key] = val, val;\n },\n del: function del(win) {\n delete getStore(win)[key];\n },\n getOrSet: function getOrSet(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 getHelloPromise(win) {\n return windowStore(\"helloPromises\").getOrSet(win, function () {\n return new promise_ZalgoPromise();\n });\n }\n function sayHello(win, _ref3) {\n return (0, _ref3.send)(win, MESSAGE_NAME.HELLO, {\n instanceID: getInstanceID()\n }, {\n domain: constants_WILDCARD,\n timeout: -1\n }).then(function (_ref4) {\n var origin = _ref4.origin,\n instanceID = _ref4.data.instanceID;\n return getHelloPromise(win).resolve({\n win: win,\n domain: origin\n }), {\n win: win,\n domain: origin,\n instanceID: instanceID\n };\n });\n }\n function getWindowInstanceID(win, _ref5) {\n var send = _ref5.send;\n return windowStore(\"windowInstanceIDPromises\").getOrSet(win, function () {\n return sayHello(win, {\n send: send\n }).then(function (_ref6) {\n return _ref6.instanceID;\n });\n });\n }\n function markWindowKnown(win) {\n windowStore(\"knownWindows\").set(win, !0);\n }\n var _SERIALIZER,\n TYPE = {\n FUNCTION: \"function\",\n ERROR: \"error\",\n PROMISE: \"promise\",\n REGEX: \"regex\",\n DATE: \"date\",\n ARRAY: \"array\",\n OBJECT: \"object\",\n STRING: \"string\",\n NUMBER: \"number\",\n BOOLEAN: \"boolean\",\n NULL: \"null\",\n UNDEFINED: \"undefined\"\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 ? TYPE.UNDEFINED : null === val ? TYPE.NULL : Array.isArray(val) ? TYPE.ARRAY : \"function\" == typeof val ? TYPE.FUNCTION : \"object\" == _typeof(val) ? val instanceof Error ? TYPE.ERROR : \"function\" == typeof val.then ? TYPE.PROMISE : \"[object RegExp]\" === {}.toString.call(val) ? TYPE.REGEX : \"[object Date]\" === {}.toString.call(val) ? TYPE.DATE : TYPE.OBJECT : \"string\" == typeof val ? TYPE.STRING : \"number\" == typeof val ? TYPE.NUMBER : \"boolean\" == typeof val ? TYPE.BOOLEAN : void 0;\n }\n function serializeType(type, val) {\n return {\n __type__: type,\n __val__: val\n };\n }\n var _DESERIALIZER,\n SERIALIZER = ((_SERIALIZER = {})[TYPE.FUNCTION] = function () {}, _SERIALIZER[TYPE.ERROR] = function (_ref) {\n return serializeType(TYPE.ERROR, {\n message: _ref.message,\n stack: _ref.stack,\n code: _ref.code\n });\n }, _SERIALIZER[TYPE.PROMISE] = function () {}, _SERIALIZER[TYPE.REGEX] = function (val) {\n return serializeType(TYPE.REGEX, val.source);\n }, _SERIALIZER[TYPE.DATE] = function (val) {\n return serializeType(TYPE.DATE, val.toJSON());\n }, _SERIALIZER[TYPE.ARRAY] = function (val) {\n return val;\n }, _SERIALIZER[TYPE.OBJECT] = function (val) {\n return val;\n }, _SERIALIZER[TYPE.STRING] = function (val) {\n return val;\n }, _SERIALIZER[TYPE.NUMBER] = function (val) {\n return val;\n }, _SERIALIZER[TYPE.BOOLEAN] = function (val) {\n return val;\n }, _SERIALIZER[TYPE.NULL] = function (val) {\n return val;\n }, _SERIALIZER),\n defaultSerializers = {},\n DESERIALIZER = ((_DESERIALIZER = {})[TYPE.FUNCTION] = function () {\n throw new Error(\"Function serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER[TYPE.ERROR] = function (_ref2) {\n var stack = _ref2.stack,\n code = _ref2.code,\n error = new Error(_ref2.message);\n return error.code = code, error.stack = stack + \"\\n\\n\" + error.stack, error;\n }, _DESERIALIZER[TYPE.PROMISE] = function () {\n throw new Error(\"Promise serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER[TYPE.REGEX] = function (val) {\n return new RegExp(val);\n }, _DESERIALIZER[TYPE.DATE] = function (val) {\n return new Date(val);\n }, _DESERIALIZER[TYPE.ARRAY] = function (val) {\n return val;\n }, _DESERIALIZER[TYPE.OBJECT] = function (val) {\n return val;\n }, _DESERIALIZER[TYPE.STRING] = function (val) {\n return val;\n }, _DESERIALIZER[TYPE.NUMBER] = function (val) {\n return val;\n }, _DESERIALIZER[TYPE.BOOLEAN] = function (val) {\n return val;\n }, _DESERIALIZER[TYPE.NULL] = function (val) {\n return val;\n }, _DESERIALIZER),\n defaultDeserializers = {};\n function cleanupProxyWindows() {\n for (var idToProxyWindow = globalStore(\"idToProxyWindow\"), _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(id, win, _ref) {\n var windowName,\n send = _ref.send;\n return {\n id: id,\n type: getOpener(win) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME,\n getInstanceID: memoizePromise(function () {\n return getWindowInstanceID(win, {\n send: send\n });\n }),\n close: function close() {\n return promise_ZalgoPromise[\"try\"](function () {\n !function (win) {\n try {\n win.close();\n } catch (err) {}\n }(win);\n });\n },\n getName: function getName() {\n return promise_ZalgoPromise[\"try\"](function () {\n if (!isWindowClosed(win)) return windowName;\n });\n },\n focus: function focus() {\n return promise_ZalgoPromise[\"try\"](function () {\n win.focus();\n });\n },\n isClosed: function isClosed() {\n return promise_ZalgoPromise[\"try\"](function () {\n return isWindowClosed(win);\n });\n },\n setLocation: function setLocation(href) {\n return promise_ZalgoPromise[\"try\"](function () {\n if (isSameDomain(win)) try {\n if (win.location && \"function\" == typeof win.location.replace) return void win.location.replace(href);\n } catch (err) {}\n win.location = href;\n });\n },\n setName: function setName(name) {\n return promise_ZalgoPromise[\"try\"](function () {\n (win = assertSameDomain(win)).name = name, win.frameElement && win.frameElement.setAttribute(\"name\", name), windowName = name;\n });\n }\n };\n }\n 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) return clearInterval(interval), resolve(window.document.body);\n }, 10);\n });\n var window_ProxyWindow = function () {\n function ProxyWindow(serializedWindow, actualWindow, _ref2) {\n var send = _ref2.send;\n this.isProxyWindow = !0, this.serializedWindow = void 0, this.actualWindow = void 0, this.actualWindowPromise = void 0, this.send = void 0, this.name = void 0, this.serializedWindow = serializedWindow, this.actualWindowPromise = new promise_ZalgoPromise(), this.send = send, actualWindow && this.setWindow(actualWindow);\n }\n var _proto = ProxyWindow.prototype;\n return _proto.getType = function () {\n return this.serializedWindow.type;\n }, _proto.isPopup = function () {\n return this.getType() === WINDOW_TYPE.POPUP;\n }, _proto.isIframe = function () {\n return this.getType() === WINDOW_TYPE.IFRAME;\n }, _proto.setLocation = function (href) {\n var _this = this;\n return this.serializedWindow.setLocation(href).then(function () {\n return _this;\n });\n }, _proto.setName = function (name) {\n var _this2 = this;\n return this.serializedWindow.setName(name).then(function () {\n return _this2;\n });\n }, _proto.close = function () {\n var _this3 = this;\n return this.serializedWindow.close().then(function () {\n return _this3;\n });\n }, _proto.focus = function () {\n var _this4 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n return promise_ZalgoPromise.all([_this4.isPopup() && _this4.serializedWindow.getName().then(function (name) {\n name && window.open(\"\", name);\n }), _this4.serializedWindow.focus()]);\n }).then(function () {\n return _this4;\n });\n }, _proto.isClosed = function () {\n return this.serializedWindow.isClosed();\n }, _proto.getWindow = function () {\n return this.actualWindow;\n }, _proto.setWindow = function (win) {\n this.actualWindow = win, this.serializedWindow = getSerializedWindow(this.serializedWindow.id, win, {\n send: this.send\n }), this.actualWindowPromise.resolve(win);\n }, _proto.awaitWindow = function () {\n return this.actualWindowPromise;\n }, _proto.matchWindow = function (win) {\n var _this5 = this;\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: _this5.send\n })\n }).then(function (_ref3) {\n var match = _ref3.proxyInstanceID === _ref3.knownWindowInstanceID;\n return match && _this5.setWindow(win), match;\n });\n });\n }, _proto.unwrap = function () {\n return this.actualWindow || this;\n }, _proto.getInstanceID = function () {\n return this.serializedWindow.getInstanceID();\n }, _proto.serialize = function () {\n return this.serializedWindow;\n }, _proto.shouldClean = function () {\n return this.actualWindow && isWindowClosed(this.actualWindow);\n }, ProxyWindow.unwrap = function (win) {\n return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win;\n }, ProxyWindow.serialize = function (win, _ref4) {\n var send = _ref4.send;\n return cleanupProxyWindows(), ProxyWindow.toProxyWindow(win, {\n send: send\n }).serialize();\n }, ProxyWindow.deserialize = function (serializedWindow, _ref5) {\n var on = _ref5.on,\n send = _ref5.send;\n return cleanupProxyWindows(), globalStore(\"idToProxyWindow\").getOrSet(serializedWindow.id, function () {\n return new ProxyWindow(serializedWindow, null, {\n on: on,\n send: send\n });\n });\n }, ProxyWindow.isProxyWindow = function (obj) {\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n }, ProxyWindow.toProxyWindow = function (win, _ref6) {\n var send = _ref6.send;\n if (cleanupProxyWindows(), ProxyWindow.isProxyWindow(win)) return win;\n var realWin = win;\n return windowStore(\"winToProxyWindow\").getOrSet(win, function () {\n var id = uniqueID(),\n proxyWindow = new ProxyWindow(getSerializedWindow(id, realWin, {\n send: send\n }), realWin, {\n send: send\n });\n return globalStore(\"idToProxyWindow\").set(id, proxyWindow);\n });\n }, ProxyWindow;\n }();\n function addMethod(id, val, name, source, domain) {\n var methodStore = windowStore(\"methodStore\"),\n proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n window_ProxyWindow.isProxyWindow(source) ? proxyWindowMethods.set(id, {\n val: val,\n name: name,\n domain: domain,\n source: source\n }) : (proxyWindowMethods.del(id), methodStore.getOrSet(source, function () {\n return {};\n })[id] = {\n domain: domain,\n name: name,\n val: val,\n source: source\n });\n }\n function lookupMethod(source, id) {\n var methodStore = windowStore(\"methodStore\"),\n 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 !function (_ref) {\n var on = _ref.on;\n globalStore(\"builtinListeners\").getOrSet(\"functionCalls\", function () {\n return on(MESSAGE_NAME.METHOD, {\n domain: constants_WILDCARD\n }, function (_ref2) {\n var source = _ref2.source,\n origin = _ref2.origin,\n data = _ref2.data,\n id = data.id,\n name = data.name,\n meth = lookupMethod(source, id);\n if (!meth) throw new Error(\"Could not find method '\" + data.name + \"' with id: \" + data.id + \" in \" + utils_getDomain(window));\n var methodSource = meth.source,\n domain = meth.domain,\n 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 \" + utils_getDomain(window));\n if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source).then(function (match) {\n if (!match) throw new Error(\"Method call '\" + data.name + \"' failed - proxy window does not match source in \" + utils_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 throw err.stack && (err.stack = \"Remote call to \" + name + \"()\\n\\n\" + err.stack), err;\n });\n }).then(function (result) {\n return {\n result: result,\n id: id,\n name: name\n };\n });\n });\n });\n }({\n on: _ref3.on\n });\n var id = val.__id__ || uniqueID();\n destination = window_ProxyWindow.unwrap(destination);\n var name = val.__name__ || val.name || key;\n return window_ProxyWindow.isProxyWindow(destination) ? (addMethod(id, val, name, destination, domain), destination.awaitWindow().then(function (win) {\n addMethod(id, val, name, win, domain);\n })) : addMethod(id, val, name, destination, domain), serializeType(SERIALIZATION_TYPE.CROSS_DOMAIN_FUNCTION, {\n id: id,\n name: name\n });\n }\n function serializeMessage(destination, domain, obj, _ref) {\n var _serialize,\n on = _ref.on,\n 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 ? TYPE.UNDEFINED : result;\n }(obj, ((_serialize = {})[TYPE.PROMISE] = function (val, key) {\n return function (destination, domain, val, key, _ref) {\n return serializeType(SERIALIZATION_TYPE.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[TYPE.FUNCTION] = function (val, key) {\n return function_serializeFunction(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize[TYPE.OBJECT] = function (val) {\n return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType(SERIALIZATION_TYPE.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 on = _ref2.on,\n send = _ref2.send;\n return function (str, deserializers) {\n if (void 0 === deserializers && (deserializers = defaultDeserializers), str !== TYPE.UNDEFINED) return JSON.parse(str, function (key, val) {\n if (isSerializedType(this)) return val;\n var type, value;\n if (isSerializedType(val) ? (type = val.__type__, value = val.__val__) : (type = determineType(val), value = val), !type) return value;\n var deserializer = deserializers[type] || DESERIALIZER[type];\n return deserializer ? deserializer(value, key) : value;\n });\n }(message, ((_deserialize = {})[SERIALIZATION_TYPE.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[SERIALIZATION_TYPE.CROSS_DOMAIN_FUNCTION] = function (serializedFunction) {\n return function (source, origin, _ref4, _ref5) {\n var id = _ref4.id,\n name = _ref4.name,\n send = _ref5.send,\n getDeserializedFunction = function getDeserializedFunction(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: utils_getDomain()\n }, _arguments);\n var options = {\n domain: origin,\n fireAndForget: opts.fireAndForget\n },\n _args = [].slice.call(_arguments);\n return send(win, MESSAGE_NAME.METHOD, {\n id: id,\n name: name,\n args: _args\n }, options).then(function (res) {\n if (!opts.fireAndForget) return res.data.result;\n });\n })[\"catch\"](function (err) {\n throw err;\n });\n }\n return void 0 === opts && (opts = {}), crossDomainFunctionWrapper.__name__ = name, crossDomainFunctionWrapper.__origin__ = origin, crossDomainFunctionWrapper.__source__ = source, crossDomainFunctionWrapper.__id__ = id, crossDomainFunctionWrapper.origin = origin, crossDomainFunctionWrapper;\n },\n crossDomainFunctionWrapper = getDeserializedFunction();\n return crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({\n fireAndForget: !0\n }), crossDomainFunctionWrapper;\n }(source, origin, serializedFunction, {\n on: on,\n send: send\n });\n }, _deserialize[SERIALIZATION_TYPE.CROSS_DOMAIN_WINDOW] = function (serializedWindow) {\n return window_ProxyWindow.deserialize(serializedWindow, {\n on: (_ref8 = {\n on: on,\n send: send\n }).on,\n send: _ref8.send\n });\n var _ref8;\n }, _deserialize));\n }\n var SEND_MESSAGE_STRATEGIES = {};\n function send_sendMessage(win, domain, message, _ref) {\n var _serializeMessage,\n on = _ref.on,\n send = _ref.send;\n if (isWindowClosed(win)) throw new Error(\"Window is closed\");\n for (var serializedMessage = serializeMessage(win, domain, ((_serializeMessage = {}).__post_robot_10_0_18__ = _extends({\n id: uniqueID(),\n origin: utils_getDomain(window)\n }, message), _serializeMessage), {\n on: on,\n send: send\n }), strategies = Object.keys(SEND_MESSAGE_STRATEGIES), errors = [], _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(stringifyError).join(\"\\n\\n\"));\n }\n SEND_MESSAGE_STRATEGIES.postrobot_post_message = function (win, serializedMessage, domain) {\n (Array.isArray(domain) ? domain : \"string\" == typeof domain ? [domain] : [constants_WILDCARD]).map(function (dom) {\n return 0 === dom.indexOf(PROTOCOL.FILE) ? constants_WILDCARD : dom;\n }).forEach(function (dom) {\n win.postMessage(serializedMessage, dom);\n });\n }, SEND_MESSAGE_STRATEGIES.postrobot_global = function (win, serializedMessage) {\n if (function (win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n }(window).match(/MSIE|rv:11|trident|edge\\/12|edge\\/13/i)) {\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: utils_getDomain(),\n data: serializedMessage\n });\n }\n };\n var _RECEIVE_MESSAGE_TYPE,\n __DOMAIN_REGEX__ = \"__domain_regex__\";\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,\n win = _ref.win,\n domain = _ref.domain,\n requestListeners = windowStore(\"requestListeners\");\n if (win === constants_WILDCARD && (win = null), domain === constants_WILDCARD && (domain = null), !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],\n listener = _domainListeners$__DO3.listener;\n if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener;\n }\n }\n if (domainListeners[constants_WILDCARD]) return domainListeners[constants_WILDCARD];\n }\n }\n }\n }\n }\n var RECEIVE_MESSAGE_TYPES = ((_RECEIVE_MESSAGE_TYPE = {}).postrobot_message_request = function (source, origin, message, _ref) {\n var on = _ref.on,\n send = _ref.send,\n options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n function sendResponse(type, ack, response) {\n void 0 === response && (response = {}), message.fireAndForget || isWindowClosed(source) || send_sendMessage(source, origin, _extends({\n type: type,\n ack: ack,\n hash: message.hash,\n name: message.name\n }, response), {\n on: on,\n send: send\n });\n }\n return promise_ZalgoPromise.all([sendResponse(\"postrobot_message_ack\"), 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 if (!matchDomain(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\n return options.handler({\n source: source,\n origin: origin,\n data: message.data\n });\n }).then(function (data) {\n return sendResponse(\"postrobot_message_response\", \"success\", {\n data: data\n });\n }, function (error) {\n return sendResponse(\"postrobot_message_response\", \"error\", {\n error: error\n });\n })]).then(src_util_noop)[\"catch\"](function (err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n });\n }, _RECEIVE_MESSAGE_TYPE.postrobot_message_ack = 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 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 options.ack = !0;\n }\n }, _RECEIVE_MESSAGE_TYPE.postrobot_message_response = function (source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var pattern,\n 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, Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() : pattern.toString()));\n if (source !== options.win) throw new Error(\"Response source does not match registered window\");\n deleteResponseListener(message.hash), \"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 }, _RECEIVE_MESSAGE_TYPE);\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on,\n send = _ref2.send,\n receivedMessages = globalStore(\"receivedMessages\");\n if (!window || window.closed) throw new Error(\"Message recieved in closed window\");\n try {\n if (!event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source,\n origin = event.origin,\n message = function (message, source, origin, _ref) {\n var parsedMessage,\n on = _ref.on,\n send = _ref.send;\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 && (parsedMessage = parsedMessage.__post_robot_10_0_18__) && \"object\" == _typeof(parsedMessage) && null !== parsedMessage && parsedMessage.type && \"string\" == typeof parsedMessage.type && RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;\n }(event.data, source, origin, {\n on: on,\n send: send\n });\n message && (markWindowKnown(source), receivedMessages.has(message.id) || (receivedMessages.set(message.id, !0), isWindowClosed(source) && !message.fireAndForget || (0 === message.origin.indexOf(PROTOCOL.FILE) && (origin = PROTOCOL.FILE + \"//\"), RECEIVE_MESSAGE_TYPES[message.type](source, origin, message, {\n on: on,\n send: send\n }))));\n }\n function on_on(name, options, handler) {\n if (!name) throw new Error(\"Expected name\");\n if (\"function\" == typeof options && (handler = options, options = {}), !handler) throw new Error(\"Expected handler\");\n (options = options || {}).name = name, options.handler = handler || options.handler;\n var win = options.window,\n domain = options.domain,\n requestListener = function addRequestListener(_ref4, listener) {\n var name = _ref4.name,\n win = _ref4.win,\n domain = _ref4.domain,\n requestListeners = windowStore(\"requestListeners\");\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n for (var listenersCollection = [], _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 cancel() {\n for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n for (var _listenersCollection = [], _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 cancel() {\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 if (win && win !== constants_WILDCARD || (win = getWildcard()), domain = domain || constants_WILDCARD, 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 regexListeners,\n regexListener,\n nameListeners = requestListeners.getOrSet(win, function () {\n return {};\n }),\n domainListeners = util_getOrSet(nameListeners, name, function () {\n return {};\n }),\n strDomain = domain.toString();\n return util_isRegex(domain) ? (regexListeners = util_getOrSet(domainListeners, __DOMAIN_REGEX__, function () {\n return [];\n })).push(regexListener = {\n regex: domain,\n listener: listener\n }) : domainListeners[strDomain] = listener, {\n cancel: function cancel() {\n delete domainListeners[strDomain], regexListener && (regexListeners.splice(regexListeners.indexOf(regexListener, 1)), regexListeners.length || delete domainListeners[__DOMAIN_REGEX__]), Object.keys(domainListeners).length || delete nameListeners[name], win && !Object.keys(nameListeners).length && requestListeners.del(win);\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, {\n handler: options.handler,\n handleError: options.errorHandler || function (err) {\n throw err;\n },\n window: win,\n domain: domain || constants_WILDCARD,\n name: name\n });\n return {\n cancel: function cancel() {\n requestListener.cancel();\n }\n };\n }\n var src_bridge,\n send_send = function send(win, name, data, options) {\n var domain = (options = options || {}).domain || constants_WILDCARD,\n responseTimeout = options.timeout || -1,\n childTimeout = options.timeout || 5e3,\n fireAndForget = options.fireAndForget || !1;\n return promise_ZalgoPromise[\"try\"](function () {\n return 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(\"Expected domain to be a string, array, or regex\");\n if (isWindowClosed(win)) throw new Error(\"Target window is closed\");\n }(name, win, domain), function (win, domain, childTimeout, _ref) {\n var send = _ref.send;\n return promise_ZalgoPromise[\"try\"](function () {\n return 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) ? function (win, timeout, name) {\n void 0 === timeout && (timeout = 5e3), void 0 === name && (name = \"Window\");\n var promise = getHelloPromise(win);\n return -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + \" did not load after \" + timeout + \"ms\"))), promise;\n }(win, childTimeout) : util_isRegex(domain) ? sayHello(win, {\n send: send\n }) : {\n domain: domain\n };\n }).then(function (_ref2) {\n return _ref2.domain;\n });\n }(win, domain, childTimeout, {\n send: send\n });\n }).then(function (targetDomain) {\n if (!matchDomain(domain, targetDomain)) throw new Error(\"Domain \" + stringify(domain) + \" does not match \" + stringify(targetDomain));\n domain = targetDomain;\n var logName = name === MESSAGE_NAME.METHOD && data && \"string\" == typeof data.name ? data.name + \"()\" : name,\n promise = new promise_ZalgoPromise(),\n 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), promise[\"catch\"](function () {\n !function (hash) {\n globalStore(\"erroredResponseListeners\").set(hash, !0);\n }(hash), deleteResponseListener(hash);\n });\n var totalAckTimeout = function (win) {\n return windowStore(\"knownWindows\").get(win, !1);\n }(win) ? 1e4 : 2e3,\n totalResTimeout = responseTimeout,\n ackTimeout = totalAckTimeout,\n resTimeout = totalResTimeout,\n interval = safeInterval(function () {\n return isWindowClosed(win) ? promise.reject(new Error(\"Window closed for \" + name + \" before \" + (responseListener.ack ? \"response\" : \"ack\"))) : responseListener.cancelled ? promise.reject(new Error(\"Response listener was cancelled for \" + name)) : (ackTimeout = Math.max(ackTimeout - 500, 0), -1 !== resTimeout && (resTimeout = Math.max(resTimeout - 500, 0)), responseListener.ack || 0 !== ackTimeout ? 0 === resTimeout ? promise.reject(new Error(\"No response for postMessage \" + logName + \" in \" + utils_getDomain() + \" in \" + totalResTimeout + \"ms\")) : void 0 : promise.reject(new Error(\"No ack for postMessage \" + logName + \" in \" + utils_getDomain() + \" in \" + totalAckTimeout + \"ms\")));\n }, 500);\n promise[\"finally\"](function () {\n interval.cancel(), reqPromises.splice(reqPromises.indexOf(promise, 1));\n })[\"catch\"](src_util_noop);\n }\n return send_sendMessage(win, domain, {\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 }), fireAndForget ? promise.resolve() : promise;\n });\n };\n function setup_serializeMessage(destination, domain, obj) {\n return serializeMessage(destination, domain, obj, {\n on: on_on,\n send: send_send\n });\n }\n function setup_deserializeMessage(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }\n function setup_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function lib_global_getGlobal(win) {\n if (void 0 === win && (win = window), !isSameDomain(win)) throw new Error(\"Can not get global for window on different domain\");\n return win.__zoid_9_0_31__ || (win.__zoid_9_0_31__ = {}), win.__zoid_9_0_31__;\n }\n function getProxyObject(obj) {\n return {\n get: function get() {\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 var ZOID = \"zoid\",\n POST_MESSAGE_DELEGATE = ZOID + \"_delegate\",\n POST_MESSAGE_ALLOW_DELEGATE = ZOID + \"_allow_delegate\",\n PROP_TYPE = {\n STRING: \"string\",\n OBJECT: \"object\",\n FUNCTION: \"function\",\n BOOLEAN: \"boolean\",\n NUMBER: \"number\",\n ARRAY: \"array\"\n },\n PROP_SERIALIZATION = {\n JSON: \"json\",\n DOTIFY: \"dotify\",\n BASE64: \"base64\"\n },\n CONTEXT = WINDOW_TYPE,\n src_constants_WILDCARD = \"*\",\n DEFAULT_DIMENSIONS = {\n WIDTH: \"300px\",\n HEIGHT: \"150px\"\n },\n EVENT = {\n RENDER: \"zoid-render\",\n RENDERED: \"zoid-rendered\",\n DISPLAY: \"zoid-display\",\n ERROR: \"zoid-error\",\n CLOSE: \"zoid-close\",\n PROPS: \"zoid-props\",\n RESIZE: \"zoid-resize\",\n FOCUS: \"zoid-focus\"\n };\n function normalizeChildProp(component, props, key, value, helpers) {\n var prop = component.getPropDefinition(key);\n return prop && \"function\" == typeof prop.childDecorate ? prop.childDecorate({\n value: value,\n close: helpers.close,\n focus: helpers.focus,\n onError: helpers.onError,\n onProps: helpers.onProps,\n resize: helpers.resize\n }) : value;\n }\n function parseChildWindowName(windowName) {\n return inlineMemoize(parseChildWindowName, function () {\n if (!windowName) throw new Error(\"No window name\");\n var _windowName$split = windowName.split(\"__\"),\n zoidcomp = _windowName$split[1],\n name = _windowName$split[2],\n encodedPayload = _windowName$split[3];\n if (zoidcomp !== ZOID) throw new Error(\"Window not rendered by zoid - got \" + zoidcomp);\n if (!name) throw new Error(\"Expected component name\");\n if (!encodedPayload) throw new Error(\"Expected encoded payload\");\n try {\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 }(encodedPayload));\n } catch (err) {\n throw new Error(\"Can not decode window name payload: \" + encodedPayload + \": \" + stringifyError(err));\n }\n }, [windowName]);\n }\n function getChildPayload() {\n try {\n return parseChildWindowName(window.name);\n } catch (err) {}\n }\n var child_ChildComponent = function () {\n function ChildComponent(component) {\n var _this = this;\n this.component = void 0, this.props = void 0, this.context = void 0, this.parent = void 0, this.parentDomain = void 0, this.parentComponentWindow = void 0, this.onPropHandlers = void 0, this.autoResize = void 0, promise_ZalgoPromise[\"try\"](function () {\n _this.component = component, _this.onPropHandlers = [];\n var childPayload = getChildPayload();\n if (!childPayload) throw new Error(\"No child payload found\");\n if (\"9_0_30\" !== childPayload.version) throw new Error(\"Parent window has zoid version \" + childPayload.version + \", child window has version 9_0_30\");\n var parent = childPayload.parent,\n parentDomain = childPayload.parentDomain,\n exports = childPayload.exports,\n props = childPayload.props;\n _this.context = childPayload.context, _this.parentComponentWindow = _this.getParentComponentWindow(parent), _this.parentDomain = parentDomain, _this.parent = setup_deserializeMessage(_this.parentComponentWindow, parentDomain, exports), _this.checkParentDomain(parentDomain);\n var initialProps = _this.getPropsByRef(_this.parentComponentWindow, parentDomain, props);\n return _this.setProps(initialProps, parentDomain), markWindowKnown(_this.parentComponentWindow), _this.watchForClose(), _this.parent.init(_this.buildExports());\n }).then(function () {\n return _this.watchForResize();\n })[\"catch\"](function (err) {\n _this.onError(err);\n });\n }\n var _proto = ChildComponent.prototype;\n return _proto.getHelpers = function () {\n var _this2 = this;\n return {\n focus: function focus() {\n return _this2.focus();\n },\n close: function close() {\n return _this2.close();\n },\n resize: function resize(_ref) {\n return _this2.resize({\n width: _ref.width,\n height: _ref.height\n });\n },\n onError: function onError(err) {\n return _this2.onError(err);\n },\n onProps: function onProps(handler) {\n return _this2.onProps(handler);\n },\n getParent: function getParent() {\n return _this2.parentComponentWindow;\n },\n getParentDomain: function getParentDomain() {\n return _this2.parentDomain;\n }\n };\n }, _proto.checkParentDomain = function (domain) {\n if (!matchDomain(this.component.allowedParentDomains, domain)) throw new Error(\"Can not be rendered by domain: \" + domain);\n }, _proto.onProps = function (handler) {\n this.onPropHandlers.push(handler);\n }, _proto.getPropsByRef = function (parentComponentWindow, domain, _ref2) {\n var props,\n type = _ref2.type,\n uid = _ref2.uid;\n if (\"raw\" === type) props = _ref2.value;else if (\"uid\" === type) {\n if (!isSameDomain(parentComponentWindow)) throw new Error(\"Parent component window is on a different domain - expected \" + utils_getDomain() + \" - can not retrieve props\");\n var global = lib_global_getGlobal(parentComponentWindow);\n props = assertExists(\"props\", global && global.props[uid]);\n }\n if (!props) throw new Error(\"Could not find props\");\n return setup_deserializeMessage(parentComponentWindow, domain, props);\n }, _proto.getParentComponentWindow = function (ref) {\n var win,\n n,\n type = ref.type;\n if (\"opener\" === type) return assertExists(\"opener\", getOpener(window));\n if (\"parent\" === type && \"number\" == typeof ref.distance) return assertExists(\"parent\", (win = window, void 0 === (n = ref.distance) && (n = 1), function (win, n) {\n void 0 === n && (n = 1);\n for (var parent = win, i = 0; i < n; i++) {\n if (!parent) return;\n parent = getParent(parent);\n }\n return parent;\n }(win, getDistanceFromTop(win) - n)));\n if (\"global\" === type && ref.uid && \"string\" == typeof ref.uid) {\n var uid = ref.uid,\n 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 global = lib_global_getGlobal(frame);\n if (global && global.windows && global.windows[uid]) return global.windows[uid];\n }\n }\n }\n throw new Error(\"Unable to find \" + type + \" parent component window\");\n }, _proto.getProps = function () {\n return this.props = this.props || {}, this.props;\n }, _proto.setProps = function (props, origin, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var helpers = this.getHelpers(),\n existingProps = this.getProps();\n extend(existingProps, function (parentComponentWindow, component, props, origin, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n for (var result = {}, _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2],\n prop = component.getPropDefinition(key);\n if (!prop || !prop.sameDomain || origin === utils_getDomain(window) && isSameDomain(parentComponentWindow)) {\n var value = normalizeChildProp(component, 0, key, props[key], helpers);\n result[key] = value, prop && prop.alias && !result[prop.alias] && (result[prop.alias] = value);\n }\n }\n if (!isUpdate) for (var _i4 = 0, _component$getPropNam2 = component.getPropNames(); _i4 < _component$getPropNam2.length; _i4++) {\n var _key = _component$getPropNam2[_i4];\n props.hasOwnProperty(_key) || (result[_key] = normalizeChildProp(component, 0, _key, props[_key], helpers));\n }\n return result;\n }(this.parentComponentWindow, this.component, props, origin, helpers, isUpdate));\n for (var _i4 = 0, _this$onPropHandlers2 = this.onPropHandlers; _i4 < _this$onPropHandlers2.length; _i4++) _this$onPropHandlers2[_i4].call(this, existingProps);\n }, _proto.watchForClose = function () {\n var _this3 = this;\n window.addEventListener(\"beforeunload\", function () {\n _this3.parent.checkClose.fireAndForget();\n }), window.addEventListener(\"unload\", function () {\n _this3.parent.checkClose.fireAndForget();\n }), onCloseWindow(this.parentComponentWindow, function () {\n _this3.destroy();\n });\n }, _proto.getAutoResize = function () {\n var _ref3 = this.autoResize || this.component.autoResize || {},\n _ref3$width = _ref3.width,\n _ref3$height = _ref3.height,\n _ref3$element = _ref3.element,\n element = void 0 === _ref3$element ? \"body\" : _ref3$element;\n return {\n width: void 0 !== _ref3$width && _ref3$width,\n height: void 0 !== _ref3$height && _ref3$height,\n element: element = getElementSafe(element)\n };\n }, _proto.watchForResize = function () {\n var _this4 = this;\n return waitForDocumentReady().then(function () {\n if (document.body) return document.body;\n throw new Error(\"Document ready but document.body not present\");\n }).then(function () {\n var _this4$getAutoResize = _this4.getAutoResize(),\n width = _this4$getAutoResize.width,\n height = _this4$getAutoResize.height,\n element = _this4$getAutoResize.element;\n element && (width || height) && _this4.context !== CONTEXT.POPUP && onResize(element, function (_ref4) {\n _this4.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 }, _proto.buildExports = function () {\n var self = this;\n return {\n updateProps: function updateProps(props) {\n var _this5 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n return self.setProps(props, _this5.__origin__, !0);\n });\n },\n close: function close() {\n return promise_ZalgoPromise[\"try\"](function () {\n return self.destroy();\n });\n }\n };\n }, _proto.resize = function (_ref5) {\n return this.parent.resize.fireAndForget({\n width: _ref5.width,\n height: _ref5.height\n });\n }, _proto.close = function () {\n return this.parent.close();\n }, _proto.destroy = function () {\n return promise_ZalgoPromise[\"try\"](function () {\n window.close();\n });\n }, _proto.focus = function () {\n return promise_ZalgoPromise[\"try\"](function () {\n window.focus();\n });\n }, _proto.onError = function (err) {\n var _this6 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n if (_this6.parent && _this6.parent.onError) return _this6.parent.onError(err);\n throw err;\n });\n }, ChildComponent;\n }(),\n RENDER_DRIVERS = {};\n function props_getQueryParam(prop, key, value) {\n return promise_ZalgoPromise[\"try\"](function () {\n return \"function\" == typeof prop.queryParam ? prop.queryParam({\n value: value\n }) : \"string\" == typeof prop.queryParam ? prop.queryParam : key;\n });\n }\n function getQueryValue(prop, key, value) {\n return promise_ZalgoPromise[\"try\"](function () {\n return \"function\" == typeof prop.queryValue && isDefined(value) ? prop.queryValue({\n value: value\n }) : value;\n });\n }\n RENDER_DRIVERS[CONTEXT.IFRAME] = {\n openOnClick: !1,\n openFrame: function openFrame() {\n return getProxyObject(dom_iframe({\n attributes: _extends({\n title: this.component.name\n }, this.component.attributes.iframe)\n }));\n },\n open: function open(proxyFrame) {\n var _this = this;\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 var element,\n handler,\n interval,\n frameWatcher = (element = frame, handler = once(handler = function handler() {\n return _this.close();\n }), isElementClosed(element) ? handler() : interval = safeInterval(function () {\n isElementClosed(element) && (interval.cancel(), handler());\n }, 50), {\n cancel: function cancel() {\n interval && interval.cancel();\n }\n });\n return _this.clean.register(function () {\n return frameWatcher.cancel();\n }), _this.clean.register(function () {\n return destroyElement(frame);\n }), _this.clean.register(function () {\n return function (win) {\n for (var _i2 = 0, _requestPromises$get2 = windowStore(\"requestPromises\").get(win, []); _i2 < _requestPromises$get2.length; _i2++) _requestPromises$get2[_i2].reject(new Error(\"Window cleaned up before response\"))[\"catch\"](src_util_noop);\n }(win);\n }), setup_toProxyWindow(win);\n });\n });\n },\n openPrerenderFrame: function openPrerenderFrame() {\n return getProxyObject(dom_iframe({\n attributes: _extends({\n name: \"__zoid_prerender_frame__\" + this.component.name + \"_\" + uniqueID() + \"__\",\n title: \"prerender__\" + this.component.name\n }, this.component.attributes.iframe)\n }));\n },\n openPrerender: function openPrerender(proxyWin, proxyPrerenderFrame) {\n var _this2 = this;\n if (!proxyPrerenderFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyPrerenderFrame.get().then(function (prerenderFrame) {\n return _this2.clean.register(function () {\n return destroyElement(prerenderFrame);\n }), awaitFrameWindow(prerenderFrame).then(function (prerenderFrameWindow) {\n return assertSameDomain(prerenderFrameWindow);\n }).then(function (win) {\n return setup_toProxyWindow(win);\n });\n });\n },\n delegate: [\"getProxyContainer\", \"renderContainer\", \"openFrame\", \"openPrerenderFrame\", \"prerender\", \"open\", \"openPrerender\"]\n };\n var parent_ParentComponent = function () {\n function ParentComponent(component, props) {\n var _this = this;\n this.component = void 0, this.driver = void 0, this.clean = void 0, this.event = void 0, this.initPromise = void 0, this.handledErrors = void 0, this.props = void 0, this.state = void 0, this.child = void 0, this.proxyWin = void 0, this.initPromise = new promise_ZalgoPromise(), this.handledErrors = [], this.props = {}, this.clean = cleanup(this), this.state = {}, this.component = component, this.setupEvents(props.onError), this.setProps(props), this.component.registerActiveComponent(this), this.clean.register(function () {\n return _this.component.destroyActiveComponent(_this);\n }), this.watchForUnload();\n }\n var _proto = ParentComponent.prototype;\n return _proto.setupEvents = function (onError) {\n var triggered,\n handlers,\n _this2 = this;\n this.event = (triggered = {}, handlers = {}, {\n on: function on(eventName, handler) {\n var handlerList = handlers[eventName] = handlers[eventName] || [];\n handlerList.push(handler);\n var cancelled = !1;\n return {\n cancel: function cancel() {\n cancelled || (cancelled = !0, handlerList.splice(handlerList.indexOf(handler), 1));\n }\n };\n },\n once: function once(eventName, handler) {\n var listener = this.on(eventName, function () {\n listener.cancel(), handler();\n });\n return listener;\n },\n trigger: function trigger(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 promises = [];\n if (handlerList) for (var _loop = function _loop(_i2) {\n var handler = handlerList[_i2];\n promises.push(promise_ZalgoPromise[\"try\"](function () {\n return handler.apply(void 0, args);\n }));\n }, _i2 = 0; _i2 < handlerList.length; _i2++) _loop(_i2);\n return promise_ZalgoPromise.all(promises).then(src_util_noop);\n },\n triggerOnce: function triggerOnce(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 this.trigger.apply(this, [eventName].concat(args));\n }\n }), this.event.on(EVENT.RENDER, function () {\n return _this2.props.onRender();\n }), this.event.on(EVENT.DISPLAY, function () {\n return _this2.props.onDisplay();\n }), this.event.on(EVENT.RENDERED, function () {\n return _this2.props.onRendered();\n }), this.event.on(EVENT.CLOSE, function () {\n return _this2.props.onClose();\n }), this.event.on(EVENT.RESIZE, function () {\n return _this2.props.onResize();\n }), this.event.on(EVENT.FOCUS, function () {\n return _this2.props.onFocus();\n }), this.event.on(EVENT.PROPS, function (props) {\n return _this2.props.onProps(props);\n }), this.event.on(EVENT.ERROR, function (err) {\n return _this2.props && _this2.props.onError ? _this2.props.onError(err) : onError ? onError(err) : _this2.initPromise.reject(err).then(function () {\n setTimeout(function () {\n throw err;\n }, 1);\n });\n });\n }, _proto.render = function (target, container, context) {\n var _this3 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n _this3.component.log(\"render\"), _this3.driver = RENDER_DRIVERS[context];\n var uid = ZOID + \"-\" + _this3.component.tag + \"-\" + uniqueID(),\n domain = _this3.getDomain(),\n childDomain = _this3.getChildDomain();\n _this3.component.checkAllowRender(target, domain, container), target !== window && _this3.delegate(context, target);\n var tasks = {},\n init = _this3.initPromise,\n buildUrl = _this3.buildUrl(),\n onRender = _this3.event.trigger(EVENT.RENDER),\n getProxyContainer = _this3.getProxyContainer(container),\n openFrame = _this3.openFrame(),\n openPrerenderFrame = _this3.openPrerenderFrame(),\n renderContainer = promise_ZalgoPromise.hash({\n proxyContainer: getProxyContainer,\n proxyFrame: openFrame,\n proxyPrerenderFrame: openPrerenderFrame\n }).then(function (_ref) {\n return _this3.renderContainer(_ref.proxyContainer, {\n context: context,\n uid: uid,\n proxyFrame: _ref.proxyFrame,\n proxyPrerenderFrame: _ref.proxyPrerenderFrame\n });\n }),\n open = _this3.driver.openOnClick ? _this3.open() : openFrame.then(function (proxyFrame) {\n return _this3.open(proxyFrame);\n }),\n openPrerender = promise_ZalgoPromise.hash({\n proxyWin: open,\n proxyPrerenderFrame: openPrerenderFrame\n }).then(function (_ref2) {\n return _this3.openPrerender(_ref2.proxyWin, _ref2.proxyPrerenderFrame);\n }),\n setState = open.then(function (proxyWin) {\n return _this3.proxyWin = proxyWin, _this3.setProxyWin(proxyWin);\n }),\n prerender = promise_ZalgoPromise.hash({\n proxyPrerenderWin: openPrerender,\n state: setState\n }).then(function (_ref3) {\n return _this3.prerender(_ref3.proxyPrerenderWin, {\n context: context,\n uid: uid\n });\n }),\n buildWindowName = open.then(function (proxyWin) {\n return _this3.buildWindowName({\n proxyWin: proxyWin,\n childDomain: childDomain,\n domain: domain,\n target: target,\n context: context,\n uid: uid\n });\n }),\n setWindowName = promise_ZalgoPromise.hash({\n proxyWin: open,\n windowName: buildWindowName\n }).then(function (_ref4) {\n return _ref4.proxyWin.setName(_ref4.windowName);\n }),\n loadUrl = promise_ZalgoPromise.hash({\n proxyWin: open,\n url: buildUrl,\n windowName: setWindowName,\n prerender: prerender\n }).then(function (_ref5) {\n return _ref5.proxyWin.setLocation(_ref5.url);\n }),\n watchForClose = open.then(function (proxyWin) {\n _this3.watchForClose(proxyWin);\n }),\n onDisplay = promise_ZalgoPromise.hash({\n container: renderContainer,\n prerender: prerender\n }).then(function () {\n return _this3.event.trigger(EVENT.DISPLAY);\n }),\n openBridge = open.then(function (proxyWin) {\n return _this3.openBridge(proxyWin, childDomain, context);\n }),\n runTimeout = loadUrl.then(function () {\n return _this3.runTimeout();\n }),\n onRendered = init.then(function () {\n return _this3.event.trigger(EVENT.RENDERED);\n });\n return promise_ZalgoPromise.hash({\n init: init,\n buildUrl: buildUrl,\n onRender: onRender,\n getProxyContainer: getProxyContainer,\n openFrame: openFrame,\n openPrerenderFrame: openPrerenderFrame,\n renderContainer: renderContainer,\n open: open,\n openPrerender: openPrerender,\n setState: setState,\n prerender: prerender,\n loadUrl: loadUrl,\n buildWindowName: buildWindowName,\n setWindowName: setWindowName,\n watchForClose: watchForClose,\n onDisplay: onDisplay,\n openBridge: openBridge,\n runTimeout: runTimeout,\n onRendered: onRendered\n })[\"catch\"](function (err) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(tasks); _i2 < _Object$keys2.length; _i2++) tasks[_Object$keys2[_i2]].reject(err);\n throw err;\n });\n })[\"catch\"](function (err) {\n return promise_ZalgoPromise.all([_this3.onError(err), _this3.destroy(err)]).then(function () {\n throw err;\n });\n }).then(src_util_noop);\n }, _proto.getProxyContainer = function (container) {\n return promise_ZalgoPromise[\"try\"](function () {\n return elementReady(container);\n }).then(function (containerElement) {\n return getProxyObject(containerElement);\n });\n }, _proto.buildWindowName = function (_ref6) {\n var childPayload = this.buildChildPayload({\n proxyWin: _ref6.proxyWin,\n childDomain: _ref6.childDomain,\n domain: _ref6.domain,\n target: _ref6.target,\n context: _ref6.context,\n uid: _ref6.uid\n });\n return \"__\" + ZOID + \"__\" + this.component.name + \"__\" + base64encode(JSON.stringify(childPayload)) + \"__\";\n }, _proto.getPropsRef = function (proxyWin, childDomain, domain, uid) {\n var value = setup_serializeMessage(proxyWin, domain, this.getPropsForChild(domain)),\n propRef = childDomain === utils_getDomain() ? {\n type: \"uid\",\n uid: uid\n } : {\n type: \"raw\",\n value: value\n };\n if (\"uid\" === propRef.type) {\n var global = lib_global_getGlobal(window);\n global.props = global.props || {}, global.props[uid] = value, this.clean.register(function () {\n delete global.props[uid];\n });\n }\n return propRef;\n }, _proto.buildChildPayload = function (_temp) {\n var _ref7 = void 0 === _temp ? {} : _temp,\n proxyWin = _ref7.proxyWin,\n childDomain = _ref7.childDomain,\n domain = _ref7.domain,\n _ref7$target = _ref7.target,\n target = void 0 === _ref7$target ? window : _ref7$target,\n context = _ref7.context,\n uid = _ref7.uid;\n return {\n uid: uid,\n context: context,\n version: \"9_0_30\",\n childDomain: childDomain,\n parentDomain: utils_getDomain(window),\n tag: this.component.tag,\n parent: this.getWindowRef(target, childDomain, uid, context),\n props: this.getPropsRef(proxyWin, childDomain, domain, uid),\n exports: setup_serializeMessage(proxyWin, domain, this.buildParentExports(proxyWin))\n };\n }, _proto.setProxyWin = function (proxyWin) {\n var _this4 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n _this4.proxyWin = proxyWin;\n });\n }, _proto.getHelpers = function () {\n var _this5 = this;\n return {\n state: this.state,\n event: this.event,\n close: function close() {\n return _this5.close();\n },\n focus: function focus() {\n return _this5.focus();\n },\n resize: function resize(_ref8) {\n return _this5.resize({\n width: _ref8.width,\n height: _ref8.height\n });\n },\n onError: function onError(err) {\n return _this5.onError(err);\n },\n updateProps: function updateProps(props) {\n return _this5.updateProps(props);\n }\n };\n }, _proto.setProps = function (props, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1), this.component.validate && this.component.validate({\n props: props\n });\n var helpers = this.getHelpers();\n !function (component, props, inputProps, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1), extend(props, inputProps = inputProps || {});\n for (var propNames = isUpdate ? [] : [].concat(component.getPropNames()), _i2 = 0, _Object$keys2 = Object.keys(inputProps); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n -1 === propNames.indexOf(key) && propNames.push(key);\n }\n for (var aliases = [], state = helpers.state, close = helpers.close, focus = helpers.focus, event = helpers.event, onError = helpers.onError, _i4 = 0; _i4 < propNames.length; _i4++) {\n var _key = propNames[_i4],\n propDef = component.getPropDefinition(_key),\n value = inputProps[_key];\n if (propDef) {\n var alias = propDef.alias;\n if (alias && (!isDefined(value) && isDefined(inputProps[alias]) && (value = inputProps[alias]), aliases.push(alias)), propDef.value && (value = propDef.value({\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n })), !isDefined(value) && propDef[\"default\"] && (value = propDef[\"default\"]({\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n })), isDefined(value) && (\"array\" === propDef.type ? !Array.isArray(value) : _typeof(value) !== propDef.type)) throw new TypeError(\"Prop is not of type \" + propDef.type + \": \" + _key);\n props[_key] = value;\n }\n }\n for (var _i6 = 0; _i6 < aliases.length; _i6++) delete props[aliases[_i6]];\n for (var _i8 = 0, _Object$keys4 = Object.keys(props); _i8 < _Object$keys4.length; _i8++) {\n var _key2 = _Object$keys4[_i8],\n _propDef = component.getPropDefinition(_key2),\n _value = props[_key2];\n _propDef && (isDefined(_value) && _propDef.validate && _propDef.validate({\n value: _value,\n props: props\n }), isDefined(_value) && _propDef.decorate && (props[_key2] = _propDef.decorate({\n value: _value,\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n })));\n }\n for (var _i10 = 0, _component$getPropNam2 = component.getPropNames(); _i10 < _component$getPropNam2.length; _i10++) {\n var _key3 = _component$getPropNam2[_i10];\n if (!1 !== component.getPropDefinition(_key3).required && !isDefined(props[_key3])) throw new Error('Expected prop \"' + _key3 + '\" to be defined');\n }\n }(this.component, this.props, props, helpers, isUpdate);\n }, _proto.buildUrl = function () {\n var propsDef,\n props,\n params,\n keys,\n _this6 = this;\n return (propsDef = _extends({}, this.component.props, {}, this.component.builtinProps), props = this.props, params = {}, keys = Object.keys(props), promise_ZalgoPromise.all(keys.map(function (key) {\n var prop = propsDef[key];\n if (prop) return promise_ZalgoPromise.resolve().then(function () {\n var value = props[key];\n if (value && prop.queryParam) return value;\n }).then(function (value) {\n if (null != value) return promise_ZalgoPromise.all([props_getQueryParam(prop, key, value), getQueryValue(prop, 0, value)]).then(function (_ref) {\n var result,\n queryParam = _ref[0],\n queryValue = _ref[1];\n if (\"boolean\" == typeof queryValue) result = queryValue.toString();else if (\"string\" == typeof queryValue) result = queryValue.toString();else if (\"object\" == _typeof(queryValue) && null !== queryValue) {\n if (prop.serialization === PROP_SERIALIZATION.JSON) result = JSON.stringify(queryValue);else if (prop.serialization === PROP_SERIALIZATION.BASE64) result = btoa(JSON.stringify(queryValue));else if (prop.serialization === PROP_SERIALIZATION.DOTIFY || !prop.serialization) {\n result = function dotify(obj, prefix, newobj) {\n for (var key in void 0 === prefix && (prefix = \"\"), void 0 === newobj && (newobj = {}), prefix = prefix ? prefix + \".\" : prefix, 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 }(queryValue, key);\n for (var _i12 = 0, _Object$keys6 = Object.keys(result); _i12 < _Object$keys6.length; _i12++) {\n var dotkey = _Object$keys6[_i12];\n params[dotkey] = result[dotkey];\n }\n return;\n }\n } else \"number\" == typeof queryValue && (result = queryValue.toString());\n params[queryParam] = result;\n });\n });\n })).then(function () {\n return params;\n })).then(function (query) {\n return function (url, options) {\n void 0 === options && (options = {});\n var originalUrl,\n originalHash,\n query = options.query || {},\n hash = options.hash || {},\n _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 hashString = extendQuery(originalHash, hash);\n return queryString && (originalUrl = originalUrl + \"?\" + queryString), hashString && (originalUrl = originalUrl + \"#\" + hashString), originalUrl;\n }(function (url) {\n if (0 !== getDomainFromUrl(url).indexOf(PROTOCOL.MOCK)) return url;\n throw new Error(\"Mock urls not supported out of test mode\");\n }(_this6.component.getUrl(_this6.props)), {\n query: query\n });\n });\n }, _proto.getDomain = function () {\n return this.component.getDomain(this.props);\n }, _proto.getChildDomain = function () {\n return this.component.getChildDomain(this.props);\n }, _proto.getPropsForChild = function (domain) {\n for (var result = {}, _i4 = 0, _Object$keys4 = Object.keys(this.props); _i4 < _Object$keys4.length; _i4++) {\n var key = _Object$keys4[_i4],\n prop = this.component.getPropDefinition(key);\n prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(domain, utils_getDomain(window)) || (result[key] = this.props[key]);\n }\n return result;\n }, _proto.updateProps = function (props) {\n var _this7 = this;\n return this.setProps(props, !0), this.initPromise.then(function () {\n if (_this7.child) return _this7.child.updateProps(_this7.getPropsForChild(_this7.getDomain()))[\"catch\"](function (err) {\n if (_this7.child && _this7.proxyWin) return _this7.checkClose(_this7.proxyWin).then(function () {\n if (_this7.child) throw err;\n });\n });\n });\n }, _proto.openFrame = function () {\n var _this8 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n if (_this8.driver.openFrame) return _this8.driver.openFrame.call(_this8);\n });\n }, _proto.openPrerenderFrame = function () {\n var _this9 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n if (_this9.driver.openPrerenderFrame) return _this9.driver.openPrerenderFrame.call(_this9);\n });\n }, _proto.open = function (proxyFrame) {\n var _this10 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n _this10.component.log(\"open\");\n var windowProp = _this10.props.window;\n return windowProp ? (_this10.clean.register(function () {\n return windowProp.close();\n }), setup_toProxyWindow(windowProp)) : _this10.driver.open.call(_this10, proxyFrame);\n }).then(function (proxyWin) {\n return _this10.proxyWin = proxyWin, proxyWin;\n });\n }, _proto.openPrerender = function (proxyWin, proxyPrerenderFrame) {\n var _this11 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n return _this11.driver.openPrerender.call(_this11, proxyWin, proxyPrerenderFrame);\n });\n }, _proto.focus = function () {\n var _this12 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n var proxyWin = _this12.proxyWin;\n if (proxyWin) return _this12.event.trigger(EVENT.FOCUS), proxyWin.focus().then(src_util_noop);\n });\n }, _proto.delegate = function (context, target) {\n var _this13 = this;\n this.component.log(\"delegate\");\n for (var props = {}, _i6 = 0, _this$component$getPr2 = this.component.getPropNames(); _i6 < _this$component$getPr2.length; _i6++) {\n var propName = _this$component$getPr2[_i6];\n this.component.getPropDefinition(propName).allowDelegate && (props[propName] = this.props[propName]);\n }\n for (var overridesPromise = send_send(target, POST_MESSAGE_DELEGATE + \"_\" + this.component.name, {\n context: context,\n props: props,\n overrides: {\n event: this.event,\n close: function close() {\n return _this13.close();\n },\n onError: function onError(err) {\n return _this13.onError(err);\n }\n }\n }).then(function (_ref9) {\n var data = _ref9.data;\n return _this13.clean.register(data.destroy), data.overrides;\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 }), _loop = function _loop(_i8, _this$driver$delegate2) {\n var key = _this$driver$delegate2[_i8];\n _this13[key] = function () {\n var _this14 = this,\n _arguments = arguments;\n return overridesPromise.then(function (overrides) {\n return overrides[key].apply(_this14, _arguments);\n });\n };\n }, _i8 = 0, _this$driver$delegate2 = this.driver.delegate; _i8 < _this$driver$delegate2.length; _i8++) _loop(_i8, _this$driver$delegate2);\n }, _proto.getWindowRef = function (target, domain, uid, context) {\n if (domain === utils_getDomain(window)) {\n var global = lib_global_getGlobal(window);\n return global.windows = global.windows || {}, global.windows[uid] = window, this.clean.register(function () {\n delete global.windows[uid];\n }), {\n type: \"global\",\n uid: uid\n };\n }\n return context === CONTEXT.POPUP ? {\n type: \"opener\"\n } : {\n type: \"parent\",\n distance: getDistanceFromTop(window)\n };\n }, _proto.watchForClose = function (proxyWin) {\n var _this15 = this,\n cancelled = !1;\n return this.clean.register(function () {\n cancelled = !0;\n }), promise_ZalgoPromise.delay(2e3).then(function () {\n return proxyWin.isClosed();\n }).then(function (isClosed) {\n return isClosed ? (_this15.component.log(\"detect_close_child\"), _this15.close()) : cancelled ? void 0 : _this15.watchForClose(proxyWin);\n });\n }, _proto.watchForUnload = function () {\n var _this16 = this,\n unloadWindowListener = addEventListener(window, \"unload\", once(function () {\n _this16.component.log(\"navigate_away\"), _this16.destroy(new Error(\"Window navigated away\"));\n }));\n this.clean.register(unloadWindowListener.cancel);\n }, _proto.runTimeout = function () {\n var _this17 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n var timeout = _this17.props.timeout;\n if (timeout) return _this17.initPromise.timeout(timeout, new Error(\"Loading component timed out after \" + timeout + \" milliseconds\"));\n });\n }, _proto.initChild = function (child) {\n var _this18 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n _this18.clean.set(\"child\", child), _this18.initPromise.resolve();\n });\n }, _proto.buildParentExports = function (win) {\n var _this19 = this,\n onError = function onError(err) {\n return _this19.onError(err);\n },\n init = function init(child) {\n return _this19.initChild(child);\n };\n return init.onError = onError, {\n init: init,\n close: function close() {\n return _this19.close();\n },\n checkClose: function checkClose() {\n return _this19.checkClose(win);\n },\n resize: function resize(_ref10) {\n return _this19.resize({\n width: _ref10.width,\n height: _ref10.height\n });\n },\n onError: onError\n };\n }, _proto.resize = function (_ref11) {\n var _this20 = this,\n width = _ref11.width,\n height = _ref11.height;\n return promise_ZalgoPromise[\"try\"](function () {\n _this20.event.trigger(EVENT.RESIZE, {\n width: width,\n height: height\n });\n });\n }, _proto.checkClose = function (win) {\n var _this21 = this;\n return win.isClosed().then(function (closed) {\n return closed ? _this21.close() : promise_ZalgoPromise.delay(200).then(function () {\n return win.isClosed();\n }).then(function (secondClosed) {\n if (secondClosed) return _this21.close();\n });\n });\n }, _proto.close = function () {\n var _this22 = this;\n return promise_ZalgoPromise[\"try\"](function () {\n return _this22.component.log(\"close\"), _this22.event.trigger(EVENT.CLOSE);\n }).then(function () {\n return _this22.child && _this22.child.close.fireAndForget()[\"catch\"](src_util_noop), _this22.destroy(new Error(\"Window closed\"), !1);\n });\n }, _proto.prerender = function (proxyPrerenderWin, _ref12) {\n var _this23 = this,\n context = _ref12.context,\n uid = _ref12.uid;\n return promise_ZalgoPromise[\"try\"](function () {\n var prerenderTemplate = _this23.component.prerenderTemplate;\n if (prerenderTemplate) {\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 el = _this23.renderTemplate(prerenderTemplate, {\n context: context,\n uid: uid,\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 for (var documentElement = win.document.documentElement, _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 _ref13 = _this23.component.autoResize || {},\n _ref13$width = _ref13.width,\n width = void 0 !== _ref13$width && _ref13$width,\n _ref13$height = _ref13.height,\n height = void 0 !== _ref13$height && _ref13$height,\n _ref13$element = _ref13.element,\n element = void 0 === _ref13$element ? \"body\" : _ref13$element;\n (element = getElementSafe(element, doc)) && (width || height) && onResize(element, function (_ref14) {\n _this23.resize({\n width: width ? _ref14.width : void 0,\n height: height ? _ref14.height : void 0\n });\n }, {\n width: width,\n height: height,\n win: prerenderWindow\n });\n }\n }\n }\n });\n }, _proto.renderTemplate = function (renderer, _ref15) {\n var _this24 = this;\n return renderer.call(this, {\n container: _ref15.container,\n context: _ref15.context,\n uid: _ref15.uid,\n doc: _ref15.doc,\n frame: _ref15.frame,\n prerenderFrame: _ref15.prerenderFrame,\n focus: function focus() {\n return _this24.focus();\n },\n close: function close() {\n return _this24.close();\n },\n state: this.state,\n props: this.props,\n tag: this.component.tag,\n dimensions: this.component.dimensions,\n event: this.event\n });\n }, _proto.renderContainer = function (proxyContainer, _ref16) {\n var _this25 = this,\n proxyFrame = _ref16.proxyFrame,\n proxyPrerenderFrame = _ref16.proxyPrerenderFrame,\n context = _ref16.context,\n uid = _ref16.uid;\n return promise_ZalgoPromise.hash({\n container: proxyContainer.get().then(elementReady),\n frame: proxyFrame ? proxyFrame.get() : null,\n prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null\n }).then(function (_ref17) {\n var container = _ref17.container,\n innerContainer = _this25.renderTemplate(_this25.component.containerTemplate, {\n context: context,\n uid: uid,\n container: container,\n frame: _ref17.frame,\n prerenderFrame: _ref17.prerenderFrame,\n doc: document\n });\n if (innerContainer) return appendChild(container, innerContainer), _this25.clean.register(function () {\n return destroyElement(innerContainer);\n }), getProxyObject(innerContainer);\n });\n }, _proto.destroy = function (err, trigger) {\n var _this26 = this;\n return void 0 === trigger && (trigger = !0), promise_ZalgoPromise[\"try\"](function () {\n return err || (trigger = !1, err = new Error(\"Component destroyed\")), _this26.component.log(\"destroy\"), _this26.onError(err, trigger);\n }).then(function () {\n return _this26.clean.all();\n });\n }, _proto.onError = function (err, trigger) {\n var _this27 = this;\n return void 0 === trigger && (trigger = !0), promise_ZalgoPromise[\"try\"](function () {\n if (-1 === _this27.handledErrors.indexOf(err)) return _this27.handledErrors.push(err), _this27.initPromise.asyncReject(err), trigger ? _this27.event.trigger(EVENT.ERROR, err) : void 0;\n });\n }, _proto.openBridge = function (proxyWin, domain, context) {}, ParentComponent;\n }(),\n delegate_DelegateComponent = function () {\n function DelegateComponent(component, source, options) {\n var _this = this;\n this.component = void 0, this.source = void 0, this.context = void 0, this.driver = void 0, this.props = void 0, this.clean = void 0, this.focus = void 0, this.resize = void 0, this.renderTemplate = void 0, this.close = void 0, this.onError = void 0, this.event = void 0, this.component = component, this.context = options.context, this.driver = RENDER_DRIVERS[options.context], this.clean = cleanup(this), this.focus = parent_ParentComponent.prototype.focus, this.resize = parent_ParentComponent.prototype.resize, this.renderTemplate = parent_ParentComponent.prototype.renderTemplate, this.props = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(options.props); _i2 < _Object$keys2.length; _i2++) {\n var propName = _Object$keys2[_i2],\n propDef = this.component.getPropDefinition(propName);\n propDef && propDef.allowDelegate && options.props[propName] && (this.props[propName] = options.props[propName]);\n }\n this.close = options.overrides.close, this.onError = options.overrides.onError, this.event = options.overrides.event, this.component.registerActiveComponent(this), this.clean.register(function () {\n return _this.component.destroyActiveComponent(_this);\n }), this.watchForSourceClose(source);\n }\n var _proto = DelegateComponent.prototype;\n return _proto.getDelegate = function () {\n var _this2 = this;\n return {\n overrides: this.getOverrides(),\n destroy: function destroy() {\n return _this2.destroy();\n }\n };\n }, _proto.watchForSourceClose = function (source) {\n var _this3 = this,\n closeSourceWindowListener = onCloseWindow(source, function () {\n return _this3.destroy();\n }, 3e3);\n this.clean.register(closeSourceWindowListener.cancel);\n }, _proto.getOverrides = function () {\n for (var overrides = {}, self = this, _loop = function _loop(_i4, _this$driver$delegate2) {\n var key = _this$driver$delegate2[_i4];\n overrides[key] = function () {\n return parent_ParentComponent.prototype[key].apply(self, arguments);\n }, overrides[key].__name__ = key;\n }, _i4 = 0, _this$driver$delegate2 = this.driver.delegate; _i4 < _this$driver$delegate2.length; _i4++) _loop(_i4, _this$driver$delegate2);\n return overrides;\n }, _proto.destroy = function () {\n return this.clean.all();\n }, DelegateComponent;\n }(),\n CLASS = {\n VISIBLE: \"visible\",\n INVISIBLE: \"invisible\"\n };\n function defaultContainerTemplate(_ref) {\n var uid = _ref.uid,\n frame = _ref.frame,\n prerenderFrame = _ref.prerenderFrame,\n doc = _ref.doc,\n props = _ref.props,\n event = _ref.event,\n _ref$dimensions = _ref.dimensions,\n width = _ref$dimensions.width,\n height = _ref$dimensions.height;\n if (frame && prerenderFrame) {\n var div = doc.createElement(\"div\");\n div.setAttribute(\"id\", uid);\n var style = doc.createElement(\"style\");\n return props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce), 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.\" + CLASS.INVISIBLE + \" {\\n opacity: 0;\\n }\\n\\n #\" + uid + \" > iframe.\" + CLASS.VISIBLE + \" {\\n opacity: 1;\\n }\\n \")), div.appendChild(frame), div.appendChild(prerenderFrame), div.appendChild(style), prerenderFrame.classList.add(CLASS.VISIBLE), frame.classList.add(CLASS.INVISIBLE), event.on(EVENT.RENDERED, function () {\n prerenderFrame.classList.remove(CLASS.VISIBLE), prerenderFrame.classList.add(CLASS.INVISIBLE), frame.classList.remove(CLASS.INVISIBLE), frame.classList.add(CLASS.VISIBLE), setTimeout(function () {\n destroyElement(prerenderFrame);\n }, 1);\n }), event.on(EVENT.RESIZE, function (_ref2) {\n var newWidth = _ref2.width,\n newHeight = _ref2.height;\n \"number\" == typeof newWidth && (div.style.width = toCSS(newWidth)), \"number\" == typeof newHeight && (div.style.height = toCSS(newHeight));\n }), div;\n }\n }\n function defaultPrerenderTemplate(_ref) {\n var doc = _ref.doc,\n props = _ref.props,\n html = doc.createElement(\"html\"),\n body = doc.createElement(\"body\"),\n style = doc.createElement(\"style\"),\n spinner = doc.createElement(\"div\");\n return spinner.classList.add(\"spinner\"), props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce), html.appendChild(body), body.appendChild(spinner), body.appendChild(style), 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 \")), html;\n }\n var props_defaultNoop = function props_defaultNoop() {\n return src_util_noop;\n },\n props_decorateOnce = function props_decorateOnce(_ref) {\n return once(_ref.value);\n },\n component_Component = function () {\n function Component(options) {\n this.tag = void 0, this.name = void 0, this.url = void 0, this.domain = void 0, this.bridgeUrl = void 0, this.props = void 0, this.builtinProps = void 0, this.dimensions = void 0, this.autoResize = void 0, this.allowedParentDomains = void 0, this.defaultContext = void 0, this.attributes = void 0, this.containerTemplate = void 0, this.prerenderTemplate = void 0, this.validate = void 0, this.driverCache = void 0, this.xprops = void 0, this.logger = void 0, this.propNames = void 0, function (options) {\n if (!options) throw new Error(\"Expected options to be passed\");\n if (!options.tag || !options.tag.match(/^([a-z0-9][a-z0-9-]*)+[a-z0-9]+$/)) throw new Error(\"Invalid options.tag: \" + options.tag);\n if (function (options) {\n if (options.props && \"object\" != _typeof(options.props)) throw new Error(\"Expected options.props to be an object\");\n var PROP_TYPE_LIST = function (obj) {\n var result = [];\n for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);\n return result;\n }(PROP_TYPE);\n if (options.props) for (var _i2 = 0, _Object$keys2 = Object.keys(options.props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2],\n prop = options.props[key];\n if (!prop || \"object\" != _typeof(prop)) throw new Error(\"Expected options.props.\" + key + \" to be an object\");\n if (!prop.type) throw new Error(\"Expected prop.type\");\n if (-1 === PROP_TYPE_LIST.indexOf(prop.type)) throw new Error(\"Expected prop.type to be one of \" + PROP_TYPE_LIST.join(\", \"));\n if (prop.required && prop[\"default\"]) throw new Error(\"Required prop can not have a default value\");\n if (prop.type === PROP_TYPE.FUNCTION && prop.queryParam && !prop.queryValue) throw new Error(\"Do not pass queryParam for function prop\");\n }\n }(options), options.dimensions) {\n if (options.dimensions && !isPx(options.dimensions.width) && !isPerc(options.dimensions.width)) throw new Error(\"Expected options.dimensions.width to be a px or % string value\");\n if (options.dimensions && !isPx(options.dimensions.height) && !isPerc(options.dimensions.height)) throw new Error(\"Expected options.dimensions.height to be a px or % string value\");\n }\n if (options.defaultContext && options.defaultContext !== CONTEXT.IFRAME && options.defaultContext !== CONTEXT.POPUP) throw new Error(\"Unsupported context type: \" + (options.defaultContext || \"unknown\"));\n if (!options.url) throw new Error(\"Must pass url\");\n if (\"string\" != typeof options.url && \"function\" != typeof options.url) throw new TypeError(\"Expected url to be string or function\");\n if (options.prerenderTemplate && \"function\" != typeof options.prerenderTemplate) throw new Error(\"Expected options.prerenderTemplate to be a function\");\n if (options.containerTemplate && \"function\" != typeof options.containerTemplate) throw new Error(\"Expected options.containerTemplate to be a function\");\n }(options), this.tag = options.tag, this.name = this.tag.replace(/-/g, \"_\"), this.allowedParentDomains = options.allowedParentDomains || src_constants_WILDCARD;\n var global = lib_global_getGlobal();\n if (global.components = global.components || {}, global.components[this.tag]) throw new Error(\"Can not register multiple components with the same tag: \" + this.tag);\n this.builtinProps = {\n window: {\n type: \"object\",\n sendToChild: !1,\n required: !1,\n allowDelegate: !0,\n validate: function validate(_ref2) {\n var value = _ref2.value;\n if (!isWindow(value) && !window_ProxyWindow.isProxyWindow(value)) throw new Error(\"Expected Window or ProxyWindow\");\n },\n decorate: function decorate(_ref3) {\n return setup_toProxyWindow(_ref3.value);\n }\n },\n timeout: {\n type: \"number\",\n required: !1,\n sendToChild: !1\n },\n close: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref4) {\n return _ref4.close;\n }\n },\n focus: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref5) {\n return _ref5.focus;\n }\n },\n resize: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref6) {\n return _ref6.resize;\n }\n },\n cspNonce: {\n type: \"string\",\n required: !1\n },\n getParent: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref7) {\n return _ref7.getParent;\n }\n },\n getParentDomain: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref8) {\n return _ref8.getParentDomain;\n }\n },\n onDisplay: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n \"default\": props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRendered: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n \"default\": props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRender: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n \"default\": props_defaultNoop,\n decorate: props_decorateOnce\n },\n onClose: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n \"default\": props_defaultNoop,\n decorate: props_decorateOnce\n },\n onResize: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n \"default\": props_defaultNoop\n },\n onFocus: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n \"default\": props_defaultNoop\n },\n onError: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref9) {\n return _ref9.onError;\n }\n },\n onProps: {\n type: \"function\",\n required: !1,\n sendToChild: !1,\n \"default\": props_defaultNoop,\n childDecorate: function childDecorate(_ref10) {\n return _ref10.onProps;\n }\n }\n }, this.props = options.props || {};\n var _ref = options.dimensions || {},\n _ref$width = _ref.width,\n _ref$height = _ref.height;\n this.dimensions = {\n width: void 0 === _ref$width ? DEFAULT_DIMENSIONS.WIDTH : _ref$width,\n height: void 0 === _ref$height ? DEFAULT_DIMENSIONS.HEIGHT : _ref$height\n }, this.url = options.url, this.domain = options.domain, this.bridgeUrl = options.bridgeUrl, this.attributes = options.attributes || {}, this.attributes.iframe = this.attributes.iframe || {}, this.attributes.popup = this.attributes.popup || {}, this.defaultContext = options.defaultContext || CONTEXT.IFRAME, this.autoResize = options.autoResize, this.containerTemplate = options.containerTemplate ? options.containerTemplate : defaultContainerTemplate, this.prerenderTemplate = options.prerenderTemplate ? options.prerenderTemplate : defaultPrerenderTemplate, this.validate = options.validate, this.logger = options.logger || {\n debug: src_util_noop,\n info: src_util_noop,\n warn: src_util_noop,\n error: src_util_noop\n }, this.registerChild(), this.listenDelegate(), global.components[this.tag] = this;\n }\n var _proto = Component.prototype;\n return _proto.getPropNames = function () {\n if (this.propNames) return this.propNames;\n for (var propNames = Object.keys(this.props), _i2 = 0, _Object$keys2 = Object.keys(this.builtinProps); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n -1 === propNames.indexOf(key) && propNames.push(key);\n }\n return this.propNames = propNames, propNames;\n }, _proto.getPropDefinition = function (name) {\n return this.props[name] || this.builtinProps[name];\n }, _proto.driver = function (name, dep) {\n throw new Error(\"Driver support not enabled\");\n }, _proto.registerChild = function () {\n if (this.isChild()) {\n if (window.xprops) throw new Error(\"Can not register \" + this.name + \" as child - can not attach multiple components to the same window\");\n var child = new child_ChildComponent(this);\n window.xprops = this.xprops = child.getProps();\n }\n }, _proto.listenDelegate = function () {\n var _this = this;\n on_on(POST_MESSAGE_ALLOW_DELEGATE + \"_\" + this.name, function () {\n return !0;\n }), on_on(POST_MESSAGE_DELEGATE + \"_\" + this.name, function (_ref2) {\n var _ref2$data = _ref2.data;\n return new delegate_DelegateComponent(_this, _ref2.source, {\n context: _ref2$data.context,\n props: _ref2$data.props,\n overrides: _ref2$data.overrides\n }).getDelegate();\n });\n }, _proto.canRenderTo = function (win) {\n return send_send(win, POST_MESSAGE_ALLOW_DELEGATE + \"_\" + this.name).then(function (_ref3) {\n return _ref3.data;\n })[\"catch\"](function () {\n return !1;\n });\n }, _proto.getUrl = function (props) {\n return \"function\" == typeof this.url ? this.url({\n props: props\n }) : this.url;\n }, _proto.getChildDomain = function (props) {\n return this.domain && \"string\" == typeof this.domain ? this.domain : getDomainFromUrl(this.getUrl(props));\n }, _proto.getDomain = function (props) {\n return this.domain && util_isRegex(this.domain) ? this.domain : this.getChildDomain(props);\n }, _proto.getBridgeUrl = function () {\n if (this.bridgeUrl) return this.bridgeUrl;\n }, _proto.isChild = function () {\n var payload = getChildPayload();\n return Boolean(payload && payload.tag === this.tag && payload.childDomain === utils_getDomain());\n }, _proto.getDefaultContainer = 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 }, _proto.getDefaultContext = function (context, props) {\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 this.defaultContext;\n }, _proto.init = function (props) {\n var _this2 = this,\n parent = new parent_ParentComponent(this, props = props || {}),\n _render = function _render(target, container, context) {\n return promise_ZalgoPromise[\"try\"](function () {\n if (!isWindow(target)) throw new Error(\"Must pass window to renderTo\");\n return context = _this2.getDefaultContext(context, props), container = _this2.getDefaultContainer(context, container), parent.render(target, container, context);\n });\n };\n return _extends({}, parent.getHelpers(), {\n render: function render(container, context) {\n return _render(window, container, context);\n },\n renderTo: function renderTo(target, container, context) {\n return _render(target, container, context);\n }\n });\n }, _proto.checkAllowRender = function (target, domain, container) {\n if (target !== window) {\n if (!isSameTopWindow(window, target)) throw new Error(\"Can only renderTo an adjacent frame\");\n var origin = utils_getDomain();\n if (!matchDomain(domain, origin) && !isSameDomain(target)) throw new Error(\"Can not render remotely to \" + domain.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 }, _proto.log = function (event, payload) {\n this.logger.info(this.name + \"_\" + event, payload);\n }, _proto.registerActiveComponent = function (instance) {\n var global = lib_global_getGlobal();\n global.activeComponents = global.activeComponents || [], global.activeComponents.push(instance);\n }, _proto.destroyActiveComponent = function (instance) {\n var global = lib_global_getGlobal();\n global.activeComponents = global.activeComponents || [], global.activeComponents.splice(global.activeComponents.indexOf(instance), 1);\n }, Component;\n }();\n function create(options) {\n var _ref5, on, send;\n global_getGlobal().initialized || (global_getGlobal().initialized = !0, function (_ref3) {\n var on = _ref3.on,\n send = _ref3.send,\n global = global_getGlobal();\n global.receiveMessage = global.receiveMessage || function (message) {\n return receive_receiveMessage(message, {\n on: on,\n send: send\n });\n };\n }({\n on: on_on,\n send: send_send\n }), on = (_ref5 = {\n on: on_on,\n send: send_send\n }).on, send = _ref5.send, globalStore().getOrSet(\"postMessageListener\", function () {\n return addEventListener(window, \"message\", function (event) {\n !function (event, _ref4) {\n var on = _ref4.on,\n send = _ref4.send,\n source = event.source || event.sourceElement,\n origin = event.origin || event.originalEvent && event.originalEvent.origin,\n data = event.data;\n if (\"null\" === origin && (origin = PROTOCOL.FILE + \"//\"), 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 }(event, {\n on: on,\n send: send\n });\n });\n }), function (_ref7) {\n var on = _ref7.on,\n send = _ref7.send;\n globalStore(\"builtinListeners\").getOrSet(\"helloListener\", function () {\n var listener = on(MESSAGE_NAME.HELLO, {\n domain: constants_WILDCARD\n }, function (_ref2) {\n var source = _ref2.source,\n origin = _ref2.origin;\n return getHelloPromise(source).resolve({\n win: source,\n domain: origin\n }), {\n instanceID: getInstanceID()\n };\n }),\n parent = getAncestor();\n return parent && sayHello(parent, {\n send: send\n })[\"catch\"](src_util_noop), listener;\n });\n }({\n on: on_on,\n send: send_send\n }));\n var component = new component_Component(options),\n init = function init(props) {\n return component.init(props);\n };\n return init.driver = function (name, dep) {\n return component.driver(name, dep);\n }, init.isChild = function () {\n return component.isChild();\n }, init.canRenderTo = function (win) {\n return component.canRenderTo(win);\n }, init.xprops = component.xprops, init;\n }\n function destroyAll() {\n src_bridge && src_bridge.destroyBridges();\n var results = [],\n global = lib_global_getGlobal();\n for (global.activeComponents = global.activeComponents || []; global.activeComponents.length;) results.push(global.activeComponents[0].destroy(new Error(\"zoid destroyed all\"), !1));\n return promise_ZalgoPromise.all(results).then(src_util_noop);\n }\n var destroyComponents = destroyAll;\n function component_destroy() {\n var listener;\n destroyAll(), delete window.__zoid_9_0_31__, function () {\n for (var responseListeners = globalStore(\"responseListeners\"), _i2 = 0, _responseListeners$ke2 = responseListeners.keys(); _i2 < _responseListeners$ke2.length; _i2++) {\n var hash = _responseListeners$ke2[_i2],\n listener = responseListeners.get(hash);\n listener && (listener.cancelled = !0), responseListeners.del(hash);\n }\n }(), (listener = globalStore().get(\"postMessageListener\")) && listener.cancel(), delete window.__post_robot_10_0_18__;\n }\n __webpack_require__.d(__webpack_exports__, \"PopupOpenError\", function () {\n return PopupOpenError;\n }), __webpack_require__.d(__webpack_exports__, \"create\", function () {\n return create;\n }), __webpack_require__.d(__webpack_exports__, \"destroy\", function () {\n return component_destroy;\n }), __webpack_require__.d(__webpack_exports__, \"destroyComponents\", function () {\n return destroyComponents;\n }), __webpack_require__.d(__webpack_exports__, \"destroyAll\", function () {\n return destroyAll;\n }), __webpack_require__.d(__webpack_exports__, \"Component\", function () {\n return component_Component;\n }), __webpack_require__.d(__webpack_exports__, \"PROP_TYPE\", function () {\n return PROP_TYPE;\n }), __webpack_require__.d(__webpack_exports__, \"PROP_SERIALIZATION\", function () {\n return PROP_SERIALIZATION;\n }), __webpack_require__.d(__webpack_exports__, \"CONTEXT\", function () {\n return CONTEXT;\n }), __webpack_require__.d(__webpack_exports__, \"EVENT\", function () {\n return EVENT;\n });\n }]);\n});","import { Controller } from '@hotwired/stimulus'\nimport * as analytics from '../utils/analytics'\n\n/**\n * This file is responsible for tracking user behaviour when they\n * scroll the Proof Point container horizontally.\n * An analytics event will be fired when any container is scrolled,\n * regardless of whether it contains brand or product Proof Points.\n * However the event(s) will only be sent once per page visit:\n * this behaviour is controlled by `this.scrolled`. In other words,\n * if the user has already scrolled, the scroll handler function will\n * be a no-op.\n */\nexport default class extends Controller {\n initialize () {\n this.element.addEventListener('scroll', this.handleScroll)\n }\n\n handleScroll () {\n if (this.scrolled) return\n\n const bundle = document.querySelector('.Bundle')\n const {\n bundleId, // e.g. 2FfDJv38\n channel, // e.g. A Little Find\n brandName, // e.g. Emma Hardie\n subjectName, // e.g. Brilliance Facial Oil\n style, // e.g. Card\n type // e.g. combined_bundle\n } = bundle.dataset\n const eventLabel = `${channel} / ${brandName} / ${subjectName}`\n\n analytics.track('firstScrolled', {\n eventCategory: 'firstScrolled_bundle',\n eventAction: bundleId,\n eventLabel\n }, { adapter: 'gtm' })\n\n analytics.track('bundle_firstScrolled', {\n object: 'bundle',\n action: 'firstScrolled',\n channel,\n brand_name: brandName,\n subject_name: subjectName,\n event_label: eventLabel,\n bundle_id: bundleId,\n bundle_style: style,\n bundle_type: type\n }, { adapter: 'segment' })\n\n this.scrolled = true\n }\n}\n","/* This controller's sole purpose is to fix a minor issue where, when tabbing through\nitems in a tabpanel and jumping to the next tabpanel, the next tab didn't appear\nto be focused/selected. Sorry, I couldn't find a way to do that in CSS. */\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n onKeyUp (e) {\n // We only want Tab key presses\n if (e.key !== 'Tab') return\n\n // Remove ARIA selected status from all panels\n this.element.parentElement.querySelectorAll('[aria-selected=\"true\"]')\n .forEach(t => t.setAttribute('aria-selected', false))\n\n const numberOfTabs = this.element.children.length\n\n // Check if the currently focused element is a tabpanel or one of its children. If so, ARIA select it.\n for (let i = 1; i <= numberOfTabs; i++) {\n if (document.activeElement.id === `panel-${i}` || document.activeElement.closest('[role=\"tabpanel\"]').id === `panel-${i}`) {\n document.getElementById(`tab-${i}`).setAttribute('aria-selected', true)\n }\n }\n }\n}\n","/**\n * Original code taken from: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tab_role\n *\n * Code adapted to follow the general style of a Stimulus controller\n *\n * The tab panels have been readapted to work by scrolling horizontally\n * (original code was making use of the `hidden` attribute instead)\n */\nimport { Controller } from '@hotwired/stimulus'\nimport * as analytics from '../utils/analytics'\n\nexport default class extends Controller {\n static targets = ['tab']\n\n connect () {\n // Enable arrow navigation between tabs in the tab list\n this.tabFocus = 0\n }\n\n switch (e) {\n const { innerText: eventAction } = e.target\n changeTabs(e)\n trackBundleTabClicked(e)\n if (eventAction === 'Brand') {\n trackBrandProofPointImpressions(e)\n }\n }\n\n onTabListKeyDown (e) {\n // Move right\n if (e.keyCode === 39 || e.keyCode === 37) {\n const tabs = this.tabTargets\n\n tabs[this.tabFocus].setAttribute('tabindex', -1)\n if (e.keyCode === 39) {\n this.tabFocus++\n // If we're at the end, go to the start\n if (this.tabFocus >= tabs.length) {\n this.tabFocus = 0\n }\n // Move left\n } else if (e.keyCode === 37) {\n this.tabFocus--\n // If we're at the start, move to the end\n if (this.tabFocus < 0) {\n this.tabFocus = tabs.length - 1\n }\n }\n\n tabs[this.tabFocus].setAttribute('tabindex', 0)\n tabs[this.tabFocus].focus()\n }\n }\n}\n\nfunction changeTabs (e) {\n const target = e.target\n const parent = target.parentNode\n const grandparent = parent.parentNode\n\n // Remove all current selected tabs\n parent\n .querySelectorAll('[aria-selected=\"true\"]')\n .forEach(t => t.setAttribute('aria-selected', false))\n\n // Set this tab as selected\n target.setAttribute('aria-selected', true)\n\n // Show the selected panel\n grandparent.parentNode\n .querySelector(`#${target.getAttribute('aria-controls')}`)\n .scrollIntoView({\n block: 'nearest',\n behavior: /apple/i.test(navigator.vendor) ? 'auto' : 'smooth'\n })\n}\n\nfunction trackBundleTabClicked (e) {\n const { innerText: eventAction } = e.target\n const { channel, brandName, subjectName } = e.target.parentNode.parentNode.dataset\n const eventLabel = channel + ' / ' + brandName + ' / ' + subjectName\n const dtc = channel === brandName\n analytics.track('bundleTab_clicked', {\n eventAction,\n eventLabel\n })\n analytics.track('bundleTab_clicked',\n {\n object: 'bundleTab',\n action: 'clicked',\n channel,\n brand_name: brandName,\n subject_name: subjectName,\n subject_value: eventAction,\n event_label: eventLabel,\n bundle_type: 'combined_bundle',\n dtc\n }, { adapter: 'segment' })\n}\n\nfunction trackBrandProofPointImpressions (e) {\n const { channel, brandName, subjectName } = e.target.parentNode.parentNode.dataset\n const eventLabel = channel + ' / ' + brandName + ' / ' + subjectName\n const brandProofPointNames = getBrandProofPointNames(e)\n const dtc = channel === brandName\n brandProofPointNames.forEach((brandProofPointName) => {\n analytics.track('impression', {\n eventCategory: 'impression_proofpoint_bundle',\n eventAction: brandProofPointName,\n eventLabel\n }, { adapter: 'gtm' })\n\n analytics.track('proofpoint_impression',\n {\n object: 'proofpoint',\n action: 'impression',\n channel,\n brand_name: brandName,\n subject_name: subjectName,\n subject_value: brandProofPointName,\n subject_type: 'brand',\n event_label: eventLabel,\n bundle_type: 'combined_bundle',\n dtc\n }, { adapter: 'segment' })\n }\n )\n}\n\nfunction getBrandProofPointNames (e) {\n const grandParent = e.target.parentNode.parentNode\n const brandProofPointNames = []\n const brandPanel = grandParent.querySelector(\"[data-name='brand-pp-panel']\")\n const brandProofPoints = brandPanel.querySelectorAll('button')\n brandProofPoints\n .forEach((brandPP) => {\n brandProofPointNames.push(brandPP.dataset.name)\n })\n return brandProofPointNames\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NULL_DIMENSION } from '../constants';\nimport provide from '../provide';\nimport { plugins, trackUsage } from '../usage';\nimport { assign, createFieldsObj, debounce, isObject, toArray } from '../utilities';\n\n/**\n * Declares the MediaQueryList instance cache.\n */\nvar mediaMap = {};\n\n/**\n * Class for the `mediaQueryTracker` analytics.js plugin.\n * @implements {MediaQueryTrackerPublicInterface}\n */\nvar MediaQueryTracker = /*#__PURE__*/function () {\n /**\n * Registers media query tracking.\n * @param {!Tracker} tracker Passed internally by analytics.js\n * @param {?Object} opts Passed by the require command.\n */\n function MediaQueryTracker(tracker, opts) {\n _classCallCheck(this, MediaQueryTracker);\n trackUsage(tracker, plugins.MEDIA_QUERY_TRACKER);\n\n // Feature detects to prevent errors in unsupporting browsers.\n if (!window.matchMedia) return;\n\n /** @type {MediaQueryTrackerOpts} */\n var defaultOpts = {\n // definitions: unefined,\n changeTemplate: this.changeTemplate,\n changeTimeout: 1000,\n fieldsObj: {}\n // hitFilter: undefined,\n };\n\n this.opts = /** @type {MediaQueryTrackerOpts} */\n assign(defaultOpts, opts);\n\n // Exits early if media query data doesn't exist.\n if (!isObject(this.opts.definitions)) return;\n this.opts.definitions = toArray(this.opts.definitions);\n this.tracker = tracker;\n this.changeListeners = [];\n this.processMediaQueries();\n }\n\n /**\n * Loops through each media query definition, sets the custom dimenion data,\n * and adds the change listeners.\n */\n _createClass(MediaQueryTracker, [{\n key: \"processMediaQueries\",\n value: function processMediaQueries() {\n var _this = this;\n this.opts.definitions.forEach(function (definition) {\n // Only processes definitions with a name and index.\n if (definition.name && definition.dimensionIndex) {\n var mediaName = _this.getMatchName(definition);\n _this.tracker.set('dimension' + definition.dimensionIndex, mediaName);\n _this.addChangeListeners(definition);\n }\n });\n }\n\n /**\n * Takes a definition object and return the name of the matching media item.\n * If no match is found, the NULL_DIMENSION value is returned.\n * @param {Object} definition A set of named media queries associated\n * with a single custom dimension.\n * @return {string} The name of the matched media or NULL_DIMENSION.\n */\n }, {\n key: \"getMatchName\",\n value: function getMatchName(definition) {\n var match;\n definition.items.forEach(function (item) {\n if (getMediaList(item.media).matches) {\n match = item;\n }\n });\n return match ? match.name : NULL_DIMENSION;\n }\n\n /**\n * Adds change listeners to each media query in the definition list.\n * Debounces the changes to prevent unnecessary hits from being sent.\n * @param {Object} definition A set of named media queries associated\n * with a single custom dimension\n */\n }, {\n key: \"addChangeListeners\",\n value: function addChangeListeners(definition) {\n var _this2 = this;\n definition.items.forEach(function (item) {\n var mql = getMediaList(item.media);\n var fn = debounce(function () {\n _this2.handleChanges(definition);\n }, _this2.opts.changeTimeout);\n mql.addListener(fn);\n _this2.changeListeners.push({\n mql: mql,\n fn: fn\n });\n });\n }\n\n /**\n * Handles changes to the matched media. When the new value differs from\n * the old value, a change event is sent.\n * @param {Object} definition A set of named media queries associated\n * with a single custom dimension\n */\n }, {\n key: \"handleChanges\",\n value: function handleChanges(definition) {\n var newValue = this.getMatchName(definition);\n var oldValue = this.tracker.get('dimension' + definition.dimensionIndex);\n if (newValue !== oldValue) {\n this.tracker.set('dimension' + definition.dimensionIndex, newValue);\n\n /** @type {FieldsObj} */\n var defaultFields = {\n transport: 'beacon',\n eventCategory: definition.name,\n eventAction: 'change',\n eventLabel: this.opts.changeTemplate(oldValue, newValue),\n nonInteraction: true\n };\n this.tracker.send('event', createFieldsObj(defaultFields, this.opts.fieldsObj, this.tracker, this.opts.hitFilter));\n }\n }\n\n /**\n * Removes all event listeners and instance properties.\n */\n }, {\n key: \"remove\",\n value: function remove() {\n for (var i = 0, listener; listener = this.changeListeners[i]; i++) {\n listener.mql.removeListener(listener.fn);\n }\n }\n\n /**\n * Sets the default formatting of the change event label.\n * This can be overridden by setting the `changeTemplate` option.\n * @param {string} oldValue The value of the media query prior to the change.\n * @param {string} newValue The value of the media query after the change.\n * @return {string} The formatted event label.\n */\n }, {\n key: \"changeTemplate\",\n value: function changeTemplate(oldValue, newValue) {\n return oldValue + ' => ' + newValue;\n }\n }]);\n return MediaQueryTracker;\n}();\nprovide('mediaQueryTracker', MediaQueryTracker);\n\n/**\n * Accepts a media query and returns a MediaQueryList object.\n * Caches the values to avoid multiple unnecessary instances.\n * @param {string} media A media query value.\n * @return {MediaQueryList} The matched media.\n */\nfunction getMediaList(media) {\n return mediaMap[media] || (mediaMap[media] = window.matchMedia(media));\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { delegate, parseUrl } from 'dom-utils';\nimport provide from '../provide';\nimport { plugins, trackUsage } from '../usage';\nimport { assign, createFieldsObj, getAttributeFields, withTimeout } from '../utilities';\n\n/**\n * Class for the `outboundLinkTracker` analytics.js plugin.\n * @implements {OutboundLinkTrackerPublicInterface}\n */\nvar OutboundLinkTracker = /*#__PURE__*/function () {\n /**\n * Registers outbound link tracking on a tracker object.\n * @param {!Tracker} tracker Passed internally by analytics.js\n * @param {?Object} opts Passed by the require command.\n */\n function OutboundLinkTracker(tracker, opts) {\n var _this = this;\n _classCallCheck(this, OutboundLinkTracker);\n trackUsage(tracker, plugins.OUTBOUND_LINK_TRACKER);\n\n // Feature detects to prevent errors in unsupporting browsers.\n if (!window.addEventListener) return;\n\n /** @type {OutboundLinkTrackerOpts} */\n var defaultOpts = {\n events: ['click'],\n linkSelector: 'a, area',\n shouldTrackOutboundLink: this.shouldTrackOutboundLink,\n fieldsObj: {},\n attributePrefix: 'ga-'\n // hitFilter: undefined,\n };\n\n this.opts = /** @type {OutboundLinkTrackerOpts} */\n assign(defaultOpts, opts);\n this.tracker = tracker;\n\n // Binds methods.\n this.handleLinkInteractions = this.handleLinkInteractions.bind(this);\n\n // Creates a mapping of events to their delegates\n this.delegates = {};\n this.opts.events.forEach(function (event) {\n _this.delegates[event] = delegate(document, event, _this.opts.linkSelector, _this.handleLinkInteractions, {\n composed: true,\n useCapture: true\n });\n });\n }\n\n /**\n * Handles all interactions on link elements. A link is considered an outbound\n * link if its hostname property does not match location.hostname. When the\n * beacon transport method is not available, the links target is set to\n * \"_blank\" to ensure the hit can be sent.\n * @param {Event} event The DOM click event.\n * @param {Element} link The delegated event target.\n */\n _createClass(OutboundLinkTracker, [{\n key: \"handleLinkInteractions\",\n value: function handleLinkInteractions(event, link) {\n var _this2 = this;\n if (this.opts.shouldTrackOutboundLink(link, parseUrl)) {\n var href = link.getAttribute('href') || link.getAttribute('xlink:href');\n var url = parseUrl(href);\n\n /** @type {FieldsObj} */\n var defaultFields = {\n transport: 'beacon',\n eventCategory: 'Outbound Link',\n eventAction: event.type,\n eventLabel: url.href\n };\n\n /** @type {FieldsObj} */\n var userFields = assign({}, this.opts.fieldsObj, getAttributeFields(link, this.opts.attributePrefix));\n var fieldsObj = createFieldsObj(defaultFields, userFields, this.tracker, this.opts.hitFilter, link, event);\n if (!navigator.sendBeacon && linkClickWillUnloadCurrentPage(event, link)) {\n // Adds a new event handler at the last minute to minimize the chances\n // that another event handler for this click will run after this logic.\n var clickHandler = function clickHandler() {\n window.removeEventListener('click', clickHandler);\n\n // Checks to make sure another event handler hasn't already prevented\n // the default action. If it has the custom redirect isn't needed.\n if (!event.defaultPrevented) {\n // Stops the click and waits until the hit is complete (with\n // timeout) for browsers that don't support beacon.\n event.preventDefault();\n var oldHitCallback = fieldsObj.hitCallback;\n fieldsObj.hitCallback = withTimeout(function () {\n if (typeof oldHitCallback == 'function') oldHitCallback();\n location.href = href;\n });\n }\n _this2.tracker.send('event', fieldsObj);\n };\n window.addEventListener('click', clickHandler);\n } else {\n this.tracker.send('event', fieldsObj);\n }\n }\n }\n\n /**\n * Determines whether or not the tracker should send a hit when a link is\n * clicked. By default links with a hostname property not equal to the current\n * hostname are tracked.\n * @param {Element} link The link that was clicked on.\n * @param {Function} parseUrlFn A cross-browser utility method for url\n * parsing (note: renamed to disambiguate when compiling).\n * @return {boolean} Whether or not the link should be tracked.\n */\n }, {\n key: \"shouldTrackOutboundLink\",\n value: function shouldTrackOutboundLink(link, parseUrlFn) {\n var href = link.getAttribute('href') || link.getAttribute('xlink:href');\n var url = parseUrlFn(href);\n return url.hostname != location.hostname && url.protocol.slice(0, 4) == 'http';\n }\n\n /**\n * Removes all event listeners and instance properties.\n */\n }, {\n key: \"remove\",\n value: function remove() {\n var _this3 = this;\n Object.keys(this.delegates).forEach(function (key) {\n _this3.delegates[key].destroy();\n });\n }\n }]);\n return OutboundLinkTracker;\n}();\nprovide('outboundLinkTracker', OutboundLinkTracker);\n\n/**\n * Determines if a link click event will cause the current page to upload.\n * Note: most link clicks *will* cause the current page to unload because they\n * initiate a page navigation. The most common reason a link click won't cause\n * the page to unload is if the clicked was to open the link in a new tab.\n * @param {Event} event The DOM event.\n * @param {Element} link The link element clicked on.\n * @return {boolean} True if the current page will be unloaded.\n */\nfunction linkClickWillUnloadCurrentPage(event, link) {\n return !(\n // The event type can be customized; we only care about clicks here.\n event.type != 'click' ||\n // Links with target=\"_blank\" set will open in a new window/tab.\n link.target == '_blank' ||\n // On mac, command clicking will open a link in a new tab. Control\n // clicking does this on windows.\n event.metaKey || event.ctrlKey ||\n // Shift clicking in Chrome/Firefox opens the link in a new window\n // In Safari it adds the URL to a favorites list.\n event.shiftKey ||\n // On Mac, clicking with the option key is used to download a resouce.\n event.altKey ||\n // Middle mouse button clicks (which == 2) are used to open a link\n // in a new tab, and right clicks (which == 3) on Firefox trigger\n // a click event.\n event.which > 1);\n}","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport { PriorityQueue } from '.';\nimport { Context } from '../../core/context';\nimport { isBrowser } from '../../core/environment';\nvar loc = {\n getItem: function getItem() {},\n setItem: function setItem() {},\n removeItem: function removeItem() {}\n};\ntry {\n loc = isBrowser() && window.localStorage ? window.localStorage : loc;\n} catch (err) {\n console.warn('Unable to access localStorage', err);\n}\nfunction persisted(key) {\n var items = loc.getItem(key);\n return (items ? JSON.parse(items) : []).map(function (p) {\n return new Context(p.event, p.id);\n });\n}\nfunction persistItems(key, items) {\n var existing = persisted(key);\n var all = __spreadArray(__spreadArray([], items, true), existing, true);\n var merged = all.reduce(function (acc, item) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[item.id] = item, _a));\n }, {});\n loc.setItem(key, JSON.stringify(Object.values(merged)));\n}\nfunction seen(key) {\n var stored = loc.getItem(key);\n return stored ? JSON.parse(stored) : {};\n}\nfunction persistSeen(key, memory) {\n var stored = seen(key);\n loc.setItem(key, JSON.stringify(__assign(__assign({}, stored), memory)));\n}\nfunction remove(key) {\n loc.removeItem(key);\n}\nvar now = function now() {\n return new Date().getTime();\n};\nfunction mutex(key, onUnlock, attempt) {\n if (attempt === void 0) {\n attempt = 0;\n }\n var lockTimeout = 50;\n var lockKey = \"persisted-queue:v1:\".concat(key, \":lock\");\n var expired = function expired(lock) {\n return new Date().getTime() > lock;\n };\n var rawLock = loc.getItem(lockKey);\n var lock = rawLock ? JSON.parse(rawLock) : null;\n var allowed = lock === null || expired(lock);\n if (allowed) {\n loc.setItem(lockKey, JSON.stringify(now() + lockTimeout));\n onUnlock();\n loc.removeItem(lockKey);\n return;\n }\n if (!allowed && attempt < 3) {\n setTimeout(function () {\n mutex(key, onUnlock, attempt + 1);\n }, lockTimeout);\n } else {\n console.error('Unable to retrieve lock');\n }\n}\nvar PersistedPriorityQueue = /** @class */function (_super) {\n __extends(PersistedPriorityQueue, _super);\n function PersistedPriorityQueue(maxAttempts, key) {\n var _this = _super.call(this, maxAttempts, []) || this;\n var itemsKey = \"persisted-queue:v1:\".concat(key, \":items\");\n var seenKey = \"persisted-queue:v1:\".concat(key, \":seen\");\n var saved = [];\n var lastSeen = {};\n mutex(key, function () {\n try {\n saved = persisted(itemsKey);\n lastSeen = seen(seenKey);\n remove(itemsKey);\n remove(seenKey);\n _this.queue = __spreadArray(__spreadArray([], saved, true), _this.queue, true);\n _this.seen = __assign(__assign({}, lastSeen), _this.seen);\n } catch (err) {\n console.error(err);\n }\n });\n window.addEventListener('pagehide', function () {\n // we deliberately want to use the less powerful 'pagehide' API to only persist on events where the analytics instance gets destroyed, and not on tab away.\n if (_this.todo > 0) {\n var items_1 = __spreadArray(__spreadArray([], _this.queue, true), _this.future, true);\n try {\n mutex(key, function () {\n persistItems(itemsKey, items_1);\n persistSeen(seenKey, _this.seen);\n });\n } catch (err) {\n console.error(err);\n }\n }\n });\n return _this;\n }\n return PersistedPriorityQueue;\n}(PriorityQueue);\nexport { PersistedPriorityQueue };","// This an imperfect polyfill for globalThis\nexport var getGlobal = function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return null;\n};","var IDX = 256,\n HEX = [],\n BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\nexport function v4() {\n var i = 0,\n num,\n out = '';\n if (!BUFFER || IDX + 16 > 256) {\n BUFFER = Array(i = 256);\n while (i--) BUFFER[i] = 256 * Math.random() | 0;\n i = IDX = 0;\n }\n for (; i < 16; i++) {\n num = BUFFER[IDX + i];\n if (i == 6) out += HEX[num & 15 | 64];else if (i == 8) out += HEX[num & 63 | 128];else out += HEX[num];\n if (i & 1 && i > 1 && i < 11) out += '-';\n }\n IDX++;\n return out;\n}","import { Alias, Facade, Group, Identify, Page, Screen, Track } from '@segment/facade';\nexport function toFacade(evt, options) {\n var fcd = new Facade(evt, options);\n if (evt.type === 'track') {\n fcd = new Track(evt, options);\n }\n if (evt.type === 'identify') {\n fcd = new Identify(evt, options);\n }\n if (evt.type === 'page') {\n fcd = new Page(evt, options);\n }\n if (evt.type === 'alias') {\n fcd = new Alias(evt, options);\n }\n if (evt.type === 'group') {\n fcd = new Group(evt, options);\n }\n if (evt.type === 'screen') {\n fcd = new Screen(evt, options);\n }\n Object.defineProperty(fcd, 'obj', {\n value: evt,\n writable: true\n });\n return fcd;\n}","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport var VERSION = '2.4.1';\nexport var DEV_ID = 'i5iSjo';\nexport var VERSION_PARAM = '_av';\nexport var USAGE_PARAM = '_au';\nexport var NULL_DIMENSION = '(not set)';","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An simple reimplementation of the native Node.js EventEmitter class.\n * The goal of this implementation is to be as small as possible.\n */\nvar EventEmitter = /*#__PURE__*/function () {\n /**\n * Creates the event registry.\n */\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.registry_ = {};\n }\n\n /**\n * Adds a handler function to the registry for the passed event.\n * @param {string} event The event name.\n * @param {!Function} fn The handler to be invoked when the passed\n * event is emitted.\n */\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(event, fn) {\n this.getRegistry_(event).push(fn);\n }\n\n /**\n * Removes a handler function from the registry for the passed event.\n * @param {string=} event The event name.\n * @param {Function=} fn The handler to be removed.\n */\n }, {\n key: \"off\",\n value: function off() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n if (event && fn) {\n var eventRegistry = this.getRegistry_(event);\n var handlerIndex = eventRegistry.indexOf(fn);\n if (handlerIndex > -1) {\n eventRegistry.splice(handlerIndex, 1);\n }\n } else {\n this.registry_ = {};\n }\n }\n\n /**\n * Runs all registered handlers for the passed event with the optional args.\n * @param {string} event The event name.\n * @param {...*} args The arguments to be passed to the handler.\n */\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n this.getRegistry_(event).forEach(function (fn) {\n return fn.apply(void 0, args);\n });\n }\n\n /**\n * Returns the total number of event handlers currently registered.\n * @return {number}\n */\n }, {\n key: \"getEventCount\",\n value: function getEventCount() {\n var _this = this;\n var eventCount = 0;\n Object.keys(this.registry_).forEach(function (event) {\n eventCount += _this.getRegistry_(event).length;\n });\n return eventCount;\n }\n\n /**\n * Returns an array of handlers associated with the passed event name.\n * If no handlers have been registered, an empty array is returned.\n * @private\n * @param {string} event The event name.\n * @return {!Array} An array of handler functions.\n */\n }, {\n key: \"getRegistry_\",\n value: function getRegistry_(event) {\n return this.registry_[event] = this.registry_[event] || [];\n }\n }]);\n return EventEmitter;\n}();\nexport { EventEmitter as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from './event-emitter';\nimport { assign } from './utilities';\nvar AUTOTRACK_PREFIX = 'autotrack';\nvar instances = {};\nvar isListening = false;\n\n/** @type {boolean|undefined} */\nvar browserSupportsLocalStorage;\n\n/**\n * A storage object to simplify interacting with localStorage.\n */\nvar Store = /*#__PURE__*/function (_EventEmitter) {\n _inherits(Store, _EventEmitter);\n var _super = _createSuper(Store);\n /**\n * @param {string} key A key unique to this store.\n * @param {Object=} defaults An optional object of key/value defaults.\n */\n function Store(key) {\n var _this;\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Store);\n _this = _super.call(this);\n _this.key_ = key;\n _this.defaults_ = defaults;\n\n /** @type {?Object} */\n _this.cache_ = null; // Will be set after the first get.\n return _this;\n }\n\n /**\n * Gets the data stored in localStorage for this store. If the cache is\n * already populated, return it as is (since it's always kept up-to-date\n * and in sync with activity in other windows via the `storage` event).\n * TODO(philipwalton): Implement schema migrations if/when a new\n * schema version is introduced.\n * @return {!Object} The stored data merged with the defaults.\n */\n _createClass(Store, [{\n key: \"get\",\n value: function get() {\n if (this.cache_) {\n return this.cache_;\n } else {\n if (Store.isSupported_()) {\n try {\n this.cache_ = parse(Store.get_(this.key_));\n } catch (err) {\n // Do nothing.\n }\n }\n return this.cache_ = assign({}, this.defaults_, this.cache_);\n }\n }\n\n /**\n * Saves the passed data object to localStorage,\n * merging it with the existing data.\n * @param {Object} newData The data to save.\n */\n }, {\n key: \"set\",\n value: function set(newData) {\n this.cache_ = assign({}, this.defaults_, this.cache_, newData);\n if (Store.isSupported_()) {\n try {\n Store.set_(this.key_, JSON.stringify(this.cache_));\n } catch (err) {\n // Do nothing.\n }\n }\n }\n\n /**\n * Clears the data in localStorage for the current store.\n */\n }, {\n key: \"clear\",\n value: function clear() {\n this.cache_ = {};\n if (Store.isSupported_()) {\n try {\n Store.clear_(this.key_);\n } catch (err) {\n // Do nothing.\n }\n }\n }\n\n /**\n * Removes the store instance for the global instances map. If this is the\n * last store instance, the storage listener is also removed.\n * Note: this does not erase the stored data. Use `clear()` for that.\n */\n }, {\n key: \"destroy\",\n value: function destroy() {\n delete instances[this.key_];\n if (!Object.keys(instances).length) {\n removeStorageListener();\n }\n }\n }], [{\n key: \"getOrCreate\",\n value:\n /**\n * Gets an existing instance for the passed arguements or creates a new\n * instance if one doesn't exist.\n * @param {string} trackingId The tracking ID for the GA property.\n * @param {string} namespace A namespace unique to this store.\n * @param {Object=} defaults An optional object of key/value defaults.\n * @return {Store} The Store instance.\n */\n function getOrCreate(trackingId, namespace, defaults) {\n var key = [AUTOTRACK_PREFIX, trackingId, namespace].join(':');\n\n // Don't create multiple instances for the same tracking Id and namespace.\n if (!instances[key]) {\n instances[key] = new Store(key, defaults);\n if (!isListening) initStorageListener();\n }\n return instances[key];\n }\n\n /**\n * Returns true if the browser supports and can successfully write to\n * localStorage. The results is cached so this method can be invoked many\n * times with no extra performance cost.\n * @private\n * @return {boolean}\n */\n }, {\n key: \"isSupported_\",\n value: function isSupported_() {\n if (browserSupportsLocalStorage != null) {\n return browserSupportsLocalStorage;\n }\n try {\n window.localStorage.setItem(AUTOTRACK_PREFIX, AUTOTRACK_PREFIX);\n window.localStorage.removeItem(AUTOTRACK_PREFIX);\n browserSupportsLocalStorage = true;\n } catch (err) {\n browserSupportsLocalStorage = false;\n }\n return browserSupportsLocalStorage;\n }\n\n /**\n * Wraps the native localStorage method for each stubbing in tests.\n * @private\n * @param {string} key The store key.\n * @return {string|null} The stored value.\n */\n }, {\n key: \"get_\",\n value: function get_(key) {\n return window.localStorage.getItem(key);\n }\n\n /**\n * Wraps the native localStorage method for each stubbing in tests.\n * @private\n * @param {string} key The store key.\n * @param {string} value The value to store.\n */\n }, {\n key: \"set_\",\n value: function set_(key, value) {\n window.localStorage.setItem(key, value);\n }\n\n /**\n * Wraps the native localStorage method for each stubbing in tests.\n * @private\n * @param {string} key The store key.\n */\n }, {\n key: \"clear_\",\n value: function clear_(key) {\n window.localStorage.removeItem(key);\n }\n }]);\n return Store;\n}(EventEmitter);\n/**\n * Adds a single storage event listener and flips the global `isListening`\n * flag so multiple events aren't added.\n */\nexport { Store as default };\nfunction initStorageListener() {\n window.addEventListener('storage', storageListener);\n isListening = true;\n}\n\n/**\n * Removes the storage event listener and flips the global `isListening`\n * flag so it can be re-added later.\n */\nfunction removeStorageListener() {\n window.removeEventListener('storage', storageListener);\n isListening = false;\n}\n\n/**\n * The global storage event listener.\n * @param {!Event} event The DOM event.\n */\nfunction storageListener(event) {\n var store = instances[event.key];\n if (store) {\n var oldData = assign({}, store.defaults_, parse(event.oldValue));\n var newData = assign({}, store.defaults_, parse(event.newValue));\n store.cache_ = newData;\n store.emit('externalSet', newData, oldData);\n }\n}\n\n/**\n * Parses a source string as JSON\n * @param {string|null} source\n * @return {!Object} The JSON object.\n */\nfunction parse(source) {\n var data = {};\n if (source) {\n try {\n data = /** @type {!Object} */JSON.parse(source);\n } catch (err) {\n // Do nothing.\n }\n }\n return data;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport MethodChain from './method-chain';\nimport Store from './store';\nimport { now, uuid } from './utilities';\nvar SECONDS = 1000;\nvar MINUTES = 60 * SECONDS;\nvar instances = {};\n\n/**\n * A session management class that helps track session boundaries\n * across multiple open tabs/windows.\n */\nvar Session = /*#__PURE__*/function () {\n /**\n * @param {!Tracker} tracker An analytics.js tracker object.\n * @param {number} timeout The session timeout (in minutes). This value\n * should match what's set in the \"Session settings\" section of the\n * Google Analytics admin.\n * @param {string=} timeZone The optional IANA time zone of the view. This\n * value should match what's set in the \"View settings\" section of the\n * Google Analytics admin. (Note: this assumes all views for the property\n * use the same time zone. If that's not true, it's better not to use\n * this feature).\n */\n function Session(tracker, timeout, timeZone) {\n _classCallCheck(this, Session);\n this.tracker = tracker;\n this.timeout = timeout || Session.DEFAULT_TIMEOUT;\n this.timeZone = timeZone;\n\n // Binds methods.\n this.sendHitTaskOverride = this.sendHitTaskOverride.bind(this);\n\n // Overrides into the trackers sendHitTask method.\n MethodChain.add(tracker, 'sendHitTask', this.sendHitTaskOverride);\n\n // Some browser doesn't support various features of the\n // `Intl.DateTimeFormat` API, so we have to try/catch it. Consequently,\n // this allows us to assume the presence of `this.dateTimeFormatter` means\n // it works in the current browser.\n try {\n this.dateTimeFormatter = new Intl.DateTimeFormat('en-US', {\n timeZone: this.timeZone\n });\n } catch (err) {\n // Do nothing.\n }\n\n /** @type {SessionStoreData} */\n var defaultProps = {\n hitTime: 0,\n isExpired: false\n };\n this.store = Store.getOrCreate(tracker.get('trackingId'), 'session', defaultProps);\n\n // Ensure the session has an ID.\n if (!this.store.get().id) {\n this.store.set( /** @type {SessionStoreData} */{\n id: uuid()\n });\n }\n }\n\n /**\n * Returns the ID of the current session.\n * @return {string}\n */\n _createClass(Session, [{\n key: \"getId\",\n value: function getId() {\n return this.store.get().id;\n }\n\n /**\n * Accepts a session ID and returns true if the specified session has\n * evidentially expired. A session can expire for two reasons:\n * - More than 30 minutes has elapsed since the previous hit\n * was sent (The 30 minutes number is the Google Analytics default, but\n * it can be modified in GA admin \"Session settings\").\n * - A new day has started since the previous hit, in the\n * specified time zone (should correspond to the time zone of the\n * property's views).\n *\n * Note: since real session boundaries are determined at processing time,\n * this is just a best guess rather than a source of truth.\n *\n * @param {string} id The ID of a session to check for expiry.\n * @return {boolean} True if the session has not exp\n */\n }, {\n key: \"isExpired\",\n value: function isExpired() {\n var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getId();\n // If a session ID is passed and it doesn't match the current ID,\n // assume it's from an expired session. If no ID is passed, assume the ID\n // of the current session.\n if (id != this.getId()) return true;\n\n /** @type {SessionStoreData} */\n var sessionData = this.store.get();\n\n // `isExpired` will be `true` if the sessionControl field was set to\n // 'end' on the previous hit.\n if (sessionData.isExpired) return true;\n var oldHitTime = sessionData.hitTime;\n\n // Only consider a session expired if previous hit time data exists, and\n // the previous hit time is greater than that session timeout period or\n // the hits occurred on different days in the session timezone.\n if (oldHitTime) {\n var currentDate = new Date();\n var oldHitDate = new Date(oldHitTime);\n if (currentDate - oldHitDate > this.timeout * MINUTES || this.datesAreDifferentInTimezone(currentDate, oldHitDate)) {\n return true;\n }\n }\n\n // For all other cases return false.\n return false;\n }\n\n /**\n * Returns true if (and only if) the timezone date formatting is supported\n * in the current browser and if the two dates are definitively not the\n * same date in the session timezone. Anything short of this returns false.\n * @param {!Date} d1\n * @param {!Date} d2\n * @return {boolean}\n */\n }, {\n key: \"datesAreDifferentInTimezone\",\n value: function datesAreDifferentInTimezone(d1, d2) {\n if (!this.dateTimeFormatter) {\n return false;\n } else {\n return this.dateTimeFormatter.format(d1) != this.dateTimeFormatter.format(d2);\n }\n }\n\n /**\n * Keeps track of when the previous hit was sent to determine if a session\n * has expired. Also inspects the `sessionControl` field to handles\n * expiration accordingly.\n * @param {function(!Model)} originalMethod A reference to the overridden\n * method.\n * @return {function(!Model)}\n */\n }, {\n key: \"sendHitTaskOverride\",\n value: function sendHitTaskOverride(originalMethod) {\n var _this = this;\n return function (model) {\n originalMethod(model);\n var sessionControl = model.get('sessionControl');\n var sessionWillStart = sessionControl == 'start' || _this.isExpired();\n var sessionWillEnd = sessionControl == 'end';\n\n /** @type {SessionStoreData} */\n var sessionData = _this.store.get();\n sessionData.hitTime = now();\n if (sessionWillStart) {\n sessionData.isExpired = false;\n sessionData.id = uuid();\n }\n if (sessionWillEnd) {\n sessionData.isExpired = true;\n }\n _this.store.set(sessionData);\n };\n }\n\n /**\n * Restores the tracker's original `sendHitTask` to the state before\n * session control was initialized and removes this instance from the global\n * store.\n */\n }, {\n key: \"destroy\",\n value: function destroy() {\n MethodChain.remove(this.tracker, 'sendHitTask', this.sendHitTaskOverride);\n this.store.destroy();\n delete instances[this.tracker.get('trackingId')];\n }\n }], [{\n key: \"getOrCreate\",\n value:\n /**\n * Gets an existing instance for the passed arguments or creates a new\n * instance if one doesn't exist.\n * @param {!Tracker} tracker An analytics.js tracker object.\n * @param {number} timeout The session timeout (in minutes). This value\n * should match what's set in the \"Session settings\" section of the\n * Google Analytics admin.\n * @param {string=} timeZone The optional IANA time zone of the view. This\n * value should match what's set in the \"View settings\" section of the\n * Google Analytics admin. (Note: this assumes all views for the property\n * use the same time zone. If that's not true, it's better not to use\n * this feature).\n * @return {Session} The Session instance.\n */\n function getOrCreate(tracker, timeout, timeZone) {\n // Don't create multiple instances for the same property.\n var trackingId = tracker.get('trackingId');\n if (instances[trackingId]) {\n return instances[trackingId];\n } else {\n return instances[trackingId] = new Session(tracker, timeout, timeZone);\n }\n }\n }]);\n return Session;\n}();\nexport { Session as default };\nSession.DEFAULT_TIMEOUT = 30; // minutes","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * Copyright 2017 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { parseUrl } from 'dom-utils';\nimport MethodChain from '../method-chain';\nimport provide from '../provide';\nimport Session from '../session';\nimport Store from '../store';\nimport { plugins, trackUsage } from '../usage';\nimport { assign, createFieldsObj, debounce, isObject } from '../utilities';\n\n/**\n * Class for the `maxScrollQueryTracker` analytics.js plugin.\n * @implements {MaxScrollTrackerPublicInterface}\n */\nvar MaxScrollTracker = /*#__PURE__*/function () {\n /**\n * Registers outbound link tracking on tracker object.\n * @param {!Tracker} tracker Passed internally by analytics.js\n * @param {?Object} opts Passed by the require command.\n */\n function MaxScrollTracker(tracker, opts) {\n _classCallCheck(this, MaxScrollTracker);\n trackUsage(tracker, plugins.MAX_SCROLL_TRACKER);\n\n // Feature detects to prevent errors in unsupporting browsers.\n if (!window.addEventListener) return;\n\n /** @type {MaxScrollTrackerOpts} */\n var defaultOpts = {\n increaseThreshold: 20,\n sessionTimeout: Session.DEFAULT_TIMEOUT,\n // timeZone: undefined,\n // maxScrollMetricIndex: undefined,\n fieldsObj: {}\n // hitFilter: undefined\n };\n\n this.opts = /** @type {MaxScrollTrackerOpts} */\n assign(defaultOpts, opts);\n this.tracker = tracker;\n this.pagePath = this.getPagePath();\n\n // Binds methods to `this`.\n this.handleScroll = debounce(this.handleScroll.bind(this), 500);\n this.trackerSetOverride = this.trackerSetOverride.bind(this);\n\n // Creates the store and binds storage change events.\n this.store = Store.getOrCreate(tracker.get('trackingId'), 'plugins/max-scroll-tracker');\n\n // Creates the session and binds session events.\n this.session = Session.getOrCreate(tracker, this.opts.sessionTimeout, this.opts.timeZone);\n\n // Override the built-in tracker.set method to watch for changes.\n MethodChain.add(tracker, 'set', this.trackerSetOverride);\n this.listenForMaxScrollChanges();\n }\n\n /**\n * Adds a scroll event listener if the max scroll percentage for the\n * current page isn't already at 100%.\n */\n _createClass(MaxScrollTracker, [{\n key: \"listenForMaxScrollChanges\",\n value: function listenForMaxScrollChanges() {\n var maxScrollPercentage = this.getMaxScrollPercentageForCurrentPage();\n if (maxScrollPercentage < 100) {\n window.addEventListener('scroll', this.handleScroll);\n }\n }\n\n /**\n * Removes an added scroll listener.\n */\n }, {\n key: \"stopListeningForMaxScrollChanges\",\n value: function stopListeningForMaxScrollChanges() {\n window.removeEventListener('scroll', this.handleScroll);\n }\n\n /**\n * Handles the scroll event. If the current scroll percentage is greater\n * that the stored scroll event by at least the specified increase threshold,\n * send an event with the increase amount.\n */\n }, {\n key: \"handleScroll\",\n value: function handleScroll() {\n var pageHeight = getPageHeight();\n var scrollPos = window.pageYOffset; // scrollY isn't supported in IE.\n var windowHeight = window.innerHeight;\n\n // Ensure scrollPercentage is an integer between 0 and 100.\n var scrollPercentage = Math.min(100, Math.max(0, Math.round(100 * (scrollPos / (pageHeight - windowHeight)))));\n\n // If the max scroll data gets out of the sync with the session data\n // (for whatever reason), clear it.\n var sessionId = this.session.getId();\n if (sessionId != this.store.get().sessionId) {\n this.store.clear();\n this.store.set({\n sessionId: sessionId\n });\n }\n\n // If the session has expired, clear the stored data and don't send any\n // events (since they'd start a new session). Note: this check is needed,\n // in addition to the above check, to handle cases where the session IDs\n // got out of sync, but the session didn't expire.\n if (this.session.isExpired(this.store.get().sessionId)) {\n this.store.clear();\n } else {\n var maxScrollPercentage = this.getMaxScrollPercentageForCurrentPage();\n if (scrollPercentage > maxScrollPercentage) {\n if (scrollPercentage == 100 || maxScrollPercentage == 100) {\n this.stopListeningForMaxScrollChanges();\n }\n var increaseAmount = scrollPercentage - maxScrollPercentage;\n if (scrollPercentage == 100 || increaseAmount >= this.opts.increaseThreshold) {\n this.setMaxScrollPercentageForCurrentPage(scrollPercentage);\n this.sendMaxScrollEvent(increaseAmount, scrollPercentage);\n }\n }\n }\n }\n\n /**\n * Detects changes to the tracker object and triggers an update if the page\n * field has changed.\n * @param {function((Object|string), (string|undefined))} originalMethod\n * A reference to the overridden method.\n * @return {function((Object|string), (string|undefined))}\n */\n }, {\n key: \"trackerSetOverride\",\n value: function trackerSetOverride(originalMethod) {\n var _this = this;\n return function (field, value) {\n originalMethod(field, value);\n\n /** @type {!FieldsObj} */\n var fields = isObject(field) ? field : _defineProperty({}, field, value);\n if (fields.page) {\n var lastPagePath = _this.pagePath;\n _this.pagePath = _this.getPagePath();\n if (_this.pagePath != lastPagePath) {\n // Since event listeners for the same function are never added twice,\n // we don't need to worry about whether we're already listening. We\n // can just add the event listener again.\n _this.listenForMaxScrollChanges();\n }\n }\n };\n }\n\n /**\n * Sends an event for the increased max scroll percentage amount.\n * @param {number} increaseAmount\n * @param {number} scrollPercentage\n */\n }, {\n key: \"sendMaxScrollEvent\",\n value: function sendMaxScrollEvent(increaseAmount, scrollPercentage) {\n /** @type {FieldsObj} */\n var defaultFields = {\n transport: 'beacon',\n eventCategory: 'Max Scroll',\n eventAction: 'increase',\n eventValue: increaseAmount,\n eventLabel: String(scrollPercentage),\n nonInteraction: true\n };\n\n // If a custom metric was specified, set it equal to the event value.\n if (this.opts.maxScrollMetricIndex) {\n defaultFields['metric' + this.opts.maxScrollMetricIndex] = increaseAmount;\n }\n this.tracker.send('event', createFieldsObj(defaultFields, this.opts.fieldsObj, this.tracker, this.opts.hitFilter));\n }\n\n /**\n * Stores the current max scroll percentage for the current page.\n * @param {number} maxScrollPercentage\n */\n }, {\n key: \"setMaxScrollPercentageForCurrentPage\",\n value: function setMaxScrollPercentageForCurrentPage(maxScrollPercentage) {\n var _this$store$set;\n this.store.set((_this$store$set = {}, _defineProperty(_this$store$set, this.pagePath, maxScrollPercentage), _defineProperty(_this$store$set, \"sessionId\", this.session.getId()), _this$store$set));\n }\n\n /**\n * Gets the stored max scroll percentage for the current page.\n * @return {number}\n */\n }, {\n key: \"getMaxScrollPercentageForCurrentPage\",\n value: function getMaxScrollPercentageForCurrentPage() {\n return this.store.get()[this.pagePath] || 0;\n }\n\n /**\n * Gets the page path from the tracker object.\n * @return {number}\n */\n }, {\n key: \"getPagePath\",\n value: function getPagePath() {\n var url = parseUrl(this.tracker.get('page') || this.tracker.get('location'));\n return url.pathname + url.search;\n }\n\n /**\n * Removes all event listeners and restores overridden methods.\n */\n }, {\n key: \"remove\",\n value: function remove() {\n this.session.destroy();\n this.stopListeningForMaxScrollChanges();\n MethodChain.remove(this.tracker, 'set', this.trackerSetOverride);\n }\n }]);\n return MaxScrollTracker;\n}();\nprovide('maxScrollTracker', MaxScrollTracker);\n\n/**\n * Gets the maximum height of the page including scrollable area.\n * @return {number}\n */\nfunction getPageHeight() {\n var html = document.documentElement;\n var body = document.body;\n return Math.max(html.offsetHeight, html.scrollHeight, body.offsetHeight, body.scrollHeight);\n}","/* @flow */\n/* eslint import/no-commonjs: 0 */\n\n// eslint-disable-next-line no-process-env\nif (process && process.env && process.env.ZOID_FRAME_ONLY) {\n // $FlowFixMe\n module.exports = require('./dist/zoid.frame');\n // $FlowFixMe\n module.exports[\"default\"] = module.exports;\n} else {\n // $FlowFixMe\n module.exports = require('./dist/zoid');\n // $FlowFixMe\n module.exports[\"default\"] = module.exports;\n}","import zoid from 'zoid9078'\nimport { hashCode } from '../utils/hashing'\n\nexport default class FrameFactory {\n constructor () {\n this.frameComponents = {}\n // Setup frames used by the 2-step experience loading process. These can be\n // removed once that approach has been completely deprecated.\n this.getFrame()\n this.getFrame('small')\n this.getFrame('story')\n this.getFrame('full')\n }\n\n getFrame (variant = 'embed', url = null) {\n console.debug('APP:frame', variant, url)\n\n let key = variant\n if (url != null) {\n key = `${variant}-${hashCode(url)}`\n } else {\n url = `${window.provenance.rootUrl}/x`\n }\n\n if (this.frameComponents[key]) {\n console.debug('found cached frame')\n return this.frameComponents[key]\n }\n\n let height = '100%'\n let autoResizeHeight = true\n\n switch (variant) {\n case 'small':\n height = '482px'\n break\n case 'story':\n break\n case 'full':\n autoResizeHeight = false\n break\n }\n\n const component = zoid.create({\n tag: `provenance-experience-${key}`,\n url,\n dimensions: {\n height,\n width: '100%'\n },\n autoResize: {\n height: autoResizeHeight,\n width: false\n },\n props: {\n url: {\n type: 'string',\n required: true\n },\n version: {\n type: 'string',\n required: false\n },\n openModal: {\n type: 'function',\n required: false\n }\n }\n })\n\n this.frameComponents[key] = {\n component,\n class: `ProvenanceModal--${variant}Variant`\n }\n return this.frameComponents[key]\n }\n}\n","export function hashCode (s) {\n return Math.abs(s.split('').reduce(function (a, b) { a = ((a << 5) - a) + b.charCodeAt(0); return a & a }, 0))\n}\n","// This variable is used as an optional fallback for when customers\n// host or proxy their own analytics.js.\ntry {\n window.analyticsWriteKey = '__WRITE_KEY__';\n} catch (_) {\n // @ eslint-disable-next-line\n}\nexport function embeddedWriteKey() {\n if (window.analyticsWriteKey === undefined) {\n return undefined;\n }\n // this is done so that we don't accidentally override every reference to __write_key__\n return window.analyticsWriteKey !== ['__', 'WRITE', '_', 'KEY', '__'].join('') ? window.analyticsWriteKey : undefined;\n}","import { embeddedWriteKey } from './embedded-write-key';\nvar analyticsScriptRegex = /(https:\\/\\/.*)\\/analytics\\.js\\/v1\\/(?:.*?)\\/(?:platform|analytics.*)?/;\nvar getCDNUrlFromScriptTag = function getCDNUrlFromScriptTag() {\n var cdn;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n scripts.forEach(function (s) {\n var _a;\n var src = (_a = s.getAttribute('src')) !== null && _a !== void 0 ? _a : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n cdn = result[1];\n }\n });\n return cdn;\n};\nvar _globalCDN; // set globalCDN as in-memory singleton\nvar getGlobalCDNUrl = function getGlobalCDNUrl() {\n var _a;\n var result = _globalCDN !== null && _globalCDN !== void 0 ? _globalCDN : (_a = window.analytics) === null || _a === void 0 ? void 0 : _a._cdn;\n return result;\n};\nexport var setGlobalCDNUrl = function setGlobalCDNUrl(cdn) {\n if (window.analytics) {\n window.analytics._cdn = cdn;\n }\n _globalCDN = cdn;\n};\nexport var getCDN = function getCDN() {\n var globalCdnUrl = getGlobalCDNUrl();\n if (globalCdnUrl) return globalCdnUrl;\n var cdnFromScriptTag = getCDNUrlFromScriptTag();\n if (cdnFromScriptTag) {\n return cdnFromScriptTag;\n } else {\n // it's possible that the CDN is not found in the page because:\n // - the script is loaded through a proxy\n // - the script is removed after execution\n // in this case, we fall back to the default Segment CDN\n return \"https://cdn.segment.com\";\n }\n};\nexport var getNextIntegrationsURL = function getNextIntegrationsURL() {\n var cdn = getCDN();\n return \"\".concat(cdn, \"/next-integrations\");\n};\n/**\n * Replaces the CDN URL in the script tag with the one from Analytics.js 1.0\n *\n * @returns the path to Analytics JS 1.0\n **/\nexport function getLegacyAJSPath() {\n var _a, _b;\n var writeKey = (_a = embeddedWriteKey()) !== null && _a !== void 0 ? _a : window.analytics._writeKey;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n var path = undefined;\n for (var _i = 0, scripts_1 = scripts; _i < scripts_1.length; _i++) {\n var s = scripts_1[_i];\n var src = (_b = s.getAttribute('src')) !== null && _b !== void 0 ? _b : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n path = src;\n break;\n }\n }\n if (path) {\n return path.replace('analytics.min.js', 'analytics.classic.js');\n }\n return \"https://cdn.segment.com/analytics.js/v1/\".concat(writeKey, \"/analytics.classic.js\");\n}","function _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = \"function\" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || \"@@iterator\", asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\", toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, \"\"); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: \"normal\", arg: fn.call(obj, arg) }; } catch (err) { return { type: \"throw\", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { [\"next\", \"throw\", \"return\"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (\"throw\" !== record.type) { var result = record.arg, value = result.value; return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke(\"next\", value, resolve, reject); }, function (err) { invoke(\"throw\", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke(\"throw\", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, \"_invoke\", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = \"suspendedStart\"; return function (method, arg) { if (\"executing\" === state) throw new Error(\"Generator is already running\"); if (\"completed\" === state) { if (\"throw\" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) { if (\"suspendedStart\" === state) throw state = \"completed\", context.arg; context.dispatchException(context.arg); } else \"return\" === context.method && context.abrupt(\"return\", context.arg); state = \"executing\"; var record = tryCatch(innerFn, self, context); if (\"normal\" === record.type) { if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = \"normal\", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: \"root\" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if (\"function\" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) { var ctor = \"function\" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, \"toString\", function () { return \"[object Generator]\"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if (\"throw\" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if (\"root\" === entry.tryLoc) return handle(\"end\"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, \"catchLoc\"), hasFinally = hasOwn.call(entry, \"finallyLoc\"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error(\"try statement without catch or finally\"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if (\"throw\" === record.type) throw record.arg; return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, \"catch\": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (\"throw\" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nStimulus 3.0.1\nCopyright © 2021 Basecamp, LLC\n */\nvar EventListener = /*#__PURE__*/function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n _classCallCheck(this, EventListener);\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n _createClass(EventListener, [{\n key: \"connect\",\n value: function connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.unorderedBindings[\"delete\"](binding);\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n var extendedEvent = extendEvent(event);\n var _iterator = _createForOfIteratorHelper(this.bindings),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var binding = _step.value;\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n }]);\n return EventListener;\n}();\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var _stopImmediatePropagation = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n _stopImmediatePropagation.call(this);\n }\n });\n }\n}\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher(application) {\n _classCallCheck(this, Dispatcher);\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n _createClass(Dispatcher, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n }\n }, {\n key: \"eventListeners\",\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"fetchEventListenerForBinding\",\n value: function fetchEventListenerForBinding(binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n }, {\n key: \"fetchEventListener\",\n value: function fetchEventListener(eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n }, {\n key: \"createEventListener\",\n value: function createEventListener(eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n }, {\n key: \"fetchEventListenerMapForEventTarget\",\n value: function fetchEventListenerMapForEventTarget(eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n }, {\n key: \"cacheKey\",\n value: function cacheKey(eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\".concat(eventOptions[key] ? \"\" : \"!\").concat(key));\n });\n return parts.join(\":\");\n }\n }]);\n return Dispatcher;\n}();\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n return Object.assign(options, _defineProperty({}, token.replace(/^!/, \"\"), !/^!/.test(token)));\n }, {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, _char) {\n return _char.toUpperCase();\n });\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char2) {\n return \"-\".concat(_char2.toLowerCase());\n });\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\nvar Action = /*#__PURE__*/function () {\n function Action(element, index, descriptor) {\n _classCallCheck(this, Action);\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n _createClass(Action, [{\n key: \"toString\",\n value: function toString() {\n var eventNameSuffix = this.eventTargetName ? \"@\".concat(this.eventTargetName) : \"\";\n return \"\".concat(this.eventName).concat(eventNameSuffix, \"->\").concat(this.identifier, \"#\").concat(this.methodName);\n }\n }, {\n key: \"params\",\n get: function get() {\n if (this.eventTarget instanceof Element) {\n return this.getParamsFromEventTargetAttributes(this.eventTarget);\n } else {\n return {};\n }\n }\n }, {\n key: \"getParamsFromEventTargetAttributes\",\n value: function getParamsFromEventTargetAttributes(eventTarget) {\n var params = {};\n var pattern = new RegExp(\"^data-\".concat(this.identifier, \"-(.+)-param$\"));\n var attributes = Array.from(eventTarget.attributes);\n attributes.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n var match = name.match(pattern);\n var key = match && match[1];\n if (key) {\n Object.assign(params, _defineProperty({}, camelize(key), typecast(value)));\n }\n });\n return params;\n }\n }, {\n key: \"eventTargetName\",\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n }\n }], [{\n key: \"forToken\",\n value: function forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n }]);\n return Action;\n}();\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"details\": function details(e) {\n return \"toggle\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\nfunction getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\nvar Binding = /*#__PURE__*/function () {\n function Binding(context, action) {\n _classCallCheck(this, Binding);\n this.context = context;\n this.action = action;\n }\n _createClass(Binding, [{\n key: \"index\",\n get: function get() {\n return this.action.index;\n }\n }, {\n key: \"eventTarget\",\n get: function get() {\n return this.action.eventTarget;\n }\n }, {\n key: \"eventOptions\",\n get: function get() {\n return this.action.eventOptions;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n }\n }, {\n key: \"eventName\",\n get: function get() {\n return this.action.eventName;\n }\n }, {\n key: \"method\",\n get: function get() {\n var method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(\"Action \\\"\".concat(this.action, \"\\\" references undefined method \\\"\").concat(this.methodName, \"\\\"\"));\n }\n }, {\n key: \"invokeWithEvent\",\n value: function invokeWithEvent(event) {\n var target = event.target,\n currentTarget = event.currentTarget;\n try {\n var params = this.action.params;\n var actionEvent = Object.assign(event, {\n params: params\n });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, {\n event: event,\n target: target,\n currentTarget: currentTarget,\n action: this.methodName\n });\n } catch (error) {\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element,\n index = this.index;\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\".concat(this.action, \"\\\"\"), detail);\n }\n }\n }, {\n key: \"willBeInvokedByEvent\",\n value: function willBeInvokedByEvent(event) {\n var eventTarget = event.target;\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"methodName\",\n get: function get() {\n return this.action.methodName;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n return Binding;\n}();\nvar ElementObserver = /*#__PURE__*/function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n _classCallCheck(this, ElementObserver);\n this.mutationObserverInit = {\n attributes: true,\n childList: true,\n subtree: true\n };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n _createClass(ElementObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n for (var _i = 0, _Array$from = Array.from(this.elements); _i < _Array$from.length; _i++) {\n var element = _Array$from[_i];\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (var _i2 = 0, _Array$from2 = Array.from(matches); _i2 < _Array$from2.length; _i2++) {\n var _element = _Array$from2[_i2];\n this.addElement(_element);\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator2 = _createForOfIteratorHelper(mutations),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var mutation = _step2.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n }, {\n key: \"processAttributeChange\",\n value: function processAttributeChange(node, attributeName) {\n var element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n }, {\n key: \"processRemovedNodes\",\n value: function processRemovedNodes(nodes) {\n for (var _i3 = 0, _Array$from3 = Array.from(nodes); _i3 < _Array$from3.length; _i3++) {\n var node = _Array$from3[_i3];\n var element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n }, {\n key: \"processAddedNodes\",\n value: function processAddedNodes(nodes) {\n for (var _i4 = 0, _Array$from4 = Array.from(nodes); _i4 < _Array$from4.length; _i4++) {\n var node = _Array$from4[_i4];\n var element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return this.delegate.matchElement(element);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree() {\n var tree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element;\n return this.delegate.matchElementsInTree(tree);\n }\n }, {\n key: \"processTree\",\n value: function processTree(tree, processor) {\n var _iterator3 = _createForOfIteratorHelper(this.matchElementsInTree(tree)),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n processor.call(this, element);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"elementFromNode\",\n value: function elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n }, {\n key: \"elementIsActive\",\n value: function elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }\n }, {\n key: \"addElement\",\n value: function addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n }, {\n key: \"removeElement\",\n value: function removeElement(element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n }]);\n return ElementObserver;\n}();\nvar AttributeObserver = /*#__PURE__*/function () {\n function AttributeObserver(element, attributeName, delegate) {\n _classCallCheck(this, AttributeObserver);\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n _createClass(AttributeObserver, [{\n key: \"element\",\n get: function get() {\n return this.elementObserver.element;\n }\n }, {\n key: \"selector\",\n get: function get() {\n return \"[\".concat(this.attributeName, \"]\");\n }\n }, {\n key: \"start\",\n value: function start() {\n this.elementObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.elementObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.elementObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.elementObserver.refresh();\n }\n }, {\n key: \"started\",\n get: function get() {\n return this.elementObserver.started;\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree(tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n }, {\n key: \"elementMatched\",\n value: function elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementUnmatched\",\n value: function elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementAttributeChanged\",\n value: function elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n }]);\n return AttributeObserver;\n}();\nvar StringMapObserver = /*#__PURE__*/function () {\n function StringMapObserver(element, delegate) {\n var _this2 = this;\n _classCallCheck(this, StringMapObserver);\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this2.processMutations(mutations);\n });\n }\n _createClass(StringMapObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n attributeOldValue: true\n });\n this.refresh();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var _iterator4 = _createForOfIteratorHelper(this.knownAttributeNames),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var attributeName = _step4.value;\n this.refreshAttribute(attributeName, null);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator5 = _createForOfIteratorHelper(mutations),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var mutation = _step5.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n var attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n }, {\n key: \"refreshAttribute\",\n value: function refreshAttribute(attributeName, oldValue) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n var value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n var _oldValue = this.stringMap.get(attributeName);\n this.stringMap[\"delete\"](attributeName);\n if (_oldValue) this.stringMapKeyRemoved(key, attributeName, _oldValue);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n }, {\n key: \"knownAttributeNames\",\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n }, {\n key: \"currentAttributeNames\",\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n }\n }, {\n key: \"recordedAttributeNames\",\n get: function get() {\n return Array.from(this.stringMap.keys());\n }\n }]);\n return StringMapObserver;\n}();\nfunction _add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n var values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n var values = map.get(key);\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}\nvar Multimap = /*#__PURE__*/function () {\n function Multimap() {\n _classCallCheck(this, Multimap);\n this.valuesByKey = new Map();\n }\n _createClass(Multimap, [{\n key: \"keys\",\n get: function get() {\n return Array.from(this.valuesByKey.keys());\n }\n }, {\n key: \"values\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n }\n }, {\n key: \"size\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _add(this.valuesByKey, key, value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n }, {\n key: \"has\",\n value: function has(key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n }, {\n key: \"hasKey\",\n value: function hasKey(key) {\n return this.valuesByKey.has(key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n }\n }, {\n key: \"getValuesForKey\",\n value: function getValuesForKey(key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n return Array.from(this.valuesByKey).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n values = _ref3[1];\n return values.has(value);\n }).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n values = _ref5[1];\n return key;\n });\n }\n }]);\n return Multimap;\n}();\nvar IndexedMultimap = /*#__PURE__*/function (_Multimap) {\n _inherits(IndexedMultimap, _Multimap);\n var _super = _createSuper(IndexedMultimap);\n function IndexedMultimap() {\n var _this3;\n _classCallCheck(this, IndexedMultimap);\n _this3 = _super.call(this);\n _this3.keysByValue = new Map();\n return _this3;\n }\n _createClass(IndexedMultimap, [{\n key: \"values\",\n get: function get() {\n return Array.from(this.keysByValue.keys());\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"add\", this).call(this, key, value);\n _add(this.keysByValue, value, key);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"delete\", this).call(this, key, value);\n del(this.keysByValue, value, key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n return this.keysByValue.has(value);\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n }]);\n return IndexedMultimap;\n}(Multimap);\nvar TokenListObserver = /*#__PURE__*/function () {\n function TokenListObserver(element, attributeName, delegate) {\n _classCallCheck(this, TokenListObserver);\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n _createClass(TokenListObserver, [{\n key: \"started\",\n get: function get() {\n return this.attributeObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.attributeObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.attributeObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.attributeObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.attributeObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.attributeObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.attributeObserver.attributeName;\n }\n }, {\n key: \"elementMatchedAttribute\",\n value: function elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n }, {\n key: \"elementAttributeValueChanged\",\n value: function elementAttributeValueChanged(element) {\n var _this$refreshTokensFo = this.refreshTokensForElement(element),\n _this$refreshTokensFo2 = _slicedToArray(_this$refreshTokensFo, 2),\n unmatchedTokens = _this$refreshTokensFo2[0],\n matchedTokens = _this$refreshTokensFo2[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n }, {\n key: \"elementUnmatchedAttribute\",\n value: function elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n }, {\n key: \"tokensMatched\",\n value: function tokensMatched(tokens) {\n var _this4 = this;\n tokens.forEach(function (token) {\n return _this4.tokenMatched(token);\n });\n }\n }, {\n key: \"tokensUnmatched\",\n value: function tokensUnmatched(tokens) {\n var _this5 = this;\n tokens.forEach(function (token) {\n return _this5.tokenUnmatched(token);\n });\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n }\n }, {\n key: \"refreshTokensForElement\",\n value: function refreshTokensForElement(element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n previousToken = _ref7[0],\n currentToken = _ref7[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n }, {\n key: \"readTokensForElement\",\n value: function readTokensForElement(element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n }]);\n return TokenListObserver;\n}();\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\nvar ValueListObserver = /*#__PURE__*/function () {\n function ValueListObserver(element, attributeName, delegate) {\n _classCallCheck(this, ValueListObserver);\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n _createClass(ValueListObserver, [{\n key: \"started\",\n get: function get() {\n return this.tokenListObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.tokenListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.tokenListObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.tokenListObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.tokenListObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.tokenListObserver.attributeName;\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n var element = token.element;\n var _this$fetchParseResul = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul.value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n var element = token.element;\n var _this$fetchParseResul2 = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul2.value;\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n }, {\n key: \"fetchParseResultForToken\",\n value: function fetchParseResultForToken(token) {\n var parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n }, {\n key: \"fetchValuesByTokenForElement\",\n value: function fetchValuesByTokenForElement(element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n }, {\n key: \"parseToken\",\n value: function parseToken(token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n }\n }]);\n return ValueListObserver;\n}();\nvar BindingObserver = /*#__PURE__*/function () {\n function BindingObserver(context, delegate) {\n _classCallCheck(this, BindingObserver);\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n _createClass(BindingObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"actionAttribute\",\n get: function get() {\n return this.schema.actionAttribute;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.context.schema;\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n }\n }, {\n key: \"connectAction\",\n value: function connectAction(action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n }, {\n key: \"disconnectAction\",\n value: function disconnectAction(action) {\n var binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n }, {\n key: \"disconnectAllActions\",\n value: function disconnectAllActions() {\n var _this6 = this;\n this.bindings.forEach(function (binding) {\n return _this6.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n }]);\n return BindingObserver;\n}();\nvar ValueObserver = /*#__PURE__*/function () {\n function ValueObserver(context, receiver) {\n _classCallCheck(this, ValueObserver);\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n _createClass(ValueObserver, [{\n key: \"start\",\n value: function start() {\n this.stringMapObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.stringMapObserver.stop();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"getStringMapKeyForAttribute\",\n value: function getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n var descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, name, oldValue) {\n var descriptor = this.valueDescriptorNameMap[name];\n if (value === null) return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n var descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n } else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n }, {\n key: \"invokeChangedCallbacksForDefaultValues\",\n value: function invokeChangedCallbacksForDefaultValues() {\n var _iterator6 = _createForOfIteratorHelper(this.valueDescriptors),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _step6$value = _step6.value,\n key = _step6$value.key,\n name = _step6$value.name,\n defaultValue = _step6$value.defaultValue,\n writer = _step6$value.writer;\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }, {\n key: \"invokeChangedCallback\",\n value: function invokeChangedCallback(name, rawValue, rawOldValue) {\n var changedMethodName = \"\".concat(name, \"Changed\");\n var changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n var descriptor = this.valueDescriptorNameMap[name];\n var value = descriptor.reader(rawValue);\n var oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n }\n }, {\n key: \"valueDescriptors\",\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n }\n }, {\n key: \"valueDescriptorNameMap\",\n get: function get() {\n var _this7 = this;\n var descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(function (key) {\n var descriptor = _this7.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(attributeName) {\n var descriptor = this.valueDescriptorNameMap[attributeName];\n var hasMethodName = \"has\".concat(capitalize(descriptor.name));\n return this.receiver[hasMethodName];\n }\n }]);\n return ValueObserver;\n}();\nvar TargetObserver = /*#__PURE__*/function () {\n function TargetObserver(context, delegate) {\n _classCallCheck(this, TargetObserver);\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n _createClass(TargetObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(_ref8) {\n var element = _ref8.element,\n name = _ref8.content;\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(_ref9) {\n var element = _ref9.element,\n name = _ref9.content;\n this.disconnectTarget(element, name);\n }\n }, {\n key: \"connectTarget\",\n value: function connectTarget(element, name) {\n var _this8 = this;\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this8.delegate.targetConnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectTarget\",\n value: function disconnectTarget(element, name) {\n var _this9 = this;\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName[\"delete\"](name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this9.delegate.targetDisconnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectAllTargets\",\n value: function disconnectAllTargets() {\n var _iterator7 = _createForOfIteratorHelper(this.targetsByName.keys),\n _step7;\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var name = _step7.value;\n var _iterator8 = _createForOfIteratorHelper(this.targetsByName.getValuesForKey(name)),\n _step8;\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n this.disconnectTarget(element, name);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return \"data-\".concat(this.context.identifier, \"-target\");\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n return TargetObserver;\n}();\nvar Context = /*#__PURE__*/function () {\n function Context(module, scope) {\n var _this10 = this;\n _classCallCheck(this, Context);\n this.logDebugActivity = function (functionName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var identifier = _this10.identifier,\n controller = _this10.controller,\n element = _this10.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n _this10.application.logDebugActivity(_this10.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n _createClass(Context, [{\n key: \"connect\",\n value: function connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n }, {\n key: \"application\",\n get: function get() {\n return this.module.application;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.module.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"dispatcher\",\n get: function get() {\n return this.application.dispatcher;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return this.element.parentElement;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"targetConnected\",\n value: function targetConnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetConnected\"), element);\n }\n }, {\n key: \"targetDisconnected\",\n value: function targetDisconnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetDisconnected\"), element);\n }\n }, {\n key: \"invokeControllerMethod\",\n value: function invokeControllerMethod(methodName) {\n var controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n controller[methodName].apply(controller, args);\n }\n }\n }]);\n return Context;\n}();\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, _toConsumableArray(getOwnStaticObjectPairs(constructor, propertyName)));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, _defineProperty({}, key, descriptor));\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return [].concat(_toConsumableArray(Object.getOwnPropertyNames(object)), _toConsumableArray(Object.getOwnPropertySymbols(object)));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, this instanceof extended ? this.constructor : void 0);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n var b = extendWithReflect(a);\n b.prototype.a = function () {};\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return /*#__PURE__*/function (_constructor) {\n _inherits(extended, _constructor);\n var _super2 = _createSuper(extended);\n function extended() {\n _classCallCheck(this, extended);\n return _super2.apply(this, arguments);\n }\n return _createClass(extended);\n }(constructor);\n };\n }\n}();\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\nvar Module = /*#__PURE__*/function () {\n function Module(application, definition) {\n _classCallCheck(this, Module);\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n _createClass(Module, [{\n key: \"identifier\",\n get: function get() {\n return this.definition.identifier;\n }\n }, {\n key: \"controllerConstructor\",\n get: function get() {\n return this.definition.controllerConstructor;\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return Array.from(this.connectedContexts);\n }\n }, {\n key: \"connectContextForScope\",\n value: function connectContextForScope(scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n }, {\n key: \"disconnectContextForScope\",\n value: function disconnectContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n }\n }, {\n key: \"fetchContextForScope\",\n value: function fetchContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n }]);\n return Module;\n}();\nvar ClassMap = /*#__PURE__*/function () {\n function ClassMap(scope) {\n _classCallCheck(this, ClassMap);\n this.scope = scope;\n }\n _createClass(ClassMap, [{\n key: \"has\",\n value: function has(name) {\n return this.data.has(this.getDataKey(name));\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this.getAll(name)[0];\n }\n }, {\n key: \"getAll\",\n value: function getAll(name) {\n var tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n }, {\n key: \"getDataKey\",\n value: function getDataKey(name) {\n return \"\".concat(name, \"-class\");\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }]);\n return ClassMap;\n}();\nvar DataMap = /*#__PURE__*/function () {\n function DataMap(scope) {\n _classCallCheck(this, DataMap);\n this.scope = scope;\n }\n _createClass(DataMap, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n }, {\n key: \"has\",\n value: function has(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n if (this.has(key)) {\n var name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"getAttributeNameForKey\",\n value: function getAttributeNameForKey(key) {\n return \"data-\".concat(this.identifier, \"-\").concat(dasherize(key));\n }\n }]);\n return DataMap;\n}();\nvar Guide = /*#__PURE__*/function () {\n function Guide(logger) {\n _classCallCheck(this, Guide);\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n _createClass(Guide, [{\n key: \"warn\",\n value: function warn(object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n }]);\n return Guide;\n}();\nfunction attributeValueContainsToken(attributeName, token) {\n return \"[\".concat(attributeName, \"~=\\\"\").concat(token, \"\\\"]\");\n}\nvar TargetSet = /*#__PURE__*/function () {\n function TargetSet(scope) {\n _classCallCheck(this, TargetSet);\n this.scope = scope;\n }\n _createClass(TargetSet, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.scope.schema;\n }\n }, {\n key: \"has\",\n value: function has(targetName) {\n return this.find(targetName) != null;\n }\n }, {\n key: \"find\",\n value: function find() {\n var _this11 = this;\n for (var _len2 = arguments.length, targetNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n targetNames[_key2] = arguments[_key2];\n }\n return targetNames.reduce(function (target, targetName) {\n return target || _this11.findTarget(targetName) || _this11.findLegacyTarget(targetName);\n }, undefined);\n }\n }, {\n key: \"findAll\",\n value: function findAll() {\n var _this12 = this;\n for (var _len3 = arguments.length, targetNames = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n targetNames[_key3] = arguments[_key3];\n }\n return targetNames.reduce(function (targets, targetName) {\n return [].concat(_toConsumableArray(targets), _toConsumableArray(_this12.findAllTargets(targetName)), _toConsumableArray(_this12.findAllLegacyTargets(targetName)));\n }, []);\n }\n }, {\n key: \"findTarget\",\n value: function findTarget(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n }, {\n key: \"findAllTargets\",\n value: function findAllTargets(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n }, {\n key: \"getSelectorForTargetName\",\n value: function getSelectorForTargetName(targetName) {\n var attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n }, {\n key: \"findLegacyTarget\",\n value: function findLegacyTarget(targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n }, {\n key: \"findAllLegacyTargets\",\n value: function findAllLegacyTargets(targetName) {\n var _this13 = this;\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this13.deprecate(element, targetName);\n });\n }\n }, {\n key: \"getLegacySelectorForTargetName\",\n value: function getLegacySelectorForTargetName(targetName) {\n var targetDescriptor = \"\".concat(this.identifier, \".\").concat(targetName);\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n }, {\n key: \"deprecate\",\n value: function deprecate(element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n var revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, \"target:\".concat(targetName), \"Please replace \".concat(attributeName, \"=\\\"\").concat(identifier, \".\").concat(targetName, \"\\\" with \").concat(revisedAttributeName, \"=\\\"\").concat(targetName, \"\\\". \") + \"The \".concat(attributeName, \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n return element;\n }\n }, {\n key: \"guide\",\n get: function get() {\n return this.scope.guide;\n }\n }]);\n return TargetSet;\n}();\nvar Scope = /*#__PURE__*/function () {\n function Scope(schema, element, identifier, logger) {\n var _this14 = this;\n _classCallCheck(this, Scope);\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = function (element) {\n return element.closest(_this14.controllerSelector) === _this14.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n _createClass(Scope, [{\n key: \"findElement\",\n value: function findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n }, {\n key: \"findAllElements\",\n value: function findAllElements(selector) {\n return [].concat(_toConsumableArray(this.element.matches(selector) ? [this.element] : []), _toConsumableArray(this.queryElements(selector).filter(this.containsElement)));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n }, {\n key: \"controllerSelector\",\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n }]);\n return Scope;\n}();\nvar ScopeObserver = /*#__PURE__*/function () {\n function ScopeObserver(element, schema, delegate) {\n _classCallCheck(this, ScopeObserver);\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n _createClass(ScopeObserver, [{\n key: \"start\",\n value: function start() {\n this.valueListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.valueListObserver.stop();\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n }, {\n key: \"fetchScopesByIdentifierForElement\",\n value: function fetchScopesByIdentifierForElement(element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n }]);\n return ScopeObserver;\n}();\nvar Router = /*#__PURE__*/function () {\n function Router(application) {\n _classCallCheck(this, Router);\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n _createClass(Router, [{\n key: \"element\",\n get: function get() {\n return this.application.element;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"logger\",\n get: function get() {\n return this.application.logger;\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"modules\",\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scopeObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scopeObserver.stop();\n }\n }, {\n key: \"loadDefinition\",\n value: function loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n }\n }, {\n key: \"unloadIdentifier\",\n value: function unloadIdentifier(identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n }, {\n key: \"getContextForElementAndIdentifier\",\n value: function getContextForElementAndIdentifier(element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n }, {\n key: \"createScopeForElementAndIdentifier\",\n value: function createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n }, {\n key: \"scopeConnected\",\n value: function scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n }, {\n key: \"scopeDisconnected\",\n value: function scopeDisconnected(scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n }, {\n key: \"connectModule\",\n value: function connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n }\n }, {\n key: \"disconnectModule\",\n value: function disconnectModule(module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n }\n }]);\n return Router;\n}();\nvar defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: function targetAttributeForScope(identifier) {\n return \"data-\".concat(identifier, \"-target\");\n }\n};\nvar Application = /*#__PURE__*/function () {\n function Application() {\n var _this15 = this;\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n var schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSchema;\n _classCallCheck(this, Application);\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = function (identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (_this15.debug) {\n _this15.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n _createClass(Application, [{\n key: \"start\",\n value: function () {\n var _start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return domReady();\n case 2:\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function start() {\n return _start.apply(this, arguments);\n }\n return start;\n }()\n }, {\n key: \"stop\",\n value: function stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n }, {\n key: \"register\",\n value: function register(identifier, controllerConstructor) {\n if (controllerConstructor.shouldLoad) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n }\n }\n }, {\n key: \"load\",\n value: function load(head) {\n var _this16 = this;\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this16.router.loadDefinition(definition);\n });\n }\n }, {\n key: \"unload\",\n value: function unload(head) {\n var _this17 = this;\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this17.router.unloadIdentifier(identifier);\n });\n }\n }, {\n key: \"controllers\",\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n }\n }, {\n key: \"getControllerForElementAndIdentifier\",\n value: function getControllerForElementAndIdentifier(element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n var _a;\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n }, {\n key: \"logFormattedMessage\",\n value: function logFormattedMessage(identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n detail = Object.assign({\n application: this\n }, detail);\n this.logger.groupCollapsed(\"\".concat(identifier, \" #\").concat(functionName));\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n }], [{\n key: \"start\",\n value: function start(element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n }\n }]);\n return Application;\n}();\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", function () {\n return resolve();\n });\n } else {\n resolve();\n }\n });\n}\nfunction ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n var _ref10;\n return _ref10 = {}, _defineProperty(_ref10, \"\".concat(key, \"Class\"), {\n get: function get() {\n var classes = this.classes;\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\".concat(attribute, \"\\\"\"));\n }\n }\n }), _defineProperty(_ref10, \"\".concat(key, \"Classes\"), {\n get: function get() {\n return this.classes.getAll(key);\n }\n }), _defineProperty(_ref10, \"has\".concat(capitalize(key), \"Class\"), {\n get: function get() {\n return this.classes.has(key);\n }\n }), _ref10;\n}\nfunction TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n var _ref11;\n return _ref11 = {}, _defineProperty(_ref11, \"\".concat(name, \"Target\"), {\n get: function get() {\n var target = this.targets.find(name);\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\".concat(name, \"\\\" for \\\"\").concat(this.identifier, \"\\\" controller\"));\n }\n }\n }), _defineProperty(_ref11, \"\".concat(name, \"Targets\"), {\n get: function get() {\n return this.targets.findAll(name);\n }\n }), _defineProperty(_ref11, \"has\".concat(capitalize(name), \"Target\"), {\n get: function get() {\n return this.targets.has(name);\n }\n }), _ref11;\n}\nfunction ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this18 = this;\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n var attributeName = _this18.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, _defineProperty({}, attributeName, valueDescriptor));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _ref12;\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return _ref12 = {}, _defineProperty(_ref12, name, {\n get: function get() {\n var value = this.data.get(key);\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data[\"delete\"](key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }), _defineProperty(_ref12, \"has\".concat(capitalize(name)), {\n get: function get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }), _ref12;\n}\nfunction parseValueDefinitionPair(_ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n token = _ref14[0],\n typeDefinition = _ref14[1];\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (_typeof(defaultValue)) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\nfunction parseValueTypeObject(typeObject) {\n var typeFromObject = parseValueTypeConstant(typeObject.type);\n if (typeFromObject) {\n var defaultValueType = parseValueTypeDefault(typeObject[\"default\"]);\n if (typeFromObject !== defaultValueType) {\n throw new Error(\"Type \\\"\".concat(typeFromObject, \"\\\" must match the type of the default value. Given default value: \\\"\").concat(typeObject[\"default\"], \"\\\" as \\\"\").concat(defaultValueType, \"\\\"\"));\n }\n return typeFromObject;\n }\n}\nfunction parseValueTypeDefinition(typeDefinition) {\n var typeFromObject = parseValueTypeObject(typeDefinition);\n var typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n var typeFromConstant = parseValueTypeConstant(typeDefinition);\n var type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(\"Unknown value type \\\"\".concat(typeDefinition, \"\\\"\"));\n}\nfunction defaultValueForDefinition(typeDefinition) {\n var constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n var defaultValue = typeDefinition[\"default\"];\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n var key = \"\".concat(dasherize(token), \"-value\");\n var type = parseValueTypeDefinition(typeDefinition);\n return {\n type: type,\n key: key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers[\"default\"]\n };\n}\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n \"boolean\": false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n return array;\n },\n \"boolean\": function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return Number(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n \"default\": writeString,\n array: writeJSON,\n object: writeJSON\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return \"\".concat(value);\n}\nvar Controller = /*#__PURE__*/function () {\n function Controller(context) {\n _classCallCheck(this, Controller);\n this.context = context;\n }\n _createClass(Controller, [{\n key: \"application\",\n get: function get() {\n return this.context.application;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"targets\",\n get: function get() {\n return this.scope.targets;\n }\n }, {\n key: \"classes\",\n get: function get() {\n return this.scope.classes;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {}\n }, {\n key: \"connect\",\n value: function connect() {}\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var _ref15 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref15$target = _ref15.target,\n target = _ref15$target === void 0 ? this.element : _ref15$target,\n _ref15$detail = _ref15.detail,\n detail = _ref15$detail === void 0 ? {} : _ref15$detail,\n _ref15$prefix = _ref15.prefix,\n prefix = _ref15$prefix === void 0 ? this.identifier : _ref15$prefix,\n _ref15$bubbles = _ref15.bubbles,\n bubbles = _ref15$bubbles === void 0 ? true : _ref15$bubbles,\n _ref15$cancelable = _ref15.cancelable,\n cancelable = _ref15$cancelable === void 0 ? true : _ref15$cancelable;\n var type = prefix ? \"\".concat(prefix, \":\").concat(eventName) : eventName;\n var event = new CustomEvent(type, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n }], [{\n key: \"shouldLoad\",\n get: function get() {\n return true;\n }\n }]);\n return Controller;\n}();\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, _add as add, defaultSchema, del, fetch, prune };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nexport function dset(obj, keys, val) {\n keys.split && (keys = keys.split('.'));\n var i = 0,\n l = keys.length,\n t = obj,\n x,\n k;\n while (i < l) {\n k = keys[i++];\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n t = t[k] = i === l ? val : _typeof(x = t[k]) === _typeof(keys) ? x : keys[i] * 0 !== 0 || !!~('' + keys[i]).indexOf('.') ? {} : [];\n }\n}","export default function bindAll(obj) {\n var proto = obj.constructor.prototype;\n for (var _i = 0, _a = Object.getOwnPropertyNames(proto); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key !== 'constructor') {\n var desc = Object.getOwnPropertyDescriptor(obj.constructor.prototype, key);\n if (!!desc && typeof desc.value === 'function') {\n obj[key] = obj[key].bind(obj);\n }\n }\n }\n return obj;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n!function (root, factory) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"zoid\", [], factory) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _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\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,\n rejected = this.rejected,\n handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function chain(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],\n onSuccess = _handlers$i.onSuccess,\n onError = _handlers$i.onError,\n 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 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 chain(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 _loop(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 cancel() {\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 isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === win.location.protocol;\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 = location.protocol;\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 (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 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), !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 cancel() {\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 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 wrapNativeSuper_wrapNativeSuper(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 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) + \"]\" : 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,\n thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac,\n cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function memoizedFunction() {\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 = serializeArgs(args);\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,\n _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 inlineMemoize(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] = logic.apply(void 0, args);\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 cancel() {\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 set(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 register(method) {\n var task = once(function () {\n return method(cleanErr);\n });\n cleaned ? method(cleanErr) : tasks.push(task);\n return {\n cancel: function cancel() {\n var index = tasks.indexOf(task);\n -1 !== index && tasks.splice(index, 1);\n }\n };\n },\n all: function all(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 inlineMemoize(parseQuery, 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 }, [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 isElement(element) {\n return element instanceof window.Element || null !== element && \"object\" == _typeof(element) && 1 === element.nodeType && \"object\" == _typeof(element.style) && \"object\" == _typeof(element.ownerDocument);\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 cancel() {\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,\n _ref2$width = _ref2.width,\n width = void 0 === _ref2$width || _ref2$width,\n _ref2$height = _ref2.height,\n height = void 0 === _ref2$height || _ref2$height,\n _ref2$interval = _ref2.interval,\n interval = void 0 === _ref2$interval ? 100 : _ref2$interval,\n _ref2$win = _ref2.win,\n 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 check() {\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 cancel() {\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 toPx(val) {\n return function (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 }(val) + \"px\";\n }\n function toCSS(val) {\n return \"number\" == typeof val ? toPx(val) : \"string\" == typeof (str = val) && /^[0-9]+%$/.test(str) ? val : toPx(val);\n var str;\n }\n function global_getGlobal(win) {\n void 0 === win && (win = window);\n var globalKey = \"__post_robot_10_0_44__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function getObj() {\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 has(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function get(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function set(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function del(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function getOrSet(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function reset() {\n store = defStore();\n },\n keys: function keys() {\n return Object.keys(store);\n }\n };\n });\n }\n var WildCard = function WildCard() {};\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 getStore(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function has(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function get(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function set(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function del(win) {\n delete getStore(win)[key];\n },\n getOrSet: function getOrSet(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,\n 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 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,\n code = _ref2.code,\n 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 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 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,\n _ref$id = _ref.id,\n 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 getName() {\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 getType() {\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 close() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function focus() {\n return winPromise.then(function (win) {\n win.focus();\n });\n },\n isClosed: function isClosed() {\n return winPromise.then(function (win) {\n return isWindowClosed(win);\n });\n },\n setLocation: function setLocation(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,\n method = void 0 === _opts$method ? \"get\" : _opts$method,\n 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,\n target = _ref3.target,\n body = _ref3.body,\n _ref3$method = _ref3.method,\n 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 setName(name) {\n return winPromise.then(function (win) {\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,\n win = _ref2.win,\n 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);\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,\n origin = _ref2.origin,\n data = _ref2.data;\n var id = data.id,\n 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,\n domain = meth.domain,\n 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,\n 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,\n name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function getDeserializedFunction(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_global = function (win, serializedMessage) {\n if (!function (win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n }(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,\n 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_10_0_44__ = domainBuffer.buffer || [], _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,\n win = _ref.win,\n 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],\n 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 handleRequest(source, origin, message, _ref) {\n var on = _ref.on,\n 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 return 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 if (!matchDomain(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\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 }\n function handleAck(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 }\n function handleResponse(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, 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 }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on,\n 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,\n origin = event.origin;\n var messages = function (message, source, origin, _ref) {\n var on = _ref.on,\n 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_10_0_44__;\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 _loop3 = function _loop3() {\n 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 ? handleRequest(source, origin, message, {\n on: on,\n send: send\n }) : \"postrobot_message_response\" === message.type ? handleResponse(source, origin, message) : \"postrobot_message_ack\" === message.type && handleAck(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 message;\n var _ret = _loop3();\n if (_typeof(_ret) === \"object\") 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 (options = options || {}).name = name;\n options.handler = handler || options.handler;\n var win = options.window;\n var domain = options.domain;\n var requestListener = function addRequestListener(_ref4, listener) {\n var name = _ref4.name,\n win = _ref4.win,\n 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 (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 cancel() {\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 cancel() {\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 domain = domain || \"*\";\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 nameListeners = requestListeners.getOrSet(win, function () {\n return {};\n });\n var domainListeners = util_getOrSet(nameListeners, name, function () {\n return {};\n });\n var strDomain = domain.toString();\n var regexListeners;\n var regexListener;\n util_isRegex(domain) ? (regexListeners = util_getOrSet(domainListeners, \"__domain_regex__\", function () {\n return [];\n })).push(regexListener = {\n regex: domain,\n listener: listener\n }) : domainListeners[strDomain] = listener;\n return {\n cancel: function cancel() {\n delete domainListeners[strDomain];\n if (regexListener) {\n regexListeners.splice(regexListeners.indexOf(regexListener, 1));\n regexListeners.length || delete domainListeners.__domain_regex__;\n }\n Object.keys(domainListeners).length || delete nameListeners[name];\n win && !Object.keys(nameListeners).length && requestListeners.del(win);\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, {\n handler: options.handler,\n handleError: options.errorHandler || function (err) {\n throw err;\n },\n window: win,\n domain: domain || \"*\",\n name: name\n });\n return {\n cancel: function cancel() {\n requestListener.cancel();\n }\n };\n }\n var send_send = function send(win, 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 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 function (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 }(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 function setup_serializeMessage(destination, domain, obj) {\n return serializeMessage(destination, domain, obj, {\n on: on_on,\n send: send_send\n });\n }\n function setup_deserializeMessage(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }\n function setup_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function lib_global_getGlobal(win) {\n void 0 === win && (win = window);\n if (!isSameDomain(win)) throw new Error(\"Can not get global for window on different domain\");\n win.__zoid_9_0_78__ || (win.__zoid_9_0_78__ = {});\n return win.__zoid_9_0_78__;\n }\n function getProxyObject(obj) {\n return {\n get: function get() {\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 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 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 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 parseChildWindowName(windowName) {\n return inlineMemoize(parseChildWindowName, function () {\n if (!windowName) throw new Error(\"No window name\");\n var _windowName$split = windowName.split(\"__\"),\n zoidcomp = _windowName$split[1],\n name = _windowName$split[2],\n encodedPayload = _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 (!encodedPayload) throw new Error(\"Expected encoded payload\");\n try {\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 }(encodedPayload));\n } catch (err) {\n throw new Error(\"Can not decode window name payload: \" + encodedPayload + \": \" + stringifyError(err));\n }\n }, [windowName]);\n }\n function getChildPayload() {\n try {\n return parseChildWindowName(window.name);\n } catch (err) {}\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 props_defaultNoop() {\n return src_util_noop;\n };\n var props_decorateOnce = function props_decorateOnce(_ref) {\n return once(_ref.value);\n };\n function eachProp(props, propsDef, handler) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var propDef = propsDef[key];\n propDef && handler(key, propDef, 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) {\n var getParam = (_METHOD$GET$METHOD$PO = {}, _METHOD$GET$METHOD$PO.get = propDef.queryParam, _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, _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,\n 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 _i10 = 0, _Object$keys6 = Object.keys(result); _i10 < _Object$keys6.length; _i10++) {\n var dotkey = _Object$keys6[_i10];\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,\n options = _ref.options,\n _ref$overrides = _ref.overrides,\n overrides = void 0 === _ref$overrides ? {} : _ref$overrides,\n _ref$parentWin = _ref.parentWin,\n parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin;\n var propsDef = options.propsDef,\n containerTemplate = options.containerTemplate,\n prerenderTemplate = options.prerenderTemplate,\n tag = options.tag,\n name = options.name,\n attributes = options.attributes,\n dimensions = options.dimensions,\n autoResize = options.autoResize,\n url = options.url,\n domainMatch = options.domain,\n xports = options.exports;\n var initPromise = new promise_ZalgoPromise();\n var handledErrors = [];\n var clean = cleanup();\n var state = {};\n var internalState = {\n visible: !0\n };\n var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, emitter = {\n on: function on(eventName, handler) {\n var handlerList = handlers[eventName] = handlers[eventName] || [];\n handlerList.push(handler);\n var cancelled = !1;\n return {\n cancel: function cancel() {\n if (!cancelled) {\n cancelled = !0;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n }\n };\n },\n once: function once(eventName, handler) {\n var listener = emitter.on(eventName, function () {\n listener.cancel();\n handler();\n });\n return listener;\n },\n trigger: function trigger(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 _loop(_i2) {\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(_i2);\n }\n return promise_ZalgoPromise.all(promises).then(src_util_noop);\n },\n triggerOnce: function triggerOnce(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 reset() {\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 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 resolveInitPromise = function resolveInitPromise() {\n return promise_ZalgoPromise[\"try\"](function () {\n return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve();\n });\n };\n var rejectInitPromise = function rejectInitPromise(err) {\n return promise_ZalgoPromise[\"try\"](function () {\n return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err);\n });\n };\n var getPropsForChild = function getPropsForChild(domain) {\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 prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(domain, getDomain(window)) || (result[key] = props[key]);\n }\n return promise_ZalgoPromise.hash(result);\n };\n var getInternalState = function getInternalState() {\n return promise_ZalgoPromise[\"try\"](function () {\n return getInternalStateOverride ? getInternalStateOverride() : internalState;\n });\n };\n var setInternalState = function setInternalState(newInternalState) {\n return promise_ZalgoPromise[\"try\"](function () {\n return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState);\n });\n };\n var getProxyWindow = function getProxyWindow() {\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 getProxyContainer = function getProxyContainer(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 return getProxyObject(containerElement);\n });\n };\n var setProxyWin = function setProxyWin(proxyWin) {\n return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise[\"try\"](function () {\n currentProxyWin = proxyWin;\n });\n };\n var show = function show() {\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 hide() {\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 getUrl() {\n return \"function\" == typeof url ? url({\n props: props\n }) : url;\n };\n var getAttributes = function getAttributes() {\n return \"function\" == typeof attributes ? attributes({\n props: props\n }) : attributes;\n };\n var getChildDomain = function getChildDomain() {\n return domainMatch && \"string\" == typeof domainMatch ? domainMatch : getDomainFromUrl(getUrl());\n };\n var getDomainMatcher = function getDomainMatcher() {\n return domainMatch && util_isRegex(domainMatch) ? domainMatch : getChildDomain();\n };\n var openFrame = function openFrame(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 openPrerenderFrame(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 openPrerender(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 throw new Error(\"No render context available for \" + context);\n });\n };\n var focus = function focus() {\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 getWindowRef = function getWindowRef(target, domain, context) {\n if (domain === getDomain(window)) {\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 {\n type: \"global\",\n uid: uid\n };\n }\n return context === CONTEXT.POPUP ? {\n type: \"opener\"\n } : {\n type: \"parent\",\n distance: getDistanceFromTop(window)\n };\n };\n var initChild = function initChild(childExports) {\n return promise_ZalgoPromise[\"try\"](function () {\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 resize(_ref3) {\n var width = _ref3.width,\n 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 destroy(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 initPromise.asyncReject(err || new Error(\"Component destroyed\"));\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 open(context, _ref4) {\n var proxyWin = _ref4.proxyWin,\n proxyFrame = _ref4.proxyFrame,\n 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 function (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 }(win);\n });\n return win;\n });\n });\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 watchForUnload() {\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 checkWindowClose(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 onError(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 xport(actualExports) {\n return promise_ZalgoPromise[\"try\"](function () {\n exportsPromise.resolve(actualExports);\n });\n };\n initChild.onError = onError;\n var renderTemplate = function renderTemplate(renderer, _ref7) {\n return renderer({\n uid: uid,\n container: _ref7.container,\n context: _ref7.context,\n doc: _ref7.doc,\n frame: _ref7.frame,\n prerenderFrame: _ref7.prerenderFrame,\n focus: focus,\n close: close,\n state: state,\n props: props,\n tag: tag,\n dimensions: \"function\" == typeof dimensions ? dimensions({\n props: props\n }) : dimensions,\n event: event\n });\n };\n var prerender = function prerender(proxyPrerenderWin, _ref8) {\n var context = _ref8.context;\n return prerenderOverride ? prerenderOverride(proxyPrerenderWin, {\n context: context\n }) : promise_ZalgoPromise[\"try\"](function () {\n if (prerenderTemplate) {\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,\n width = void 0 !== _autoResize$width && _autoResize$width,\n _autoResize$height = autoResize.height,\n height = void 0 !== _autoResize$height && _autoResize$height,\n _autoResize$element = autoResize.element,\n element = void 0 === _autoResize$element ? \"body\" : _autoResize$element;\n if ((element = getElementSafe(element, doc)) && (width || height)) {\n var prerenderResizeListener = onResize(element, function (_ref9) {\n resize({\n width: width ? _ref9.width : void 0,\n height: height ? _ref9.height : void 0\n });\n }, {\n width: width,\n height: height,\n win: prerenderWindow\n });\n event.on(EVENT.RENDERED, prerenderResizeListener.cancel);\n }\n }\n }\n }\n });\n };\n var renderContainer = function renderContainer(proxyContainer, _ref10) {\n var proxyFrame = _ref10.proxyFrame,\n proxyPrerenderFrame = _ref10.proxyPrerenderFrame,\n context = _ref10.context,\n rerender = _ref10.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 (_ref11) {\n var container = _ref11.container,\n visible = _ref11.internalState.visible;\n var innerContainer = renderTemplate(containerTemplate, {\n context: context,\n container: container,\n frame: _ref11.frame,\n prerenderFrame: _ref11.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 cancel() {\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 elementClosed() {\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 getHelpers() {\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 setProps(newProps, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var helpers = getHelpers();\n !function (propsDef, props, inputProps, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n extend(props, inputProps = inputProps || {});\n var propNames = isUpdate ? [] : [].concat(Object.keys(propsDef));\n for (var _i2 = 0, _Object$keys2 = Object.keys(inputProps); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n -1 === propNames.indexOf(key) && propNames.push(key);\n }\n var aliases = [];\n var state = helpers.state,\n close = helpers.close,\n focus = helpers.focus,\n event = helpers.event,\n onError = helpers.onError;\n for (var _i4 = 0; _i4 < propNames.length; _i4++) {\n var _key = propNames[_i4];\n var propDef = propsDef[_key];\n var value = inputProps[_key];\n if (propDef) {\n var alias = propDef.alias;\n if (alias) {\n !isDefined(value) && isDefined(inputProps[alias]) && (value = inputProps[alias]);\n aliases.push(alias);\n }\n propDef.value && (value = propDef.value({\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n }));\n !isDefined(value) && propDef[\"default\"] && (value = propDef[\"default\"]({\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n }));\n if (isDefined(value) && (\"array\" === propDef.type ? !Array.isArray(value) : _typeof(value) !== propDef.type)) throw new TypeError(\"Prop is not of type \" + propDef.type + \": \" + _key);\n props[_key] = value;\n }\n }\n for (var _i6 = 0; _i6 < aliases.length; _i6++) delete props[aliases[_i6]];\n eachProp(props, propsDef, function (key, propDef, value) {\n if (propDef && isDefined(value) && propDef.decorate) {\n var decoratedValue = propDef.decorate({\n value: value,\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n });\n props[key] = decoratedValue;\n }\n });\n for (var _i8 = 0, _Object$keys4 = Object.keys(propsDef); _i8 < _Object$keys4.length; _i8++) {\n var _key2 = _Object$keys4[_i8];\n if (!1 !== propsDef[_key2].required && !isDefined(props[_key2])) throw new Error('Expected prop \"' + _key2 + '\" to be defined');\n }\n }(propsDef, props, newProps, helpers, isUpdate);\n };\n var updateProps = function updateProps(newProps) {\n setProps(newProps, !0);\n return initPromise.then(function () {\n var child = childComponent;\n var proxyWin = currentProxyWin;\n if (child && proxyWin) return getPropsForChild(getDomainMatcher()).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 return {\n init: function init() {\n !function () {\n event.on(EVENT.RENDER, function () {\n return props.onRender();\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.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 render(_ref13) {\n var target = _ref13.target,\n container = _ref13.container,\n context = _ref13.context,\n rerender = _ref13.rerender;\n return promise_ZalgoPromise[\"try\"](function () {\n var domain = getDomainMatcher();\n var childDomain = getChildDomain();\n !function (target, domain, 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(domain, origin) && !isSameDomain(target)) throw new Error(\"Can not render remotely to \" + domain.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, domain, 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 (_ref12) {\n var parentComp = _ref12.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 getProxyContainerOverride() {\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 renderContainerOverride() {\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 showOverride() {\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 hideOverride() {\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 watchForUnloadOverride() {\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 getProxyWindowOverride() {\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 openFrameOverride() {\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 openPrerenderFrameOverride() {\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 prerenderOverride() {\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 openOverride() {\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 openPrerenderOverride() {\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 }\n return childOverridesPromise;\n }(context, target);\n });\n var windowProp = props.window;\n var watchForUnloadPromise = watchForUnload();\n var buildUrlPromise = 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 }(function (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 }(getUrl()), {\n query: query\n });\n });\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 buildWindowNamePromise = getProxyWindowPromise.then(function (proxyWin) {\n return function (_temp) {\n var _ref5 = void 0 === _temp ? {} : _temp,\n proxyWin = _ref5.proxyWin,\n childDomain = _ref5.childDomain,\n domain = _ref5.domain,\n context = (void 0 === _ref5.target && window, _ref5.context);\n return function (proxyWin, childDomain, domain) {\n return getPropsForChild(domain).then(function (childProps) {\n var value = setup_serializeMessage(proxyWin, domain, childProps);\n var propRef = childDomain === getDomain() ? {\n type: \"uid\",\n uid: uid\n } : {\n type: \"raw\",\n value: value\n };\n if (\"uid\" === propRef.type) {\n var global = lib_global_getGlobal(window);\n global.props = global.props || {};\n global.props[uid] = value;\n clean.register(function () {\n delete global.props[uid];\n });\n }\n return propRef;\n });\n }(proxyWin, childDomain, domain).then(function (propsRef) {\n return {\n uid: uid,\n context: context,\n tag: tag,\n version: \"9_0_78\",\n childDomain: childDomain,\n parentDomain: getDomain(window),\n parent: getWindowRef(0, childDomain, context),\n props: propsRef,\n exports: setup_serializeMessage(proxyWin, domain, (win = proxyWin, {\n init: initChild,\n close: close,\n checkClose: function checkClose() {\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: (_ref6 = {\n proxyWin: proxyWin,\n childDomain: childDomain,\n domain: domain,\n target: target,\n context: context\n }).proxyWin,\n childDomain: _ref6.childDomain,\n domain: _ref6.domain,\n target: _ref6.target,\n context: _ref6.context\n }).then(function (childPayload) {\n return \"__zoid__\" + name + \"__\" + base64encode(JSON.stringify(childPayload)) + \"__\";\n });\n var _ref6;\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 (_ref14) {\n return renderContainer(_ref14.proxyContainer, {\n context: context,\n proxyFrame: _ref14.proxyFrame,\n proxyPrerenderFrame: _ref14.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 (_ref15) {\n var proxyWin = _ref15.proxyWin;\n return windowProp ? proxyWin : open(context, {\n windowName: _ref15.windowName,\n proxyWin: proxyWin,\n proxyFrame: _ref15.proxyFrame\n });\n });\n var openPrerenderPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then(function (_ref16) {\n return openPrerender(context, _ref16.proxyWin, _ref16.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 (_ref17) {\n return prerender(_ref17.proxyPrerenderWin, {\n context: context\n });\n });\n var setWindowNamePromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowName: buildWindowNamePromise\n }).then(function (_ref18) {\n if (windowProp) return _ref18.proxyWin.setName(_ref18.windowName);\n });\n var getMethodPromise = promise_ZalgoPromise.hash({\n body: buildBodyPromise\n }).then(function (_ref19) {\n return options.method ? options.method : Object.keys(_ref19.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 (_ref20) {\n return _ref20.proxyWin.setLocation(_ref20.windowUrl, {\n method: _ref20.method,\n body: _ref20.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 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 });\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 getProps() {\n return props;\n },\n setProps: setProps,\n \"export\": xport,\n getHelpers: getHelpers,\n getDelegateOverrides: function getDelegateOverrides() {\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 getExports() {\n return xports({\n getExports: function getExports() {\n return exportsPromise;\n }\n });\n }\n };\n }\n function defaultContainerTemplate(_ref) {\n var uid = _ref.uid,\n frame = _ref.frame,\n prerenderFrame = _ref.prerenderFrame,\n doc = _ref.doc,\n props = _ref.props,\n event = _ref.event,\n dimensions = _ref.dimensions;\n var width = dimensions.width,\n 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,\n 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 var cleanInstances = cleanup();\n var cleanZoid = cleanup();\n function component(opts) {\n var options = function (options) {\n var tag = options.tag,\n url = options.url,\n domain = options.domain,\n bridgeUrl = options.bridgeUrl,\n _options$props = options.props,\n props = void 0 === _options$props ? {} : _options$props,\n _options$dimensions = options.dimensions,\n dimensions = void 0 === _options$dimensions ? {} : _options$dimensions,\n _options$autoResize = options.autoResize,\n autoResize = void 0 === _options$autoResize ? {} : _options$autoResize,\n _options$allowedParen = options.allowedParentDomains,\n allowedParentDomains = void 0 === _options$allowedParen ? \"*\" : _options$allowedParen,\n _options$attributes = options.attributes,\n attributes = void 0 === _options$attributes ? {} : _options$attributes,\n _options$defaultConte = options.defaultContext,\n defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte,\n _options$containerTem = options.containerTemplate,\n containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem,\n _options$prerenderTem = options.prerenderTemplate,\n prerenderTemplate = void 0 === _options$prerenderTem ? null : _options$prerenderTem,\n validate = options.validate,\n _options$eligible = options.eligible,\n eligible = void 0 === _options$eligible ? function () {\n return {\n eligible: !0\n };\n } : _options$eligible,\n _options$logger = options.logger,\n logger = void 0 === _options$logger ? {\n info: src_util_noop\n } : _options$logger,\n _options$exports = options.exports,\n xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports,\n method = options.method,\n _options$children = options.children,\n 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 validate(_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 decorate(_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 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 childDecorate(_ref4) {\n return _ref4.close;\n }\n },\n focus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref5) {\n return _ref5.focus;\n }\n },\n resize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref6) {\n return _ref6.resize;\n }\n },\n uid: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref7) {\n return _ref7.uid;\n }\n },\n tag: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref8) {\n return _ref8.tag;\n }\n },\n getParent: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref9) {\n return _ref9.getParent;\n }\n },\n getParentDomain: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref10) {\n return _ref10.getParentDomain;\n }\n },\n show: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref11) {\n return _ref11.show;\n }\n },\n hide: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref12) {\n return _ref12.hide;\n }\n },\n \"export\": {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref13) {\n return _ref13[\"export\"];\n }\n },\n onError: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref14) {\n return _ref14.onError;\n }\n },\n onProps: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref15) {\n return _ref15.onProps;\n }\n },\n getSiblings: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_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 _loop(_i2, _Object$keys2) {\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(_i2, _Object$keys2);\n return result;\n }\n };\n }(opts);\n var name = options.name,\n tag = options.tag,\n defaultContext = options.defaultContext,\n eligible = options.eligible,\n children = options.children;\n var global = lib_global_getGlobal();\n var instances = [];\n var isChild = function isChild() {\n var payload = getChildPayload();\n return Boolean(payload && payload.tag === tag && payload.childDomain === getDomain());\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,\n propsDef = options.propsDef,\n autoResize = options.autoResize,\n allowedParentDomains = options.allowedParentDomains;\n var onPropHandlers = [];\n var childPayload = getChildPayload();\n var props;\n var exportsPromise = new promise_ZalgoPromise();\n if (!childPayload) throw new Error(\"No child payload found\");\n if (\"9_0_78\" !== childPayload.version) throw new Error(\"Parent window has zoid version \" + childPayload.version + \", child window has version 9_0_78\");\n var uid = childPayload.uid,\n parentDomain = childPayload.parentDomain,\n parentExports = childPayload.exports,\n context = childPayload.context,\n propsRef = childPayload.props;\n var parentComponentWindow = function (ref) {\n var type = ref.type;\n if (\"opener\" === type) return assertExists(\"opener\", getOpener(window));\n if (\"parent\" === type && \"number\" == typeof ref.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, ref.distance));\n if (\"global\" === type && ref.uid && \"string\" == typeof ref.uid) {\n var uid = ref.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 global = lib_global_getGlobal(frame);\n if (global && global.windows && global.windows[uid]) return global.windows[uid];\n }\n }\n }\n throw new Error(\"Unable to find \" + type + \" parent component window\");\n }(childPayload.parent);\n var parent = setup_deserializeMessage(parentComponentWindow, parentDomain, parentExports);\n var show = parent.show,\n hide = parent.hide,\n close = parent.close;\n var getParent = function getParent() {\n return parentComponentWindow;\n };\n var getParentDomain = function getParentDomain() {\n return parentDomain;\n };\n var onProps = function onProps(handler) {\n onPropHandlers.push(handler);\n };\n var onError = function onError(err) {\n return promise_ZalgoPromise[\"try\"](function () {\n if (parent && parent.onError) return parent.onError(err);\n throw err;\n });\n };\n var resize = function resize(_ref) {\n return parent.resize.fireAndForget({\n width: _ref.width,\n height: _ref.height\n });\n };\n var xport = function xport(xports) {\n exportsPromise.resolve(xports);\n return parent[\"export\"](xports);\n };\n var getSiblings = function getSiblings(_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 _i4 = 0, _getAllFramesInWindow4 = getAllFramesInWindow(window); _i4 < _getAllFramesInWindow4.length; _i4++) {\n var win = _getAllFramesInWindow4[_i4];\n if (isSameDomain(win)) {\n var xprops = assertSameDomain(win).xprops;\n if (xprops && getParent() === xprops.getParent()) {\n var winParent = xprops.parent;\n (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) && result.push({\n props: xprops,\n exports: lib_global_getGlobal(win).exports\n });\n }\n }\n }\n return result;\n };\n var setProps = function setProps(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 if (!prop || !prop.sameDomain || origin === getDomain(window) && isSameDomain(parentComponentWindow)) {\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 _i6 = 0; _i6 < onPropHandlers.length; _i6++) (0, onPropHandlers[_i6])(props);\n };\n var updateProps = function updateProps(newProps) {\n return promise_ZalgoPromise[\"try\"](function () {\n return setProps(newProps, parentDomain, !0);\n });\n };\n return {\n init: function init() {\n return promise_ZalgoPromise[\"try\"](function () {\n lib_global_getGlobal().exports = options.exports({\n getExports: function getExports() {\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 parent.checkClose.fireAndForget();\n });\n window.addEventListener(\"unload\", function () {\n parent.checkClose.fireAndForget();\n });\n onCloseWindow(parentComponentWindow, function () {\n child_destroy();\n });\n }();\n return parent.init({\n updateProps: updateProps,\n close: child_destroy\n });\n }).then(function () {\n return (_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, 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,\n height = _ref3.height,\n 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 getProps() {\n if (props) return props;\n setProps(function (parentComponentWindow, domain, propRef) {\n var props;\n if (\"raw\" === propRef.type) props = propRef.value;else if (\"uid\" === propRef.type) {\n if (!isSameDomain(parentComponentWindow)) throw new Error(\"Parent component window is on a different domain - expected \" + getDomain() + \" - can not retrieve props\");\n var global = lib_global_getGlobal(parentComponentWindow);\n props = assertExists(\"props\", global && global.props[propRef.uid]);\n }\n if (!props) throw new Error(\"Could not find props\");\n return setup_deserializeMessage(parentComponentWindow, domain, props);\n }(parentComponentWindow, parentDomain, propsRef), 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 }),\n eligibility = _eligible.eligible,\n 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 clone(_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 _render(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 rerender() {\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 _loop2(_i4, _Object$keys4) {\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(_i4, _Object$keys4);\n return result;\n }(), {\n isEligible: function isEligible() {\n return eligibility;\n },\n clone: clone,\n render: function render(container, context) {\n return _render(window, container, context);\n },\n renderTo: function renderTo(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 driver(driverName, dep) {\n throw new Error(\"Driver support not enabled\");\n },\n isChild: isChild,\n canRenderTo: function canRenderTo(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 component_create(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,\n send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", function () {\n return addEventListener(window, \"message\", function (event) {\n !function (event, _ref4) {\n var on = _ref4.on,\n 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 !function (_ref8) {\n var on = _ref8.on,\n 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 init(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 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_9_0_78__;\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_10_0_44__;\n }();\n return cleanZoid.all(err);\n }\n }]);\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n!function (root, factory) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"zoid\", [], factory) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _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\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,\n rejected = this.rejected,\n handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function chain(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],\n onSuccess = _handlers$i.onSuccess,\n onError = _handlers$i.onError,\n 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 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 chain(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 _loop(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 cancel() {\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 isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === win.location.protocol;\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 = location.protocol;\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 (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), !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 cancel() {\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 wrapNativeSuper_wrapNativeSuper(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 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) + \"]\" : 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,\n thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac,\n cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function memoizedFunction() {\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 = serializeArgs(args);\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,\n _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 inlineMemoize(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] = logic.apply(void 0, args);\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 cancel() {\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 set(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 register(method) {\n var task = once(function () {\n return method(cleanErr);\n });\n cleaned ? method(cleanErr) : tasks.push(task);\n return {\n cancel: function cancel() {\n var index = tasks.indexOf(task);\n -1 !== index && tasks.splice(index, 1);\n }\n };\n },\n all: function all(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 inlineMemoize(parseQuery, 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 }, [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 isElement(element) {\n return element instanceof window.Element || null !== element && \"object\" == _typeof(element) && 1 === element.nodeType && \"object\" == _typeof(element.style) && \"object\" == _typeof(element.ownerDocument);\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 cancel() {\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,\n _ref2$width = _ref2.width,\n width = void 0 === _ref2$width || _ref2$width,\n _ref2$height = _ref2.height,\n height = void 0 === _ref2$height || _ref2$height,\n _ref2$interval = _ref2.interval,\n interval = void 0 === _ref2$interval ? 100 : _ref2$interval,\n _ref2$win = _ref2.win,\n 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 check() {\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 cancel() {\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_10_0_44__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function getObj() {\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 has(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function get(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function set(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function del(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function getOrSet(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function reset() {\n store = defStore();\n },\n keys: function keys() {\n return Object.keys(store);\n }\n };\n });\n }\n var WildCard = function WildCard() {};\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 getStore(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function has(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function get(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function set(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function del(win) {\n delete getStore(win)[key];\n },\n getOrSet: function getOrSet(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,\n 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,\n code = _ref2.code,\n 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,\n 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,\n name = _ref3.name,\n 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,\n send = _ref.send,\n 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,\n send = _ref.send,\n receiveMessage = _ref.receiveMessage;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n on(\"postrobot_open_tunnel\", function (_ref2) {\n var source = _ref2.source,\n origin = _ref2.origin,\n 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 getWindowDetails() {\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 sendMessage(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,\n source = _ref3.source,\n canary = _ref3.canary,\n 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,\n source = _ref.source,\n canary = _ref.canary,\n 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 sendMessage() {\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,\n send = _ref.send,\n 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 canary() {},\n sendMessage: function sendMessage(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,\n origin = _ref2.origin,\n 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,\n _ref$id = _ref.id,\n 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 getName() {\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 getType() {\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 close() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function focus() {\n return winPromise.then(function (win) {\n win.focus();\n });\n },\n isClosed: function isClosed() {\n return winPromise.then(function (win) {\n return isWindowClosed(win);\n });\n },\n setLocation: function setLocation(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,\n method = void 0 === _opts$method ? \"get\" : _opts$method,\n 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,\n target = _ref3.target,\n body = _ref3.body,\n _ref3$method = _ref3.method,\n 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 setName(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,\n win = _ref2.win,\n 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);\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,\n origin = _ref2.origin,\n data = _ref2.data;\n var id = data.id,\n 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,\n domain = meth.domain,\n 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,\n 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,\n name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function getDeserializedFunction(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,\n 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_10_0_44__ = domainBuffer.buffer || [], _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,\n win = _ref.win,\n 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],\n 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 handleRequest(source, origin, message, _ref) {\n var on = _ref.on,\n 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 return 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 if (!matchDomain(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\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 }\n function handleAck(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 }\n function handleResponse(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, 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 }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on,\n 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,\n origin = event.origin;\n var messages = function (message, source, origin, _ref) {\n var on = _ref.on,\n 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_10_0_44__;\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 _loop3 = function _loop3() {\n 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 ? handleRequest(source, origin, message, {\n on: on,\n send: send\n }) : \"postrobot_message_response\" === message.type ? handleResponse(source, origin, message) : \"postrobot_message_ack\" === message.type && handleAck(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 message;\n var _ret = _loop3();\n if (_typeof(_ret) === \"object\") 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 (options = options || {}).name = name;\n options.handler = handler || options.handler;\n var win = options.window;\n var domain = options.domain;\n var requestListener = function addRequestListener(_ref4, listener) {\n var name = _ref4.name,\n win = _ref4.win,\n 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 (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 cancel() {\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 cancel() {\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 domain = domain || \"*\";\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 nameListeners = requestListeners.getOrSet(win, function () {\n return {};\n });\n var domainListeners = util_getOrSet(nameListeners, name, function () {\n return {};\n });\n var strDomain = domain.toString();\n var regexListeners;\n var regexListener;\n util_isRegex(domain) ? (regexListeners = util_getOrSet(domainListeners, \"__domain_regex__\", function () {\n return [];\n })).push(regexListener = {\n regex: domain,\n listener: listener\n }) : domainListeners[strDomain] = listener;\n return {\n cancel: function cancel() {\n delete domainListeners[strDomain];\n if (regexListener) {\n regexListeners.splice(regexListeners.indexOf(regexListener, 1));\n regexListeners.length || delete domainListeners.__domain_regex__;\n }\n Object.keys(domainListeners).length || delete nameListeners[name];\n win && !Object.keys(nameListeners).length && requestListeners.del(win);\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, {\n handler: options.handler,\n handleError: options.errorHandler || function (err) {\n throw err;\n },\n window: win,\n domain: domain || \"*\",\n name: name\n });\n return {\n cancel: function cancel() {\n requestListener.cancel();\n }\n };\n }\n var send_send = function send(win, 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 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 function setup_serializeMessage(destination, domain, obj) {\n return serializeMessage(destination, domain, obj, {\n on: on_on,\n send: send_send\n });\n }\n function setup_deserializeMessage(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\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 openBridge(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 linkUrl(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 hasBridge(url, domain) {\n return globalStore(\"bridges\").has(domain || getDomainFromUrl(url));\n },\n needsBridgeForWin: needsBridgeForWin,\n needsBridgeForDomain: needsBridgeForDomain,\n destroyBridges: function destroyBridges() {\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 void 0 === win && (win = window);\n if (!isSameDomain(win)) throw new Error(\"Can not get global for window on different domain\");\n win.__zoid_9_0_78__ || (win.__zoid_9_0_78__ = {});\n return win.__zoid_9_0_78__;\n }\n function getProxyObject(obj) {\n return {\n get: function get() {\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 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 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 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 parseChildWindowName(windowName) {\n return inlineMemoize(parseChildWindowName, function () {\n if (!windowName) throw new Error(\"No window name\");\n var _windowName$split = windowName.split(\"__\"),\n zoidcomp = _windowName$split[1],\n name = _windowName$split[2],\n encodedPayload = _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 (!encodedPayload) throw new Error(\"Expected encoded payload\");\n try {\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 }(encodedPayload));\n } catch (err) {\n throw new Error(\"Can not decode window name payload: \" + encodedPayload + \": \" + stringifyError(err));\n }\n }, [windowName]);\n }\n function getChildPayload() {\n try {\n return parseChildWindowName(window.name);\n } catch (err) {}\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 props_defaultNoop() {\n return src_util_noop;\n };\n var props_decorateOnce = function props_decorateOnce(_ref) {\n return once(_ref.value);\n };\n function eachProp(props, propsDef, handler) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var propDef = propsDef[key];\n propDef && handler(key, propDef, 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) {\n var getParam = (_METHOD$GET$METHOD$PO = {}, _METHOD$GET$METHOD$PO.get = propDef.queryParam, _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, _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,\n 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 _i10 = 0, _Object$keys6 = Object.keys(result); _i10 < _Object$keys6.length; _i10++) {\n var dotkey = _Object$keys6[_i10];\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,\n options = _ref.options,\n _ref$overrides = _ref.overrides,\n overrides = void 0 === _ref$overrides ? {} : _ref$overrides,\n _ref$parentWin = _ref.parentWin,\n parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin;\n var propsDef = options.propsDef,\n containerTemplate = options.containerTemplate,\n prerenderTemplate = options.prerenderTemplate,\n tag = options.tag,\n name = options.name,\n attributes = options.attributes,\n dimensions = options.dimensions,\n autoResize = options.autoResize,\n url = options.url,\n domainMatch = options.domain,\n xports = options.exports;\n var initPromise = new promise_ZalgoPromise();\n var handledErrors = [];\n var clean = cleanup();\n var state = {};\n var internalState = {\n visible: !0\n };\n var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, emitter = {\n on: function on(eventName, handler) {\n var handlerList = handlers[eventName] = handlers[eventName] || [];\n handlerList.push(handler);\n var cancelled = !1;\n return {\n cancel: function cancel() {\n if (!cancelled) {\n cancelled = !0;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n }\n };\n },\n once: function once(eventName, handler) {\n var listener = emitter.on(eventName, function () {\n listener.cancel();\n handler();\n });\n return listener;\n },\n trigger: function trigger(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 _loop(_i2) {\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(_i2);\n }\n return promise_ZalgoPromise.all(promises).then(src_util_noop);\n },\n triggerOnce: function triggerOnce(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 reset() {\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 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 getDimensions() {\n return \"function\" == typeof dimensions ? dimensions({\n props: props\n }) : dimensions;\n };\n var resolveInitPromise = function resolveInitPromise() {\n return promise_ZalgoPromise[\"try\"](function () {\n return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve();\n });\n };\n var rejectInitPromise = function rejectInitPromise(err) {\n return promise_ZalgoPromise[\"try\"](function () {\n return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err);\n });\n };\n var getPropsForChild = function getPropsForChild(domain) {\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 prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(domain, getDomain(window)) || (result[key] = props[key]);\n }\n return promise_ZalgoPromise.hash(result);\n };\n var getInternalState = function getInternalState() {\n return promise_ZalgoPromise[\"try\"](function () {\n return getInternalStateOverride ? getInternalStateOverride() : internalState;\n });\n };\n var setInternalState = function setInternalState(newInternalState) {\n return promise_ZalgoPromise[\"try\"](function () {\n return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState);\n });\n };\n var getProxyWindow = function getProxyWindow() {\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 getProxyContainer = function getProxyContainer(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 return getProxyObject(containerElement);\n });\n };\n var setProxyWin = function setProxyWin(proxyWin) {\n return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise[\"try\"](function () {\n currentProxyWin = proxyWin;\n });\n };\n var show = function show() {\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 hide() {\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 getUrl() {\n return \"function\" == typeof url ? url({\n props: props\n }) : url;\n };\n var getAttributes = function getAttributes() {\n return \"function\" == typeof attributes ? attributes({\n props: props\n }) : attributes;\n };\n var getChildDomain = function getChildDomain() {\n return domainMatch && \"string\" == typeof domainMatch ? domainMatch : getDomainFromUrl(getUrl());\n };\n var getDomainMatcher = function getDomainMatcher() {\n return domainMatch && util_isRegex(domainMatch) ? domainMatch : getChildDomain();\n };\n var openFrame = function openFrame(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 openPrerenderFrame(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 openPrerender(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 focus() {\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 getWindowRef = function getWindowRef(target, domain, context) {\n if (domain === getDomain(window)) {\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 {\n type: \"global\",\n uid: uid\n };\n }\n return context === CONTEXT.POPUP ? {\n type: \"opener\"\n } : {\n type: \"parent\",\n distance: getDistanceFromTop(window)\n };\n };\n var initChild = function initChild(childExports) {\n return promise_ZalgoPromise[\"try\"](function () {\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 resize(_ref3) {\n var width = _ref3.width,\n 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 destroy(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 initPromise.asyncReject(err || new Error(\"Component destroyed\"));\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 open(context, _ref4) {\n var proxyWin = _ref4.proxyWin,\n proxyFrame = _ref4.proxyFrame,\n 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(),\n _getDimensions$width = _getDimensions.width,\n width = void 0 === _getDimensions$width ? \"300px\" : _getDimensions$width,\n _getDimensions$height = _getDimensions.height,\n 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 width = (options = options || {}).width,\n 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 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 name = options.name || \"\";\n delete options.name;\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 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 watchForUnload() {\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 checkWindowClose(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 onError(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 xport(actualExports) {\n return promise_ZalgoPromise[\"try\"](function () {\n exportsPromise.resolve(actualExports);\n });\n };\n initChild.onError = onError;\n var renderTemplate = function renderTemplate(renderer, _ref7) {\n return renderer({\n uid: uid,\n container: _ref7.container,\n context: _ref7.context,\n doc: _ref7.doc,\n frame: _ref7.frame,\n prerenderFrame: _ref7.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 prerender(proxyPrerenderWin, _ref8) {\n var context = _ref8.context;\n return prerenderOverride ? prerenderOverride(proxyPrerenderWin, {\n context: context\n }) : promise_ZalgoPromise[\"try\"](function () {\n if (prerenderTemplate) {\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,\n width = void 0 !== _autoResize$width && _autoResize$width,\n _autoResize$height = autoResize.height,\n height = void 0 !== _autoResize$height && _autoResize$height,\n _autoResize$element = autoResize.element,\n element = void 0 === _autoResize$element ? \"body\" : _autoResize$element;\n if ((element = getElementSafe(element, doc)) && (width || height)) {\n var prerenderResizeListener = onResize(element, function (_ref9) {\n resize({\n width: width ? _ref9.width : void 0,\n height: height ? _ref9.height : void 0\n });\n }, {\n width: width,\n height: height,\n win: prerenderWindow\n });\n event.on(EVENT.RENDERED, prerenderResizeListener.cancel);\n }\n }\n }\n }\n });\n };\n var renderContainer = function renderContainer(proxyContainer, _ref10) {\n var proxyFrame = _ref10.proxyFrame,\n proxyPrerenderFrame = _ref10.proxyPrerenderFrame,\n context = _ref10.context,\n rerender = _ref10.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 (_ref11) {\n var container = _ref11.container,\n visible = _ref11.internalState.visible;\n var innerContainer = renderTemplate(containerTemplate, {\n context: context,\n container: container,\n frame: _ref11.frame,\n prerenderFrame: _ref11.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 cancel() {\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 elementClosed() {\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 getHelpers() {\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 setProps(newProps, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var helpers = getHelpers();\n !function (propsDef, props, inputProps, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n extend(props, inputProps = inputProps || {});\n var propNames = isUpdate ? [] : [].concat(Object.keys(propsDef));\n for (var _i2 = 0, _Object$keys2 = Object.keys(inputProps); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n -1 === propNames.indexOf(key) && propNames.push(key);\n }\n var aliases = [];\n var state = helpers.state,\n close = helpers.close,\n focus = helpers.focus,\n event = helpers.event,\n onError = helpers.onError;\n for (var _i4 = 0; _i4 < propNames.length; _i4++) {\n var _key = propNames[_i4];\n var propDef = propsDef[_key];\n var value = inputProps[_key];\n if (propDef) {\n var alias = propDef.alias;\n if (alias) {\n !isDefined(value) && isDefined(inputProps[alias]) && (value = inputProps[alias]);\n aliases.push(alias);\n }\n propDef.value && (value = propDef.value({\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n }));\n !isDefined(value) && propDef[\"default\"] && (value = propDef[\"default\"]({\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n }));\n if (isDefined(value) && (\"array\" === propDef.type ? !Array.isArray(value) : _typeof(value) !== propDef.type)) throw new TypeError(\"Prop is not of type \" + propDef.type + \": \" + _key);\n props[_key] = value;\n }\n }\n for (var _i6 = 0; _i6 < aliases.length; _i6++) delete props[aliases[_i6]];\n eachProp(props, propsDef, function (key, propDef, value) {\n if (propDef && isDefined(value) && propDef.decorate) {\n var decoratedValue = propDef.decorate({\n value: value,\n props: props,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError\n });\n props[key] = decoratedValue;\n }\n });\n for (var _i8 = 0, _Object$keys4 = Object.keys(propsDef); _i8 < _Object$keys4.length; _i8++) {\n var _key2 = _Object$keys4[_i8];\n if (!1 !== propsDef[_key2].required && !isDefined(props[_key2])) throw new Error('Expected prop \"' + _key2 + '\" to be defined');\n }\n }(propsDef, props, newProps, helpers, isUpdate);\n };\n var updateProps = function updateProps(newProps) {\n setProps(newProps, !0);\n return initPromise.then(function () {\n var child = childComponent;\n var proxyWin = currentProxyWin;\n if (child && proxyWin) return getPropsForChild(getDomainMatcher()).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 return {\n init: function init() {\n !function () {\n event.on(EVENT.RENDER, function () {\n return props.onRender();\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.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 render(_ref13) {\n var target = _ref13.target,\n container = _ref13.container,\n context = _ref13.context,\n rerender = _ref13.rerender;\n return promise_ZalgoPromise[\"try\"](function () {\n var domain = getDomainMatcher();\n var childDomain = getChildDomain();\n !function (target, domain, 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(domain, origin) && !isSameDomain(target)) throw new Error(\"Can not render remotely to \" + domain.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, domain, 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 (_ref12) {\n var parentComp = _ref12.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 getProxyContainerOverride() {\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 renderContainerOverride() {\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 showOverride() {\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 hideOverride() {\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 watchForUnloadOverride() {\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 getProxyWindowOverride() {\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 openFrameOverride() {\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 openPrerenderFrameOverride() {\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 prerenderOverride() {\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 openOverride() {\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 openPrerenderOverride() {\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 setProxyWinOverride() {\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 buildUrlPromise = 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 var buildBodyPromise = serializeProps(propsDef, props, \"post\");\n var onRenderPromise = event.trigger(EVENT.RENDER);\n var getProxyContainerPromise = getProxyContainer(container);\n var getProxyWindowPromise = getProxyWindow();\n var buildWindowNamePromise = getProxyWindowPromise.then(function (proxyWin) {\n return function (_temp) {\n var _ref5 = void 0 === _temp ? {} : _temp,\n proxyWin = _ref5.proxyWin,\n childDomain = _ref5.childDomain,\n domain = _ref5.domain,\n context = (void 0 === _ref5.target && window, _ref5.context);\n return function (proxyWin, childDomain, domain) {\n return getPropsForChild(domain).then(function (childProps) {\n var value = setup_serializeMessage(proxyWin, domain, childProps);\n var propRef = childDomain === getDomain() ? {\n type: \"uid\",\n uid: uid\n } : {\n type: \"raw\",\n value: value\n };\n if (\"uid\" === propRef.type) {\n var global = lib_global_getGlobal(window);\n global.props = global.props || {};\n global.props[uid] = value;\n clean.register(function () {\n delete global.props[uid];\n });\n }\n return propRef;\n });\n }(proxyWin, childDomain, domain).then(function (propsRef) {\n return {\n uid: uid,\n context: context,\n tag: tag,\n version: \"9_0_78\",\n childDomain: childDomain,\n parentDomain: getDomain(window),\n parent: getWindowRef(0, childDomain, context),\n props: propsRef,\n exports: setup_serializeMessage(proxyWin, domain, (win = proxyWin, {\n init: initChild,\n close: close,\n checkClose: function checkClose() {\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: (_ref6 = {\n proxyWin: proxyWin,\n childDomain: childDomain,\n domain: domain,\n target: target,\n context: context\n }).proxyWin,\n childDomain: _ref6.childDomain,\n domain: _ref6.domain,\n target: _ref6.target,\n context: _ref6.context\n }).then(function (childPayload) {\n return \"__zoid__\" + name + \"__\" + base64encode(JSON.stringify(childPayload)) + \"__\";\n });\n var _ref6;\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 (_ref14) {\n return renderContainer(_ref14.proxyContainer, {\n context: context,\n proxyFrame: _ref14.proxyFrame,\n proxyPrerenderFrame: _ref14.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 (_ref15) {\n var proxyWin = _ref15.proxyWin;\n return windowProp ? proxyWin : open(context, {\n windowName: _ref15.windowName,\n proxyWin: proxyWin,\n proxyFrame: _ref15.proxyFrame\n });\n });\n var openPrerenderPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then(function (_ref16) {\n return openPrerender(context, _ref16.proxyWin, _ref16.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 (_ref17) {\n return prerender(_ref17.proxyPrerenderWin, {\n context: context\n });\n });\n var setWindowNamePromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowName: buildWindowNamePromise\n }).then(function (_ref18) {\n if (windowProp) return _ref18.proxyWin.setName(_ref18.windowName);\n });\n var getMethodPromise = promise_ZalgoPromise.hash({\n body: buildBodyPromise\n }).then(function (_ref19) {\n return options.method ? options.method : Object.keys(_ref19.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 (_ref20) {\n return _ref20.proxyWin.setLocation(_ref20.windowUrl, {\n method: _ref20.method,\n body: _ref20.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, domain, 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: domain\n }) && !src_bridge.hasBridge(domain, domain)) {\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, domain);\n return src_bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain);\n }\n });\n }(proxyWin, childDomain, 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 });\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 getProps() {\n return props;\n },\n setProps: setProps,\n \"export\": xport,\n getHelpers: getHelpers,\n getDelegateOverrides: function getDelegateOverrides() {\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 getExports() {\n return xports({\n getExports: function getExports() {\n return exportsPromise;\n }\n });\n }\n };\n }\n function defaultContainerTemplate(_ref) {\n var uid = _ref.uid,\n frame = _ref.frame,\n prerenderFrame = _ref.prerenderFrame,\n doc = _ref.doc,\n props = _ref.props,\n event = _ref.event,\n dimensions = _ref.dimensions;\n var width = dimensions.width,\n 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,\n 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,\n 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,\n url = options.url,\n domain = options.domain,\n bridgeUrl = options.bridgeUrl,\n _options$props = options.props,\n props = void 0 === _options$props ? {} : _options$props,\n _options$dimensions = options.dimensions,\n dimensions = void 0 === _options$dimensions ? {} : _options$dimensions,\n _options$autoResize = options.autoResize,\n autoResize = void 0 === _options$autoResize ? {} : _options$autoResize,\n _options$allowedParen = options.allowedParentDomains,\n allowedParentDomains = void 0 === _options$allowedParen ? \"*\" : _options$allowedParen,\n _options$attributes = options.attributes,\n attributes = void 0 === _options$attributes ? {} : _options$attributes,\n _options$defaultConte = options.defaultContext,\n defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte,\n _options$containerTem = options.containerTemplate,\n containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem,\n _options$prerenderTem = options.prerenderTemplate,\n prerenderTemplate = void 0 === _options$prerenderTem ? defaultPrerenderTemplate : _options$prerenderTem,\n validate = options.validate,\n _options$eligible = options.eligible,\n eligible = void 0 === _options$eligible ? function () {\n return {\n eligible: !0\n };\n } : _options$eligible,\n _options$logger = options.logger,\n logger = void 0 === _options$logger ? {\n info: src_util_noop\n } : _options$logger,\n _options$exports = options.exports,\n xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports,\n method = options.method,\n _options$children = options.children,\n 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 validate(_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 decorate(_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 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 childDecorate(_ref4) {\n return _ref4.close;\n }\n },\n focus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref5) {\n return _ref5.focus;\n }\n },\n resize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref6) {\n return _ref6.resize;\n }\n },\n uid: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref7) {\n return _ref7.uid;\n }\n },\n tag: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref8) {\n return _ref8.tag;\n }\n },\n getParent: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref9) {\n return _ref9.getParent;\n }\n },\n getParentDomain: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref10) {\n return _ref10.getParentDomain;\n }\n },\n show: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref11) {\n return _ref11.show;\n }\n },\n hide: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref12) {\n return _ref12.hide;\n }\n },\n \"export\": {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref13) {\n return _ref13[\"export\"];\n }\n },\n onError: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref14) {\n return _ref14.onError;\n }\n },\n onProps: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_ref15) {\n return _ref15.onProps;\n }\n },\n getSiblings: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function childDecorate(_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 _loop(_i2, _Object$keys2) {\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(_i2, _Object$keys2);\n return result;\n }\n };\n }(opts);\n var name = options.name,\n tag = options.tag,\n defaultContext = options.defaultContext,\n eligible = options.eligible,\n children = options.children;\n var global = lib_global_getGlobal();\n var instances = [];\n var isChild = function isChild() {\n var payload = getChildPayload();\n return Boolean(payload && payload.tag === tag && payload.childDomain === getDomain());\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,\n propsDef = options.propsDef,\n autoResize = options.autoResize,\n allowedParentDomains = options.allowedParentDomains;\n var onPropHandlers = [];\n var childPayload = getChildPayload();\n var props;\n var exportsPromise = new promise_ZalgoPromise();\n if (!childPayload) throw new Error(\"No child payload found\");\n if (\"9_0_78\" !== childPayload.version) throw new Error(\"Parent window has zoid version \" + childPayload.version + \", child window has version 9_0_78\");\n var uid = childPayload.uid,\n parentDomain = childPayload.parentDomain,\n parentExports = childPayload.exports,\n context = childPayload.context,\n propsRef = childPayload.props;\n var parentComponentWindow = function (ref) {\n var type = ref.type;\n if (\"opener\" === type) return assertExists(\"opener\", getOpener(window));\n if (\"parent\" === type && \"number\" == typeof ref.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, ref.distance));\n if (\"global\" === type && ref.uid && \"string\" == typeof ref.uid) {\n var uid = ref.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 global = lib_global_getGlobal(frame);\n if (global && global.windows && global.windows[uid]) return global.windows[uid];\n }\n }\n }\n throw new Error(\"Unable to find \" + type + \" parent component window\");\n }(childPayload.parent);\n var parent = setup_deserializeMessage(parentComponentWindow, parentDomain, parentExports);\n var show = parent.show,\n hide = parent.hide,\n close = parent.close;\n var getParent = function getParent() {\n return parentComponentWindow;\n };\n var getParentDomain = function getParentDomain() {\n return parentDomain;\n };\n var onProps = function onProps(handler) {\n onPropHandlers.push(handler);\n };\n var onError = function onError(err) {\n return promise_ZalgoPromise[\"try\"](function () {\n if (parent && parent.onError) return parent.onError(err);\n throw err;\n });\n };\n var resize = function resize(_ref) {\n return parent.resize.fireAndForget({\n width: _ref.width,\n height: _ref.height\n });\n };\n var xport = function xport(xports) {\n exportsPromise.resolve(xports);\n return parent[\"export\"](xports);\n };\n var getSiblings = function getSiblings(_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 _i4 = 0, _getAllFramesInWindow4 = getAllFramesInWindow(window); _i4 < _getAllFramesInWindow4.length; _i4++) {\n var win = _getAllFramesInWindow4[_i4];\n if (isSameDomain(win)) {\n var xprops = assertSameDomain(win).xprops;\n if (xprops && getParent() === xprops.getParent()) {\n var winParent = xprops.parent;\n (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) && result.push({\n props: xprops,\n exports: lib_global_getGlobal(win).exports\n });\n }\n }\n }\n return result;\n };\n var setProps = function setProps(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 if (!prop || !prop.sameDomain || origin === getDomain(window) && isSameDomain(parentComponentWindow)) {\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 _i6 = 0; _i6 < onPropHandlers.length; _i6++) (0, onPropHandlers[_i6])(props);\n };\n var updateProps = function updateProps(newProps) {\n return promise_ZalgoPromise[\"try\"](function () {\n return setProps(newProps, parentDomain, !0);\n });\n };\n return {\n init: function init() {\n return promise_ZalgoPromise[\"try\"](function () {\n lib_global_getGlobal().exports = options.exports({\n getExports: function getExports() {\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 parent.checkClose.fireAndForget();\n });\n window.addEventListener(\"unload\", function () {\n parent.checkClose.fireAndForget();\n });\n onCloseWindow(parentComponentWindow, function () {\n child_destroy();\n });\n }();\n return parent.init({\n updateProps: updateProps,\n close: child_destroy\n });\n }).then(function () {\n return (_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, 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,\n height = _ref3.height,\n 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 getProps() {\n if (props) return props;\n setProps(function (parentComponentWindow, domain, propRef) {\n var props;\n if (\"raw\" === propRef.type) props = propRef.value;else if (\"uid\" === propRef.type) {\n if (!isSameDomain(parentComponentWindow)) throw new Error(\"Parent component window is on a different domain - expected \" + getDomain() + \" - can not retrieve props\");\n var global = lib_global_getGlobal(parentComponentWindow);\n props = assertExists(\"props\", global && global.props[propRef.uid]);\n }\n if (!props) throw new Error(\"Could not find props\");\n return setup_deserializeMessage(parentComponentWindow, domain, props);\n }(parentComponentWindow, parentDomain, propsRef), 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 }),\n eligibility = _eligible.eligible,\n 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 clone(_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 _render(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 rerender() {\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 _loop2(_i4, _Object$keys4) {\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(_i4, _Object$keys4);\n return result;\n }(), {\n isEligible: function isEligible() {\n return eligibility;\n },\n clone: clone,\n render: function render(container, context) {\n return _render(window, container, context);\n },\n renderTo: function renderTo(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 driver(driverName, dep) {\n throw new Error(\"Driver support not enabled\");\n },\n isChild: isChild,\n canRenderTo: function canRenderTo(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 component_create(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,\n send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", function () {\n return addEventListener(window, \"message\", function (event) {\n !function (event, _ref4) {\n var on = _ref4.on,\n 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,\n 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 init(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_9_0_78__;\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_10_0_44__;\n }();\n return cleanZoid.all(err);\n }\n }]);\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * Copyright 2017 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview\n * The functions exported by this module make it easier (and safer) to override\n * foreign object methods (in a modular way) and respond to or modify their\n * invocation. The primary feature is the ability to override a method without\n * worrying if it's already been overridden somewhere else in the codebase. It\n * also allows for safe restoring of an overridden method by only fully\n * restoring a method once all overrides have been removed.\n */\n\nvar instances = [];\n\n/**\n * A class that wraps a foreign object method and emit events before and\n * after the original method is called.\n */\nvar MethodChain = /*#__PURE__*/function () {\n /**\n * Wraps a foreign object method and overrides it. Also stores a reference\n * to the original method so it can be restored later.\n * @param {!Object} context The object containing the method.\n * @param {string} methodName The name of the method on the object.\n */\n function MethodChain(context, methodName) {\n var _this = this;\n _classCallCheck(this, MethodChain);\n this.context = context;\n this.methodName = methodName;\n this.isTask = /Task$/.test(methodName);\n this.originalMethodReference = this.isTask ? context.get(methodName) : context[methodName];\n this.methodChain = [];\n this.boundMethodChain = [];\n\n // Wraps the original method.\n this.wrappedMethod = function () {\n var lastBoundMethod = _this.boundMethodChain[_this.boundMethodChain.length - 1];\n return lastBoundMethod.apply(void 0, arguments);\n };\n\n // Override original method with the wrapped one.\n if (this.isTask) {\n context.set(methodName, this.wrappedMethod);\n } else {\n context[methodName] = this.wrappedMethod;\n }\n }\n\n /**\n * Adds a method to the method chain.\n * @param {!Function} overrideMethod The override method to add.\n */\n _createClass(MethodChain, [{\n key: \"add\",\n value: function add(overrideMethod) {\n this.methodChain.push(overrideMethod);\n this.rebindMethodChain();\n }\n\n /**\n * Removes a method from the method chain and restores the prior order.\n * @param {!Function} overrideMethod The override method to remove.\n */\n }, {\n key: \"remove\",\n value: function remove(overrideMethod) {\n var index = this.methodChain.indexOf(overrideMethod);\n if (index > -1) {\n this.methodChain.splice(index, 1);\n if (this.methodChain.length > 0) {\n this.rebindMethodChain();\n } else {\n this.destroy();\n }\n }\n }\n\n /**\n * Loops through the method chain array and recreates the bound method\n * chain array. This is necessary any time a method is added or removed\n * to ensure proper original method context and order.\n */\n }, {\n key: \"rebindMethodChain\",\n value: function rebindMethodChain() {\n this.boundMethodChain = [];\n for (var method, i = 0; method = this.methodChain[i]; i++) {\n var previousMethod = this.boundMethodChain[i - 1] || this.originalMethodReference.bind(this.context);\n this.boundMethodChain.push(method(previousMethod));\n }\n }\n\n /**\n * Calls super and destroys the instance if no registered handlers remain.\n */\n }, {\n key: \"destroy\",\n value: function destroy() {\n var index = instances.indexOf(this);\n if (index > -1) {\n instances.splice(index, 1);\n if (this.isTask) {\n this.context.set(this.methodName, this.originalMethodReference);\n } else {\n this.context[this.methodName] = this.originalMethodReference;\n }\n }\n }\n }], [{\n key: \"add\",\n value:\n /**\n * Adds the passed override method to the list of method chain overrides.\n * @param {!Object} context The object containing the method to chain.\n * @param {string} methodName The name of the method on the object.\n * @param {!Function} methodOverride The override method to add.\n */\n function add(context, methodName, methodOverride) {\n getOrCreateMethodChain(context, methodName).add(methodOverride);\n }\n\n /**\n * Removes a method chain added via `add()`. If the override is the\n * only override added, the original method is restored.\n * @param {!Object} context The object containing the method to unchain.\n * @param {string} methodName The name of the method on the object.\n * @param {!Function} methodOverride The override method to remove.\n */\n }, {\n key: \"remove\",\n value: function remove(context, methodName, methodOverride) {\n getOrCreateMethodChain(context, methodName).remove(methodOverride);\n }\n }]);\n return MethodChain;\n}();\n/**\n * Gets a MethodChain instance for the passed object and method. If the method\n * has already been wrapped via an existing MethodChain instance, that\n * instance is returned.\n * @param {!Object} context The object containing the method.\n * @param {string} methodName The name of the method on the object.\n * @return {!MethodChain}\n */\nexport { MethodChain as default };\nfunction getOrCreateMethodChain(context, methodName) {\n var methodChain = instances.filter(function (h) {\n return h.context == context && h.methodName == methodName;\n })[0];\n if (!methodChain) {\n methodChain = new MethodChain(context, methodName);\n instances.push(methodChain);\n }\n return methodChain;\n}","/**\n * This code is needed to enable the Preact Developer Tools.\n * It should be stripped out by Webpack in a production build as\n * it should automatically detect it as unreachable code.\n * Must be the first import.\n */\n// Polyfill - see: https://github.com/babel/babel/issues/9849#issuecomment-487040428\nimport 'regenerator-runtime/runtime.js'\n\nimport Rails from 'rails-ujs'\n\nimport { Application } from '@hotwired/stimulus'\n\n// include desired GA autotrack plugins\nimport 'autotrack/lib/plugins/max-scroll-tracker'\nimport 'autotrack/lib/plugins/media-query-tracker'\nimport 'autotrack/lib/plugins/outbound-link-tracker'\n\nimport FrameFactory from '../components/frame-factory'\n\nimport AnalyticsController from '../controllers/analytics_controller'\nimport BundleEmbedController from '../controllers/bundle_embed_controller'\nimport FrameController from '../controllers/frame_controller'\nimport HorizontalBundleAnalyticsController from '../controllers/horizontal_bundle_analytics_controller'\nimport IngredientListController from '../controllers/ingredient_list_controller'\nimport ModalTriggerController from '../controllers/modal_trigger_controller'\nimport PoweredByProvenanceController from '../controllers/powered_by_provenance_controller'\nimport ProofPointStatusController from '../controllers/proof_point_status_controller'\nimport TabsController from '../controllers/tabs_controller'\nimport TabpanelsController from '../controllers/tabpanels_controller'\n\nimport { initLogging } from '../utils/logger'\n\ninitLogging()\n\nRails.start()\nconst application = Application.start()\n\nconst controllers = {\n analytics: AnalyticsController,\n 'bundle-embed': BundleEmbedController,\n frame: FrameController,\n 'horizontal-bundle-analytics': HorizontalBundleAnalyticsController,\n 'ingredient-list': IngredientListController,\n 'modal-trigger': ModalTriggerController,\n 'proof-point-status': ProofPointStatusController,\n 'powered-by-provenance': PoweredByProvenanceController,\n tabs: TabsController,\n tabpanels: TabpanelsController\n}\n\nObject.entries(controllers).forEach(([key, controller]) => {\n application.register(key, controller)\n})\n\nwindow.provenance = window.provenance || {}\nwindow.provenance.frameFactory = new FrameFactory()\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { USAGE_PARAM, VERSION, VERSION_PARAM } from './constants';\nexport var plugins = {\n CLEAN_URL_TRACKER: 1,\n EVENT_TRACKER: 2,\n IMPRESSION_TRACKER: 3,\n MEDIA_QUERY_TRACKER: 4,\n OUTBOUND_FORM_TRACKER: 5,\n OUTBOUND_LINK_TRACKER: 6,\n PAGE_VISIBILITY_TRACKER: 7,\n SOCIAL_WIDGET_TRACKER: 8,\n URL_CHANGE_TRACKER: 9,\n MAX_SCROLL_TRACKER: 10\n};\nvar PLUGIN_COUNT = Object.keys(plugins).length;\n\n/**\n * Tracks the usage of the passed plugin by encoding a value into a usage\n * string sent with all hits for the passed tracker.\n * @param {!Tracker} tracker The analytics.js tracker object.\n * @param {number} plugin The plugin enum.\n */\nexport function trackUsage(tracker, plugin) {\n trackVersion(tracker);\n trackPlugin(tracker, plugin);\n}\n\n/**\n * Converts a hexadecimal string to a binary string.\n * @param {string} hex A hexadecimal numeric string.\n * @return {string} a binary numeric string.\n */\nfunction convertHexToBin(hex) {\n return parseInt(hex || '0', 16).toString(2);\n}\n\n/**\n * Converts a binary string to a hexadecimal string.\n * @param {string} bin A binary numeric string.\n * @return {string} a hexadecimal numeric string.\n */\nfunction convertBinToHex(bin) {\n return parseInt(bin || '0', 2).toString(16);\n}\n\n/**\n * Adds leading zeros to a string if it's less than a minimum length.\n * @param {string} str A string to pad.\n * @param {number} len The minimum length of the string\n * @return {string} The padded string.\n */\nfunction padZeros(str, len) {\n if (str.length < len) {\n var toAdd = len - str.length;\n while (toAdd) {\n str = '0' + str;\n toAdd--;\n }\n }\n return str;\n}\n\n/**\n * Accepts a binary numeric string and flips the digit from 0 to 1 at the\n * specified index.\n * @param {string} str The binary numeric string.\n * @param {number} index The index to flip the bit.\n * @return {string} The new binary string with the bit flipped on\n */\nfunction flipBitOn(str, index) {\n return str.substr(0, index) + 1 + str.substr(index + 1);\n}\n\n/**\n * Accepts a tracker and a plugin index and flips the bit at the specified\n * index on the tracker's usage parameter.\n * @param {Object} tracker An analytics.js tracker.\n * @param {number} pluginIndex The index of the plugin in the global list.\n */\nfunction trackPlugin(tracker, pluginIndex) {\n var usageHex = tracker.get('&' + USAGE_PARAM);\n var usageBin = padZeros(convertHexToBin(usageHex), PLUGIN_COUNT);\n\n // Flip the bit of the plugin being tracked.\n usageBin = flipBitOn(usageBin, PLUGIN_COUNT - pluginIndex);\n\n // Stores the modified usage string back on the tracker.\n tracker.set('&' + USAGE_PARAM, convertBinToHex(usageBin));\n}\n\n/**\n * Accepts a tracker and adds the current version to the version param.\n * @param {Object} tracker An analytics.js tracker.\n */\nfunction trackVersion(tracker) {\n tracker.set('&' + VERSION_PARAM, VERSION);\n}","import { __awaiter, __generator } from \"tslib\";\nimport { CoreContext, ContextCancelation } from '../context';\nfunction tryAsync(fn) {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n return [4 /*yield*/, fn()];\n case 1:\n return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 3:\n return [2 /*return*/];\n }\n });\n });\n}\n\nexport function attempt(ctx, plugin) {\n ctx.log('debug', 'plugin', {\n plugin: plugin.name\n });\n var start = new Date().getTime();\n var hook = plugin[ctx.event.type];\n if (hook === undefined) {\n return Promise.resolve(ctx);\n }\n var newCtx = tryAsync(function () {\n return hook.apply(plugin, [ctx]);\n }).then(function (ctx) {\n var done = new Date().getTime() - start;\n ctx.stats.gauge('plugin_time', done, [\"plugin:\".concat(plugin.name)]);\n return ctx;\n })[\"catch\"](function (err) {\n if (err instanceof ContextCancelation && err.type === 'middleware_cancellation') {\n throw err;\n }\n if (err instanceof ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err\n });\n return err;\n }\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err\n });\n ctx.stats.increment('plugin_error', 1, [\"plugin:\".concat(plugin.name)]);\n return err;\n });\n return newCtx;\n}\nexport function ensure(ctx, plugin) {\n return attempt(ctx, plugin).then(function (newContext) {\n if (newContext instanceof CoreContext) {\n return newContext;\n }\n ctx.log('debug', 'Context canceled');\n ctx.stats.increment('context_canceled');\n ctx.cancel(newContext);\n });\n}","export default function (e, n) {\n return n = n || {}, new Promise(function (t, r) {\n var s = new XMLHttpRequest(),\n o = [],\n u = [],\n i = {},\n a = function a() {\n return {\n ok: 2 == (s.status / 100 | 0),\n statusText: s.statusText,\n status: s.status,\n url: s.responseURL,\n text: function text() {\n return Promise.resolve(s.responseText);\n },\n json: function json() {\n return Promise.resolve(s.responseText).then(JSON.parse);\n },\n blob: function blob() {\n return Promise.resolve(new Blob([s.response]));\n },\n clone: a,\n headers: {\n keys: function keys() {\n return o;\n },\n entries: function entries() {\n return u;\n },\n get: function get(e) {\n return i[e.toLowerCase()];\n },\n has: function has(e) {\n return e.toLowerCase() in i;\n }\n }\n };\n };\n for (var l in s.open(n.method || \"get\", e, !0), s.onload = function () {\n s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, function (e, n, t) {\n o.push(n = n.toLowerCase()), u.push([n, t]), i[n] = i[n] ? i[n] + \",\" + t : t;\n }), t(a());\n }, s.onerror = r, s.withCredentials = \"include\" == n.credentials, n.headers) s.setRequestHeader(l, n.headers[l]);\n s.send(n.body || null);\n });\n}","import { isFunction, isPlainObject, isString, isNumber } from '@segment/analytics-core';\n/**\n * Helper for the track method\n */\nexport function resolveArguments(eventName, properties, options, callback) {\n var _a;\n var args = [eventName, properties, options, callback];\n var name = isPlainObject(eventName) ? eventName.event : eventName;\n if (!name || !isString(name)) {\n throw new Error('Event missing');\n }\n var data = isPlainObject(eventName) ? (_a = eventName.properties) !== null && _a !== void 0 ? _a : {} : isPlainObject(properties) ? properties : {};\n var opts = {};\n if (!isFunction(options)) {\n opts = options !== null && options !== void 0 ? options : {};\n }\n if (isPlainObject(eventName) && !isFunction(properties)) {\n opts = properties !== null && properties !== void 0 ? properties : {};\n }\n var cb = args.find(isFunction);\n return [name, data, opts, cb];\n}\n/**\n * Helper for page, screen methods\n */\nexport function resolvePageArguments(category, name, properties, options, callback) {\n var _a, _b;\n var resolvedCategory = null;\n var resolvedName = null;\n var args = [category, name, properties, options, callback];\n var strings = args.filter(isString);\n if (strings[0] !== undefined && strings[1] !== undefined) {\n resolvedCategory = strings[0];\n resolvedName = strings[1];\n }\n if (strings.length === 1) {\n resolvedCategory = null;\n resolvedName = strings[0];\n }\n var resolvedCallback = args.find(isFunction);\n var objects = args.filter(function (obj) {\n if (resolvedName === null) {\n return isPlainObject(obj);\n }\n return isPlainObject(obj) || obj === null;\n });\n var resolvedProperties = (_a = objects[0]) !== null && _a !== void 0 ? _a : {};\n var resolvedOptions = (_b = objects[1]) !== null && _b !== void 0 ? _b : {};\n return [resolvedCategory, resolvedName, resolvedProperties, resolvedOptions, resolvedCallback];\n}\n/**\n * Helper for group, identify methods\n */\nexport var resolveUserArguments = function resolveUserArguments(user) {\n return function () {\n var _a, _b, _c, _d, _e;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var id = null;\n id = (_c = (_a = args.find(isString)) !== null && _a !== void 0 ? _a : (_b = args.find(isNumber)) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : user.id();\n var objects = args.filter(function (obj) {\n if (id === null) {\n return isPlainObject(obj);\n }\n return isPlainObject(obj) || obj === null;\n });\n var traits = (_d = objects[0]) !== null && _d !== void 0 ? _d : {};\n var opts = (_e = objects[1]) !== null && _e !== void 0 ? _e : {};\n var resolvedCallback = args.find(isFunction);\n return [id, traits, opts, resolvedCallback];\n };\n};\n/**\n * Helper for alias method\n */\nexport function resolveAliasArguments(to, from, options, callback) {\n if (isNumber(to)) to = to.toString(); // Legacy behaviour - allow integers for alias calls\n if (isNumber(from)) from = from.toString();\n var args = [to, from, options, callback];\n var _a = args.filter(isString),\n _b = _a[0],\n aliasTo = _b === void 0 ? to : _b,\n _c = _a[1],\n aliasFrom = _c === void 0 ? null : _c;\n var _d = args.filter(isPlainObject)[0],\n opts = _d === void 0 ? {} : _d;\n var resolvedCallback = args.find(isFunction);\n return [aliasTo, aliasFrom, opts, resolvedCallback];\n}","import { __awaiter, __generator } from \"tslib\";\nimport { invokeCallback } from '../callback';\n/* The amount of time in ms to wait before invoking the callback. */\nexport var getDelay = function getDelay(startTimeInEpochMS, timeoutInMS) {\n var elapsedTime = Date.now() - startTimeInEpochMS;\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);\n};\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nexport function dispatch(ctx, queue, emitter, options) {\n return __awaiter(this, void 0, void 0, function () {\n var startTime, dispatched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n emitter.emit('dispatch_start', ctx);\n startTime = Date.now();\n if (!queue.isEmpty()) return [3 /*break*/, 2];\n return [4 /*yield*/, queue.dispatchSingle(ctx)];\n case 1:\n dispatched = _a.sent();\n return [3 /*break*/, 4];\n case 2:\n return [4 /*yield*/, queue.dispatch(ctx)];\n case 3:\n dispatched = _a.sent();\n _a.label = 4;\n case 4:\n if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];\n return [4 /*yield*/, invokeCallback(dispatched, options.callback, getDelay(startTime, options.timeout))];\n case 5:\n dispatched = _a.sent();\n _a.label = 6;\n case 6:\n if (options === null || options === void 0 ? void 0 : options.debug) {\n dispatched.flush();\n }\n return [2 /*return*/, dispatched];\n }\n });\n });\n}","import { __assign, __rest } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport { dset } from 'dset';\nimport md5 from 'spark-md5';\nexport * from './interfaces';\nvar EventFactory = /** @class */function () {\n function EventFactory(user) {\n this.user = user;\n }\n EventFactory.prototype.track = function (event, properties, options, globalIntegrations) {\n return this.normalize(__assign(__assign({}, this.baseEvent()), {\n event: event,\n type: 'track',\n properties: properties,\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations)\n }));\n };\n EventFactory.prototype.page = function (category, page, properties, options, globalIntegrations) {\n var _a;\n var event = {\n type: 'page',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations)\n };\n if (category !== null) {\n event.category = category;\n event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n event.properties.category = category;\n }\n if (page !== null) {\n event.name = page;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n EventFactory.prototype.screen = function (category, screen, properties, options, globalIntegrations) {\n var event = {\n type: 'screen',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations)\n };\n if (category !== null) {\n event.category = category;\n }\n if (screen !== null) {\n event.name = screen;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n EventFactory.prototype.identify = function (userId, traits, options, globalIntegrations) {\n return this.normalize(__assign(__assign({}, this.baseEvent()), {\n type: 'identify',\n userId: userId,\n traits: traits,\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations)\n }));\n };\n EventFactory.prototype.group = function (groupId, traits, options, globalIntegrations) {\n return this.normalize(__assign(__assign({}, this.baseEvent()), {\n type: 'group',\n traits: traits,\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations),\n groupId: groupId\n }));\n };\n EventFactory.prototype.alias = function (to, from, options, globalIntegrations) {\n var base = {\n userId: to,\n type: 'alias',\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations)\n };\n if (from !== null) {\n base.previousId = from;\n }\n if (to === undefined) {\n return this.normalize(__assign(__assign({}, base), this.baseEvent()));\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), base));\n };\n EventFactory.prototype.baseEvent = function () {\n var base = {\n integrations: {},\n options: {}\n };\n var user = this.user;\n if (user.id()) {\n base.userId = user.id();\n }\n if (user.anonymousId()) {\n base.anonymousId = user.anonymousId();\n }\n return base;\n };\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n EventFactory.prototype.context = function (event) {\n var _a, _b, _c;\n var optionsKeys = ['integrations', 'anonymousId', 'timestamp', 'userId'];\n var options = (_a = event.options) !== null && _a !== void 0 ? _a : {};\n delete options['integrations'];\n var providedOptionsKeys = Object.keys(options);\n var context = (_c = (_b = event.options) === null || _b === void 0 ? void 0 : _b.context) !== null && _c !== void 0 ? _c : {};\n var overrides = {};\n providedOptionsKeys.forEach(function (key) {\n if (key === 'context') {\n return;\n }\n if (optionsKeys.includes(key)) {\n dset(overrides, key, options[key]);\n } else {\n dset(context, key, options[key]);\n }\n });\n return [context, overrides];\n };\n EventFactory.prototype.normalize = function (event) {\n var _a, _b, _c;\n // set anonymousId globally if we encounter an override\n //segment.com/docs/connections/sources/catalog/libraries/website/javascript/identity/#override-the-anonymous-id-using-the-options-object\n ((_a = event.options) === null || _a === void 0 ? void 0 : _a.anonymousId) && this.user.anonymousId(event.options.anonymousId);\n var integrationBooleans = Object.keys((_b = event.integrations) !== null && _b !== void 0 ? _b : {}).reduce(function (integrationNames, name) {\n var _a;\n var _b;\n return __assign(__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));\n }, {});\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n var allIntegrations = __assign(__assign({}, integrationBooleans), (_c = event.options) === null || _c === void 0 ? void 0 : _c.integrations);\n var _d = this.context(event),\n context = _d[0],\n overrides = _d[1];\n var options = event.options,\n rest = __rest(event, [\"options\"]);\n var body = __assign(__assign(__assign({\n timestamp: new Date()\n }, rest), {\n context: context,\n integrations: allIntegrations\n }), overrides);\n var messageId = 'ajs-next-' + md5.hash(JSON.stringify(body) + uuid());\n var evt = __assign(__assign({}, body), {\n messageId: messageId\n });\n return evt;\n };\n return EventFactory;\n}();\nexport { EventFactory };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function isThenable(value) {\n return _typeof(value) === 'object' && value !== null && 'then' in value && typeof value.then === 'function';\n};","import { isThenable } from '../utils/is-thenable';\nexport var createTaskGroup = function createTaskGroup() {\n var taskCompletionPromise;\n var resolvePromise;\n var count = 0;\n return {\n done: function done() {\n return taskCompletionPromise;\n },\n run: function run(op) {\n var returnValue = op();\n if (isThenable(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise(function (res) {\n return resolvePromise = res;\n });\n }\n returnValue[\"finally\"](function () {\n return --count === 0 && resolvePromise();\n });\n }\n return returnValue;\n }\n };\n};","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { CoreEventQueue } from '@segment/analytics-core';\nimport { isOffline } from '../connection';\nvar EventQueue = /** @class */function (_super) {\n __extends(EventQueue, _super);\n function EventQueue(nameOrQueue) {\n return _super.call(this, typeof nameOrQueue === 'string' ? new PersistedPriorityQueue(4, nameOrQueue) : nameOrQueue) || this;\n }\n EventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isOffline()) return [2 /*return*/, []];\n return [2 /*return*/, _super.prototype.flush.call(this)];\n });\n });\n };\n return EventQueue;\n}(CoreEventQueue);\nexport { EventQueue };","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { groupBy } from '../utils/group-by';\nimport { ON_REMOVE_FROM_FUTURE } from '../priority-queue';\nimport { CoreContext, ContextCancelation } from '../context';\nimport { Emitter } from '../emitter';\nimport { createTaskGroup } from '../task/task-group';\nimport { attempt, ensure } from './delivery';\nvar CoreEventQueue = /** @class */function (_super) {\n __extends(CoreEventQueue, _super);\n function CoreEventQueue(priorityQueue) {\n var _this = _super.call(this) || this;\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n _this.criticalTasks = createTaskGroup();\n _this.plugins = [];\n _this.failedInitializations = [];\n _this.flushing = false;\n _this.queue = priorityQueue;\n _this.queue.on(ON_REMOVE_FROM_FUTURE, function () {\n _this.scheduleFlush(0);\n });\n return _this;\n }\n CoreEventQueue.prototype.register = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, Promise.resolve(plugin.load(ctx, instance)).then(function () {\n _this.plugins.push(plugin);\n })[\"catch\"](function (err) {\n if (plugin.type === 'destination') {\n _this.failedInitializations.push(plugin.name);\n console.warn(plugin.name, err);\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err\n });\n return;\n }\n throw err;\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n CoreEventQueue.prototype.deregister = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3,, 4]);\n if (!plugin.unload) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.resolve(plugin.unload(ctx, instance))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.plugins = this.plugins.filter(function (p) {\n return p.name !== plugin.name;\n });\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e_1\n });\n return [3 /*break*/, 4];\n case 4:\n return [2 /*return*/];\n }\n });\n });\n };\n\n CoreEventQueue.prototype.dispatch = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var willDeliver;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.push(ctx);\n willDeliver = this.subscribeToDelivery(ctx);\n this.scheduleFlush(0);\n return [2 /*return*/, willDeliver];\n });\n });\n };\n CoreEventQueue.prototype.subscribeToDelivery = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n var onDeliver = function onDeliver(flushed, delivered) {\n if (flushed.isSame(ctx)) {\n _this.off('flush', onDeliver);\n if (delivered) {\n resolve(flushed);\n } else {\n resolve(flushed);\n }\n }\n };\n _this.on('flush', onDeliver);\n })];\n });\n });\n };\n CoreEventQueue.prototype.dispatchSingle = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.updateAttempts(ctx);\n ctx.attempts = 1;\n return [2 /*return*/, this.deliver(ctx)[\"catch\"](function (err) {\n var accepted = _this.enqueuRetry(err, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({\n reason: err\n });\n return ctx;\n }\n return _this.subscribeToDelivery(ctx);\n })];\n });\n });\n };\n CoreEventQueue.prototype.isEmpty = function () {\n return this.queue.length === 0;\n };\n CoreEventQueue.prototype.scheduleFlush = function (timeout) {\n var _this = this;\n if (timeout === void 0) {\n timeout = 500;\n }\n if (this.flushing) {\n return;\n }\n this.flushing = true;\n setTimeout(function () {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this.flush().then(function () {\n setTimeout(function () {\n _this.flushing = false;\n if (_this.queue.length) {\n _this.scheduleFlush(0);\n }\n }, 0);\n });\n }, timeout);\n };\n CoreEventQueue.prototype.deliver = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var start, done, err_1, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.criticalTasks.done()];\n case 1:\n _a.sent();\n start = Date.now();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4,, 5]);\n return [4 /*yield*/, this.flushOne(ctx)];\n case 3:\n ctx = _a.sent();\n done = Date.now() - start;\n this.emit('delivery_success', ctx);\n ctx.stats.gauge('delivered', done);\n ctx.log('debug', 'Delivered', ctx.event);\n return [2 /*return*/, ctx];\n case 4:\n err_1 = _a.sent();\n error = err_1;\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n throw err_1;\n case 5:\n return [2 /*return*/];\n }\n });\n });\n };\n\n CoreEventQueue.prototype.enqueuRetry = function (err, ctx) {\n var retriable = !(err instanceof ContextCancelation) || err.retry;\n if (!retriable) {\n return false;\n }\n return this.queue.pushWithBackoff(ctx);\n };\n CoreEventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var ctx, err_2, accepted;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length === 0) {\n return [2 /*return*/, []];\n }\n ctx = this.queue.pop();\n if (!ctx) {\n return [2 /*return*/, []];\n }\n ctx.attempts = this.queue.getAttempts(ctx);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3,, 4]);\n return [4 /*yield*/, this.deliver(ctx)];\n case 2:\n ctx = _a.sent();\n this.emit('flush', ctx, true);\n return [3 /*break*/, 4];\n case 3:\n err_2 = _a.sent();\n accepted = this.enqueuRetry(err_2, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({\n reason: err_2\n });\n this.emit('flush', ctx, false);\n }\n return [2 /*return*/, []];\n case 4:\n return [2 /*return*/, [ctx]];\n }\n });\n });\n };\n CoreEventQueue.prototype.isReady = function () {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true;\n };\n CoreEventQueue.prototype.availableExtensions = function (denyList) {\n var available = this.plugins.filter(function (p) {\n var _a, _b, _c;\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true;\n }\n var alternativeNameMatch = undefined;\n (_a = p.alternativeNames) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name];\n }\n });\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return (_c = (_b = denyList[p.name]) !== null && _b !== void 0 ? _b : alternativeNameMatch) !== null && _c !== void 0 ? _c : (p.name === 'Segment.io' ? true : denyList.All) !== false;\n });\n var _a = groupBy(available, 'type'),\n _b = _a.before,\n before = _b === void 0 ? [] : _b,\n _c = _a.enrichment,\n enrichment = _c === void 0 ? [] : _c,\n _d = _a.destination,\n destination = _d === void 0 ? [] : _d,\n _e = _a.after,\n after = _e === void 0 ? [] : _e;\n return {\n before: before,\n enrichment: enrichment,\n destinations: destination,\n after: after\n };\n };\n CoreEventQueue.prototype.flushOne = function (ctx) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var _c, before, enrichment, _i, before_1, beforeWare, temp, _d, enrichment_1, enrichmentWare, temp, _e, destinations, after, afterCalls;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!this.isReady()) {\n throw new Error('Not ready');\n }\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx);\n }\n _c = this.availableExtensions((_a = ctx.event.integrations) !== null && _a !== void 0 ? _a : {}), before = _c.before, enrichment = _c.enrichment;\n _i = 0, before_1 = before;\n _f.label = 1;\n case 1:\n if (!(_i < before_1.length)) return [3 /*break*/, 4];\n beforeWare = before_1[_i];\n return [4 /*yield*/, ensure(ctx, beforeWare)];\n case 2:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, beforeWare);\n _f.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n _d = 0, enrichment_1 = enrichment;\n _f.label = 5;\n case 5:\n if (!(_d < enrichment_1.length)) return [3 /*break*/, 8];\n enrichmentWare = enrichment_1[_d];\n return [4 /*yield*/, attempt(ctx, enrichmentWare)];\n case 6:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, enrichmentWare);\n _f.label = 7;\n case 7:\n _d++;\n return [3 /*break*/, 5];\n case 8:\n _e = this.availableExtensions((_b = ctx.event.integrations) !== null && _b !== void 0 ? _b : {}), destinations = _e.destinations, after = _e.after;\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n setTimeout(function () {\n var attempts = destinations.map(function (destination) {\n return attempt(ctx, destination);\n });\n Promise.all(attempts).then(resolve)[\"catch\"](reject);\n }, 0);\n })];\n case 9:\n _f.sent();\n ctx.stats.increment('message_delivered');\n this.emit('message_delivered', ctx);\n afterCalls = after.map(function (after) {\n return attempt(ctx, after);\n });\n return [4 /*yield*/, Promise.all(afterCalls)];\n case 10:\n _f.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n return CoreEventQueue;\n}(Emitter);\nexport { CoreEventQueue };","import { __spreadArray } from \"tslib\";\nexport function groupBy(collection, grouper) {\n var results = {};\n collection.forEach(function (item) {\n var _a;\n var key = undefined;\n if (typeof grouper === 'string') {\n var suggestedKey = item[grouper];\n key = typeof suggestedKey !== 'string' ? JSON.stringify(suggestedKey) : suggestedKey;\n } else if (grouper instanceof Function) {\n key = grouper(item);\n }\n if (key === undefined) {\n return;\n }\n results[key] = __spreadArray(__spreadArray([], (_a = results[key]) !== null && _a !== void 0 ? _a : [], true), [item], false);\n });\n return results;\n}","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { resolveAliasArguments, resolveArguments, resolvePageArguments, resolveUserArguments } from '../arguments-resolver';\nimport { isOffline } from '../connection';\nimport { Context } from '../context';\nimport { dispatch, Emitter } from '@segment/analytics-core';\nimport { EventFactory } from '../events';\nimport { EventQueue } from '../queue/event-queue';\nimport { getAvailableStorageOptions, Group, UniversalStorage, User } from '../user';\nimport autoBind from '../../lib/bind-all';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { version } from '../../generated/version';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { getGlobal } from '../../lib/get-global';\nvar deprecationWarning = 'This is being deprecated and will be not be available in future releases of Analytics JS';\n// reference any pre-existing \"analytics\" object so a user can restore the reference\nvar global = getGlobal();\nvar _analytics = global === null || global === void 0 ? void 0 : global.analytics;\nfunction createDefaultQueue(name, retryQueue, disablePersistance) {\n if (retryQueue === void 0) {\n retryQueue = false;\n }\n if (disablePersistance === void 0) {\n disablePersistance = false;\n }\n var maxAttempts = retryQueue ? 4 : 1;\n var priorityQueue = disablePersistance ? new PriorityQueue(maxAttempts, []) : new PersistedPriorityQueue(maxAttempts, name);\n return new EventQueue(priorityQueue);\n}\n/* analytics-classic stubs */\nfunction _stub() {\n console.warn(deprecationWarning);\n}\nvar Analytics = /** @class */function (_super) {\n __extends(Analytics, _super);\n function Analytics(settings, options, queue, user, group) {\n var _this = this;\n var _a, _b, _c;\n _this = _super.call(this) || this;\n _this._debug = false;\n _this.initialized = false;\n _this.user = function () {\n return _this._user;\n };\n _this.init = _this.initialize.bind(_this);\n _this.log = _stub;\n _this.addIntegrationMiddleware = _stub;\n _this.listeners = _stub;\n _this.addEventListener = _stub;\n _this.removeAllListeners = _stub;\n _this.removeListener = _stub;\n _this.removeEventListener = _stub;\n _this.hasListeners = _stub;\n _this.add = _stub;\n _this.addIntegration = _stub;\n var cookieOptions = options === null || options === void 0 ? void 0 : options.cookie;\n var disablePersistance = (_a = options === null || options === void 0 ? void 0 : options.disableClientPersistence) !== null && _a !== void 0 ? _a : false;\n _this.settings = settings;\n _this.settings.timeout = (_b = _this.settings.timeout) !== null && _b !== void 0 ? _b : 300;\n _this.queue = queue !== null && queue !== void 0 ? queue : createDefaultQueue(\"\".concat(settings.writeKey, \":event-queue\"), options === null || options === void 0 ? void 0 : options.retryQueue, disablePersistance);\n _this._universalStorage = new UniversalStorage(disablePersistance ? ['memory'] : ['localStorage', 'cookie', 'memory'], getAvailableStorageOptions(cookieOptions));\n _this._user = user !== null && user !== void 0 ? user : new User(disablePersistance ? __assign(__assign({}, options === null || options === void 0 ? void 0 : options.user), {\n persist: false\n }) : options === null || options === void 0 ? void 0 : options.user, cookieOptions).load();\n _this._group = group !== null && group !== void 0 ? group : new Group(disablePersistance ? __assign(__assign({}, options === null || options === void 0 ? void 0 : options.group), {\n persist: false\n }) : options === null || options === void 0 ? void 0 : options.group, cookieOptions).load();\n _this.eventFactory = new EventFactory(_this._user);\n _this.integrations = (_c = options === null || options === void 0 ? void 0 : options.integrations) !== null && _c !== void 0 ? _c : {};\n _this.options = options !== null && options !== void 0 ? options : {};\n autoBind(_this);\n return _this;\n }\n Object.defineProperty(Analytics.prototype, \"storage\", {\n get: function get() {\n return this._universalStorage;\n },\n enumerable: false,\n configurable: true\n });\n Analytics.prototype.track = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, name, data, opts, cb, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolveArguments.apply(void 0, args), name = _a[0], data = _a[1], opts = _a[2], cb = _a[3];\n segmentEvent = this.eventFactory.track(name, data, opts, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, cb).then(function (ctx) {\n _this.emit('track', name, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.page = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.page(category, page, properties, options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('page', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.identify = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, id, _traits, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolveUserArguments(this._user).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._user.identify(id, _traits);\n segmentEvent = this.eventFactory.identify(this._user.id(), this._user.traits(), options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('identify', ctx.event.userId, ctx.event.traits, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.group = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 0) {\n return this._group;\n }\n var _a = resolveUserArguments(this._group).apply(void 0, args),\n id = _a[0],\n _traits = _a[1],\n options = _a[2],\n callback = _a[3];\n this._group.identify(id, _traits);\n var groupId = this._group.id();\n var groupTraits = this._group.traits();\n var segmentEvent = this.eventFactory.group(groupId, groupTraits, options, this.integrations);\n return this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('group', ctx.event.groupId, ctx.event.traits, ctx.event.options);\n return ctx;\n });\n };\n Analytics.prototype.alias = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, to, from, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolveAliasArguments.apply(void 0, args), to = _a[0], from = _a[1], options = _a[2], callback = _a[3];\n segmentEvent = this.eventFactory.alias(to, from, options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('alias', to, from, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.screen = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.screen(category, page, properties, options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('screen', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.trackClick = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4 /*yield*/, import( /* webpackChunkName: \"auto-track\" */'../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackLink = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4 /*yield*/, import( /* webpackChunkName: \"auto-track\" */'../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackSubmit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4 /*yield*/, import( /* webpackChunkName: \"auto-track\" */'../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackForm = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4 /*yield*/, import( /* webpackChunkName: \"auto-track\" */'../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.register = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, registrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n registrations = plugins.map(function (xt) {\n return _this.queue.register(ctx, xt, _this);\n });\n return [4 /*yield*/, Promise.all(registrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.deregister = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, deregistrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n deregistrations = plugins.map(function (pl) {\n var plugin = _this.queue.plugins.find(function (p) {\n return p.name === pl;\n });\n if (plugin) {\n return _this.queue.deregister(ctx, plugin, _this);\n } else {\n ctx.log('warn', \"plugin \".concat(pl, \" not found\"));\n }\n });\n return [4 /*yield*/, Promise.all(deregistrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.debug = function (toggle) {\n // Make sure legacy ajs debug gets turned off if it was enabled before upgrading.\n if (toggle === false && localStorage.getItem('debug')) {\n localStorage.removeItem('debug');\n }\n this._debug = toggle;\n return this;\n };\n Analytics.prototype.reset = function () {\n this._user.reset();\n this._group.reset();\n this.emit('reset');\n };\n Analytics.prototype.timeout = function (timeout) {\n this.settings.timeout = timeout;\n };\n Analytics.prototype._dispatch = function (event, callback) {\n return __awaiter(this, void 0, void 0, function () {\n var ctx;\n return __generator(this, function (_a) {\n ctx = new Context(event);\n if (isOffline() && !this.options.retryQueue) {\n return [2 /*return*/, ctx];\n }\n return [2 /*return*/, dispatch(ctx, this.queue, this, {\n callback: callback,\n debug: this._debug,\n timeout: this.settings.timeout\n })];\n });\n });\n };\n Analytics.prototype.addSourceMiddleware = function (fn) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.queue.criticalTasks.run(function () {\n return __awaiter(_this, void 0, void 0, function () {\n var sourceMiddlewarePlugin, integrations, plugin;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, import( /* webpackChunkName: \"middleware\" */'../../plugins/middleware')];\n case 1:\n sourceMiddlewarePlugin = _a.sent().sourceMiddlewarePlugin;\n integrations = {};\n this.queue.plugins.forEach(function (plugin) {\n if (plugin.type === 'destination') {\n return integrations[plugin.name] = true;\n }\n });\n plugin = sourceMiddlewarePlugin(fn, integrations);\n return [4 /*yield*/, this.register(plugin)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n })];\n\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n /* TODO: This does not have to return a promise? */\n Analytics.prototype.addDestinationMiddleware = function (integrationName) {\n var middlewares = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n middlewares[_i - 1] = arguments[_i];\n }\n var legacyDestinations = this.queue.plugins.filter(function (xt) {\n return xt.name.toLowerCase() === integrationName.toLowerCase();\n });\n legacyDestinations.forEach(function (destination) {\n destination.addMiddleware.apply(destination, middlewares);\n });\n return Promise.resolve(this);\n };\n Analytics.prototype.setAnonymousId = function (id) {\n return this._user.anonymousId(id);\n };\n Analytics.prototype.queryString = function (query) {\n return __awaiter(this, void 0, void 0, function () {\n var queryString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.options.useQueryString === false) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, import( /* webpackChunkName: \"queryString\" */'../query-string')];\n case 1:\n queryString = _a.sent().queryString;\n return [2 /*return*/, queryString(this, query)];\n }\n });\n });\n };\n /**\n * @deprecated This function does not register a destination plugin.\n *\n * Instantiates a legacy Analytics.js destination.\n *\n * This function does not register the destination as an Analytics.JS plugin,\n * all the it does it to invoke the factory function back.\n */\n Analytics.prototype.use = function (legacyPluginFactory) {\n legacyPluginFactory(this);\n return this;\n };\n Analytics.prototype.ready = function (callback) {\n if (callback === void 0) {\n callback = function callback(res) {\n return res;\n };\n }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.queue.plugins.map(function (i) {\n return i.ready ? i.ready() : Promise.resolve();\n })).then(function (res) {\n callback(res);\n return res;\n })];\n });\n });\n };\n // analytics-classic api\n Analytics.prototype.noConflict = function () {\n console.warn(deprecationWarning);\n window.analytics = _analytics !== null && _analytics !== void 0 ? _analytics : this;\n return this;\n };\n Analytics.prototype.normalize = function (msg) {\n console.warn(deprecationWarning);\n return this.eventFactory.normalize(msg);\n };\n Object.defineProperty(Analytics.prototype, \"failedInitializations\", {\n get: function get() {\n console.warn(deprecationWarning);\n return this.queue.failedInitializations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"VERSION\", {\n get: function get() {\n return version;\n },\n enumerable: false,\n configurable: true\n });\n /* @deprecated - noop */\n Analytics.prototype.initialize = function (_settings, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.warn(deprecationWarning);\n return [2 /*return*/, Promise.resolve(this)];\n });\n });\n };\n Analytics.prototype.pageview = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.warn(deprecationWarning);\n return [4 /*yield*/, this.page({\n path: url\n })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n Object.defineProperty(Analytics.prototype, \"plugins\", {\n get: function get() {\n var _a;\n console.warn(deprecationWarning);\n // @ts-expect-error\n return (_a = this._plugins) !== null && _a !== void 0 ? _a : {};\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"Integrations\", {\n get: function get() {\n console.warn(deprecationWarning);\n var integrations = this.queue.plugins.filter(function (plugin) {\n return plugin.type === 'destination';\n }).reduce(function (acc, plugin) {\n var name = \"\".concat(plugin.name.toLowerCase().replace('.', '').split(' ').join('-'), \"Integration\");\n // @ts-expect-error\n var integration = window[name];\n if (!integration) {\n return acc;\n }\n var nested = integration.Integration; // hack - Google Analytics function resides in the \"Integration\" field\n if (nested) {\n acc[plugin.name] = nested;\n return acc;\n }\n acc[plugin.name] = integration;\n return acc;\n }, {});\n return integrations;\n },\n enumerable: false,\n configurable: true\n });\n // snippet function\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Analytics.prototype.push = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var an = this;\n var method = args.shift();\n if (method) {\n if (!an[method]) return;\n }\n an[method].apply(this, args);\n };\n return Analytics;\n}(Emitter);\nexport { Analytics };","import { __assign } from \"tslib\";\nimport { pick } from '../../lib/pick';\n/**\n * Get the current page's canonical URL.\n */\nfunction canonical() {\n var canon = document.querySelector(\"link[rel='canonical']\");\n if (canon) {\n return canon.getAttribute('href') || undefined;\n }\n}\n/**\n * Return the canonical path for the page.\n */\nfunction canonicalPath() {\n var canon = canonical();\n if (!canon) {\n return window.location.pathname;\n }\n var a = document.createElement('a');\n a.href = canon;\n var pathname = !a.pathname.startsWith('/') ? '/' + a.pathname : a.pathname;\n return pathname;\n}\n/**\n * Return the canonical URL for the page concat the given `search`\n * and strip the hash.\n */\nexport function canonicalUrl(search) {\n if (search === void 0) {\n search = '';\n }\n var canon = canonical();\n if (canon) {\n return canon.includes('?') ? canon : \"\".concat(canon).concat(search);\n }\n var url = window.location.href;\n var i = url.indexOf('#');\n return i === -1 ? url : url.slice(0, i);\n}\n/**\n * Return a default `options.context.page` object.\n *\n * https://segment.com/docs/spec/page/#properties\n */\nexport function pageDefaults() {\n return {\n path: canonicalPath(),\n referrer: document.referrer,\n search: location.search,\n title: document.title,\n url: canonicalUrl(location.search)\n };\n}\nfunction enrichPageContext(ctx) {\n var event = ctx.event;\n event.context = event.context || {};\n var defaultPageContext = pageDefaults();\n var pageContextFromEventProps = event.properties && pick(event.properties, Object.keys(defaultPageContext));\n event.context.page = __assign(__assign(__assign({}, defaultPageContext), pageContextFromEventProps), event.context.page);\n if (event.type === 'page') {\n event.properties = __assign(__assign(__assign({}, defaultPageContext), event.properties), event.name ? {\n name: event.name\n } : {});\n }\n return ctx;\n}\nexport var pageEnrichment = {\n name: 'Page Enrichment',\n version: '0.1.0',\n isLoaded: function isLoaded() {\n return true;\n },\n load: function load() {\n return Promise.resolve();\n },\n type: 'before',\n page: enrichPageContext,\n alias: enrichPageContext,\n track: enrichPageContext,\n identify: enrichPageContext,\n group: enrichPageContext\n};","import { __spreadArray } from \"tslib\";\n/**\n * @example\n * pick({ 'a': 1, 'b': '2', 'c': 3 }, ['a', 'c'])\n * => { 'a': 1, 'c': 3 }\n */\nexport var pick = function pick(object, keys) {\n return Object.assign.apply(Object, __spreadArray([{}], keys.map(function (key) {\n var _a;\n if (object && Object.prototype.hasOwnProperty.call(object, key)) {\n return _a = {}, _a[key] = object[key], _a;\n }\n }), false));\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { loadScript } from '../../lib/load-script';\nimport { getCDN } from '../../lib/parse-cdn';\nimport { applyDestinationMiddleware } from '../middleware';\nimport { Context, ContextCancelation } from '../../core/context';\nvar ActionDestination = /** @class */function () {\n function ActionDestination(name, action) {\n this.version = '1.0.0';\n this.alternativeNames = [];\n this.middleware = [];\n this.alias = this._createMethod('alias');\n this.group = this._createMethod('group');\n this.identify = this._createMethod('identify');\n this.page = this._createMethod('page');\n this.screen = this._createMethod('screen');\n this.track = this._createMethod('track');\n this.action = action;\n this.name = name;\n this.type = action.type;\n this.alternativeNames.push(action.name);\n }\n ActionDestination.prototype.addMiddleware = function () {\n var _a;\n var fn = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fn[_i] = arguments[_i];\n }\n if (this.type === 'destination') {\n (_a = this.middleware).push.apply(_a, fn);\n }\n };\n ActionDestination.prototype.transform = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var modifiedEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, applyDestinationMiddleware(this.name, ctx.event, this.middleware)];\n case 1:\n modifiedEvent = _a.sent();\n if (modifiedEvent === null) {\n ctx.cancel(new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware'\n }));\n }\n return [2 /*return*/, new Context(modifiedEvent)];\n }\n });\n });\n };\n ActionDestination.prototype._createMethod = function (methodName) {\n var _this = this;\n return function (ctx) {\n return __awaiter(_this, void 0, void 0, function () {\n var transformedContext;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.action[methodName]) return [2 /*return*/, ctx];\n transformedContext = ctx;\n if (!(this.type === 'destination')) return [3 /*break*/, 2];\n return [4 /*yield*/, this.transform(ctx)];\n case 1:\n transformedContext = _a.sent();\n _a.label = 2;\n case 2:\n return [4 /*yield*/, this.action[methodName](transformedContext)];\n case 3:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n };\n /* --- PASSTHROUGH METHODS --- */\n ActionDestination.prototype.isLoaded = function () {\n return this.action.isLoaded();\n };\n ActionDestination.prototype.ready = function () {\n return this.action.ready ? this.action.ready() : Promise.resolve();\n };\n ActionDestination.prototype.load = function (ctx, analytics) {\n return this.action.load(ctx, analytics);\n };\n ActionDestination.prototype.unload = function (ctx, analytics) {\n var _a, _b;\n return (_b = (_a = this.action).unload) === null || _b === void 0 ? void 0 : _b.call(_a, ctx, analytics);\n };\n return ActionDestination;\n}();\nexport { ActionDestination };\nfunction validate(pluginLike) {\n if (!Array.isArray(pluginLike)) {\n throw new Error('Not a valid list of plugins');\n }\n var required = ['load', 'isLoaded', 'name', 'version', 'type'];\n pluginLike.forEach(function (plugin) {\n required.forEach(function (method) {\n var _a;\n if (plugin[method] === undefined) {\n throw new Error(\"Plugin: \".concat((_a = plugin.name) !== null && _a !== void 0 ? _a : 'unknown', \" missing required function \").concat(method));\n }\n });\n });\n return true;\n}\nfunction isPluginDisabled(userIntegrations, remotePlugin) {\n var creationNameEnabled = userIntegrations[remotePlugin.creationName];\n var currentNameEnabled = userIntegrations[remotePlugin.name];\n // Check that the plugin isn't explicitly enabled when All: false\n if (userIntegrations.All === false && !creationNameEnabled && !currentNameEnabled) {\n return true;\n }\n // Check that the plugin isn't explicitly disabled\n if (creationNameEnabled === false || currentNameEnabled === false) {\n return true;\n }\n return false;\n}\nexport function remoteLoader(settings, userIntegrations, mergedIntegrations, obfuscate, routingMiddleware) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var allPlugins, cdn, routingRules, pluginPromises;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n allPlugins = [];\n cdn = getCDN();\n routingRules = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) !== null && _b !== void 0 ? _b : [];\n pluginPromises = ((_c = settings.remotePlugins) !== null && _c !== void 0 ? _c : []).map(function (remotePlugin) {\n return __awaiter(_this, void 0, void 0, function () {\n var defaultCdn, urlSplit, name_1, obfuscatedURL, error_1, libraryName, pluginFactory, plugin, plugins, routing_1, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (isPluginDisabled(userIntegrations, remotePlugin)) return [2 /*return*/];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 12,, 13]);\n defaultCdn = new RegExp('https://cdn.segment.(com|build)');\n if (!obfuscate) return [3 /*break*/, 7];\n urlSplit = remotePlugin.url.split('/');\n name_1 = urlSplit[urlSplit.length - 2];\n obfuscatedURL = remotePlugin.url.replace(name_1, btoa(name_1).replace(/=/g, ''));\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4,, 6]);\n return [4 /*yield*/, loadScript(obfuscatedURL.replace(defaultCdn, cdn))];\n case 3:\n _a.sent();\n return [3 /*break*/, 6];\n case 4:\n error_1 = _a.sent();\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n return [4 /*yield*/, loadScript(remotePlugin.url.replace(defaultCdn, cdn))];\n case 5:\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n _a.sent();\n return [3 /*break*/, 6];\n case 6:\n return [3 /*break*/, 9];\n case 7:\n return [4 /*yield*/, loadScript(remotePlugin.url.replace(defaultCdn, cdn))];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n libraryName = remotePlugin.libraryName;\n if (!(typeof window[libraryName] === 'function')) return [3 /*break*/, 11];\n pluginFactory = window[libraryName];\n return [4 /*yield*/, pluginFactory(__assign(__assign({}, remotePlugin.settings), mergedIntegrations[remotePlugin.name]))];\n case 10:\n plugin = _a.sent();\n plugins = Array.isArray(plugin) ? plugin : [plugin];\n validate(plugins);\n routing_1 = routingRules.filter(function (rule) {\n return rule.destinationName === remotePlugin.creationName;\n });\n plugins.forEach(function (plugin) {\n var wrapper = new ActionDestination(remotePlugin.creationName, plugin);\n /** Make sure we only apply destination filters to actions of the \"destination\" type to avoid causing issues for hybrid destinations */\n if (routing_1.length && routingMiddleware && plugin.type === 'destination') {\n wrapper.addMiddleware(routingMiddleware);\n }\n allPlugins.push(wrapper);\n });\n _a.label = 11;\n case 11:\n return [3 /*break*/, 13];\n case 12:\n error_2 = _a.sent();\n console.warn('Failed to load Remote Plugin', error_2);\n return [3 /*break*/, 13];\n case 13:\n return [2 /*return*/];\n }\n });\n });\n });\n\n return [4 /*yield*/, Promise.all(pluginPromises)];\n case 1:\n _d.sent();\n return [2 /*return*/, allPlugins.filter(Boolean)];\n }\n });\n });\n}","/**\n * Register event listener on document that fires when:\n * * tab change or tab close (in mobile or desktop)\n * * click back / forward button\n * * click any link or perform any other navigation action\n * * soft refresh / hard refresh\n *\n * adapted from https://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on-the-ipad/52864508#52864508,\n */\nexport var onPageLeave = function onPageLeave(cb) {\n var unloaded = false; // prevents double firing if both are supported\n window.addEventListener('pagehide', function () {\n if (unloaded) return;\n unloaded = true;\n cb();\n });\n // using document instead of window because of bug affecting browsers before safari 14 (detail in footnotes https://caniuse.com/?search=visibilitychange)\n document.addEventListener('visibilitychange', function () {\n if (document.visibilityState == 'hidden') {\n if (unloaded) return;\n unloaded = true;\n cb();\n } else {\n unloaded = false;\n }\n });\n};","import { __awaiter, __generator } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { onPageLeave } from '../../lib/on-page-leave';\nvar MAX_PAYLOAD_SIZE = 500;\nfunction kilobytes(buffer) {\n var size = encodeURI(JSON.stringify(buffer)).split(/%..|./).length - 1;\n return size / 1024;\n}\n/**\n * Checks if the payload is over or close to\n * the maximum payload size allowed by tracking\n * API.\n */\nfunction approachingTrackingAPILimit(buffer) {\n return kilobytes(buffer) >= MAX_PAYLOAD_SIZE - 50;\n}\nfunction chunks(batch) {\n var result = [];\n var index = 0;\n batch.forEach(function (item) {\n var size = kilobytes(result[index]);\n if (size >= 64) {\n index++;\n }\n if (result[index]) {\n result[index].push(item);\n } else {\n result[index] = [item];\n }\n });\n return result;\n}\nexport default function batch(apiHost, config) {\n var _a, _b;\n var buffer = [];\n var pageUnloaded = false;\n var limit = (_a = config === null || config === void 0 ? void 0 : config.size) !== null && _a !== void 0 ? _a : 10;\n var timeout = (_b = config === null || config === void 0 ? void 0 : config.timeout) !== null && _b !== void 0 ? _b : 5000;\n function sendBatch(batch) {\n var _a;\n if (batch.length === 0) {\n return;\n }\n var writeKey = (_a = batch[0]) === null || _a === void 0 ? void 0 : _a.writeKey;\n return fetch(\"https://\".concat(apiHost, \"/b\"), {\n keepalive: pageUnloaded,\n headers: {\n 'Content-Type': 'text/plain'\n },\n method: 'post',\n body: JSON.stringify({\n batch: batch,\n writeKey: writeKey\n })\n });\n }\n function flush() {\n return __awaiter(this, void 0, void 0, function () {\n var batch_1;\n return __generator(this, function (_a) {\n if (buffer.length) {\n batch_1 = buffer;\n buffer = [];\n return [2 /*return*/, sendBatch(batch_1)];\n }\n return [2 /*return*/];\n });\n });\n }\n\n var schedule;\n function scheduleFlush() {\n if (schedule) {\n return;\n }\n schedule = setTimeout(function () {\n schedule = undefined;\n flush()[\"catch\"](console.error);\n }, timeout);\n }\n onPageLeave(function () {\n pageUnloaded = true;\n if (buffer.length) {\n var reqs = chunks(buffer).map(sendBatch);\n Promise.all(reqs)[\"catch\"](console.error);\n }\n });\n function dispatch(_url, body) {\n return __awaiter(this, void 0, void 0, function () {\n var bufferOverflow;\n return __generator(this, function (_a) {\n buffer.push(body);\n bufferOverflow = buffer.length >= limit || approachingTrackingAPILimit(buffer);\n return [2 /*return*/, bufferOverflow || pageUnloaded ? flush() : scheduleFlush()];\n });\n });\n }\n return {\n dispatch: dispatch\n };\n}","import { fetch } from '../../lib/fetch';\nexport default function (config) {\n function dispatch(url, body) {\n return fetch(url, {\n keepalive: config === null || config === void 0 ? void 0 : config.keepalive,\n headers: {\n 'Content-Type': 'text/plain'\n },\n method: 'post',\n body: JSON.stringify(body)\n });\n }\n return {\n dispatch: dispatch\n };\n}","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { Context } from '../../core/context';\nimport { attempt } from '@segment/analytics-core';\nimport { pWhile } from '../../lib/p-while';\nfunction flushQueue(xt, queue) {\n return __awaiter(this, void 0, void 0, function () {\n var failedQueue;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n failedQueue = [];\n if (isOffline()) {\n return [2 /*return*/, queue];\n }\n return [4 /*yield*/, pWhile(function () {\n return queue.length > 0 && !isOffline();\n }, function () {\n return __awaiter(_this, void 0, void 0, function () {\n var ctx, result, success;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = queue.pop();\n if (!ctx) {\n return [2 /*return*/];\n }\n\n return [4 /*yield*/, attempt(ctx, xt)];\n case 1:\n result = _a.sent();\n success = result instanceof Context;\n if (!success) {\n failedQueue.push(ctx);\n }\n return [2 /*return*/];\n }\n });\n });\n })\n // re-add failed tasks\n ];\n\n case 1:\n _a.sent();\n // re-add failed tasks\n failedQueue.map(function (failed) {\n return queue.pushWithBackoff(failed);\n });\n return [2 /*return*/, queue];\n }\n });\n });\n}\nexport function scheduleFlush(flushing, buffer, xt, scheduleFlush) {\n var _this = this;\n if (flushing) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(function () {\n return __awaiter(_this, void 0, void 0, function () {\n var isFlushing, newBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isFlushing = true;\n return [4 /*yield*/, flushQueue(xt, buffer)];\n case 1:\n newBuffer = _a.sent();\n isFlushing = false;\n if (buffer.todo > 0) {\n scheduleFlush(isFlushing, newBuffer, xt, scheduleFlush);\n }\n return [2 /*return*/];\n }\n });\n });\n }, Math.random() * 5000);\n}","import { __awaiter, __generator } from \"tslib\";\nexport function clientHints(hints) {\n return __awaiter(this, void 0, void 0, function () {\n var userAgentData;\n return __generator(this, function (_a) {\n userAgentData = navigator.userAgentData;\n if (!userAgentData) return [2 /*return*/, undefined];\n if (!hints) return [2 /*return*/, userAgentData.toJSON()];\n return [2 /*return*/, userAgentData.getHighEntropyValues(hints)[\"catch\"](function () {\n return userAgentData.toJSON();\n })];\n });\n });\n}","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { toFacade } from '../../lib/to-facade';\nimport batch from './batched-dispatcher';\nimport standard from './fetch-dispatcher';\nimport { normalize } from './normalize';\nimport { scheduleFlush } from './schedule-flush';\nimport { SEGMENT_API_HOST } from '../../core/constants';\nimport { clientHints } from '../../lib/client-hints';\nfunction onAlias(analytics, json) {\n var _a, _b, _c, _d;\n var user = analytics.user();\n json.previousId = (_c = (_b = (_a = json.previousId) !== null && _a !== void 0 ? _a : json.from) !== null && _b !== void 0 ? _b : user.id()) !== null && _c !== void 0 ? _c : user.anonymousId();\n json.userId = (_d = json.userId) !== null && _d !== void 0 ? _d : json.to;\n delete json.from;\n delete json.to;\n return json;\n}\nexport function segmentio(analytics, settings, integrations) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n function send(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var path, json;\n return __generator(this, function (_a) {\n if (isOffline()) {\n buffer.push(ctx);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return [2 /*return*/, ctx];\n }\n inflightEvents.add(ctx);\n path = ctx.event.type.charAt(0);\n if (userAgentData && ctx.event.context) {\n ctx.event.context.userAgentData = userAgentData;\n }\n json = toFacade(ctx.event).json();\n if (ctx.event.type === 'track') {\n delete json.traits;\n }\n if (ctx.event.type === 'alias') {\n json = onAlias(analytics, json);\n }\n return [2 /*return*/, client.dispatch(\"\".concat(remote, \"/\").concat(path), normalize(analytics, json, settings, integrations)).then(function () {\n return ctx;\n })[\"catch\"](function () {\n buffer.pushWithBackoff(ctx);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return ctx;\n })[\"finally\"](function () {\n inflightEvents[\"delete\"](ctx);\n })];\n });\n });\n }\n var writeKey, buffer, inflightEvents, flushing, apiHost, protocol, remote, deliveryStrategy, client, userAgentData, _d, segmentio;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n // Attach `pagehide` before buffer is created so that inflight events are added\n // to the buffer before the buffer persists events in its own `pagehide` handler.\n window.addEventListener('pagehide', function () {\n buffer.push.apply(buffer, Array.from(inflightEvents));\n inflightEvents.clear();\n });\n writeKey = (_a = settings === null || settings === void 0 ? void 0 : settings.apiKey) !== null && _a !== void 0 ? _a : '';\n buffer = analytics.options.disableClientPersistence ? new PriorityQueue(analytics.queue.queue.maxAttempts, []) : new PersistedPriorityQueue(analytics.queue.queue.maxAttempts, \"\".concat(writeKey, \":dest-Segment.io\"));\n inflightEvents = new Set();\n flushing = false;\n apiHost = (_b = settings === null || settings === void 0 ? void 0 : settings.apiHost) !== null && _b !== void 0 ? _b : SEGMENT_API_HOST;\n protocol = (_c = settings === null || settings === void 0 ? void 0 : settings.protocol) !== null && _c !== void 0 ? _c : 'https';\n remote = \"\".concat(protocol, \"://\").concat(apiHost);\n deliveryStrategy = settings === null || settings === void 0 ? void 0 : settings.deliveryStrategy;\n client = (deliveryStrategy === null || deliveryStrategy === void 0 ? void 0 : deliveryStrategy.strategy) === 'batching' ? batch(apiHost, deliveryStrategy.config) : standard(deliveryStrategy === null || deliveryStrategy === void 0 ? void 0 : deliveryStrategy.config);\n _e.label = 1;\n case 1:\n _e.trys.push([1, 3,, 4]);\n return [4 /*yield*/, clientHints(analytics.options.highEntropyValuesClientHints)];\n case 2:\n userAgentData = _e.sent();\n return [3 /*break*/, 4];\n case 3:\n _d = _e.sent();\n userAgentData = undefined;\n return [3 /*break*/, 4];\n case 4:\n segmentio = {\n name: 'Segment.io',\n type: 'after',\n version: '0.1.0',\n isLoaded: function isLoaded() {\n return true;\n },\n load: function load() {\n return Promise.resolve();\n },\n track: send,\n identify: send,\n page: send,\n alias: send,\n group: send\n };\n // Buffer may already have items if they were previously stored in localStorage.\n // Start flushing them immediately.\n if (buffer.todo) {\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n }\n return [2 /*return*/, segmentio];\n }\n });\n });\n}","import { __extends } from \"tslib\";\nvar ValidationError = /** @class */function (_super) {\n __extends(ValidationError, _super);\n function ValidationError(field, message) {\n var _this = _super.call(this, \"\".concat(field, \" \").concat(message)) || this;\n _this.field = field;\n return _this;\n }\n return ValidationError;\n}(Error);\nexport { ValidationError };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { ValidationError } from './errors';\nimport { isString, isPlainObject, exists } from './helpers';\nvar stringError = 'is not a string';\nvar objError = 'is not an object';\nvar nilError = 'is nil';\nexport function assertUserIdentity(event) {\n var USER_FIELD_NAME = '.userId/anonymousId/previousId/groupId';\n var getAnyUserId = function getAnyUserId(event) {\n var _a, _b, _c;\n return (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId;\n };\n var id = getAnyUserId(event);\n if (!exists(id)) {\n throw new ValidationError(USER_FIELD_NAME, nilError);\n } else if (!isString(id)) {\n throw new ValidationError(USER_FIELD_NAME, stringError);\n }\n}\nexport function assertEventExists(event) {\n if (!exists(event)) {\n throw new ValidationError('Event', nilError);\n }\n if (_typeof(event) !== 'object') {\n throw new ValidationError('Event', objError);\n }\n}\nexport function assertEventType(event) {\n if (!isString(event.type)) {\n throw new ValidationError('.type', stringError);\n }\n}\nexport function assertTrackEventName(event) {\n if (!isString(event.event)) {\n throw new ValidationError('.event', stringError);\n }\n}\nexport function assertTrackEventProperties(event) {\n if (!isPlainObject(event.properties)) {\n throw new ValidationError('.properties', objError);\n }\n}\nexport function assertTraits(event) {\n if (!isPlainObject(event.traits)) {\n throw new ValidationError('.traits', objError);\n }\n}\nexport function validateEvent(event) {\n assertEventExists(event);\n assertEventType(event);\n if (event.type === 'track') {\n assertTrackEventName(event);\n assertTrackEventProperties(event);\n }\n if (['group', 'identify'].includes(event.type)) {\n assertTraits(event);\n }\n assertUserIdentity(event);\n}","import { assertUserIdentity, isPlainObject, ValidationError, assertEventExists, assertEventType, assertTrackEventName } from '@segment/analytics-core';\nfunction validate(ctx) {\n var _a;\n var event = ctx.event;\n assertEventExists(event);\n assertEventType(event);\n if (event.type === 'track') {\n assertTrackEventName(event);\n }\n var props = (_a = event.properties) !== null && _a !== void 0 ? _a : event.traits;\n if (event.type !== 'alias' && !isPlainObject(props)) {\n throw new ValidationError('.properties', 'is not an object');\n }\n assertUserIdentity(event);\n return ctx;\n}\nexport var validation = {\n name: 'Event Validation',\n type: 'before',\n version: '1.0.0',\n isLoaded: function isLoaded() {\n return true;\n },\n load: function load() {\n return Promise.resolve();\n },\n track: validate,\n identify: validate,\n page: validate,\n alias: validate,\n group: validate,\n screen: validate\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function isThenable(value) {\n return _typeof(value) === 'object' && value !== null && 'then' in value && typeof value.then === 'function';\n};","import { __awaiter, __generator } from \"tslib\";\nimport { isThenable } from '../../lib/is-thenable';\nimport { version } from '../../generated/version';\nvar flushSyncAnalyticsCalls = function flushSyncAnalyticsCalls(name, analytics, buffer) {\n buffer.getCalls(name).forEach(function (c) {\n // While the underlying methods are synchronous, the callAnalyticsMethod returns a promise,\n // which normalizes success and error states between async and non-async methods, with no perf penalty.\n callAnalyticsMethod(analytics, c)[\"catch\"](console.error);\n });\n};\nexport var flushAddSourceMiddleware = function flushAddSourceMiddleware(analytics, buffer) {\n return __awaiter(void 0, void 0, void 0, function () {\n var _i, _a, c;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _i = 0, _a = buffer.getCalls('addSourceMiddleware');\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n c = _a[_i];\n return [4 /*yield*/, callAnalyticsMethod(analytics, c)[\"catch\"](console.error)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n return [2 /*return*/];\n }\n });\n });\n};\n\nexport var flushOn = flushSyncAnalyticsCalls.bind(this, 'on');\nexport var flushSetAnonymousID = flushSyncAnalyticsCalls.bind(this, 'setAnonymousId');\nexport var flushAnalyticsCallsInNewTask = function flushAnalyticsCallsInNewTask(analytics, buffer) {\n buffer.toArray().forEach(function (m) {\n setTimeout(function () {\n callAnalyticsMethod(analytics, m)[\"catch\"](console.error);\n }, 0);\n });\n};\n/**\n * Represents any and all the buffered method calls that occurred before initialization.\n */\nvar PreInitMethodCallBuffer = /** @class */function () {\n function PreInitMethodCallBuffer() {\n this._value = {};\n }\n PreInitMethodCallBuffer.prototype.toArray = function () {\n var _a;\n return (_a = []).concat.apply(_a, Object.values(this._value));\n };\n PreInitMethodCallBuffer.prototype.getCalls = function (methodName) {\n var _a;\n return (_a = this._value[methodName]) !== null && _a !== void 0 ? _a : [];\n };\n PreInitMethodCallBuffer.prototype.push = function () {\n var _this = this;\n var calls = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n calls[_i] = arguments[_i];\n }\n calls.forEach(function (call) {\n if (_this._value[call.method]) {\n _this._value[call.method].push(call);\n } else {\n _this._value[call.method] = [call];\n }\n });\n return this;\n };\n PreInitMethodCallBuffer.prototype.clear = function () {\n this._value = {};\n return this;\n };\n return PreInitMethodCallBuffer;\n}();\nexport { PreInitMethodCallBuffer };\n/**\n * Call method and mark as \"called\"\n * This function should never throw an error\n */\nexport function callAnalyticsMethod(analytics, call) {\n return __awaiter(this, void 0, void 0, function () {\n var result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3,, 4]);\n if (call.called) {\n return [2 /*return*/, undefined];\n }\n call.called = true;\n result = analytics[call.method].apply(analytics, call.args);\n if (!isThenable(result)) return [3 /*break*/, 2];\n // do not defer for non-async methods\n return [4 /*yield*/, result];\n case 1:\n // do not defer for non-async methods\n _a.sent();\n _a.label = 2;\n case 2:\n call.resolve(result);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n call.reject(err_1);\n return [3 /*break*/, 4];\n case 4:\n return [2 /*return*/];\n }\n });\n });\n}\n\nvar AnalyticsBuffered = /** @class */function () {\n function AnalyticsBuffered(loader) {\n var _this = this;\n this._preInitBuffer = new PreInitMethodCallBuffer();\n this.trackSubmit = this._createMethod('trackSubmit');\n this.trackClick = this._createMethod('trackClick');\n this.trackLink = this._createMethod('trackLink');\n this.pageView = this._createMethod('pageview');\n this.identify = this._createMethod('identify');\n this.reset = this._createMethod('reset');\n this.group = this._createMethod('group');\n this.track = this._createMethod('track');\n this.ready = this._createMethod('ready');\n this.alias = this._createMethod('alias');\n this.debug = this._createChainableMethod('debug');\n this.page = this._createMethod('page');\n this.once = this._createChainableMethod('once');\n this.off = this._createChainableMethod('off');\n this.on = this._createChainableMethod('on');\n this.addSourceMiddleware = this._createMethod('addSourceMiddleware');\n this.setAnonymousId = this._createMethod('setAnonymousId');\n this.addDestinationMiddleware = this._createMethod('addDestinationMiddleware');\n this.screen = this._createMethod('screen');\n this.register = this._createMethod('register');\n this.deregister = this._createMethod('deregister');\n this.user = this._createMethod('user');\n this.VERSION = version;\n this._promise = loader(this._preInitBuffer);\n this._promise.then(function (_a) {\n var ajs = _a[0],\n ctx = _a[1];\n _this.instance = ajs;\n _this.ctx = ctx;\n })[\"catch\"](function () {\n // intentionally do nothing...\n // this result of this promise will be caught by the 'catch' block on this class.\n });\n }\n AnalyticsBuffered.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n AnalyticsBuffered.prototype[\"catch\"] = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise)[\"catch\"].apply(_a, args);\n };\n AnalyticsBuffered.prototype[\"finally\"] = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise)[\"finally\"].apply(_a, args);\n };\n AnalyticsBuffered.prototype._createMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n var result = (_a = _this.instance)[methodName].apply(_a, args);\n return Promise.resolve(result);\n }\n return new Promise(function (resolve, reject) {\n _this._preInitBuffer.push({\n method: methodName,\n args: args,\n resolve: resolve,\n reject: reject,\n called: false\n });\n });\n };\n };\n /**\n * These are for methods that where determining when the method gets \"flushed\" is not important.\n * These methods will resolve when analytics is fully initialized, and return type (other than Analytics)will not be available.\n */\n AnalyticsBuffered.prototype._createChainableMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n void (_a = _this.instance)[methodName].apply(_a, args);\n return _this;\n } else {\n _this._preInitBuffer.push({\n method: methodName,\n args: args,\n resolve: function resolve() {},\n reject: console.error,\n called: false\n });\n }\n return _this;\n };\n };\n return AnalyticsBuffered;\n}();\nexport { AnalyticsBuffered };","export function transformSnippetCall(_a) {\n var methodName = _a[0],\n args = _a.slice(1);\n return {\n method: methodName,\n resolve: function resolve() {},\n reject: console.error,\n args: args,\n called: false\n };\n}\nvar normalizeSnippetBuffer = function normalizeSnippetBuffer(buffer) {\n return buffer.map(transformSnippetCall);\n};\n/**\n * Fetch the buffered method calls from the window object and normalize them.\n * This removes existing buffered calls from the window object.\n */\nexport var popSnippetWindowBuffer = function popSnippetWindowBuffer() {\n var wa = window.analytics;\n if (!Array.isArray(wa)) return [];\n var buffered = wa.splice(0, wa.length);\n return normalizeSnippetBuffer(buffered);\n};","var _a;\nvar _b;\nimport { getGlobal } from '../../lib/get-global';\nvar env = getGlobal();\n// The code below assumes the inspector extension will use Object.assign\n// to add the inspect interface on to this object reference (unless the\n// extension code ran first and has already set up the variable)\nvar inspectorHost = (_a = (_b = env)['__SEGMENT_INSPECTOR__']) !== null && _a !== void 0 ? _a : _b['__SEGMENT_INSPECTOR__'] = {};\nexport var attachInspector = function attachInspector(analytics) {\n var _a;\n return (_a = inspectorHost.attach) === null || _a === void 0 ? void 0 : _a.call(inspectorHost, analytics);\n};","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { getProcessEnv } from '../lib/get-process-env';\nimport { getCDN, setGlobalCDNUrl } from '../lib/parse-cdn';\nimport { fetch } from '../lib/fetch';\nimport { Analytics } from '../core/analytics';\nimport { mergedOptions } from '../lib/merged-options';\nimport { createDeferred } from '../lib/create-deferred';\nimport { pageEnrichment } from '../plugins/page-enrichment';\nimport { remoteLoader } from '../plugins/remote-loader';\nimport { segmentio } from '../plugins/segmentio';\nimport { validation } from '../plugins/validation';\nimport { AnalyticsBuffered, flushAnalyticsCallsInNewTask, flushAddSourceMiddleware, flushSetAnonymousID, flushOn } from '../core/buffer';\nimport { popSnippetWindowBuffer } from '../core/buffer/snippet';\nimport { attachInspector } from '../core/inspector';\nimport { Stats } from '../core/stats';\nexport function loadLegacySettings(writeKey, cdnURL) {\n var baseUrl = cdnURL !== null && cdnURL !== void 0 ? cdnURL : getCDN();\n return fetch(\"\".concat(baseUrl, \"/v1/projects/\").concat(writeKey, \"/settings\")).then(function (res) {\n if (!res.ok) {\n return res.text().then(function (errorResponseMessage) {\n throw new Error(errorResponseMessage);\n });\n }\n return res.json();\n })[\"catch\"](function (err) {\n console.error(err.message);\n throw err;\n });\n}\nfunction hasLegacyDestinations(settings) {\n return getProcessEnv().NODE_ENV !== 'test' &&\n // just one integration means segmentio\n Object.keys(settings.integrations).length > 1;\n}\nfunction hasTsubMiddleware(settings) {\n var _a, _b, _c;\n return getProcessEnv().NODE_ENV !== 'test' && ((_c = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0;\n}\n/**\n * With AJS classic, we allow users to call setAnonymousId before the library initialization.\n * This is important because some of the destinations will use the anonymousId during the initialization,\n * and if we set anonId afterwards, that wouldn’t impact the destination.\n *\n * Also Ensures events can be registered before library initialization.\n * This is important so users can register to 'initialize' and any events that may fire early during setup.\n */\nfunction flushPreBuffer(analytics, buffer) {\n buffer.push.apply(buffer, popSnippetWindowBuffer());\n flushSetAnonymousID(analytics, buffer);\n flushOn(analytics, buffer);\n}\n/**\n * Finish flushing buffer and cleanup.\n */\nfunction flushFinalBuffer(analytics, buffer) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Call popSnippetWindowBuffer before each flush task since there may be\n // analytics calls during async function calls.\n buffer.push.apply(buffer, popSnippetWindowBuffer());\n return [4 /*yield*/, flushAddSourceMiddleware(analytics, buffer)];\n case 1:\n _a.sent();\n buffer.push.apply(buffer, popSnippetWindowBuffer());\n flushAnalyticsCallsInNewTask(analytics, buffer);\n // Clear buffer, just in case analytics is loaded twice; we don't want to fire events off again.\n buffer.clear();\n return [2 /*return*/];\n }\n });\n });\n}\n\nfunction registerPlugins(writeKey, legacySettings, analytics, opts, options, plugins, legacyIntegrationSources) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var tsubMiddleware, _d, legacyDestinations, _e, schemaFilter, _f, mergedSettings, remotePlugins, toRegister, shouldIgnoreSegmentio, _g, _h, ctx;\n var _this = this;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n if (!hasTsubMiddleware(legacySettings)) return [3 /*break*/, 2];\n return [4 /*yield*/, import( /* webpackChunkName: \"tsub-middleware\" */'../plugins/routing-middleware').then(function (mod) {\n return mod.tsubMiddleware(legacySettings.middlewareSettings.routingRules);\n })];\n case 1:\n _d = _j.sent();\n return [3 /*break*/, 3];\n case 2:\n _d = undefined;\n _j.label = 3;\n case 3:\n tsubMiddleware = _d;\n if (!(hasLegacyDestinations(legacySettings) || legacyIntegrationSources.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, import( /* webpackChunkName: \"ajs-destination\" */'../plugins/ajs-destination').then(function (mod) {\n return mod.ajsDestinations(writeKey, legacySettings, analytics.integrations, opts, tsubMiddleware, legacyIntegrationSources);\n })];\n case 4:\n _e = _j.sent();\n return [3 /*break*/, 6];\n case 5:\n _e = [];\n _j.label = 6;\n case 6:\n legacyDestinations = _e;\n if (!legacySettings.legacyVideoPluginsEnabled) return [3 /*break*/, 8];\n return [4 /*yield*/, import( /* webpackChunkName: \"legacyVideos\" */'../plugins/legacy-video-plugins').then(function (mod) {\n return mod.loadLegacyVideoPlugins(analytics);\n })];\n case 7:\n _j.sent();\n _j.label = 8;\n case 8:\n if (!((_a = opts.plan) === null || _a === void 0 ? void 0 : _a.track)) return [3 /*break*/, 10];\n return [4 /*yield*/, import( /* webpackChunkName: \"schemaFilter\" */'../plugins/schema-filter').then(function (mod) {\n var _a;\n return mod.schemaFilter((_a = opts.plan) === null || _a === void 0 ? void 0 : _a.track, legacySettings);\n })];\n case 9:\n _f = _j.sent();\n return [3 /*break*/, 11];\n case 10:\n _f = undefined;\n _j.label = 11;\n case 11:\n schemaFilter = _f;\n mergedSettings = mergedOptions(legacySettings, options);\n return [4 /*yield*/, remoteLoader(legacySettings, analytics.integrations, mergedSettings, options.obfuscate, tsubMiddleware)[\"catch\"](function () {\n return [];\n })];\n case 12:\n remotePlugins = _j.sent();\n toRegister = __spreadArray(__spreadArray(__spreadArray([validation, pageEnrichment], plugins, true), legacyDestinations, true), remotePlugins, true);\n if (schemaFilter) {\n toRegister.push(schemaFilter);\n }\n shouldIgnoreSegmentio = ((_b = opts.integrations) === null || _b === void 0 ? void 0 : _b.All) === false && !opts.integrations['Segment.io'] || opts.integrations && opts.integrations['Segment.io'] === false;\n if (!!shouldIgnoreSegmentio) return [3 /*break*/, 14];\n _h = (_g = toRegister).push;\n return [4 /*yield*/, segmentio(analytics, mergedSettings['Segment.io'], legacySettings.integrations)];\n case 13:\n _h.apply(_g, [_j.sent()]);\n _j.label = 14;\n case 14:\n return [4 /*yield*/, analytics.register.apply(analytics, toRegister)];\n case 15:\n ctx = _j.sent();\n if (!Object.entries((_c = legacySettings.enabledMiddleware) !== null && _c !== void 0 ? _c : {}).some(function (_a) {\n var enabled = _a[1];\n return enabled;\n })) return [3 /*break*/, 17];\n return [4 /*yield*/, import( /* webpackChunkName: \"remoteMiddleware\" */'../plugins/remote-middleware').then(function (_a) {\n var remoteMiddlewares = _a.remoteMiddlewares;\n return __awaiter(_this, void 0, void 0, function () {\n var middleware, promises;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n return [4 /*yield*/, remoteMiddlewares(ctx, legacySettings, options.obfuscate)];\n case 1:\n middleware = _b.sent();\n promises = middleware.map(function (mdw) {\n return analytics.addSourceMiddleware(mdw);\n });\n return [2 /*return*/, Promise.all(promises)];\n }\n });\n });\n })];\n case 16:\n _j.sent();\n _j.label = 17;\n case 17:\n return [2 /*return*/, ctx];\n }\n });\n });\n}\nfunction loadAnalytics(settings, options, preInitBuffer) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options === void 0) {\n options = {};\n }\n return __awaiter(this, void 0, void 0, function () {\n var legacySettings, _h, retryQueue, opts, analytics, plugins, classicIntegrations, ctx, search, hash, term;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n // this is an ugly side-effect, but it's for the benefits of the plugins that get their cdn via getCDN()\n if (settings.cdnURL) setGlobalCDNUrl(settings.cdnURL);\n if (!((_a = settings.cdnSettings) !== null && _a !== void 0)) return [3 /*break*/, 1];\n _h = _a;\n return [3 /*break*/, 3];\n case 1:\n return [4 /*yield*/, loadLegacySettings(settings.writeKey, settings.cdnURL)];\n case 2:\n _h = _j.sent();\n _j.label = 3;\n case 3:\n legacySettings = _h;\n if (options.updateCDNSettings) {\n legacySettings = options.updateCDNSettings(legacySettings);\n }\n retryQueue = (_c = (_b = legacySettings.integrations['Segment.io']) === null || _b === void 0 ? void 0 : _b.retryQueue) !== null && _c !== void 0 ? _c : true;\n opts = __assign({\n retryQueue: retryQueue\n }, options);\n analytics = new Analytics(settings, opts);\n attachInspector(analytics);\n plugins = (_d = settings.plugins) !== null && _d !== void 0 ? _d : [];\n classicIntegrations = (_e = settings.classicIntegrations) !== null && _e !== void 0 ? _e : [];\n Stats.initRemoteMetrics(legacySettings.metrics);\n // needs to be flushed before plugins are registered\n flushPreBuffer(analytics, preInitBuffer);\n return [4 /*yield*/, registerPlugins(settings.writeKey, legacySettings, analytics, opts, options, plugins, classicIntegrations)];\n case 4:\n ctx = _j.sent();\n search = (_f = window.location.search) !== null && _f !== void 0 ? _f : '';\n hash = (_g = window.location.hash) !== null && _g !== void 0 ? _g : '';\n term = search.length ? search : hash.replace(/(?=#).*(?=\\?)/, '');\n if (!term.includes('ajs_')) return [3 /*break*/, 6];\n return [4 /*yield*/, analytics.queryString(term)[\"catch\"](console.error)];\n case 5:\n _j.sent();\n _j.label = 6;\n case 6:\n analytics.initialized = true;\n analytics.emit('initialize', settings, options);\n if (options.initialPageview) {\n analytics.page()[\"catch\"](console.error);\n }\n return [4 /*yield*/, flushFinalBuffer(analytics, preInitBuffer)];\n case 7:\n _j.sent();\n return [2 /*return*/, [analytics, ctx]];\n }\n });\n });\n}\n/**\n * The public browser interface for Segment Analytics\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n * @link https://github.com/segmentio/analytics-next/#readme\n */\nvar AnalyticsBrowser = /** @class */function (_super) {\n __extends(AnalyticsBrowser, _super);\n function AnalyticsBrowser() {\n var _this = this;\n var _a = createDeferred(),\n loadStart = _a.promise,\n resolveLoadStart = _a.resolve;\n _this = _super.call(this, function (buffer) {\n return loadStart.then(function (_a) {\n var settings = _a[0],\n options = _a[1];\n return loadAnalytics(settings, options, buffer);\n });\n }) || this;\n _this._resolveLoadStart = function (settings, options) {\n return resolveLoadStart([settings, options]);\n };\n return _this;\n }\n /**\n * Fully initialize an analytics instance, including:\n *\n * * Fetching settings from the segment CDN (by default).\n * * Fetching all remote destinations configured by the user (if applicable).\n * * Flushing buffered analytics events.\n * * Loading all middleware.\n *\n * Note:️ This method should only be called *once* in your application.\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n */\n AnalyticsBrowser.prototype.load = function (settings, options) {\n if (options === void 0) {\n options = {};\n }\n this._resolveLoadStart(settings, options);\n return this;\n };\n /**\n * Instantiates an object exposing Analytics methods.\n *\n * @example\n * ```ts\n * const ajs = AnalyticsBrowser.load({ writeKey: '' })\n *\n * ajs.track(\"foo\")\n * ...\n * ```\n */\n AnalyticsBrowser.load = function (settings, options) {\n if (options === void 0) {\n options = {};\n }\n return new AnalyticsBrowser().load(settings, options);\n };\n AnalyticsBrowser.standalone = function (writeKey, options) {\n return AnalyticsBrowser.load({\n writeKey: writeKey\n }, options).then(function (res) {\n return res[0];\n });\n };\n return AnalyticsBrowser;\n}(AnalyticsBuffered);\nexport { AnalyticsBrowser };","/**\n * Return a promise that can be externally resolved\n */\nexport var createDeferred = function createDeferred() {\n var resolve;\n var reject;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n resolve: resolve,\n reject: reject,\n promise: promise\n };\n};","import { AnalyticsBrowser } from '@segment/analytics-next'\n\nimport { internalLog, log } from './logger'\n\n// IP addresses are anonymised in Segment calls (identify and track) to avoid any PII being captured\n// See https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/identity/#anonymizing-ip for info.\n\nlet segmentAnalytics\nif (window.provenance && window.provenance.segmentWriteKey) {\n segmentAnalytics = AnalyticsBrowser.load({ writeKey: window.provenance.segmentWriteKey })\n // The Segment user is defined as an account identifier\n console.debug('Init Segment', window.provenance.segmentWriteKey)\n if (window.provenance.segmentUserId) {\n segmentAnalytics.identify(window.provenance.segmentUserId, {}, { context: { ip: '0.0.0.0' } })\n }\n}\n\nconst postEventToGTM = (event, properties) => {\n // console.log('Track event: GTM', event, properties)\n\n properties.eventCategory = properties.eventCategory ? `provenance:${properties.eventCategory}` : event\n\n try {\n // Old-style IFrame tracking\n if (window.xprops && window.xprops.track) {\n window.xprops.track(event, properties)\n }\n\n const eventData = properties\n eventData.event = event\n\n // New-style IFrame tracking\n if (window.xprops && window.xprops.onChildEvent) {\n const event = {\n name: 'analytics_event',\n data: {\n details: eventData\n }\n }\n window.xprops.onChildEvent(event)\n }\n\n // Also push to the data layer of the iFrame, for internal capture\n window.dataLayer = window.dataLayer || []\n window.dataLayer.push(eventData)\n } catch (error) {\n log(error)\n }\n}\n\nconst postEventToSegment = (event, properties) => {\n if (window.provenance.segmentWriteKey) {\n // console.log('Track event: Segment', event, properties)\n segmentAnalytics.track(event, properties, { context: { ip: '0.0.0.0' } })\n }\n}\n\n// For tracking events on platform embedded content\nconst track = (event, properties, options = {}) => {\n const adapter = options.adapter || 'gtm'\n // Prefix all event names with \"provenance:\"\n event = `provenance:${event}`\n const undefinedProvEventProps = []\n for (const property in properties) {\n if (properties[property] === undefined || properties[property] === '') {\n undefinedProvEventProps.push('Property ' + property + ' undefined')\n }\n }\n if (undefinedProvEventProps.length > 0) {\n internalLog(undefinedProvEventProps, event, properties, adapter)\n }\n\n // TODO: add adapters to gtm track calls and segment tracking (plus adapter) to all track calls\n if (adapter === 'segment') {\n postEventToSegment(event, properties)\n } else {\n postEventToGTM(event, properties)\n }\n}\n\nconst trackInApp = (event, properties) => {\n postEventToSegment(event, properties)\n}\n\nexport { track, trackInApp, segmentAnalytics }\n","var proto = window.Element.prototype;\nvar nativeMatches = proto.matches || proto.matchesSelector || proto.webkitMatchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector;\n\n/**\n * Tests if a DOM elements matches any of the test DOM elements or selectors.\n * @param {Element} element The DOM element to test.\n * @param {Element|string|Array} test A DOM element, a CSS\n * selector, or an array of DOM elements or CSS selectors to match against.\n * @return {boolean} True of any part of the test matches.\n */\nexport default function matches(element, test) {\n // Validate input.\n if (element && element.nodeType == 1 && test) {\n // if test is a string or DOM element test it.\n if (typeof test == 'string' || test.nodeType == 1) {\n return element == test || matchesSelector(element, /** @type {string} */test);\n } else if ('length' in test) {\n // if it has a length property iterate over the items\n // and return true if any match.\n for (var i = 0, item; item = test[i]; i++) {\n if (element == item || matchesSelector(element, item)) return true;\n }\n }\n }\n // Still here? Return false\n return false;\n}\n\n/**\n * Tests whether a DOM element matches a selector. This polyfills the native\n * Element.prototype.matches method across browsers.\n * @param {!Element} element The DOM element to test.\n * @param {string} selector The CSS selector to test element against.\n * @return {boolean} True if the selector matches.\n */\nfunction matchesSelector(element, selector) {\n if (typeof selector != 'string') return false;\n if (nativeMatches) return nativeMatches.call(element, selector);\n var nodes = element.parentNode.querySelectorAll(selector);\n for (var i = 0, node; node = nodes[i]; i++) {\n if (node == element) return true;\n }\n return false;\n}","import closest from './closest';\nimport matches from './matches';\n\n/**\n * Delegates the handling of events for an element matching a selector to an\n * ancestor of the matching element.\n * @param {!Node} ancestor The ancestor element to add the listener to.\n * @param {string} eventType The event type to listen to.\n * @param {string} selector A CSS selector to match against child elements.\n * @param {!Function} callback A function to run any time the event happens.\n * @param {Object=} opts A configuration options object. The available options:\n * - useCapture: If true, bind to the event capture phase.\n * - deep: If true, delegate into shadow trees.\n * @return {Object} The delegate object. It contains a destroy method.\n */\nexport default function delegate(ancestor, eventType, selector, callback) {\n var opts = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n // Defines the event listener.\n var listener = function listener(event) {\n var delegateTarget;\n\n // If opts.composed is true and the event originated from inside a Shadow\n // tree, check the composed path nodes.\n if (opts.composed && typeof event.composedPath == 'function') {\n var composedPath = event.composedPath();\n for (var i = 0, node; node = composedPath[i]; i++) {\n if (node.nodeType == 1 && matches(node, selector)) {\n delegateTarget = node;\n }\n }\n } else {\n // Otherwise check the parents.\n delegateTarget = closest(event.target, selector, true);\n }\n if (delegateTarget) {\n callback.call(delegateTarget, event, delegateTarget);\n }\n };\n ancestor.addEventListener(eventType, listener, opts.useCapture);\n return {\n destroy: function destroy() {\n ancestor.removeEventListener(eventType, listener, opts.useCapture);\n }\n };\n}","import matches from './matches';\nimport parents from './parents';\n\n/**\n * Gets the closest parent element that matches the passed selector.\n * @param {Element} element The element whose parents to check.\n * @param {string} selector The CSS selector to match against.\n * @param {boolean=} shouldCheckSelf True if the selector should test against\n * the passed element itself.\n * @return {Element|undefined} The matching element or undefined.\n */\nexport default function closest(element, selector) {\n var shouldCheckSelf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!(element && element.nodeType == 1 && selector)) return;\n var parentElements = (shouldCheckSelf ? [element] : []).concat(parents(element));\n for (var i = 0, parent; parent = parentElements[i]; i++) {\n if (matches(parent, selector)) return parent;\n }\n}","/**\n * Returns an array of a DOM element's parent elements.\n * @param {!Element} element The DOM element whose parents to get.\n * @return {!Array} An array of all parent elemets, or an empty array if no\n * parent elements are found.\n */\nexport default function parents(element) {\n var list = [];\n while (element && element.parentNode && element.parentNode.nodeType == 1) {\n element = /** @type {!Element} */element.parentNode;\n list.push(element);\n }\n return list;\n}","/**\n * Gets all attributes of an element as a plain JavaScriot object.\n * @param {Element} element The element whose attributes to get.\n * @return {!Object} An object whose keys are the attribute keys and whose\n * values are the attribute values. If no attributes exist, an empty\n * object is returned.\n */\nexport default function getAttributes(element) {\n var attrs = {};\n\n // Validate input.\n if (!(element && element.nodeType == 1)) return attrs;\n\n // Return an empty object if there are no attributes.\n var map = element.attributes;\n if (map.length === 0) return {};\n for (var i = 0, attr; attr = map[i]; i++) {\n attrs[attr.name] = attr.value;\n }\n return attrs;\n}","var HTTP_PORT = '80';\nvar HTTPS_PORT = '443';\nvar DEFAULT_PORT = RegExp(':(' + HTTP_PORT + '|' + HTTPS_PORT + ')$');\nvar a = document.createElement('a');\nvar cache = {};\n\n/**\n * Parses the given url and returns an object mimicing a `Location` object.\n * @param {string} url The url to parse.\n * @return {!Object} An object with the same properties as a `Location`.\n */\nexport default function parseUrl(url) {\n // All falsy values (as well as \".\") should map to the current URL.\n url = !url || url == '.' ? location.href : url;\n if (cache[url]) return cache[url];\n a.href = url;\n\n // When parsing file relative paths (e.g. `../index.html`), IE will correctly\n // resolve the `href` property but will keep the `..` in the `path` property.\n // It will also not include the `host` or `hostname` properties. Furthermore,\n // IE will sometimes return no protocol or just a colon, especially for things\n // like relative protocol URLs (e.g. \"//google.com\").\n // To workaround all of these issues, we reparse with the full URL from the\n // `href` property.\n if (url.charAt(0) == '.' || url.charAt(0) == '/') return parseUrl(a.href);\n\n // Don't include default ports.\n var port = a.port == HTTP_PORT || a.port == HTTPS_PORT ? '' : a.port;\n\n // PhantomJS sets the port to \"0\" when using the file: protocol.\n port = port == '0' ? '' : port;\n\n // Sometimes IE incorrectly includes a port for default ports\n // (e.g. `:80` or `:443`) even when no port is specified in the URL.\n // http://bit.ly/1rQNoMg\n var host = a.host.replace(DEFAULT_PORT, '');\n\n // Not all browser support `origin` so we have to build it.\n var origin = a.origin ? a.origin : a.protocol + '//' + host;\n\n // Sometimes IE doesn't include the leading slash for pathname.\n // http://bit.ly/1rQNoMg\n var pathname = a.pathname.charAt(0) == '/' ? a.pathname : '/' + a.pathname;\n return cache[url] = {\n hash: a.hash,\n host: host,\n hostname: a.hostname,\n href: a.href,\n origin: origin,\n pathname: pathname,\n port: port,\n protocol: a.protocol,\n search: a.search\n };\n}","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\nfunction noop() {}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return _extendStatics(d, b);\n};\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n _extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) {\n if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n return f;\n }\n var kind = contextIn.kind,\n key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _,\n done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) {\n if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n extraInitializers.push(accept(f || null));\n };\n var result = (0, decorators[i])(kind === \"accessor\" ? {\n get: descriptor.get,\n set: descriptor.set\n } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || _typeof(result) !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n } else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n}\n;\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n}\n;\nexport function __propKey(x) {\n return _typeof(x) === \"symbol\" ? x : \"\".concat(x);\n}\n;\nexport function __setFunctionName(f, name, prefix) {\n if (_typeof(name) === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", {\n configurable: true,\n value: prefix ? \"\".concat(prefix, \" \", name) : name\n });\n}\n;\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: false\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n}\n;\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport default {\n __extends: __extends,\n __assign: _assign,\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __createBinding: __createBinding,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __spreadArrays: __spreadArrays,\n __spreadArray: __spreadArray,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault,\n __classPrivateFieldGet: __classPrivateFieldGet,\n __classPrivateFieldSet: __classPrivateFieldSet,\n __classPrivateFieldIn: __classPrivateFieldIn\n};","var identity = function identity(_) {\n return _;\n};\n\n/**\n * Module exports, export\n */\n\nmodule.exports = multiple(find);\nmodule.exports.find = module.exports;\n\n/**\n * Export the replacement function, return the modified object\n */\n\nmodule.exports.replace = function (obj, key, val, options) {\n multiple(replace).call(this, obj, key, val, options);\n return obj;\n};\n\n/**\n * Export the delete function, return the modified object\n */\n\nmodule.exports.del = function (obj, key, options) {\n multiple(del).call(this, obj, key, null, options);\n return obj;\n};\n\n/**\n * Compose applying the function to a nested key\n */\n\nfunction multiple(fn) {\n return function (obj, path, val, options) {\n var normalize = options && isFunction(options.normalizer) ? options.normalizer : defaultNormalize;\n path = normalize(path);\n var key;\n var finished = false;\n while (!finished) loop();\n function loop() {\n for (key in obj) {\n var normalizedKey = normalize(key);\n if (0 === path.indexOf(normalizedKey)) {\n var temp = path.substr(normalizedKey.length);\n if (temp.charAt(0) === '.' || temp.length === 0) {\n path = temp.substr(1);\n var child = obj[key];\n\n // we're at the end and there is nothing.\n if (null == child) {\n finished = true;\n return;\n }\n\n // we're at the end and there is something.\n if (!path.length) {\n finished = true;\n return;\n }\n\n // step into child\n obj = child;\n\n // but we're done here\n return;\n }\n }\n }\n key = undefined;\n // if we found no matching properties\n // on the current object, there's no match.\n finished = true;\n }\n if (!key) return;\n if (null == obj) return obj;\n\n // the `obj` and `key` is one above the leaf object and key, so\n // start object: { a: { 'b.c': 10 } }\n // end object: { 'b.c': 10 }\n // end key: 'b.c'\n // this way, you can do `obj[key]` and get `10`.\n return fn(obj, key, val);\n };\n}\n\n/**\n * Find an object by its key\n *\n * find({ first_name : 'Calvin' }, 'firstName')\n */\n\nfunction find(obj, key) {\n if (obj.hasOwnProperty(key)) return obj[key];\n}\n\n/**\n * Delete a value for a given key\n *\n * del({ a : 'b', x : 'y' }, 'X' }) -> { a : 'b' }\n */\n\nfunction del(obj, key) {\n if (obj.hasOwnProperty(key)) delete obj[key];\n return obj;\n}\n\n/**\n * Replace an objects existing value with a new one\n *\n * replace({ a : 'b' }, 'a', 'c') -> { a : 'c' }\n */\n\nfunction replace(obj, key, val) {\n if (obj.hasOwnProperty(key)) obj[key] = val;\n return obj;\n}\n\n/**\n * Normalize a `dot.separated.path`.\n *\n * A.HELL(!*&#(!)O_WOR LD.bar => ahelloworldbar\n *\n * @param {String} path\n * @return {String}\n */\n\nfunction defaultNormalize(path) {\n return path.replace(/[^a-zA-Z0-9\\.]+/g, '').toLowerCase();\n}\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @return {boolean} Returns `true` if `val` is a function, otherwise `false`.\n */\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar matcher = /.+\\@.+\\..+/;\nfunction isEmail(string) {\n return matcher.test(string);\n}\nexports[\"default\"] = isEmail;","export function isBrowser() {\n return typeof window !== 'undefined';\n}\nexport function isServer() {\n return !isBrowser();\n}","export var SEGMENT_API_HOST = 'api.segment.io/v1';","import { __assign } from \"tslib\";\nimport jar from 'js-cookie';\nimport { gracefulDecodeURIComponent } from '../../core/query-string/gracefulDecodeURIComponent';\nimport { tld } from '../../core/user/tld';\nimport { version } from '../../generated/version';\nimport { getAvailableStorageOptions, UniversalStorage } from '../../core/user';\nvar cookieOptions;\nfunction getCookieOptions() {\n if (cookieOptions) {\n return cookieOptions;\n }\n var domain = tld(window.location.href);\n cookieOptions = {\n expires: 31536000000,\n secure: false,\n path: '/'\n };\n if (domain) {\n cookieOptions.domain = domain;\n }\n return cookieOptions;\n}\n// Default value will be updated to 'web' in `bundle-umd.ts` for web build.\nvar _version = 'npm';\nexport function setVersionType(version) {\n _version = version;\n}\nexport function getVersionType() {\n return _version;\n}\nexport function ampId() {\n var ampId = jar.get('_ga');\n if (ampId && ampId.startsWith('amp')) {\n return ampId;\n }\n}\nexport function utm(query) {\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n return query.split('&').reduce(function (acc, str) {\n var _a = str.split('='),\n k = _a[0],\n _b = _a[1],\n v = _b === void 0 ? '' : _b;\n if (k.includes('utm_') && k.length > 4) {\n var utmParam = k.substr(4);\n if (utmParam === 'campaign') {\n utmParam = 'name';\n }\n acc[utmParam] = gracefulDecodeURIComponent(v);\n }\n return acc;\n }, {});\n}\nfunction ads(query) {\n var queryIds = {\n btid: 'dataxu',\n urid: 'millennial-media'\n };\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n var parts = query.split('&');\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n var _a = part.split('='),\n k = _a[0],\n v = _a[1];\n if (queryIds[k]) {\n return {\n id: v,\n type: queryIds[k]\n };\n }\n }\n}\nfunction referrerId(query, ctx, disablePersistance) {\n var storage = new UniversalStorage(disablePersistance ? [] : ['cookie'], getAvailableStorageOptions(getCookieOptions()));\n var stored = storage.get('s:context.referrer');\n var ad = ads(query);\n ad = ad !== null && ad !== void 0 ? ad : stored;\n if (!ad) {\n return;\n }\n if (ctx) {\n ctx.referrer = __assign(__assign({}, ctx.referrer), ad);\n }\n storage.set('s:context.referrer', ad);\n}\nexport function normalize(analytics, json, settings, integrations) {\n var _a, _b, _c, _d, _e;\n var user = analytics.user();\n // context should always exist here (see page enrichment)? ... and why would we default to json.options? todo: delete this\n json.context = (_b = (_a = json.context) !== null && _a !== void 0 ? _a : json.options) !== null && _b !== void 0 ? _b : {};\n var ctx = json.context;\n // This guard against missing ctx.page should not be neccessary, since context.page is always defined\n var query = ((_c = ctx.page) === null || _c === void 0 ? void 0 : _c.search) || '';\n delete json.options;\n json.writeKey = settings === null || settings === void 0 ? void 0 : settings.apiKey;\n ctx.userAgent = navigator.userAgent;\n // @ts-ignore\n var locale = navigator.userLanguage || navigator.language;\n if (typeof ctx.locale === 'undefined' && typeof locale !== 'undefined') {\n ctx.locale = locale;\n }\n if (!ctx.library) {\n var type = getVersionType();\n if (type === 'web') {\n ctx.library = {\n name: 'analytics.js',\n version: \"next-\".concat(version)\n };\n } else {\n ctx.library = {\n name: 'analytics.js',\n version: \"npm:next-\".concat(version)\n };\n }\n }\n if (query && !ctx.campaign) {\n ctx.campaign = utm(query);\n }\n referrerId(query, ctx, (_d = analytics.options.disableClientPersistence) !== null && _d !== void 0 ? _d : false);\n json.userId = json.userId || user.id();\n json.anonymousId = json.anonymousId || user.anonymousId();\n json.sentAt = new Date();\n var failed = analytics.queue.failedInitializations || [];\n if (failed.length > 0) {\n json._metadata = {\n failedInitializations: failed\n };\n }\n var bundled = [];\n var unbundled = [];\n for (var key in integrations) {\n var integration = integrations[key];\n if (key === 'Segment.io') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'bundled') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'unbundled') {\n unbundled.push(key);\n }\n }\n // This will make sure that the disabled cloud mode destinations will be\n // included in the unbundled list.\n for (var _i = 0, _f = (settings === null || settings === void 0 ? void 0 : settings.unbundledIntegrations) || []; _i < _f.length; _i++) {\n var settingsUnbundled = _f[_i];\n if (!unbundled.includes(settingsUnbundled)) {\n unbundled.push(settingsUnbundled);\n }\n }\n var configIds = (_e = settings === null || settings === void 0 ? void 0 : settings.maybeBundledConfigIds) !== null && _e !== void 0 ? _e : {};\n var bundledConfigIds = [];\n bundled.sort().forEach(function (name) {\n var _a;\n ;\n ((_a = configIds[name]) !== null && _a !== void 0 ? _a : []).forEach(function (id) {\n bundledConfigIds.push(id);\n });\n });\n if ((settings === null || settings === void 0 ? void 0 : settings.addBundledMetadata) !== false) {\n json._metadata = __assign(__assign({}, json._metadata), {\n bundled: bundled.sort(),\n unbundled: unbundled.sort(),\n bundledIds: bundledConfigIds\n });\n }\n var amp = ampId();\n if (amp) {\n ctx.amp = {\n id: amp\n };\n }\n return json;\n}","import cookie from 'js-cookie';\n/**\n * Levels returns all levels of the given url.\n *\n * @param {string} url\n * @return {Array}\n * @api public\n */\nfunction levels(url) {\n var host = url.hostname;\n var parts = host.split('.');\n var last = parts[parts.length - 1];\n var levels = [];\n // Ip address.\n if (parts.length === 4 && parseInt(last, 10) > 0) {\n return levels;\n }\n // Localhost.\n if (parts.length <= 1) {\n return levels;\n }\n // Create levels.\n for (var i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n return levels;\n}\nfunction parseUrl(url) {\n try {\n return new URL(url);\n } catch (_a) {\n return;\n }\n}\nexport function tld(url) {\n var parsedUrl = parseUrl(url);\n if (!parsedUrl) return;\n var lvls = levels(parsedUrl);\n // Lookup the real top level one.\n for (var i = 0; i < lvls.length; ++i) {\n var cname = '__tld__';\n var domain = lvls[i];\n var opts = {\n domain: '.' + domain\n };\n try {\n // cookie access throw an error if the library is ran inside a sandboxed environment (e.g. sandboxed iframe)\n cookie.set(cname, '1', opts);\n if (cookie.get(cname)) {\n cookie.remove(cname, opts);\n return domain;\n }\n } catch (_) {\n return;\n }\n }\n}","/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nvar Emitter = /** @class */function () {\n function Emitter() {\n this.callbacks = {};\n }\n Emitter.prototype.on = function (event, callback) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback];\n } else {\n this.callbacks[event].push(callback);\n }\n return this;\n };\n Emitter.prototype.once = function (event, callback) {\n var _this = this;\n var on = function on() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this.off(event, on);\n callback.apply(_this, args);\n };\n this.on(event, on);\n return this;\n };\n Emitter.prototype.off = function (event, callback) {\n var _a;\n var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n var without = fns.filter(function (fn) {\n return fn !== callback;\n });\n this.callbacks[event] = without;\n return this;\n };\n Emitter.prototype.emit = function (event) {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n callbacks.forEach(function (callback) {\n callback.apply(_this, args);\n });\n return this;\n };\n return Emitter;\n}();\nexport { Emitter };","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { version } from '../../generated/version';\nimport { getVersionType } from '../../plugins/segmentio/normalize';\nimport { SEGMENT_API_HOST } from '../constants';\nvar createRemoteMetric = function createRemoteMetric(metric, tags, versionType) {\n var formattedTags = tags.reduce(function (acc, t) {\n var _a = t.split(':'),\n k = _a[0],\n v = _a[1];\n acc[k] = v;\n return acc;\n }, {});\n return {\n type: 'Counter',\n metric: metric,\n value: 1,\n tags: __assign(__assign({}, formattedTags), {\n library: 'analytics.js',\n library_version: versionType === 'web' ? \"next-\".concat(version) : \"npm:next-\".concat(version)\n })\n };\n};\nfunction logError(err) {\n console.error('Error sending segment performance metrics', err);\n}\nvar RemoteMetrics = /** @class */function () {\n function RemoteMetrics(options) {\n var _this = this;\n var _a, _b, _c, _d;\n this.host = (_a = options === null || options === void 0 ? void 0 : options.host) !== null && _a !== void 0 ? _a : SEGMENT_API_HOST;\n this.sampleRate = (_b = options === null || options === void 0 ? void 0 : options.sampleRate) !== null && _b !== void 0 ? _b : 1;\n this.flushTimer = (_c = options === null || options === void 0 ? void 0 : options.flushTimer) !== null && _c !== void 0 ? _c : 30 * 1000; /* 30s */\n this.maxQueueSize = (_d = options === null || options === void 0 ? void 0 : options.maxQueueSize) !== null && _d !== void 0 ? _d : 20;\n this.queue = [];\n if (this.sampleRate > 0) {\n var flushing_1 = false;\n var run_1 = function run_1() {\n if (flushing_1) {\n return;\n }\n flushing_1 = true;\n _this.flush()[\"catch\"](logError);\n flushing_1 = false;\n setTimeout(run_1, _this.flushTimer);\n };\n run_1();\n }\n }\n RemoteMetrics.prototype.increment = function (metric, tags) {\n // All metrics are part of an allow list in Tracking API\n if (!metric.includes('analytics_js.')) {\n return;\n }\n // /m doesn't like empty tags\n if (tags.length === 0) {\n return;\n }\n if (Math.random() > this.sampleRate) {\n return;\n }\n if (this.queue.length >= this.maxQueueSize) {\n return;\n }\n var remoteMetric = createRemoteMetric(metric, tags, getVersionType());\n this.queue.push(remoteMetric);\n if (metric.includes('error')) {\n this.flush()[\"catch\"](logError);\n }\n };\n RemoteMetrics.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length <= 0) {\n return [2 /*return*/];\n }\n\n return [4 /*yield*/, this.send()[\"catch\"](function (error) {\n logError(error);\n _this.sampleRate = 0;\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n RemoteMetrics.prototype.send = function () {\n return __awaiter(this, void 0, void 0, function () {\n var payload, headers, url;\n return __generator(this, function (_a) {\n payload = {\n series: this.queue\n };\n this.queue = [];\n headers = {\n 'Content-Type': 'text/plain'\n };\n url = \"https://\".concat(this.host, \"/m\");\n return [2 /*return*/, fetch(url, {\n headers: headers,\n body: JSON.stringify(payload),\n method: 'POST'\n })];\n });\n });\n };\n return RemoteMetrics;\n}();\nexport { RemoteMetrics };","import { __extends } from \"tslib\";\nimport { CoreStats } from '@segment/analytics-core';\nimport { RemoteMetrics } from './remote-metrics';\nvar remoteMetrics;\nvar Stats = /** @class */function (_super) {\n __extends(Stats, _super);\n function Stats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Stats.initRemoteMetrics = function (options) {\n remoteMetrics = new RemoteMetrics(options);\n };\n Stats.prototype.increment = function (metric, by, tags) {\n _super.prototype.increment.call(this, metric, by, tags);\n remoteMetrics === null || remoteMetrics === void 0 ? void 0 : remoteMetrics.increment(metric, tags !== null && tags !== void 0 ? tags : []);\n };\n return Stats;\n}(CoreStats);\nexport { Stats };","function findScript(src) {\n var scripts = Array.prototype.slice.call(window.document.querySelectorAll('script'));\n return scripts.find(function (s) {\n return s.src === src;\n });\n}\nexport function loadScript(src, attributes) {\n var found = findScript(src);\n if (found !== undefined) {\n var status_1 = found === null || found === void 0 ? void 0 : found.getAttribute('status');\n if (status_1 === 'loaded') {\n return Promise.resolve(found);\n }\n if (status_1 === 'loading') {\n return new Promise(function (resolve, reject) {\n found.addEventListener('load', function () {\n return resolve(found);\n });\n found.addEventListener('error', function (err) {\n return reject(err);\n });\n });\n }\n }\n return new Promise(function (resolve, reject) {\n var _a;\n var script = window.document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.async = true;\n script.setAttribute('status', 'loading');\n for (var _i = 0, _b = Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}); _i < _b.length; _i++) {\n var _c = _b[_i],\n k = _c[0],\n v = _c[1];\n script.setAttribute(k, v);\n }\n script.onload = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'loaded');\n resolve(script);\n };\n script.onerror = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'error');\n reject(new Error(\"Failed to load \".concat(src)));\n };\n var tag = window.document.getElementsByTagName('script')[0];\n (_a = tag.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(script, tag);\n });\n}\nexport function unloadScript(src) {\n var found = findScript(src);\n if (found !== undefined) {\n found.remove();\n }\n return Promise.resolve();\n}","/* @flow */\n/* eslint import/no-commonjs: 0 */\n\n// eslint-disable-next-line no-process-env\nif (process.env.ZOID_FRAME_ONLY) {\n module.exports = require('./dist/zoid.frame');\n module.exports[\"default\"] = module.exports;\n} else {\n module.exports = require('./dist/zoid');\n module.exports[\"default\"] = module.exports;\n}","import MicroModal from 'micromodal'\n\nconst openModal = (options) => {\n console.debug('openModal options:', options)\n options.id = options.id || 'provenance-modal'\n options.variant = options.variant || 'full'\n\n if (options.url.includes('/journeys') && !options.url.includes('/modal')) {\n options.url += '/modal'\n }\n\n const uri = new URL(options.url, document.location.origin)\n uri.searchParams.set('modal', options.variant)\n options.url = uri.toString()\n\n if (window.xprops && typeof window.xprops.openModal === 'function') {\n openModalFromEmbed(options)\n return\n }\n\n const buildModalElement = ({ id, variant, behavior }) => {\n const template = document.createElement('template')\n template.innerHTML = modalHtml({\n id,\n classes: `ProvenanceModal--${variant}Variant ${behavior ? `ProvenanceModal--${behavior}Behavior` : ''}`\n })\n const modal = template.content.firstElementChild.cloneNode(true)\n return modal\n }\n\n /**\n * Builds the HTML for Micromodal.js to display a modal.\n * It is intended to be added at the bottom of the page, before .\n *\n * @param {string} id - a valid, unique HTML ID (required for Micromodal.js)\n * @param {string} [classes] - additional CSS classes (optional)\n * @returns {string}\n */\n const modalHtml = ({ id, classes }) =>\n `\n
\n
\n
\n \n
\n
\n
\n
\n `\n\n const insertContentInModal = (modal, content) => {\n modal\n .querySelector('.ProvenanceModal-content')\n .insertAdjacentHTML('beforeend', content)\n }\n\n const openDrawer = modal => {\n modal.dataset.state = 'drawer-open'\n }\n\n const closeDrawer = (modal, callback) => {\n modal.dataset.state = 'drawer-closed'\n modal.addEventListener('transitionend', callback)\n }\n\n const showModal = id => {\n MicroModal.show(id, {\n onShow: modal => {\n if (options.behavior === 'drawer') {\n openDrawer(modal)\n }\n },\n onClose: modal => {\n if (options.behavior === 'drawer') {\n closeDrawer(modal, e => {\n modal.remove()\n })\n } else {\n modal.remove()\n }\n },\n disableScroll: true\n })\n }\n\n // Add layout param to URL for modals handled internally\n uri.searchParams.set('layout', false)\n options.url = uri.toString()\n\n const modal = buildModalElement(options)\n document.body.appendChild(modal)\n\n fetch(options.url)\n .then(response => response.text())\n .then(text => {\n insertContentInModal(modal, text)\n showModal(options.id)\n })\n .catch(err => {\n console.error('modalOpen fetch error:', err)\n })\n}\n\nconst openModalFromEmbed = opts => {\n const { xprops } = window\n console.debug('openModalFromEmbed', opts, 'xprops:', xprops)\n\n if (xprops.version) {\n xprops.openModal(opts)\n } else {\n // All code below is for legacy support (SDK <= v0.6)\n console.warn('[Deprecation Notice] A legacy version of Provenance SDK has been detected. Please upgrade to the latest version: https://www.npmjs.com/package/@provenance/provenance-sdk')\n\n if (opts.slug) {\n console.debug('[app] xprops.openModal slug', opts.slug.toLowerCase())\n xprops.openModal(opts.slug.toLowerCase())\n } else if (opts.url) {\n console.debug('[app] xprops.openModal url', opts.url)\n\n if (opts.url.includes('/journeys')) {\n // Extract slug from URL\n if (/\\/.*\\/journeys/.test(opts.url)) {\n console.debug('locale detected in url')\n const { pathname } = new URL(opts.url)\n const slug = pathname.split('/')[3].toLowerCase()\n xprops.openModal(slug)\n } else {\n console.debug('locale not detected in url')\n const slug = opts.url.split('/')[2].toLowerCase()\n xprops.openModal(slug)\n }\n return\n }\n\n xprops.openModal(opts.url)\n } else {\n console.error('Provenance app openModal error: No slug or url present') // This should never happen\n }\n }\n}\n\nexport default openModal\n"],"sourceRoot":""}