diff --git a/.gitignore b/.gitignore index c71ffcf..11e1962 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ node_modules **/node_modules .pnp .pnp.js -.yarn/install-state.gz# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +.yarn/install-state.gz # GitHub **.git diff --git a/README.md b/README.md index 37d35fc..6359bfc 100644 --- a/README.md +++ b/README.md @@ -72,9 +72,6 @@ pnpm i # Configure environment variables # There is an `.env.example` in the root directory you can use for reference cp .env.example .env - -# Run the TuboRepo project -turbo run dev ``` ### 2. Run the TurboRepo diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 46197be..07937f9 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -6,7 +6,7 @@ "scripts": { "build": "pnpm with-env rollup -c && next build", "build:zoid": "rollup -c", - "clean": "git clean -xdf dist .next node_modules .rollup.cache", + "clean": "git clean -xdf dist .turbo .next node_modules .rollup.cache", "dev": "pnpm with-env rollup -c --watch & next dev -p 3000", "format": "prettier --check . --ignore-path ../../.gitignore", "lint": "eslint", diff --git a/apps/nextjs/rollup.config.mjs b/apps/nextjs/rollup.config.mjs index 7bad73a..a0b88f7 100644 --- a/apps/nextjs/rollup.config.mjs +++ b/apps/nextjs/rollup.config.mjs @@ -24,7 +24,7 @@ const rollupConfig = files.map(file => { return { input: inputPath, output: { - file: `dist/${outputFileName}`, // Output directory and file name + file: `src/widgets/${outputFileName}`, // Output directory and file name format: 'iife', // Format suitable for browsers name: path.basename(outputFileName, '.js') .split("-") diff --git a/apps/nextjs/src/app/api/widgets/[component]/route.ts b/apps/nextjs/src/app/api/widgets/[component]/route.ts index c21da60..9065365 100644 --- a/apps/nextjs/src/app/api/widgets/[component]/route.ts +++ b/apps/nextjs/src/app/api/widgets/[component]/route.ts @@ -16,7 +16,7 @@ export function GET( try { // Construct the path to the component's JavaScript file - const filePath = join(process.cwd(), 'dist', `${component}.js`); + const filePath = join(process.cwd(), 'src', 'widgets', `${component}.js`); // Read the file content const file = readFileSync(filePath, 'utf8'); diff --git a/apps/nextjs/src/app/zoid-advanced/layout.tsx b/apps/nextjs/src/app/zoid-advanced/layout.tsx index 66b451b..03e1391 100644 --- a/apps/nextjs/src/app/zoid-advanced/layout.tsx +++ b/apps/nextjs/src/app/zoid-advanced/layout.tsx @@ -11,7 +11,7 @@ export const metadata: Metadata = { openGraph: { title: "Advanced example with Zoid", description: "Simple example with Zoid", - url: "https://create-t3-turbo.vercel.app", + url: "https://nextjs-zoid.vercel.app", siteName: "Advanced example with Zoid", }, }; diff --git a/apps/nextjs/src/widgets/advanced-zoid.js b/apps/nextjs/src/widgets/advanced-zoid.js new file mode 100644 index 0000000..b2a617c --- /dev/null +++ b/apps/nextjs/src/widgets/advanced-zoid.js @@ -0,0 +1,5283 @@ +var AdvancedZoid = (function () { + 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + var zoid$2 = {exports: {}}; + + var zoid$1 = {exports: {}}; + + var hasRequiredZoid; + + function requireZoid () { + if (hasRequiredZoid) return zoid$1.exports; + hasRequiredZoid = 1; + (function (module, exports) { + !function(root, factory) { + module.exports = factory() ; + }("undefined" != typeof self ? self : commonjsGlobal, (function() { + return function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) return installedModules[moduleId].exports; + var module = installedModules[moduleId] = { + i: moduleId, + l: !1, + exports: {} + }; + modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + module.l = !0; + return module.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.d = function(exports, name, getter) { + __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, { + enumerable: !0, + get: getter + }); + }; + __webpack_require__.r = function(exports) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + Object.defineProperty(exports, "__esModule", { + value: !0 + }); + }; + __webpack_require__.t = function(value, mode) { + 1 & mode && (value = __webpack_require__(value)); + if (8 & mode) return value; + if (4 & mode && "object" == typeof value && value && value.__esModule) return value; + var ns = Object.create(null); + __webpack_require__.r(ns); + Object.defineProperty(ns, "default", { + enumerable: !0, + value: value + }); + if (2 & mode && "string" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) { + return value[key]; + }.bind(null, key)); + return ns; + }; + __webpack_require__.n = function(module) { + var getter = module && module.__esModule ? function() { + return module.default; + } : function() { + return module; + }; + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return {}.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 0); + }([ function(module, __webpack_exports__, __webpack_require__) { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "PopupOpenError", (function() { + return dom_PopupOpenError; + })); + __webpack_require__.d(__webpack_exports__, "create", (function() { + return component_create; + })); + __webpack_require__.d(__webpack_exports__, "destroy", (function() { + return component_destroy; + })); + __webpack_require__.d(__webpack_exports__, "destroyComponents", (function() { + return destroyComponents; + })); + __webpack_require__.d(__webpack_exports__, "destroyAll", (function() { + return destroyAll; + })); + __webpack_require__.d(__webpack_exports__, "PROP_TYPE", (function() { + return PROP_TYPE; + })); + __webpack_require__.d(__webpack_exports__, "PROP_SERIALIZATION", (function() { + return PROP_SERIALIZATION; + })); + __webpack_require__.d(__webpack_exports__, "CONTEXT", (function() { + return CONTEXT; + })); + __webpack_require__.d(__webpack_exports__, "EVENT", (function() { + return EVENT; + })); + function _setPrototypeOf(o, p) { + return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) { + o.__proto__ = p; + return o; + })(o, p); + } + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + _setPrototypeOf(subClass, superClass); + } + function _extends() { + return (_extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) ({}).hasOwnProperty.call(source, key) && (target[key] = source[key]); + } + return target; + }).apply(this, arguments); + } + function utils_isPromise(item) { + try { + if (!item) return !1; + if ("undefined" != typeof Promise && item instanceof Promise) return !0; + if ("undefined" != typeof window && "function" == typeof window.Window && item instanceof window.Window) return !1; + if ("undefined" != typeof window && "function" == typeof window.constructor && item instanceof window.constructor) return !1; + var _toString = {}.toString; + if (_toString) { + var name = _toString.call(item); + if ("[object Window]" === name || "[object global]" === name || "[object DOMWindow]" === name) return !1; + } + if ("function" == typeof item.then) return !0; + } catch (err) { + return !1; + } + return !1; + } + var dispatchedErrors = []; + var possiblyUnhandledPromiseHandlers = []; + var activeCount = 0; + var flushPromise; + function flushActive() { + if (!activeCount && flushPromise) { + var promise = flushPromise; + flushPromise = null; + promise.resolve(); + } + } + function startActive() { + activeCount += 1; + } + function endActive() { + activeCount -= 1; + flushActive(); + } + var promise_ZalgoPromise = function() { + function ZalgoPromise(handler) { + var _this = this; + 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 = []; + if (handler) { + var _result; + var _error; + var resolved = !1; + var rejected = !1; + var isAsync = !1; + startActive(); + try { + handler((function(res) { + if (isAsync) _this.resolve(res); else { + resolved = !0; + _result = res; + } + }), (function(err) { + if (isAsync) _this.reject(err); else { + rejected = !0; + _error = err; + } + })); + } catch (err) { + endActive(); + this.reject(err); + return; + } + endActive(); + isAsync = !0; + resolved ? this.resolve(_result) : rejected && this.reject(_error); + } + } + var _proto = ZalgoPromise.prototype; + _proto.resolve = function(result) { + if (this.resolved || this.rejected) return this; + if (utils_isPromise(result)) throw new Error("Can not resolve promise with another promise"); + this.resolved = !0; + this.value = result; + this.dispatch(); + return this; + }; + _proto.reject = function(error) { + var _this2 = this; + if (this.resolved || this.rejected) return this; + if (utils_isPromise(error)) throw new Error("Can not reject promise with another promise"); + if (!error) { + var _err = error && "function" == typeof error.toString ? error.toString() : {}.toString.call(error); + error = new Error("Expected reject to be called with Error, got " + _err); + } + this.rejected = !0; + this.error = error; + this.errorHandled || setTimeout((function() { + _this2.errorHandled || function(err, promise) { + if (-1 === dispatchedErrors.indexOf(err)) { + dispatchedErrors.push(err); + setTimeout((function() { + throw err; + }), 1); + for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise); + } + }(error, _this2); + }), 1); + this.dispatch(); + return this; + }; + _proto.asyncReject = function(error) { + this.errorHandled = !0; + this.reject(error); + return this; + }; + _proto.dispatch = function() { + var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers; + if (!this.dispatching && (resolved || rejected)) { + this.dispatching = !0; + startActive(); + var chain = function(firstPromise, secondPromise) { + return firstPromise.then((function(res) { + secondPromise.resolve(res); + }), (function(err) { + secondPromise.reject(err); + })); + }; + for (var i = 0; i < handlers.length; i++) { + var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise; + var _result2 = void 0; + if (resolved) try { + _result2 = onSuccess ? onSuccess(this.value) : this.value; + } catch (err) { + promise.reject(err); + continue; + } else if (rejected) { + if (!onError) { + promise.reject(this.error); + continue; + } + try { + _result2 = onError(this.error); + } catch (err) { + promise.reject(err); + continue; + } + } + if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) { + var promiseResult = _result2; + promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error); + promiseResult.errorHandled = !0; + } 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); + } + handlers.length = 0; + this.dispatching = !1; + endActive(); + } + }; + _proto.then = function(onSuccess, onError) { + if (onSuccess && "function" != typeof onSuccess && !onSuccess.call) throw new Error("Promise.then expected a function for success handler"); + if (onError && "function" != typeof onError && !onError.call) throw new Error("Promise.then expected a function for error handler"); + var promise = new ZalgoPromise; + this.handlers.push({ + promise: promise, + onSuccess: onSuccess, + onError: onError + }); + this.errorHandled = !0; + this.dispatch(); + return promise; + }; + _proto.catch = function(onError) { + return this.then(void 0, onError); + }; + _proto.finally = function(onFinally) { + if (onFinally && "function" != typeof onFinally && !onFinally.call) throw new Error("Promise.finally expected a function"); + return this.then((function(result) { + return ZalgoPromise.try(onFinally).then((function() { + return result; + })); + }), (function(err) { + return ZalgoPromise.try(onFinally).then((function() { + throw err; + })); + })); + }; + _proto.timeout = function(time, err) { + var _this3 = this; + if (this.resolved || this.rejected) return this; + var timeout = setTimeout((function() { + _this3.resolved || _this3.rejected || _this3.reject(err || new Error("Promise timed out after " + time + "ms")); + }), time); + return this.then((function(result) { + clearTimeout(timeout); + return result; + })); + }; + _proto.toPromise = function() { + if ("undefined" == typeof Promise) throw new TypeError("Could not find Promise"); + return Promise.resolve(this); + }; + _proto.lazy = function() { + this.errorHandled = !0; + return this; + }; + ZalgoPromise.resolve = function(value) { + return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) { + return value.then(resolve, reject); + })) : (new ZalgoPromise).resolve(value); + }; + ZalgoPromise.reject = function(error) { + return (new ZalgoPromise).reject(error); + }; + ZalgoPromise.asyncReject = function(error) { + return (new ZalgoPromise).asyncReject(error); + }; + ZalgoPromise.all = function(promises) { + var promise = new ZalgoPromise; + var count = promises.length; + var results = [].slice(); + if (!count) { + promise.resolve(results); + return promise; + } + var chain = function(i, firstPromise, secondPromise) { + return firstPromise.then((function(res) { + results[i] = res; + 0 == (count -= 1) && promise.resolve(results); + }), (function(err) { + secondPromise.reject(err); + })); + }; + for (var i = 0; i < promises.length; i++) { + var prom = promises[i]; + if (prom instanceof ZalgoPromise) { + if (prom.resolved) { + results[i] = prom.value; + count -= 1; + continue; + } + } else if (!utils_isPromise(prom)) { + results[i] = prom; + count -= 1; + continue; + } + chain(i, ZalgoPromise.resolve(prom), promise); + } + 0 === count && promise.resolve(results); + return promise; + }; + ZalgoPromise.hash = function(promises) { + var result = {}; + var awaitPromises = []; + var _loop = function(key) { + if (promises.hasOwnProperty(key)) { + var value = promises[key]; + utils_isPromise(value) ? awaitPromises.push(value.then((function(res) { + result[key] = res; + }))) : result[key] = value; + } + }; + for (var key in promises) _loop(key); + return ZalgoPromise.all(awaitPromises).then((function() { + return result; + })); + }; + ZalgoPromise.map = function(items, method) { + return ZalgoPromise.all(items.map(method)); + }; + ZalgoPromise.onPossiblyUnhandledException = function(handler) { + return function(handler) { + possiblyUnhandledPromiseHandlers.push(handler); + return { + cancel: function() { + possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1); + } + }; + }(handler); + }; + ZalgoPromise.try = function(method, context, args) { + if (method && "function" != typeof method && !method.call) throw new Error("Promise.try expected a function"); + var result; + startActive(); + try { + result = method.apply(context, args || []); + } catch (err) { + endActive(); + return ZalgoPromise.reject(err); + } + endActive(); + return ZalgoPromise.resolve(result); + }; + ZalgoPromise.delay = function(_delay) { + return new ZalgoPromise((function(resolve) { + setTimeout(resolve, _delay); + })); + }; + ZalgoPromise.isPromise = function(value) { + return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value); + }; + ZalgoPromise.flush = function() { + return function(Zalgo) { + var promise = flushPromise = flushPromise || new Zalgo; + flushActive(); + return promise; + }(ZalgoPromise); + }; + return ZalgoPromise; + }(); + function isRegex(item) { + return "[object RegExp]" === {}.toString.call(item); + } + var WINDOW_TYPE = { + IFRAME: "iframe", + POPUP: "popup" + }; + var IE_WIN_ACCESS_ERROR = "Call was rejected by callee.\r\n"; + function getActualProtocol(win) { + void 0 === win && (win = window); + return win.location.protocol; + } + function getProtocol(win) { + void 0 === win && (win = window); + if (win.mockDomain) { + var protocol = win.mockDomain.split("//")[0]; + if (protocol) return protocol; + } + return getActualProtocol(win); + } + function isAboutProtocol(win) { + void 0 === win && (win = window); + return "about:" === getProtocol(win); + } + function utils_getParent(win) { + void 0 === win && (win = window); + if (win) try { + if (win.parent && win.parent !== win) return win.parent; + } catch (err) {} + } + function getOpener(win) { + void 0 === win && (win = window); + if (win && !utils_getParent(win)) try { + return win.opener; + } catch (err) {} + } + function canReadFromWindow(win) { + try { + return !0; + } catch (err) {} + return !1; + } + function getActualDomain(win) { + void 0 === win && (win = window); + var location = win.location; + if (!location) throw new Error("Can not read window location"); + var protocol = getActualProtocol(win); + if (!protocol) throw new Error("Can not read window protocol"); + if ("file:" === protocol) return "file://"; + if ("about:" === protocol) { + var parent = utils_getParent(win); + return parent && canReadFromWindow() ? getActualDomain(parent) : "about://"; + } + var host = location.host; + if (!host) throw new Error("Can not read window host"); + return protocol + "//" + host; + } + function getDomain(win) { + void 0 === win && (win = window); + var domain = getActualDomain(win); + return domain && win.mockDomain && 0 === win.mockDomain.indexOf("mock:") ? win.mockDomain : domain; + } + function isSameDomain(win) { + if (!function(win) { + try { + if (win === window) return !0; + } catch (err) {} + try { + var desc = Object.getOwnPropertyDescriptor(win, "location"); + if (desc && !1 === desc.enumerable) return !1; + } catch (err) {} + try { + if (isAboutProtocol(win) && canReadFromWindow()) return !0; + } catch (err) {} + try { + if (function(win) { + void 0 === win && (win = window); + return "mock:" === getProtocol(win); + }(win) && canReadFromWindow()) return !0; + } catch (err) {} + try { + if (getActualDomain(win) === getActualDomain(window)) return !0; + } catch (err) {} + return !1; + }(win)) return !1; + try { + if (win === window) return !0; + if (isAboutProtocol(win) && canReadFromWindow()) return !0; + if (getDomain(window) === getDomain(win)) return !0; + } catch (err) {} + return !1; + } + function assertSameDomain(win) { + if (!isSameDomain(win)) throw new Error("Expected window to be same domain"); + return win; + } + function isAncestorParent(parent, child) { + if (!parent || !child) return !1; + var childParent = utils_getParent(child); + return childParent ? childParent === parent : -1 !== function(win) { + var result = []; + try { + for (;win.parent !== win; ) { + result.push(win.parent); + win = win.parent; + } + } catch (err) {} + return result; + }(child).indexOf(parent); + } + function getFrames(win) { + var result = []; + var frames; + try { + frames = win.frames; + } catch (err) { + frames = win; + } + var len; + try { + len = frames.length; + } catch (err) {} + if (0 === len) return result; + if (len) { + for (var i = 0; i < len; i++) { + var frame = void 0; + try { + frame = frames[i]; + } catch (err) { + continue; + } + result.push(frame); + } + return result; + } + for (var _i = 0; _i < 100; _i++) { + var _frame = void 0; + try { + _frame = frames[_i]; + } catch (err) { + return result; + } + if (!_frame) return result; + result.push(_frame); + } + return result; + } + function getAllChildFrames(win) { + var result = []; + for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) { + var frame = _getFrames2[_i3]; + result.push(frame); + for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]); + } + return result; + } + function getTop(win) { + void 0 === win && (win = window); + try { + if (win.top) return win.top; + } catch (err) {} + if (utils_getParent(win) === win) return win; + try { + if (isAncestorParent(window, win) && window.top) return window.top; + } catch (err) {} + try { + if (isAncestorParent(win, window) && window.top) return window.top; + } catch (err) {} + for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) { + var frame = _getAllChildFrames4[_i7]; + try { + if (frame.top) return frame.top; + } catch (err) {} + if (utils_getParent(frame) === frame) return frame; + } + } + function getAllFramesInWindow(win) { + var top = getTop(win); + if (!top) throw new Error("Can not determine top window"); + var result = [].concat(getAllChildFrames(top), [ top ]); + -1 === result.indexOf(win) && (result = [].concat(result, [ win ], getAllChildFrames(win))); + return result; + } + var iframeWindows = []; + var iframeFrames = []; + function isWindowClosed(win, allowMock) { + void 0 === allowMock && (allowMock = !0); + try { + if (win === window) return !1; + } catch (err) { + return !0; + } + try { + if (!win) return !0; + } catch (err) { + return !0; + } + try { + if (win.closed) return !0; + } catch (err) { + return !err || err.message !== IE_WIN_ACCESS_ERROR; + } + if (allowMock && isSameDomain(win)) try { + if (win.mockclosed) return !0; + } catch (err) {} + try { + if (!win.parent || !win.top) return !0; + } catch (err) {} + var iframeIndex = function(collection, item) { + for (var i = 0; i < collection.length; i++) try { + if (collection[i] === item) return i; + } catch (err) {} + return -1; + }(iframeWindows, win); + if (-1 !== iframeIndex) { + var frame = iframeFrames[iframeIndex]; + if (frame && function(frame) { + if (!frame.contentWindow) return !0; + if (!frame.parentNode) return !0; + var doc = frame.ownerDocument; + if (doc && doc.documentElement && !doc.documentElement.contains(frame)) { + var parent = frame; + for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode; + if (!parent.host || !doc.documentElement.contains(parent.host)) return !0; + } + return !1; + }(frame)) return !0; + } + return !1; + } + function utils_getUserAgent(win) { + return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent; + } + function getFrameByName(win, name) { + var winFrames = getFrames(win); + for (var _i9 = 0; _i9 < winFrames.length; _i9++) { + var childFrame = winFrames[_i9]; + try { + if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame; + } catch (err) {} + } + try { + if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name]; + } catch (err) {} + try { + if (-1 !== winFrames.indexOf(win[name])) return win[name]; + } catch (err) {} + } + function isOpener(parent, child) { + return parent === getOpener(child); + } + function getAncestor(win) { + void 0 === win && (win = window); + return getOpener(win = win || window) || utils_getParent(win) || void 0; + } + function anyMatch(collection1, collection2) { + for (var _i17 = 0; _i17 < collection1.length; _i17++) { + var item1 = collection1[_i17]; + for (var _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0; + } + return !1; + } + function getDistanceFromTop(win) { + void 0 === win && (win = window); + var distance = 0; + var parent = win; + for (;parent; ) (parent = utils_getParent(parent)) && (distance += 1); + return distance; + } + function isSameTopWindow(win1, win2) { + var top1 = getTop(win1) || win1; + var top2 = getTop(win2) || win2; + try { + if (top1 && top2) return top1 === top2; + } catch (err) {} + var allFrames1 = getAllFramesInWindow(win1); + var allFrames2 = getAllFramesInWindow(win2); + if (anyMatch(allFrames1, allFrames2)) return !0; + var opener1 = getOpener(top1); + var opener2 = getOpener(top2); + return opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), + !1; + } + function matchDomain(pattern, origin) { + if ("string" == typeof pattern) { + if ("string" == typeof origin) return "*" === pattern || origin === pattern; + if (isRegex(origin)) return !1; + if (Array.isArray(origin)) return !1; + } + 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) { + return matchDomain(subpattern, origin); + }))); + } + function getDomainFromUrl(url) { + return url.match(/^(https?|mock|file):\/\//) ? url.split("/").slice(0, 3).join("/") : getDomain(); + } + function onCloseWindow(win, callback, delay, maxtime) { + void 0 === delay && (delay = 1e3); + void 0 === maxtime && (maxtime = 1 / 0); + var timeout; + !function check() { + if (isWindowClosed(win)) { + timeout && clearTimeout(timeout); + return callback(); + } + if (maxtime <= 0) clearTimeout(timeout); else { + maxtime -= delay; + timeout = setTimeout(check, delay); + } + }(); + return { + cancel: function() { + timeout && clearTimeout(timeout); + } + }; + } + function isWindow(obj) { + try { + if (obj === window) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if ("[object Window]" === {}.toString.call(obj)) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (window.Window && obj instanceof window.Window) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && obj.self === obj) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && obj.parent === obj) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && obj.top === obj) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && "__unlikely_value__" === obj.__cross_domain_utils_window_check__) return !1; + } catch (err) { + return !0; + } + try { + if ("postMessage" in obj && "self" in obj && "location" in obj) return !0; + } catch (err) {} + return !1; + } + function normalizeMockUrl(url) { + if (!(domain = getDomainFromUrl(url), 0 === domain.indexOf("mock:"))) return url; + var domain; + throw new Error("Mock urls not supported out of test mode"); + } + function getFrameForWindow(win) { + if (isSameDomain(win)) return assertSameDomain(win).frameElement; + for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll("iframe"); _i21 < _document$querySelect2.length; _i21++) { + var frame = _document$querySelect2[_i21]; + if (frame && frame.contentWindow && frame.contentWindow === win) return frame; + } + } + function closeWindow(win) { + if (function(win) { + void 0 === win && (win = window); + return Boolean(utils_getParent(win)); + }(win)) { + var frame = getFrameForWindow(win); + if (frame && frame.parentElement) { + frame.parentElement.removeChild(frame); + return; + } + } + try { + win.close(); + } catch (err) {} + } + function util_safeIndexOf(collection, item) { + for (var i = 0; i < collection.length; i++) try { + if (collection[i] === item) return i; + } catch (err) {} + return -1; + } + var weakmap_CrossDomainSafeWeakMap = function() { + function CrossDomainSafeWeakMap() { + this.name = void 0; + this.weakmap = void 0; + this.keys = void 0; + this.values = void 0; + this.name = "__weakmap_" + (1e9 * Math.random() >>> 0) + "__"; + if (function() { + if ("undefined" == typeof WeakMap) return !1; + if (void 0 === Object.freeze) return !1; + try { + var testWeakMap = new WeakMap; + var testKey = {}; + Object.freeze(testKey); + testWeakMap.set(testKey, "__testvalue__"); + return "__testvalue__" === testWeakMap.get(testKey); + } catch (err) { + return !1; + } + }()) try { + this.weakmap = new WeakMap; + } catch (err) {} + this.keys = []; + this.values = []; + } + var _proto = CrossDomainSafeWeakMap.prototype; + _proto._cleanupClosedWindows = function() { + var weakmap = this.weakmap; + var keys = this.keys; + for (var i = 0; i < keys.length; i++) { + var value = keys[i]; + if (isWindow(value) && isWindowClosed(value)) { + if (weakmap) try { + weakmap.delete(value); + } catch (err) {} + keys.splice(i, 1); + this.values.splice(i, 1); + i -= 1; + } + } + }; + _proto.isSafeToReadWrite = function(key) { + return !isWindow(key); + }; + _proto.set = function(key, value) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + weakmap.set(key, value); + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var name = this.name; + var entry = key[name]; + entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, { + value: [ key, value ], + writable: !0 + }); + return; + } catch (err) {} + this._cleanupClosedWindows(); + var keys = this.keys; + var values = this.values; + var index = util_safeIndexOf(keys, key); + if (-1 === index) { + keys.push(key); + values.push(value); + } else values[index] = value; + }; + _proto.get = function(key) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + if (weakmap.has(key)) return weakmap.get(key); + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var entry = key[this.name]; + return entry && entry[0] === key ? entry[1] : void 0; + } catch (err) {} + this._cleanupClosedWindows(); + var index = util_safeIndexOf(this.keys, key); + if (-1 !== index) return this.values[index]; + }; + _proto.delete = function(key) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + weakmap.delete(key); + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var entry = key[this.name]; + entry && entry[0] === key && (entry[0] = entry[1] = void 0); + } catch (err) {} + this._cleanupClosedWindows(); + var keys = this.keys; + var index = util_safeIndexOf(keys, key); + if (-1 !== index) { + keys.splice(index, 1); + this.values.splice(index, 1); + } + }; + _proto.has = function(key) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + if (weakmap.has(key)) return !0; + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var entry = key[this.name]; + return !(!entry || entry[0] !== key); + } catch (err) {} + this._cleanupClosedWindows(); + return -1 !== util_safeIndexOf(this.keys, key); + }; + _proto.getOrSet = function(key, getter) { + if (this.has(key)) return this.get(key); + var value = getter(); + this.set(key, value); + return value; + }; + return CrossDomainSafeWeakMap; + }(); + function _getPrototypeOf(o) { + return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) { + return o.__proto__ || Object.getPrototypeOf(o); + })(o); + } + function _isNativeReflectConstruct() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))); + return !0; + } catch (e) { + return !1; + } + } + function construct_construct(Parent, args, Class) { + return (construct_construct = _isNativeReflectConstruct() ? Reflect.construct : function(Parent, args, Class) { + var a = [ null ]; + a.push.apply(a, args); + var instance = new (Function.bind.apply(Parent, a)); + Class && _setPrototypeOf(instance, Class.prototype); + return instance; + }).apply(null, arguments); + } + function wrapNativeSuper_wrapNativeSuper(Class) { + var _cache = "function" == typeof Map ? new Map : void 0; + return (wrapNativeSuper_wrapNativeSuper = function(Class) { + if (null === Class || !(fn = Class, -1 !== Function.toString.call(fn).indexOf("[native code]"))) return Class; + var fn; + if ("function" != typeof Class) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== _cache) { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return construct_construct(Class, arguments, _getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: !1, + writable: !0, + configurable: !0 + } + }); + return _setPrototypeOf(Wrapper, Class); + })(Class); + } + function getFunctionName(fn) { + return fn.name || fn.__name__ || fn.displayName || "anonymous"; + } + function setFunctionName(fn, name) { + try { + delete fn.name; + fn.name = name; + } catch (err) {} + fn.__name__ = fn.displayName = name; + return fn; + } + function base64encode(str) { + if ("function" == typeof btoa) return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (function(m, p1) { + return String.fromCharCode(parseInt(p1, 16)); + }))).replace(/[=]/g, ""); + if ("undefined" != typeof Buffer) return Buffer.from(str, "utf8").toString("base64").replace(/[=]/g, ""); + throw new Error("Can not find window.btoa or Buffer"); + } + function uniqueID() { + var chars = "0123456789abcdef"; + return "uid_" + "xxxxxxxxxx".replace(/./g, (function() { + return chars.charAt(Math.floor(Math.random() * chars.length)); + })) + "_" + base64encode((new Date).toISOString().slice(11, 19).replace("T", ".")).replace(/[^a-zA-Z0-9]/g, "").toLowerCase(); + } + var objectIDs; + function serializeArgs(args) { + try { + return JSON.stringify([].slice.call(args), (function(subkey, val) { + return "function" == typeof val ? "memoize[" + function(obj) { + objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap; + if (null == obj || "object" != typeof obj && "function" != typeof obj) throw new Error("Invalid object"); + var uid = objectIDs.get(obj); + if (!uid) { + uid = typeof obj + ":" + uniqueID(); + objectIDs.set(obj, uid); + } + return uid; + }(val) + "]" : val; + })); + } catch (err) { + throw new Error("Arguments not serializable -- can not be used to memoize"); + } + } + function getEmptyObject() { + return {}; + } + var memoizeGlobalIndex = 0; + var memoizeGlobalIndexValidFrom = 0; + function memoize(method, options) { + void 0 === options && (options = {}); + var _options$thisNamespac = options.thisNamespace, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time; + var simpleCache; + var thisCache; + var memoizeIndex = memoizeGlobalIndex; + memoizeGlobalIndex += 1; + var memoizedFunction = function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + if (memoizeIndex < memoizeGlobalIndexValidFrom) { + simpleCache = null; + thisCache = null; + memoizeIndex = memoizeGlobalIndex; + memoizeGlobalIndex += 1; + } + var cache; + cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {}; + var cacheKey = serializeArgs(args); + var cacheResult = cache[cacheKey]; + if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) { + delete cache[cacheKey]; + cacheResult = null; + } + if (cacheResult) return cacheResult.value; + var time = Date.now(); + var value = method.apply(this, arguments); + cache[cacheKey] = { + time: time, + value: value + }; + return value; + }; + memoizedFunction.reset = function() { + simpleCache = null; + thisCache = null; + }; + return setFunctionName(memoizedFunction, (options.name || getFunctionName(method)) + "::memoized"); + } + memoize.clear = function() { + memoizeGlobalIndexValidFrom = memoizeGlobalIndex; + }; + function memoizePromise(method) { + var cache = {}; + function memoizedPromiseFunction() { + var _arguments = arguments, _this = this; + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2]; + var key = serializeArgs(args); + if (cache.hasOwnProperty(key)) return cache[key]; + cache[key] = promise_ZalgoPromise.try((function() { + return method.apply(_this, _arguments); + })).finally((function() { + delete cache[key]; + })); + return cache[key]; + } + memoizedPromiseFunction.reset = function() { + cache = {}; + }; + return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + "::promiseMemoized"); + } + function src_util_noop() {} + function once(method) { + var called = !1; + return setFunctionName((function() { + if (!called) { + called = !0; + return method.apply(this, arguments); + } + }), getFunctionName(method) + "::once"); + } + function stringifyError(err, level) { + void 0 === level && (level = 1); + if (level >= 3) return "stringifyError stack overflow"; + try { + if (!err) return ""; + if ("string" == typeof err) return err; + if (err instanceof Error) { + var stack = err && err.stack; + var message = err && err.message; + if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + "\n" + stack; + if (stack) return stack; + if (message) return message; + } + return err && err.toString && "function" == typeof err.toString ? err.toString() : {}.toString.call(err); + } catch (newErr) { + return "Error while stringifying error: " + stringifyError(newErr, level + 1); + } + } + function stringify(item) { + return "string" == typeof item ? item : item && item.toString && "function" == typeof item.toString ? item.toString() : {}.toString.call(item); + } + function extend(obj, source) { + if (!source) return obj; + if (Object.assign) return Object.assign(obj, source); + for (var key in source) source.hasOwnProperty(key) && (obj[key] = source[key]); + return obj; + } + memoize((function(obj) { + if (Object.values) return Object.values(obj); + var result = []; + for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]); + return result; + })); + function identity(item) { + return item; + } + function safeInterval(method, time) { + var timeout; + !function loop() { + timeout = setTimeout((function() { + method(); + loop(); + }), time); + }(); + return { + cancel: function() { + clearTimeout(timeout); + } + }; + } + function arrayFrom(item) { + return [].slice.call(item); + } + function isDefined(value) { + return null != value; + } + function util_isRegex(item) { + return "[object RegExp]" === {}.toString.call(item); + } + function util_getOrSet(obj, key, getter) { + if (obj.hasOwnProperty(key)) return obj[key]; + var val = getter(); + obj[key] = val; + return val; + } + function cleanup(obj) { + var tasks = []; + var cleaned = !1; + var cleanErr; + var cleaner = { + set: function(name, item) { + if (!cleaned) { + obj[name] = item; + cleaner.register((function() { + delete obj[name]; + })); + } + return item; + }, + register: function(method) { + var task = once((function() { + return method(cleanErr); + })); + cleaned ? method(cleanErr) : tasks.push(task); + return { + cancel: function() { + var index = tasks.indexOf(task); + -1 !== index && tasks.splice(index, 1); + } + }; + }, + all: function(err) { + cleanErr = err; + var results = []; + cleaned = !0; + for (;tasks.length; ) { + var task = tasks.shift(); + results.push(task()); + } + return promise_ZalgoPromise.all(results).then(src_util_noop); + } + }; + return cleaner; + } + function assertExists(name, thing) { + if (null == thing) throw new Error("Expected " + name + " to be present"); + return thing; + } + var util_ExtendableError = function(_Error) { + _inheritsLoose(ExtendableError, _Error); + function ExtendableError(message) { + var _this6; + (_this6 = _Error.call(this, message) || this).name = _this6.constructor.name; + "function" == typeof Error.captureStackTrace ? Error.captureStackTrace(function(self) { + if (void 0 === self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return self; + }(_this6), _this6.constructor) : _this6.stack = new Error(message).stack; + return _this6; + } + return ExtendableError; + }(wrapNativeSuper_wrapNativeSuper(Error)); + function getBody() { + var body = document.body; + if (!body) throw new Error("Body element not found"); + return body; + } + function isDocumentReady() { + return Boolean(document.body) && "complete" === document.readyState; + } + function isDocumentInteractive() { + return Boolean(document.body) && "interactive" === document.readyState; + } + function urlEncode(str) { + return encodeURIComponent(str); + } + memoize((function() { + return new promise_ZalgoPromise((function(resolve) { + if (isDocumentReady() || isDocumentInteractive()) return resolve(); + var interval = setInterval((function() { + if (isDocumentReady() || isDocumentInteractive()) { + clearInterval(interval); + return resolve(); + } + }), 10); + })); + })); + function parseQuery(queryString) { + return function(method, logic, args) { + void 0 === args && (args = []); + var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {}; + var key = serializeArgs(args); + return cache.hasOwnProperty(key) ? cache[key] : cache[key] = function() { + var params = {}; + if (!queryString) return params; + if (-1 === queryString.indexOf("=")) return params; + for (var _i2 = 0, _queryString$split2 = queryString.split("&"); _i2 < _queryString$split2.length; _i2++) { + var pair = _queryString$split2[_i2]; + (pair = pair.split("="))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1])); + } + return params; + }.apply(void 0, args); + }(parseQuery, 0, [ queryString ]); + } + function extendQuery(originalQuery, props) { + void 0 === props && (props = {}); + return props && Object.keys(props).length ? function(obj) { + void 0 === obj && (obj = {}); + return Object.keys(obj).filter((function(key) { + return "string" == typeof obj[key] || "boolean" == typeof obj[key]; + })).map((function(key) { + var val = obj[key]; + if ("string" != typeof val && "boolean" != typeof val) throw new TypeError("Invalid type for query"); + return urlEncode(key) + "=" + urlEncode(val.toString()); + })).join("&"); + }(_extends({}, parseQuery(originalQuery), props)) : originalQuery; + } + function appendChild(container, child) { + container.appendChild(child); + } + function isElement(element) { + return element instanceof window.Element || null !== element && "object" == typeof element && 1 === element.nodeType && "object" == typeof element.style && "object" == typeof element.ownerDocument; + } + function getElementSafe(id, doc) { + void 0 === doc && (doc = document); + return isElement(id) ? id : "string" == typeof id ? doc.querySelector(id) : void 0; + } + function elementReady(id) { + return new promise_ZalgoPromise((function(resolve, reject) { + var name = stringify(id); + var el = getElementSafe(id); + if (el) return resolve(el); + if (isDocumentReady()) return reject(new Error("Document is ready and element " + name + " does not exist")); + var interval = setInterval((function() { + if (el = getElementSafe(id)) { + resolve(el); + clearInterval(interval); + } else if (isDocumentReady()) { + clearInterval(interval); + return reject(new Error("Document is ready and element " + name + " does not exist")); + } + }), 10); + })); + } + var dom_PopupOpenError = function(_ExtendableError) { + _inheritsLoose(PopupOpenError, _ExtendableError); + function PopupOpenError() { + return _ExtendableError.apply(this, arguments) || this; + } + return PopupOpenError; + }(util_ExtendableError); + var awaitFrameLoadPromises; + function awaitFrameLoad(frame) { + if ((awaitFrameLoadPromises = awaitFrameLoadPromises || new weakmap_CrossDomainSafeWeakMap).has(frame)) { + var _promise = awaitFrameLoadPromises.get(frame); + if (_promise) return _promise; + } + var promise = new promise_ZalgoPromise((function(resolve, reject) { + frame.addEventListener("load", (function() { + !function(frame) { + !function() { + for (var i = 0; i < iframeWindows.length; i++) { + var closed = !1; + try { + closed = iframeWindows[i].closed; + } catch (err) {} + if (closed) { + iframeFrames.splice(i, 1); + iframeWindows.splice(i, 1); + } + } + }(); + if (frame && frame.contentWindow) try { + iframeWindows.push(frame.contentWindow); + iframeFrames.push(frame); + } catch (err) {} + }(frame); + resolve(frame); + })); + frame.addEventListener("error", (function(err) { + frame.contentWindow ? resolve(frame) : reject(err); + })); + })); + awaitFrameLoadPromises.set(frame, promise); + return promise; + } + function awaitFrameWindow(frame) { + return awaitFrameLoad(frame).then((function(loadedFrame) { + if (!loadedFrame.contentWindow) throw new Error("Could not find window in iframe"); + return loadedFrame.contentWindow; + })); + } + function dom_iframe(options, container) { + void 0 === options && (options = {}); + var style = options.style || {}; + var frame = function(tag, options, container) { + void 0 === tag && (tag = "div"); + void 0 === options && (options = {}); + tag = tag.toLowerCase(); + var element = document.createElement(tag); + options.style && extend(element.style, options.style); + options.class && (element.className = options.class.join(" ")); + options.id && element.setAttribute("id", options.id); + if (options.attributes) for (var _i10 = 0, _Object$keys2 = Object.keys(options.attributes); _i10 < _Object$keys2.length; _i10++) { + var key = _Object$keys2[_i10]; + element.setAttribute(key, options.attributes[key]); + } + options.styleSheet && function(el, styleText, doc) { + void 0 === doc && (doc = window.document); + el.styleSheet ? el.styleSheet.cssText = styleText : el.appendChild(doc.createTextNode(styleText)); + }(element, options.styleSheet); + if (options.html) { + if ("iframe" === tag) throw new Error("Iframe html can not be written unless container provided and iframe in DOM"); + element.innerHTML = options.html; + } + return element; + }("iframe", { + attributes: _extends({ + allowTransparency: "true" + }, options.attributes || {}), + style: _extends({ + backgroundColor: "transparent", + border: "none" + }, style), + html: options.html, + class: options.class + }); + var isIE = window.navigator.userAgent.match(/MSIE|Edge/i); + frame.hasAttribute("id") || frame.setAttribute("id", uniqueID()); + awaitFrameLoad(frame); + (options.url || isIE) && frame.setAttribute("src", options.url || "about:blank"); + return frame; + } + function addEventListener(obj, event, handler) { + obj.addEventListener(event, handler); + return { + cancel: function() { + obj.removeEventListener(event, handler); + } + }; + } + function showElement(element) { + element.style.setProperty("display", ""); + } + function hideElement(element) { + element.style.setProperty("display", "none", "important"); + } + function destroyElement(element) { + element && element.parentNode && element.parentNode.removeChild(element); + } + function isElementClosed(el) { + return !(el && el.parentNode && el.ownerDocument && el.ownerDocument.documentElement && el.ownerDocument.documentElement.contains(el)); + } + function onResize(el, handler, _temp) { + var _ref2 = void 0 === _temp ? {} : _temp, _ref2$width = _ref2.width, width = void 0 === _ref2$width || _ref2$width, _ref2$height = _ref2.height, height = void 0 === _ref2$height || _ref2$height, _ref2$interval = _ref2.interval, interval = void 0 === _ref2$interval ? 100 : _ref2$interval, _ref2$win = _ref2.win, win = void 0 === _ref2$win ? window : _ref2$win; + var currentWidth = el.offsetWidth; + var currentHeight = el.offsetHeight; + var canceled = !1; + handler({ + width: currentWidth, + height: currentHeight + }); + var check = function() { + if (!canceled && function(el) { + return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length); + }(el)) { + var newWidth = el.offsetWidth; + var newHeight = el.offsetHeight; + (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({ + width: newWidth, + height: newHeight + }); + currentWidth = newWidth; + currentHeight = newHeight; + } + }; + var observer; + var timeout; + win.addEventListener("resize", check); + if (void 0 !== win.ResizeObserver) { + (observer = new win.ResizeObserver(check)).observe(el); + timeout = safeInterval(check, 10 * interval); + } else if (void 0 !== win.MutationObserver) { + (observer = new win.MutationObserver(check)).observe(el, { + attributes: !0, + childList: !0, + subtree: !0, + characterData: !1 + }); + timeout = safeInterval(check, 10 * interval); + } else timeout = safeInterval(check, interval); + return { + cancel: function() { + canceled = !0; + observer.disconnect(); + window.removeEventListener("resize", check); + timeout.cancel(); + } + }; + } + function isShadowElement(element) { + for (;element.parentNode; ) element = element.parentNode; + return "[object ShadowRoot]" === element.toString(); + } + var currentScript = "undefined" != typeof document ? document.currentScript : null; + var getCurrentScript = memoize((function() { + if (currentScript) return currentScript; + if (currentScript = function() { + try { + var stack = function() { + try { + throw new Error("_"); + } catch (err) { + return err.stack || ""; + } + }(); + var stackDetails = /.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(stack); + var scriptLocation = stackDetails && stackDetails[1]; + if (!scriptLocation) return; + for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName("script")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) { + var script = _Array$prototype$slic2[_i22]; + if (script.src && script.src === scriptLocation) return script; + } + } catch (err) {} + }()) return currentScript; + throw new Error("Can not determine current script"); + })); + var currentUID = uniqueID(); + memoize((function() { + var script; + try { + script = getCurrentScript(); + } catch (err) { + return currentUID; + } + var uid = script.getAttribute("data-uid"); + if (uid && "string" == typeof uid) return uid; + if ((uid = script.getAttribute("data-uid-auto")) && "string" == typeof uid) return uid; + if (script.src) { + var hashedString = function(str) { + var hash = ""; + for (var i = 0; i < str.length; i++) { + var total = str[i].charCodeAt(0) * i; + str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1)); + hash += String.fromCharCode(97 + Math.abs(total) % 26); + } + return hash; + }(JSON.stringify({ + src: script.src, + dataset: script.dataset + })); + uid = "uid_" + hashedString.slice(hashedString.length - 30); + } else uid = uniqueID(); + script.setAttribute("data-uid-auto", uid); + return uid; + })); + function isPerc(str) { + return "string" == typeof str && /^[0-9]+%$/.test(str); + } + function toNum(val) { + if ("number" == typeof val) return val; + var match = val.match(/^([0-9]+)(px|%)$/); + if (!match) throw new Error("Could not match css value from " + val); + return parseInt(match[1], 10); + } + function toPx(val) { + return toNum(val) + "px"; + } + function toCSS(val) { + return "number" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val); + } + function normalizeDimension(dim, max) { + if ("number" == typeof dim) return dim; + if (isPerc(dim)) return parseInt(max * toNum(dim) / 100, 10); + if ("string" == typeof (str = dim) && /^[0-9]+px$/.test(str)) return toNum(dim); + var str; + throw new Error("Can not normalize dimension: " + dim); + } + function global_getGlobal(win) { + void 0 === win && (win = window); + var globalKey = "__post_robot_10_0_44__"; + return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {}; + } + var getObj = function() { + return {}; + }; + function globalStore(key, defStore) { + void 0 === key && (key = "store"); + void 0 === defStore && (defStore = getObj); + return util_getOrSet(global_getGlobal(), key, (function() { + var store = defStore(); + return { + has: function(storeKey) { + return store.hasOwnProperty(storeKey); + }, + get: function(storeKey, defVal) { + return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal; + }, + set: function(storeKey, val) { + store[storeKey] = val; + return val; + }, + del: function(storeKey) { + delete store[storeKey]; + }, + getOrSet: function(storeKey, getter) { + return util_getOrSet(store, storeKey, getter); + }, + reset: function() { + store = defStore(); + }, + keys: function() { + return Object.keys(store); + } + }; + })); + } + var WildCard = function() {}; + function getWildcard() { + var global = global_getGlobal(); + global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard; + return global.WINDOW_WILDCARD; + } + function windowStore(key, defStore) { + void 0 === key && (key = "store"); + void 0 === defStore && (defStore = getObj); + return globalStore("windowStore").getOrSet(key, (function() { + var winStore = new weakmap_CrossDomainSafeWeakMap; + var getStore = function(win) { + return winStore.getOrSet(win, defStore); + }; + return { + has: function(win) { + return getStore(win).hasOwnProperty(key); + }, + get: function(win, defVal) { + var store = getStore(win); + return store.hasOwnProperty(key) ? store[key] : defVal; + }, + set: function(win, val) { + getStore(win)[key] = val; + return val; + }, + del: function(win) { + delete getStore(win)[key]; + }, + getOrSet: function(win, getter) { + return util_getOrSet(getStore(win), key, getter); + } + }; + })); + } + function getInstanceID() { + return globalStore("instance").getOrSet("instanceID", uniqueID); + } + function resolveHelloPromise(win, _ref) { + var domain = _ref.domain; + var helloPromises = windowStore("helloPromises"); + var existingPromise = helloPromises.get(win); + existingPromise && existingPromise.resolve({ + domain: domain + }); + var newPromise = promise_ZalgoPromise.resolve({ + domain: domain + }); + helloPromises.set(win, newPromise); + return newPromise; + } + function sayHello(win, _ref4) { + return (0, _ref4.send)(win, "postrobot_hello", { + instanceID: getInstanceID() + }, { + domain: "*", + timeout: -1 + }).then((function(_ref5) { + var origin = _ref5.origin, instanceID = _ref5.data.instanceID; + resolveHelloPromise(win, { + domain: origin + }); + return { + win: win, + domain: origin, + instanceID: instanceID + }; + })); + } + function getWindowInstanceID(win, _ref6) { + var send = _ref6.send; + return windowStore("windowInstanceIDPromises").getOrSet(win, (function() { + return sayHello(win, { + send: send + }).then((function(_ref7) { + return _ref7.instanceID; + })); + })); + } + function awaitWindowHello(win, timeout, name) { + void 0 === timeout && (timeout = 5e3); + void 0 === name && (name = "Window"); + var promise = function(win) { + return windowStore("helloPromises").getOrSet(win, (function() { + return new promise_ZalgoPromise; + })); + }(win); + -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + " did not load after " + timeout + "ms"))); + return promise; + } + function markWindowKnown(win) { + windowStore("knownWindows").set(win, !0); + } + function isSerializedType(item) { + return "object" == typeof item && null !== item && "string" == typeof item.__type__; + } + function determineType(val) { + 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; + } + function serializeType(type, val) { + return { + __type__: type, + __val__: val + }; + } + var _SERIALIZER; + var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) { + return serializeType("error", { + message: _ref.message, + stack: _ref.stack, + code: _ref.code, + data: _ref.data + }); + }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) { + return serializeType("regex", val.source); + }, _SERIALIZER.date = function(val) { + return serializeType("date", val.toJSON()); + }, _SERIALIZER.array = function(val) { + return val; + }, _SERIALIZER.object = function(val) { + return val; + }, _SERIALIZER.string = function(val) { + return val; + }, _SERIALIZER.number = function(val) { + return val; + }, _SERIALIZER.boolean = function(val) { + return val; + }, _SERIALIZER.null = function(val) { + return val; + }, _SERIALIZER[void 0] = function(val) { + return serializeType("undefined", val); + }, _SERIALIZER); + var defaultSerializers = {}; + var _DESERIALIZER; + var DESERIALIZER = ((_DESERIALIZER = {}).function = function() { + throw new Error("Function serialization is not implemented; nothing to deserialize"); + }, _DESERIALIZER.error = function(_ref2) { + var stack = _ref2.stack, code = _ref2.code, data = _ref2.data; + var error = new Error(_ref2.message); + error.code = code; + data && (error.data = data); + error.stack = stack + "\n\n" + error.stack; + return error; + }, _DESERIALIZER.promise = function() { + throw new Error("Promise serialization is not implemented; nothing to deserialize"); + }, _DESERIALIZER.regex = function(val) { + return new RegExp(val); + }, _DESERIALIZER.date = function(val) { + return new Date(val); + }, _DESERIALIZER.array = function(val) { + return val; + }, _DESERIALIZER.object = function(val) { + return val; + }, _DESERIALIZER.string = function(val) { + return val; + }, _DESERIALIZER.number = function(val) { + return val; + }, _DESERIALIZER.boolean = function(val) { + return val; + }, _DESERIALIZER.null = function(val) { + return val; + }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER); + var defaultDeserializers = {}; + function needsBridgeForBrowser() { + return !!utils_getUserAgent(window).match(/MSIE|trident|edge\/12|edge\/13/i); + } + function needsBridgeForWin(win) { + return !isSameTopWindow(window, win); + } + function needsBridgeForDomain(domain, win) { + if (domain) { + if (getDomain() !== getDomainFromUrl(domain)) return !0; + } else if (win && !isSameDomain(win)) return !0; + return !1; + } + function needsBridge(_ref) { + var win = _ref.win, domain = _ref.domain; + return !(!needsBridgeForBrowser() || domain && !needsBridgeForDomain(domain, win) || win && !needsBridgeForWin(win)); + } + function getBridgeName(domain) { + return "__postrobot_bridge___" + (domain = domain || getDomainFromUrl(domain)).replace(/[^a-zA-Z0-9]+/g, "_"); + } + function isBridge() { + return Boolean(window.name && window.name === getBridgeName(getDomain())); + } + var documentBodyReady = new promise_ZalgoPromise((function(resolve) { + if (window.document && window.document.body) return resolve(window.document.body); + var interval = setInterval((function() { + if (window.document && window.document.body) { + clearInterval(interval); + return resolve(window.document.body); + } + }), 10); + })); + function registerRemoteWindow(win) { + windowStore("remoteWindowPromises").getOrSet(win, (function() { + return new promise_ZalgoPromise; + })); + } + function findRemoteWindow(win) { + var remoteWinPromise = windowStore("remoteWindowPromises").get(win); + if (!remoteWinPromise) throw new Error("Remote window promise not found"); + return remoteWinPromise; + } + function registerRemoteSendMessage(win, domain, sendMessage) { + findRemoteWindow(win).resolve((function(remoteWin, remoteDomain, message) { + if (remoteWin !== win) throw new Error("Remote window does not match window"); + if (!matchDomain(remoteDomain, domain)) throw new Error("Remote domain " + remoteDomain + " does not match domain " + domain); + sendMessage.fireAndForget(message); + })); + } + function rejectRemoteSendMessage(win, err) { + findRemoteWindow(win).reject(err).catch(src_util_noop); + } + function linkWindow(_ref3) { + var win = _ref3.win, name = _ref3.name, domain = _ref3.domain; + var popupWindowsByName = globalStore("popupWindowsByName"); + var popupWindowsByWin = windowStore("popupWindowsByWin"); + for (var _i2 = 0, _popupWindowsByName$k2 = popupWindowsByName.keys(); _i2 < _popupWindowsByName$k2.length; _i2++) { + var winName = _popupWindowsByName$k2[_i2]; + var _details = popupWindowsByName.get(winName); + _details && !isWindowClosed(_details.win) || popupWindowsByName.del(winName); + } + if (isWindowClosed(win)) return { + win: win, + name: name, + domain: domain + }; + var details = popupWindowsByWin.getOrSet(win, (function() { + return name ? popupWindowsByName.getOrSet(name, (function() { + return { + win: win, + name: name + }; + })) : { + win: win + }; + })); + if (details.win && details.win !== win) throw new Error("Different window already linked for window: " + (name || "undefined")); + if (name) { + details.name = name; + popupWindowsByName.set(name, details); + } + if (domain) { + details.domain = domain; + registerRemoteWindow(win); + } + popupWindowsByWin.set(win, details); + return details; + } + function setupBridge(_ref) { + var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage; + windowOpen = window.open, window.open = function(url, name, options, last) { + var win = windowOpen.call(this, normalizeMockUrl(url), name, options, last); + if (!win) return win; + linkWindow({ + win: win, + name: name, + domain: url ? getDomainFromUrl(url) : null + }); + return win; + }; + var windowOpen; + !function(_ref) { + var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage; + var popupWindowsByName = globalStore("popupWindowsByName"); + on("postrobot_open_tunnel", (function(_ref2) { + var source = _ref2.source, origin = _ref2.origin, data = _ref2.data; + var bridgePromise = globalStore("bridges").get(origin); + if (!bridgePromise) throw new Error("Can not find bridge promise for domain " + origin); + return bridgePromise.then((function(bridge) { + if (source !== bridge) throw new Error("Message source does not matched registered bridge for domain " + origin); + if (!data.name) throw new Error("Register window expected to be passed window name"); + if (!data.sendMessage) throw new Error("Register window expected to be passed sendMessage method"); + if (!popupWindowsByName.has(data.name)) throw new Error("Window with name " + data.name + " does not exist, or was not opened by this window"); + var getWindowDetails = function() { + return popupWindowsByName.get(data.name); + }; + if (!getWindowDetails().domain) throw new Error("We do not have a registered domain for window " + data.name); + if (getWindowDetails().domain !== origin) throw new Error("Message origin " + origin + " does not matched registered window origin " + (getWindowDetails().domain || "unknown")); + registerRemoteSendMessage(getWindowDetails().win, origin, data.sendMessage); + return { + sendMessage: function(message) { + if (window && !window.closed && getWindowDetails()) { + var domain = getWindowDetails().domain; + if (domain) try { + receiveMessage({ + data: message, + origin: domain, + source: getWindowDetails().win + }, { + on: on, + send: send + }); + } catch (err) { + promise_ZalgoPromise.reject(err); + } + } + } + }; + })); + })); + }({ + on: on, + send: send, + receiveMessage: receiveMessage + }); + !function(_ref2) { + var send = _ref2.send; + global_getGlobal(window).openTunnelToParent = function(_ref3) { + var name = _ref3.name, source = _ref3.source, canary = _ref3.canary, sendMessage = _ref3.sendMessage; + var tunnelWindows = globalStore("tunnelWindows"); + var parentWindow = utils_getParent(window); + if (!parentWindow) throw new Error("No parent window found to open tunnel to"); + var id = function(_ref) { + var name = _ref.name, source = _ref.source, canary = _ref.canary, sendMessage = _ref.sendMessage; + !function() { + var tunnelWindows = globalStore("tunnelWindows"); + for (var _i2 = 0, _tunnelWindows$keys2 = tunnelWindows.keys(); _i2 < _tunnelWindows$keys2.length; _i2++) { + var key = _tunnelWindows$keys2[_i2]; + isWindowClosed(tunnelWindows[key].source) && tunnelWindows.del(key); + } + }(); + var id = uniqueID(); + globalStore("tunnelWindows").set(id, { + name: name, + source: source, + canary: canary, + sendMessage: sendMessage + }); + return id; + }({ + name: name, + source: source, + canary: canary, + sendMessage: sendMessage + }); + return send(parentWindow, "postrobot_open_tunnel", { + name: name, + sendMessage: function() { + var tunnelWindow = tunnelWindows.get(id); + if (tunnelWindow && tunnelWindow.source && !isWindowClosed(tunnelWindow.source)) { + try { + tunnelWindow.canary(); + } catch (err) { + return; + } + tunnelWindow.sendMessage.apply(this, arguments); + } + } + }, { + domain: "*" + }); + }; + }({ + send: send + }); + !function(_ref) { + var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage; + promise_ZalgoPromise.try((function() { + var opener = getOpener(window); + if (opener && needsBridge({ + win: opener + })) { + registerRemoteWindow(opener); + return (win = opener, windowStore("remoteBridgeAwaiters").getOrSet(win, (function() { + return promise_ZalgoPromise.try((function() { + var frame = getFrameByName(win, getBridgeName(getDomain())); + if (frame) return isSameDomain(frame) && global_getGlobal(assertSameDomain(frame)) ? frame : new promise_ZalgoPromise((function(resolve) { + var interval; + var timeout; + interval = setInterval((function() { + if (frame && isSameDomain(frame) && global_getGlobal(assertSameDomain(frame))) { + clearInterval(interval); + clearTimeout(timeout); + return resolve(frame); + } + }), 100); + timeout = setTimeout((function() { + clearInterval(interval); + return resolve(); + }), 2e3); + })); + })); + }))).then((function(bridge) { + return bridge ? window.name ? global_getGlobal(assertSameDomain(bridge)).openTunnelToParent({ + name: window.name, + source: window, + canary: function() {}, + sendMessage: function(message) { + try { + window; + } catch (err) { + return; + } + if (window && !window.closed) try { + receiveMessage({ + data: message, + origin: this.origin, + source: this.source + }, { + on: on, + send: send + }); + } catch (err) { + promise_ZalgoPromise.reject(err); + } + } + }).then((function(_ref2) { + var source = _ref2.source, origin = _ref2.origin, data = _ref2.data; + if (source !== opener) throw new Error("Source does not match opener"); + registerRemoteSendMessage(source, origin, data.sendMessage); + })).catch((function(err) { + rejectRemoteSendMessage(opener, err); + throw err; + })) : 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")); + })); + var win; + } + })); + }({ + on: on, + send: send, + receiveMessage: receiveMessage + }); + } + function cleanupProxyWindows() { + var idToProxyWindow = globalStore("idToProxyWindow"); + for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) { + var id = _idToProxyWindow$keys2[_i2]; + idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id); + } + } + function getSerializedWindow(winPromise, _ref) { + var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id; + var windowNamePromise = winPromise.then((function(win) { + if (isSameDomain(win)) return assertSameDomain(win).name; + })); + var windowTypePromise = winPromise.then((function(window) { + if (isWindowClosed(window)) throw new Error("Window is closed, can not determine type"); + return getOpener(window) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME; + })); + windowNamePromise.catch(src_util_noop); + windowTypePromise.catch(src_util_noop); + var getName = function() { + return winPromise.then((function(win) { + if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise; + })); + }; + return { + id: id, + getType: function() { + return windowTypePromise; + }, + getInstanceID: memoizePromise((function() { + return winPromise.then((function(win) { + return getWindowInstanceID(win, { + send: send + }); + })); + })), + close: function() { + return winPromise.then(closeWindow); + }, + getName: getName, + focus: function() { + return winPromise.then((function(win) { + win.focus(); + })); + }, + isClosed: function() { + return winPromise.then((function(win) { + return isWindowClosed(win); + })); + }, + setLocation: function(href, opts) { + void 0 === opts && (opts = {}); + return winPromise.then((function(win) { + var domain = window.location.protocol + "//" + window.location.host; + var _opts$method = opts.method, method = void 0 === _opts$method ? "get" : _opts$method, body = opts.body; + 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)); + if ("post" === method) return getName().then((function(name) { + if (!name) throw new Error("Can not post to window without target name"); + !function(_ref3) { + var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? "post" : _ref3$method; + var form = document.createElement("form"); + form.setAttribute("target", target); + form.setAttribute("method", method); + form.setAttribute("action", url); + form.style.display = "none"; + if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) { + var _body$key; + var key = _Object$keys4[_i24]; + var input = document.createElement("input"); + input.setAttribute("name", key); + input.setAttribute("value", null == (_body$key = body[key]) ? void 0 : _body$key.toString()); + form.appendChild(input); + } + getBody().appendChild(form); + form.submit(); + getBody().removeChild(form); + }({ + url: href, + target: name, + method: method, + body: body + }); + })); + if ("get" !== method) throw new Error("Unsupported method: " + method); + if (isSameDomain(win)) try { + if (win.location && "function" == typeof win.location.replace) { + win.location.replace(href); + return; + } + } catch (err) {} + win.location = href; + })); + }, + setName: function(name) { + return winPromise.then((function(win) { + linkWindow({ + win: win, + name: name + }); + var sameDomain = isSameDomain(win); + var frame = getFrameForWindow(win); + if (!sameDomain) throw new Error("Can not set name for cross-domain window: " + name); + assertSameDomain(win).name = name; + frame && frame.setAttribute("name", name); + windowNamePromise = promise_ZalgoPromise.resolve(name); + })); + } + }; + } + var window_ProxyWindow = function() { + function ProxyWindow(_ref2) { + var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow; + this.id = void 0; + this.isProxyWindow = !0; + this.serializedWindow = void 0; + this.actualWindow = void 0; + this.actualWindowPromise = void 0; + this.send = void 0; + this.name = void 0; + this.actualWindowPromise = new promise_ZalgoPromise; + this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, { + send: send + }); + globalStore("idToProxyWindow").set(this.getID(), this); + win && this.setWindow(win, { + send: send + }); + } + var _proto = ProxyWindow.prototype; + _proto.getID = function() { + return this.serializedWindow.id; + }; + _proto.getType = function() { + return this.serializedWindow.getType(); + }; + _proto.isPopup = function() { + return this.getType().then((function(type) { + return type === WINDOW_TYPE.POPUP; + })); + }; + _proto.setLocation = function(href, opts) { + var _this = this; + return this.serializedWindow.setLocation(href, opts).then((function() { + return _this; + })); + }; + _proto.getName = function() { + return this.serializedWindow.getName(); + }; + _proto.setName = function(name) { + var _this2 = this; + return this.serializedWindow.setName(name).then((function() { + return _this2; + })); + }; + _proto.close = function() { + var _this3 = this; + return this.serializedWindow.close().then((function() { + return _this3; + })); + }; + _proto.focus = function() { + var _this4 = this; + var isPopupPromise = this.isPopup(); + var getNamePromise = this.getName(); + var reopenPromise = promise_ZalgoPromise.hash({ + isPopup: isPopupPromise, + name: getNamePromise + }).then((function(_ref3) { + var name = _ref3.name; + _ref3.isPopup && name && window.open("", name); + })); + var focusPromise = this.serializedWindow.focus(); + return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() { + return _this4; + })); + }; + _proto.isClosed = function() { + return this.serializedWindow.isClosed(); + }; + _proto.getWindow = function() { + return this.actualWindow; + }; + _proto.setWindow = function(win, _ref4) { + var send = _ref4.send; + this.actualWindow = win; + this.actualWindowPromise.resolve(this.actualWindow); + this.serializedWindow = getSerializedWindow(this.actualWindowPromise, { + send: send, + id: this.getID() + }); + windowStore("winToProxyWindow").set(win, this); + }; + _proto.awaitWindow = function() { + return this.actualWindowPromise; + }; + _proto.matchWindow = function(win, _ref5) { + var _this5 = this; + var send = _ref5.send; + return promise_ZalgoPromise.try((function() { + return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({ + proxyInstanceID: _this5.getInstanceID(), + knownWindowInstanceID: getWindowInstanceID(win, { + send: send + }) + }).then((function(_ref6) { + var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID; + match && _this5.setWindow(win, { + send: send + }); + return match; + })); + })); + }; + _proto.unwrap = function() { + return this.actualWindow || this; + }; + _proto.getInstanceID = function() { + return this.serializedWindow.getInstanceID(); + }; + _proto.shouldClean = function() { + return Boolean(this.actualWindow && isWindowClosed(this.actualWindow)); + }; + _proto.serialize = function() { + return this.serializedWindow; + }; + ProxyWindow.unwrap = function(win) { + return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win; + }; + ProxyWindow.serialize = function(win, _ref7) { + var send = _ref7.send; + cleanupProxyWindows(); + return ProxyWindow.toProxyWindow(win, { + send: send + }).serialize(); + }; + ProxyWindow.deserialize = function(serializedWindow, _ref8) { + var send = _ref8.send; + cleanupProxyWindows(); + return globalStore("idToProxyWindow").get(serializedWindow.id) || new ProxyWindow({ + serializedWindow: serializedWindow, + send: send + }); + }; + ProxyWindow.isProxyWindow = function(obj) { + return Boolean(obj && !isWindow(obj) && obj.isProxyWindow); + }; + ProxyWindow.toProxyWindow = function(win, _ref9) { + var send = _ref9.send; + cleanupProxyWindows(); + if (ProxyWindow.isProxyWindow(win)) return win; + var actualWindow = win; + return windowStore("winToProxyWindow").get(actualWindow) || new ProxyWindow({ + win: actualWindow, + send: send + }); + }; + return ProxyWindow; + }(); + function addMethod(id, val, name, source, domain) { + var methodStore = windowStore("methodStore"); + var proxyWindowMethods = globalStore("proxyWindowMethods"); + if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, { + val: val, + name: name, + domain: domain, + source: source + }); else { + proxyWindowMethods.del(id); + methodStore.getOrSet(source, (function() { + return {}; + }))[id] = { + domain: domain, + name: name, + val: val, + source: source + }; + } + } + function lookupMethod(source, id) { + var methodStore = windowStore("methodStore"); + var proxyWindowMethods = globalStore("proxyWindowMethods"); + return methodStore.getOrSet(source, (function() { + return {}; + }))[id] || proxyWindowMethods.get(id); + } + function function_serializeFunction(destination, domain, val, key, _ref3) { + on = (_ref = { + on: _ref3.on, + send: _ref3.send + }).on, send = _ref.send, globalStore("builtinListeners").getOrSet("functionCalls", (function() { + return on("postrobot_method", { + domain: "*" + }, (function(_ref2) { + var source = _ref2.source, origin = _ref2.origin, data = _ref2.data; + var id = data.id, name = data.name; + var meth = lookupMethod(source, id); + if (!meth) throw new Error("Could not find method '" + name + "' with id: " + data.id + " in " + getDomain(window)); + var methodSource = meth.source, domain = meth.domain, val = meth.val; + return promise_ZalgoPromise.try((function() { + 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)); + if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, { + send: send + }).then((function(match) { + if (!match) throw new Error("Method call '" + data.name + "' failed - proxy window does not match source in " + getDomain(window)); + })); + })).then((function() { + return val.apply({ + source: source, + origin: origin + }, data.args); + }), (function(err) { + return promise_ZalgoPromise.try((function() { + if (val.onError) return val.onError(err); + })).then((function() { + err.stack && (err.stack = "Remote call to " + name + "(" + function(args) { + void 0 === args && (args = []); + return arrayFrom(args).map((function(arg) { + 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 + ">"; + })).join(", "); + }(data.args) + ") failed\n\n" + err.stack); + throw err; + })); + })).then((function(result) { + return { + result: result, + id: id, + name: name + }; + })); + })); + })); + var _ref, on, send; + var id = val.__id__ || uniqueID(); + destination = window_ProxyWindow.unwrap(destination); + var name = val.__name__ || val.name || key; + "string" == typeof name && "function" == typeof name.indexOf && 0 === name.indexOf("anonymous::") && (name = name.replace("anonymous::", key + "::")); + if (window_ProxyWindow.isProxyWindow(destination)) { + addMethod(id, val, name, destination, domain); + destination.awaitWindow().then((function(win) { + addMethod(id, val, name, win, domain); + })); + } else addMethod(id, val, name, destination, domain); + return serializeType("cross_domain_function", { + id: id, + name: name + }); + } + function serializeMessage(destination, domain, obj, _ref) { + var _serialize; + var on = _ref.on, send = _ref.send; + return function(obj, serializers) { + void 0 === serializers && (serializers = defaultSerializers); + var result = JSON.stringify(obj, (function(key) { + var val = this[key]; + if (isSerializedType(this)) return val; + var type = determineType(val); + if (!type) return val; + var serializer = serializers[type] || SERIALIZER[type]; + return serializer ? serializer(val, key) : val; + })); + return void 0 === result ? "undefined" : result; + }(obj, ((_serialize = {}).promise = function(val, key) { + return function(destination, domain, val, key, _ref) { + return serializeType("cross_domain_zalgo_promise", { + then: function_serializeFunction(destination, domain, (function(resolve, reject) { + return val.then(resolve, reject); + }), key, { + on: _ref.on, + send: _ref.send + }) + }); + }(destination, domain, val, key, { + on: on, + send: send + }); + }, _serialize.function = function(val, key) { + return function_serializeFunction(destination, domain, val, key, { + on: on, + send: send + }); + }, _serialize.object = function(val) { + return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType("cross_domain_window", window_ProxyWindow.serialize(val, { + send: send + })) : val; + }, _serialize)); + } + function deserializeMessage(source, origin, message, _ref2) { + var _deserialize; + var send = _ref2.send; + return function(str, deserializers) { + void 0 === deserializers && (deserializers = defaultDeserializers); + if ("undefined" !== str) return JSON.parse(str, (function(key, val) { + if (isSerializedType(this)) return val; + var type; + var value; + if (isSerializedType(val)) { + type = val.__type__; + value = val.__val__; + } else { + type = determineType(val); + value = val; + } + if (!type) return value; + var deserializer = deserializers[type] || DESERIALIZER[type]; + return deserializer ? deserializer(value, key) : value; + })); + }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) { + return function(source, origin, _ref2) { + return new promise_ZalgoPromise(_ref2.then); + }(0, 0, serializedPromise); + }, _deserialize.cross_domain_function = function(serializedFunction) { + return function(source, origin, _ref4, _ref5) { + var id = _ref4.id, name = _ref4.name; + var send = _ref5.send; + var getDeserializedFunction = function(opts) { + void 0 === opts && (opts = {}); + function crossDomainFunctionWrapper() { + var _arguments = arguments; + return window_ProxyWindow.toProxyWindow(source, { + send: send + }).awaitWindow().then((function(win) { + var meth = lookupMethod(win, id); + if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({ + source: window, + origin: getDomain() + }, _arguments); + var _args = [].slice.call(_arguments); + return opts.fireAndForget ? send(win, "postrobot_method", { + id: id, + name: name, + args: _args + }, { + domain: origin, + fireAndForget: !0 + }) : send(win, "postrobot_method", { + id: id, + name: name, + args: _args + }, { + domain: origin, + fireAndForget: !1 + }).then((function(res) { + return res.data.result; + })); + })).catch((function(err) { + throw err; + })); + } + crossDomainFunctionWrapper.__name__ = name; + crossDomainFunctionWrapper.__origin__ = origin; + crossDomainFunctionWrapper.__source__ = source; + crossDomainFunctionWrapper.__id__ = id; + crossDomainFunctionWrapper.origin = origin; + return crossDomainFunctionWrapper; + }; + var crossDomainFunctionWrapper = getDeserializedFunction(); + crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({ + fireAndForget: !0 + }); + return crossDomainFunctionWrapper; + }(source, origin, serializedFunction, { + send: send + }); + }, _deserialize.cross_domain_window = function(serializedWindow) { + return window_ProxyWindow.deserialize(serializedWindow, { + send: send + }); + }, _deserialize)); + } + var SEND_MESSAGE_STRATEGIES = {}; + SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) { + 0 === domain.indexOf("file:") && (domain = "*"); + win.postMessage(serializedMessage, domain); + }; + SEND_MESSAGE_STRATEGIES.postrobot_bridge = function(win, serializedMessage, domain) { + if (!needsBridgeForBrowser() && !isBridge()) throw new Error("Bridge not needed for browser"); + if (isSameDomain(win)) throw new Error("Post message through bridge disabled between same domain windows"); + if (!1 !== isSameTopWindow(window, win)) throw new Error("Can only use bridge to communicate between two different windows, not between frames"); + !function(win, domain, message) { + var messagingChild = isOpener(window, win); + var messagingParent = isOpener(win, window); + if (!messagingChild && !messagingParent) throw new Error("Can only send messages to and from parent and popup windows"); + findRemoteWindow(win).then((function(sendMessage) { + return sendMessage(win, domain, message); + })); + }(win, domain, serializedMessage); + }; + SEND_MESSAGE_STRATEGIES.postrobot_global = function(win, serializedMessage) { + if (!utils_getUserAgent(window).match(/MSIE|rv:11|trident|edge\/12|edge\/13/i)) throw new Error("Global messaging not needed for browser"); + if (!isSameDomain(win)) throw new Error("Post message through global disabled between different domain windows"); + if (!1 !== isSameTopWindow(window, win)) throw new Error("Can only use global to communicate between two different windows, not between frames"); + var foreignGlobal = global_getGlobal(win); + if (!foreignGlobal) throw new Error("Can not find postRobot global on foreign window"); + foreignGlobal.receiveMessage({ + source: window, + origin: getDomain(), + data: serializedMessage + }); + }; + function send_sendMessage(win, domain, message, _ref2) { + var on = _ref2.on, send = _ref2.send; + return promise_ZalgoPromise.try((function() { + var domainBuffer = windowStore().getOrSet(win, (function() { + return {}; + })); + domainBuffer.buffer = domainBuffer.buffer || []; + domainBuffer.buffer.push(message); + domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() { + if (isWindowClosed(win)) throw new Error("Window is closed"); + var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_10_0_44__ = domainBuffer.buffer || [], + _ref), { + on: on, + send: send + }); + var _ref; + delete domainBuffer.buffer; + var strategies = Object.keys(SEND_MESSAGE_STRATEGIES); + var errors = []; + for (var _i2 = 0; _i2 < strategies.length; _i2++) { + var strategyName = strategies[_i2]; + try { + SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain); + } catch (err) { + errors.push(err); + } + } + if (errors.length === strategies.length) throw new Error("All post-robot messaging strategies failed:\n\n" + errors.map((function(err, i) { + return i + ". " + stringifyError(err); + })).join("\n\n")); + })); + return domainBuffer.flush.then((function() { + delete domainBuffer.flush; + })); + })).then(src_util_noop); + } + function getResponseListener(hash) { + return globalStore("responseListeners").get(hash); + } + function deleteResponseListener(hash) { + globalStore("responseListeners").del(hash); + } + function isResponseListenerErrored(hash) { + return globalStore("erroredResponseListeners").has(hash); + } + function getRequestListener(_ref) { + var name = _ref.name, win = _ref.win, domain = _ref.domain; + var requestListeners = windowStore("requestListeners"); + "*" === win && (win = null); + "*" === domain && (domain = null); + if (!name) throw new Error("Name required to get request listener"); + for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) { + var winQualifier = _ref3[_i4]; + if (winQualifier) { + var nameListeners = requestListeners.get(winQualifier); + if (nameListeners) { + var domainListeners = nameListeners[name]; + if (domainListeners) { + if (domain && "string" == typeof domain) { + if (domainListeners[domain]) return domainListeners[domain]; + if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) { + var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener; + if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener; + } + } + if (domainListeners["*"]) return domainListeners["*"]; + } + } + } + } + } + function handleRequest(source, origin, message, _ref) { + var on = _ref.on, send = _ref.send; + var options = getRequestListener({ + name: message.name, + win: source, + domain: origin + }); + var logName = "postrobot_method" === message.name && message.data && "string" == typeof message.data.name ? message.data.name + "()" : message.name; + function sendResponse(ack, data, error) { + return promise_ZalgoPromise.flush().then((function() { + if (!message.fireAndForget && !isWindowClosed(source)) try { + return send_sendMessage(source, origin, { + id: uniqueID(), + origin: getDomain(window), + type: "postrobot_message_response", + hash: message.hash, + name: message.name, + ack: ack, + data: data, + error: error + }, { + on: on, + send: send + }); + } catch (err) { + throw new Error("Send response message failed for " + logName + " in " + getDomain() + "\n\n" + stringifyError(err)); + } + })); + } + return promise_ZalgoPromise.all([ promise_ZalgoPromise.flush().then((function() { + if (!message.fireAndForget && !isWindowClosed(source)) try { + return send_sendMessage(source, origin, { + id: uniqueID(), + origin: getDomain(window), + type: "postrobot_message_ack", + hash: message.hash, + name: message.name + }, { + on: on, + send: send + }); + } catch (err) { + throw new Error("Send ack message failed for " + logName + " in " + getDomain() + "\n\n" + stringifyError(err)); + } + })), promise_ZalgoPromise.try((function() { + 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); + if (!matchDomain(options.domain, origin)) throw new Error("Request origin " + origin + " does not match domain " + options.domain.toString()); + return options.handler({ + source: source, + origin: origin, + data: message.data + }); + })).then((function(data) { + return sendResponse("success", data); + }), (function(error) { + return sendResponse("error", null, error); + })) ]).then(src_util_noop).catch((function(err) { + if (options && options.handleError) return options.handleError(err); + throw err; + })); + } + function handleAck(source, origin, message) { + if (!isResponseListenerErrored(message.hash)) { + var options = getResponseListener(message.hash); + 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); + try { + if (!matchDomain(options.domain, origin)) throw new Error("Ack origin " + origin + " does not match domain " + options.domain.toString()); + if (source !== options.win) throw new Error("Ack source does not match registered window"); + } catch (err) { + options.promise.reject(err); + } + options.ack = !0; + } + } + function handleResponse(source, origin, message) { + if (!isResponseListenerErrored(message.hash)) { + var options = getResponseListener(message.hash); + 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); + 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())); + var pattern; + if (source !== options.win) throw new Error("Response source does not match registered window"); + deleteResponseListener(message.hash); + "error" === message.ack ? options.promise.reject(message.error) : "success" === message.ack && options.promise.resolve({ + source: source, + origin: origin, + data: message.data + }); + } + } + function receive_receiveMessage(event, _ref2) { + var on = _ref2.on, send = _ref2.send; + var receivedMessages = globalStore("receivedMessages"); + try { + if (!window || window.closed || !event.source) return; + } catch (err) { + return; + } + var source = event.source, origin = event.origin; + var messages = function(message, source, origin, _ref) { + var on = _ref.on, send = _ref.send; + var parsedMessage; + try { + parsedMessage = deserializeMessage(source, origin, message, { + on: on, + send: send + }); + } catch (err) { + return; + } + if (parsedMessage && "object" == typeof parsedMessage && null !== parsedMessage) { + var parseMessages = parsedMessage.__post_robot_10_0_44__; + if (Array.isArray(parseMessages)) return parseMessages; + } + }(event.data, source, origin, { + on: on, + send: send + }); + if (messages) { + markWindowKnown(source); + for (var _i2 = 0; _i2 < messages.length; _i2++) { + var message = messages[_i2]; + if (receivedMessages.has(message.id)) return; + receivedMessages.set(message.id, !0); + if (isWindowClosed(source) && !message.fireAndForget) return; + 0 === message.origin.indexOf("file:") && (origin = "file://"); + try { + "postrobot_message_request" === message.type ? handleRequest(source, origin, message, { + on: on, + send: send + }) : "postrobot_message_response" === message.type ? handleResponse(source, origin, message) : "postrobot_message_ack" === message.type && handleAck(source, origin, message); + } catch (err) { + setTimeout((function() { + throw err; + }), 0); + } + } + } + } + function on_on(name, options, handler) { + if (!name) throw new Error("Expected name"); + if ("function" == typeof (options = options || {})) { + handler = options; + options = {}; + } + if (!handler) throw new Error("Expected handler"); + (options = options || {}).name = name; + options.handler = handler || options.handler; + var win = options.window; + var domain = options.domain; + var requestListener = function addRequestListener(_ref4, listener) { + var name = _ref4.name, win = _ref4.win, domain = _ref4.domain; + var requestListeners = windowStore("requestListeners"); + if (!name || "string" != typeof name) throw new Error("Name required to add request listener"); + if (Array.isArray(win)) { + var listenersCollection = []; + for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({ + name: name, + domain: domain, + win: _win2[_i8] + }, listener)); + return { + cancel: function() { + for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel(); + } + }; + } + if (Array.isArray(domain)) { + var _listenersCollection = []; + for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({ + name: name, + win: win, + domain: _domain2[_i12] + }, listener)); + return { + cancel: function() { + for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel(); + } + }; + } + var existingListener = getRequestListener({ + name: name, + win: win, + domain: domain + }); + win && "*" !== win || (win = getWildcard()); + domain = domain || "*"; + 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); + var nameListeners = requestListeners.getOrSet(win, (function() { + return {}; + })); + var domainListeners = util_getOrSet(nameListeners, name, (function() { + return {}; + })); + var strDomain = domain.toString(); + var regexListeners; + var regexListener; + util_isRegex(domain) ? (regexListeners = util_getOrSet(domainListeners, "__domain_regex__", (function() { + return []; + }))).push(regexListener = { + regex: domain, + listener: listener + }) : domainListeners[strDomain] = listener; + return { + cancel: function() { + delete domainListeners[strDomain]; + if (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); + } + }; + }({ + name: name, + win: win, + domain: domain + }, { + handler: options.handler, + handleError: options.errorHandler || function(err) { + throw err; + }, + window: win, + domain: domain || "*", + name: name + }); + return { + cancel: function() { + requestListener.cancel(); + } + }; + } + var send_send = function send(win, name, data, options) { + var domainMatcher = (options = options || {}).domain || "*"; + var responseTimeout = options.timeout || -1; + var childTimeout = options.timeout || 5e3; + var fireAndForget = options.fireAndForget || !1; + return promise_ZalgoPromise.try((function() { + !function(name, win, domain) { + if (!name) throw new Error("Expected name"); + 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"); + if (isWindowClosed(win)) throw new Error("Can not send " + name + ". Target window is closed"); + }(name, win, domainMatcher); + if (function(parent, child) { + var actualParent = getAncestor(child); + if (actualParent) return actualParent === parent; + if (child === parent) return !1; + if (getTop(child) === child) return !1; + for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) if (_getFrames8[_i15] === child) return !0; + return !1; + }(window, win)) return awaitWindowHello(win, childTimeout); + })).then((function(_temp) { + return function(win, targetDomain, actualDomain, _ref) { + var send = _ref.send; + return promise_ZalgoPromise.try((function() { + return "string" == typeof targetDomain ? targetDomain : promise_ZalgoPromise.try((function() { + return actualDomain || sayHello(win, { + send: send + }).then((function(_ref2) { + return _ref2.domain; + })); + })).then((function(normalizedDomain) { + if (!matchDomain(targetDomain, targetDomain)) throw new Error("Domain " + stringify(targetDomain) + " does not match " + stringify(targetDomain)); + return normalizedDomain; + })); + })); + }(win, domainMatcher, (void 0 === _temp ? {} : _temp).domain, { + send: send + }); + })).then((function(targetDomain) { + var domain = targetDomain; + var logName = "postrobot_method" === name && data && "string" == typeof data.name ? data.name + "()" : name; + var promise = new promise_ZalgoPromise; + var hash = name + "_" + uniqueID(); + if (!fireAndForget) { + var responseListener = { + name: name, + win: win, + domain: domain, + promise: promise + }; + !function(hash, listener) { + globalStore("responseListeners").set(hash, listener); + }(hash, responseListener); + var reqPromises = windowStore("requestPromises").getOrSet(win, (function() { + return []; + })); + reqPromises.push(promise); + promise.catch((function() { + !function(hash) { + globalStore("erroredResponseListeners").set(hash, !0); + }(hash); + deleteResponseListener(hash); + })); + var totalAckTimeout = function(win) { + return windowStore("knownWindows").get(win, !1); + }(win) ? 1e4 : 2e3; + var totalResTimeout = responseTimeout; + var ackTimeout = totalAckTimeout; + var resTimeout = totalResTimeout; + var interval = safeInterval((function() { + if (isWindowClosed(win)) return promise.reject(new Error("Window closed for " + name + " before " + (responseListener.ack ? "response" : "ack"))); + if (responseListener.cancelled) return promise.reject(new Error("Response listener was cancelled for " + name)); + ackTimeout = Math.max(ackTimeout - 500, 0); + -1 !== resTimeout && (resTimeout = Math.max(resTimeout - 500, 0)); + 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")); + }), 500); + promise.finally((function() { + interval.cancel(); + reqPromises.splice(reqPromises.indexOf(promise, 1)); + })).catch(src_util_noop); + } + return send_sendMessage(win, domain, { + id: uniqueID(), + origin: getDomain(window), + type: "postrobot_message_request", + hash: hash, + name: name, + data: data, + fireAndForget: fireAndForget + }, { + on: on_on, + send: send + }).then((function() { + return fireAndForget ? promise.resolve() : promise; + }), (function(err) { + throw new Error("Send request message failed for " + logName + " in " + getDomain() + "\n\n" + stringifyError(err)); + })); + })); + }; + function setup_toProxyWindow(win) { + return window_ProxyWindow.toProxyWindow(win, { + send: send_send + }); + } + function cleanUpWindow(win) { + 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); + } + var src_bridge; + src_bridge = { + setupBridge: setupBridge, + openBridge: function(url, domain) { + var bridges = globalStore("bridges"); + var bridgeFrames = globalStore("bridgeFrames"); + domain = domain || getDomainFromUrl(url); + return bridges.getOrSet(domain, (function() { + return promise_ZalgoPromise.try((function() { + if (getDomain() === domain) throw new Error("Can not open bridge on the same domain as current domain: " + domain); + var name = getBridgeName(domain); + if (getFrameByName(window, name)) throw new Error("Frame with name " + name + " already exists on page"); + var iframe = function(name, url) { + var iframe = document.createElement("iframe"); + iframe.setAttribute("name", name); + iframe.setAttribute("id", name); + iframe.setAttribute("style", "display: none; margin: 0; padding: 0; border: 0px none; overflow: hidden;"); + iframe.setAttribute("frameborder", "0"); + iframe.setAttribute("border", "0"); + iframe.setAttribute("scrolling", "no"); + iframe.setAttribute("allowTransparency", "true"); + iframe.setAttribute("tabindex", "-1"); + iframe.setAttribute("hidden", "true"); + iframe.setAttribute("title", ""); + iframe.setAttribute("role", "presentation"); + iframe.src = url; + return iframe; + }(name, url); + bridgeFrames.set(domain, iframe); + return documentBodyReady.then((function(body) { + body.appendChild(iframe); + var bridge = iframe.contentWindow; + return new promise_ZalgoPromise((function(resolve, reject) { + iframe.addEventListener("load", resolve); + iframe.addEventListener("error", reject); + })).then((function() { + return awaitWindowHello(bridge, 5e3, "Bridge " + url); + })).then((function() { + return bridge; + })); + })); + })); + })); + }, + linkWindow: linkWindow, + linkUrl: function(win, url) { + linkWindow({ + win: win, + domain: getDomainFromUrl(url) + }); + }, + isBridge: isBridge, + needsBridge: needsBridge, + needsBridgeForBrowser: needsBridgeForBrowser, + hasBridge: function(url, domain) { + return globalStore("bridges").has(domain || getDomainFromUrl(url)); + }, + needsBridgeForWin: needsBridgeForWin, + needsBridgeForDomain: needsBridgeForDomain, + destroyBridges: function() { + var bridges = globalStore("bridges"); + var bridgeFrames = globalStore("bridgeFrames"); + for (var _i4 = 0, _bridgeFrames$keys2 = bridgeFrames.keys(); _i4 < _bridgeFrames$keys2.length; _i4++) { + var frame = bridgeFrames.get(_bridgeFrames$keys2[_i4]); + frame && frame.parentNode && frame.parentNode.removeChild(frame); + } + bridgeFrames.reset(); + bridges.reset(); + } + }; + function lib_global_getGlobal(win) { + if (!isSameDomain(win)) throw new Error("Can not get global for window on different domain"); + win.__zoid_9_0_86__ || (win.__zoid_9_0_86__ = {}); + return win.__zoid_9_0_86__; + } + function tryGlobal(win, handler) { + try { + return handler(lib_global_getGlobal(win)); + } catch (err) {} + } + function getProxyObject(obj) { + return { + get: function() { + var _this = this; + return promise_ZalgoPromise.try((function() { + if (_this.source && _this.source !== window) throw new Error("Can not call get on proxy object from a remote window"); + return obj; + })); + } + }; + } + function basicSerialize(data) { + return base64encode(JSON.stringify(data)); + } + function getUIDRefStore(win) { + var global = lib_global_getGlobal(win); + global.references = global.references || {}; + return global.references; + } + function crossDomainSerialize(_ref) { + var data = _ref.data, metaData = _ref.metaData, sender = _ref.sender, receiver = _ref.receiver, _ref$passByReference = _ref.passByReference, passByReference = void 0 !== _ref$passByReference && _ref$passByReference, _ref$basic = _ref.basic, basic = void 0 !== _ref$basic && _ref$basic; + var proxyWin = setup_toProxyWindow(receiver.win); + var serializedMessage = basic ? JSON.stringify(data) : serializeMessage(proxyWin, receiver.domain, data, { + on: on_on, + send: send_send + }); + var reference = passByReference ? function(val) { + var uid = uniqueID(); + getUIDRefStore(window)[uid] = val; + return { + type: "uid", + uid: uid + }; + }(serializedMessage) : { + type: "raw", + val: serializedMessage + }; + return { + serializedData: basicSerialize({ + sender: { + domain: sender.domain + }, + metaData: metaData, + reference: reference + }), + cleanReference: function() { + win = window, "uid" === (ref = reference).type && delete getUIDRefStore(win)[ref.uid]; + var win, ref; + } + }; + } + function crossDomainDeserialize(_ref2) { + var sender = _ref2.sender, _ref2$basic = _ref2.basic, basic = void 0 !== _ref2$basic && _ref2$basic; + var message = function(serializedData) { + return JSON.parse(function(str) { + if ("function" == typeof atob) return decodeURIComponent([].map.call(atob(str), (function(c) { + return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2); + })).join("")); + if ("undefined" != typeof Buffer) return Buffer.from(str, "base64").toString("utf8"); + throw new Error("Can not find window.atob or Buffer"); + }(serializedData)); + }(_ref2.data); + var reference = message.reference, metaData = message.metaData; + var win; + win = "function" == typeof sender.win ? sender.win({ + metaData: metaData + }) : sender.win; + var domain; + domain = "function" == typeof sender.domain ? sender.domain({ + metaData: metaData + }) : "string" == typeof sender.domain ? sender.domain : message.sender.domain; + var serializedData = function(win, ref) { + if ("raw" === ref.type) return ref.val; + if ("uid" === ref.type) return getUIDRefStore(win)[ref.uid]; + throw new Error("Unsupported ref type: " + ref.type); + }(win, reference); + return { + data: basic ? JSON.parse(serializedData) : function(source, origin, message) { + return deserializeMessage(source, origin, message, { + on: on_on, + send: send_send + }); + }(win, domain, serializedData), + metaData: metaData, + sender: { + win: win, + domain: domain + }, + reference: reference + }; + } + var PROP_TYPE = { + STRING: "string", + OBJECT: "object", + FUNCTION: "function", + BOOLEAN: "boolean", + NUMBER: "number", + ARRAY: "array" + }; + var PROP_SERIALIZATION = { + JSON: "json", + DOTIFY: "dotify", + BASE64: "base64" + }; + var CONTEXT = WINDOW_TYPE; + var EVENT = { + RENDER: "zoid-render", + RENDERED: "zoid-rendered", + DISPLAY: "zoid-display", + ERROR: "zoid-error", + CLOSE: "zoid-close", + DESTROY: "zoid-destroy", + PROPS: "zoid-props", + RESIZE: "zoid-resize", + FOCUS: "zoid-focus" + }; + function buildChildWindowName(_ref) { + return "__zoid__" + _ref.name + "__" + _ref.serializedPayload + "__"; + } + function parseWindowName(windowName) { + if (!windowName) throw new Error("No window name"); + var _windowName$split = windowName.split("__"), zoidcomp = _windowName$split[1], name = _windowName$split[2], serializedInitialPayload = _windowName$split[3]; + if ("zoid" !== zoidcomp) throw new Error("Window not rendered by zoid - got " + zoidcomp); + if (!name) throw new Error("Expected component name"); + if (!serializedInitialPayload) throw new Error("Expected serialized payload ref"); + return { + name: name, + serializedInitialPayload: serializedInitialPayload + }; + } + var parseInitialParentPayload = memoize((function(windowName) { + var _crossDomainDeseriali = crossDomainDeserialize({ + data: parseWindowName(windowName).serializedInitialPayload, + sender: { + win: function(_ref2) { + return function(windowRef) { + if ("opener" === windowRef.type) return assertExists("opener", getOpener(window)); + if ("parent" === windowRef.type && "number" == typeof windowRef.distance) return assertExists("parent", function(win, n) { + void 0 === n && (n = 1); + return function(win, n) { + void 0 === n && (n = 1); + var parent = win; + for (var i = 0; i < n; i++) { + if (!parent) return; + parent = utils_getParent(parent); + } + return parent; + }(win, getDistanceFromTop(win) - n); + }(window, windowRef.distance)); + if ("global" === windowRef.type && windowRef.uid && "string" == typeof windowRef.uid) { + var _ret = function() { + var uid = windowRef.uid; + var ancestor = getAncestor(window); + if (!ancestor) throw new Error("Can not find ancestor window"); + for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(ancestor); _i2 < _getAllFramesInWindow2.length; _i2++) { + var frame = _getAllFramesInWindow2[_i2]; + if (isSameDomain(frame)) { + var win = tryGlobal(frame, (function(global) { + return global.windows && global.windows[uid]; + })); + if (win) return { + v: win + }; + } + } + }(); + if ("object" == typeof _ret) return _ret.v; + } else if ("name" === windowRef.type) { + var name = windowRef.name; + return assertExists("namedWindow", function(win, name) { + return getFrameByName(win, name) || function findChildFrameByName(win, name) { + var frame = getFrameByName(win, name); + if (frame) return frame; + for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) { + var namedFrame = findChildFrameByName(_getFrames4[_i11], name); + if (namedFrame) return namedFrame; + } + }(getTop(win) || win, name); + }(assertExists("ancestor", getAncestor(window)), name)); + } + throw new Error("Unable to find " + windowRef.type + " parent component window"); + }(_ref2.metaData.windowRef); + } + } + }); + return { + parent: _crossDomainDeseriali.sender, + payload: _crossDomainDeseriali.data, + reference: _crossDomainDeseriali.reference + }; + })); + function getInitialParentPayload() { + return parseInitialParentPayload(window.name); + } + function window_getWindowRef(targetWindow, currentWindow) { + void 0 === currentWindow && (currentWindow = window); + if (targetWindow === utils_getParent(currentWindow)) return { + type: "parent", + distance: getDistanceFromTop(targetWindow) + }; + if (targetWindow === getOpener(currentWindow)) return { + type: "opener" + }; + if (isSameDomain(targetWindow) && !(win = targetWindow, win === getTop(win))) { + var windowName = assertSameDomain(targetWindow).name; + if (windowName) return { + type: "name", + name: windowName + }; + } + var win; + } + function normalizeChildProp(propsDef, props, key, value, helpers) { + if (!propsDef.hasOwnProperty(key)) return value; + var prop = propsDef[key]; + return "function" == typeof prop.childDecorate ? prop.childDecorate({ + value: value, + uid: helpers.uid, + tag: helpers.tag, + close: helpers.close, + focus: helpers.focus, + onError: helpers.onError, + onProps: helpers.onProps, + resize: helpers.resize, + getParent: helpers.getParent, + getParentDomain: helpers.getParentDomain, + show: helpers.show, + hide: helpers.hide, + export: helpers.export, + getSiblings: helpers.getSiblings + }) : value; + } + function child_focus() { + return promise_ZalgoPromise.try((function() { + window.focus(); + })); + } + function child_destroy() { + return promise_ZalgoPromise.try((function() { + window.close(); + })); + } + var props_defaultNoop = function() { + return src_util_noop; + }; + var props_decorateOnce = function(_ref) { + return once(_ref.value); + }; + function eachProp(props, propsDef, handler) { + for (var _i2 = 0, _Object$keys2 = Object.keys(_extends({}, props, propsDef)); _i2 < _Object$keys2.length; _i2++) { + var key = _Object$keys2[_i2]; + handler(key, propsDef[key], props[key]); + } + } + function serializeProps(propsDef, props, method) { + var params = {}; + return promise_ZalgoPromise.all(function(props, propsDef, handler) { + var results = []; + eachProp(props, propsDef, (function(key, propDef, value) { + var result = function(key, propDef, value) { + return promise_ZalgoPromise.resolve().then((function() { + var _METHOD$GET$METHOD$PO, _METHOD$GET$METHOD$PO2; + if (null != value && propDef) { + 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]; + 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]; + if (getParam) return promise_ZalgoPromise.hash({ + finalParam: promise_ZalgoPromise.try((function() { + return "function" == typeof getParam ? getParam({ + value: value + }) : "string" == typeof getParam ? getParam : key; + })), + finalValue: promise_ZalgoPromise.try((function() { + return "function" == typeof getValue && isDefined(value) ? getValue({ + value: value + }) : value; + })) + }).then((function(_ref) { + var finalParam = _ref.finalParam, finalValue = _ref.finalValue; + var result; + if ("boolean" == typeof finalValue) result = finalValue.toString(); else if ("string" == typeof finalValue) result = finalValue.toString(); else if ("object" == typeof finalValue && null !== finalValue) { + 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) { + result = function dotify(obj, prefix, newobj) { + void 0 === prefix && (prefix = ""); + void 0 === newobj && (newobj = {}); + prefix = prefix ? prefix + "." : prefix; + 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) { + return "object" != typeof val; + })) ? 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()); + return newobj; + }(finalValue, key); + for (var _i2 = 0, _Object$keys2 = Object.keys(result); _i2 < _Object$keys2.length; _i2++) { + var dotkey = _Object$keys2[_i2]; + params[dotkey] = result[dotkey]; + } + return; + } + } else "number" == typeof finalValue && (result = finalValue.toString()); + params[finalParam] = result; + })); + } + })); + }(key, propDef, value); + results.push(result); + })); + return results; + }(props, propsDef)).then((function() { + return params; + })); + } + function parentComponent(_ref) { + var uid = _ref.uid, options = _ref.options, _ref$overrides = _ref.overrides, overrides = void 0 === _ref$overrides ? {} : _ref$overrides, _ref$parentWin = _ref.parentWin, parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin; + var propsDef = options.propsDef, containerTemplate = options.containerTemplate, prerenderTemplate = options.prerenderTemplate, tag = options.tag, name = options.name, attributes = options.attributes, dimensions = options.dimensions, autoResize = options.autoResize, url = options.url, domainMatch = options.domain, xports = options.exports; + var initPromise = new promise_ZalgoPromise; + var handledErrors = []; + var clean = cleanup(); + var state = {}; + var inputProps = {}; + var internalState = { + visible: !0 + }; + var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, + emitter = { + on: function(eventName, handler) { + var handlerList = handlers[eventName] = handlers[eventName] || []; + handlerList.push(handler); + var cancelled = !1; + return { + cancel: function() { + if (!cancelled) { + cancelled = !0; + handlerList.splice(handlerList.indexOf(handler), 1); + } + } + }; + }, + once: function(eventName, handler) { + var listener = emitter.on(eventName, (function() { + listener.cancel(); + handler(); + })); + return listener; + }, + trigger: function(eventName) { + for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3]; + var handlerList = handlers[eventName]; + var promises = []; + if (handlerList) { + var _loop = function(_i2) { + var handler = handlerList[_i2]; + promises.push(promise_ZalgoPromise.try((function() { + return handler.apply(void 0, args); + }))); + }; + for (var _i2 = 0; _i2 < handlerList.length; _i2++) _loop(_i2); + } + return promise_ZalgoPromise.all(promises).then(src_util_noop); + }, + triggerOnce: function(eventName) { + if (triggered[eventName]) return promise_ZalgoPromise.resolve(); + triggered[eventName] = !0; + for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) args[_key4 - 1] = arguments[_key4]; + return emitter.trigger.apply(emitter, [ eventName ].concat(args)); + }, + reset: function() { + handlers = {}; + } + }); + var triggered, handlers, emitter; + var props = overrides.props ? overrides.props : {}; + var currentProxyWin; + var currentProxyContainer; + var childComponent; + var currentChildDomain; + var currentContainer; + var onErrorOverride = overrides.onError; + var getProxyContainerOverride = overrides.getProxyContainer; + var showOverride = overrides.show; + var hideOverride = overrides.hide; + var closeOverride = overrides.close; + var renderContainerOverride = overrides.renderContainer; + var getProxyWindowOverride = overrides.getProxyWindow; + var setProxyWinOverride = overrides.setProxyWin; + var openFrameOverride = overrides.openFrame; + var openPrerenderFrameOverride = overrides.openPrerenderFrame; + var prerenderOverride = overrides.prerender; + var openOverride = overrides.open; + var openPrerenderOverride = overrides.openPrerender; + var watchForUnloadOverride = overrides.watchForUnload; + var getInternalStateOverride = overrides.getInternalState; + var setInternalStateOverride = overrides.setInternalState; + var getDimensions = function() { + return "function" == typeof dimensions ? dimensions({ + props: props + }) : dimensions; + }; + var resolveInitPromise = function() { + return promise_ZalgoPromise.try((function() { + return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve(); + })); + }; + var rejectInitPromise = function(err) { + return promise_ZalgoPromise.try((function() { + return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err); + })); + }; + var getPropsForChild = function(initialChildDomain) { + var result = {}; + for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) { + var key = _Object$keys2[_i2]; + var prop = propsDef[key]; + prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(initialChildDomain, getDomain(window)) || (result[key] = props[key]); + } + return promise_ZalgoPromise.hash(result); + }; + var getInternalState = function() { + return promise_ZalgoPromise.try((function() { + return getInternalStateOverride ? getInternalStateOverride() : internalState; + })); + }; + var setInternalState = function(newInternalState) { + return promise_ZalgoPromise.try((function() { + return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState); + })); + }; + var getProxyWindow = function() { + return getProxyWindowOverride ? getProxyWindowOverride() : promise_ZalgoPromise.try((function() { + var windowProp = props.window; + if (windowProp) { + var _proxyWin = setup_toProxyWindow(windowProp); + clean.register((function() { + return windowProp.close(); + })); + return _proxyWin; + } + return new window_ProxyWindow({ + send: send_send + }); + })); + }; + var setProxyWin = function(proxyWin) { + return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise.try((function() { + currentProxyWin = proxyWin; + })); + }; + var show = function() { + return showOverride ? showOverride() : promise_ZalgoPromise.hash({ + setState: setInternalState({ + visible: !0 + }), + showElement: currentProxyContainer ? currentProxyContainer.get().then(showElement) : null + }).then(src_util_noop); + }; + var hide = function() { + return hideOverride ? hideOverride() : promise_ZalgoPromise.hash({ + setState: setInternalState({ + visible: !1 + }), + showElement: currentProxyContainer ? currentProxyContainer.get().then(hideElement) : null + }).then(src_util_noop); + }; + var getUrl = function() { + return "function" == typeof url ? url({ + props: props + }) : url; + }; + var getAttributes = function() { + return "function" == typeof attributes ? attributes({ + props: props + }) : attributes; + }; + var getInitialChildDomain = function() { + return getDomainFromUrl(getUrl()); + }; + var openFrame = function(context, _ref2) { + var windowName = _ref2.windowName; + return openFrameOverride ? openFrameOverride(context, { + windowName: windowName + }) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({ + attributes: _extends({ + name: windowName, + title: name + }, getAttributes().iframe) + })); + })); + }; + var openPrerenderFrame = function(context) { + return openPrerenderFrameOverride ? openPrerenderFrameOverride(context) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({ + attributes: _extends({ + name: "__zoid_prerender_frame__" + name + "_" + uniqueID() + "__", + title: "prerender__" + name + }, getAttributes().iframe) + })); + })); + }; + var openPrerender = function(context, proxyWin, proxyPrerenderFrame) { + return openPrerenderOverride ? openPrerenderOverride(context, proxyWin, proxyPrerenderFrame) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) { + if (!proxyPrerenderFrame) throw new Error("Expected proxy frame to be passed"); + return proxyPrerenderFrame.get().then((function(prerenderFrame) { + clean.register((function() { + return destroyElement(prerenderFrame); + })); + return awaitFrameWindow(prerenderFrame).then((function(prerenderFrameWindow) { + return assertSameDomain(prerenderFrameWindow); + })).then((function(win) { + return setup_toProxyWindow(win); + })); + })); + } + if (context === CONTEXT.POPUP) return proxyWin; + throw new Error("No render context available for " + context); + })); + }; + var focus = function() { + return promise_ZalgoPromise.try((function() { + if (currentProxyWin) return promise_ZalgoPromise.all([ event.trigger(EVENT.FOCUS), currentProxyWin.focus() ]).then(src_util_noop); + })); + }; + var getCurrentWindowReferenceUID = function() { + var global = lib_global_getGlobal(window); + global.windows = global.windows || {}; + global.windows[uid] = window; + clean.register((function() { + delete global.windows[uid]; + })); + return uid; + }; + var getWindowRef = function(target, initialChildDomain, context, proxyWin) { + if (initialChildDomain === getDomain(window)) return { + type: "global", + uid: getCurrentWindowReferenceUID() + }; + if (target !== window) throw new Error("Can not construct cross-domain window reference for different target window"); + if (props.window) { + var actualComponentWindow = proxyWin.getWindow(); + if (!actualComponentWindow) throw new Error("Can not construct cross-domain window reference for lazy window prop"); + if (getAncestor(actualComponentWindow) !== window) throw new Error("Can not construct cross-domain window reference for window prop with different ancestor"); + } + if (context === CONTEXT.POPUP) return { + type: "opener" + }; + if (context === CONTEXT.IFRAME) return { + type: "parent", + distance: getDistanceFromTop(window) + }; + throw new Error("Can not construct window reference for child"); + }; + var initChild = function(childDomain, childExports) { + return promise_ZalgoPromise.try((function() { + currentChildDomain = childDomain; + childComponent = childExports; + resolveInitPromise(); + clean.register((function() { + return childExports.close.fireAndForget().catch(src_util_noop); + })); + })); + }; + var resize = function(_ref3) { + var width = _ref3.width, height = _ref3.height; + return promise_ZalgoPromise.try((function() { + event.trigger(EVENT.RESIZE, { + width: width, + height: height + }); + })); + }; + var destroy = function(err) { + return promise_ZalgoPromise.try((function() { + return event.trigger(EVENT.DESTROY); + })).catch(src_util_noop).then((function() { + return clean.all(err); + })).then((function() { + initPromise.asyncReject(err || new Error("Component destroyed")); + })); + }; + var close = memoize((function(err) { + return promise_ZalgoPromise.try((function() { + if (closeOverride) { + if (isWindowClosed(closeOverride.__source__)) return; + return closeOverride(); + } + return promise_ZalgoPromise.try((function() { + return event.trigger(EVENT.CLOSE); + })).then((function() { + return destroy(err || new Error("Component closed")); + })); + })); + })); + var open = function(context, _ref4) { + var proxyWin = _ref4.proxyWin, proxyFrame = _ref4.proxyFrame, windowName = _ref4.windowName; + return openOverride ? openOverride(context, { + proxyWin: proxyWin, + proxyFrame: proxyFrame, + windowName: windowName + }) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) { + if (!proxyFrame) throw new Error("Expected proxy frame to be passed"); + return proxyFrame.get().then((function(frame) { + return awaitFrameWindow(frame).then((function(win) { + clean.register((function() { + return destroyElement(frame); + })); + clean.register((function() { + return cleanUpWindow(win); + })); + return win; + })); + })); + } + if (context === CONTEXT.POPUP) { + var _getDimensions = getDimensions(), _getDimensions$width = _getDimensions.width, width = void 0 === _getDimensions$width ? "300px" : _getDimensions$width, _getDimensions$height = _getDimensions.height, height = void 0 === _getDimensions$height ? "150px" : _getDimensions$height; + width = normalizeDimension(width, window.outerWidth); + height = normalizeDimension(height, window.outerWidth); + var win = function(url, options) { + var _options$closeOnUnloa = (options = options || {}).closeOnUnload, closeOnUnload = void 0 === _options$closeOnUnloa ? 1 : _options$closeOnUnloa, _options$name = options.name, name = void 0 === _options$name ? "" : _options$name, width = options.width, height = options.height; + var top = 0; + var left = 0; + width && (window.outerWidth ? left = Math.round((window.outerWidth - width) / 2) + window.screenX : window.screen.width && (left = Math.round((window.screen.width - width) / 2))); + height && (window.outerHeight ? top = Math.round((window.outerHeight - height) / 2) + window.screenY : window.screen.height && (top = Math.round((window.screen.height - height) / 2))); + delete options.closeOnUnload; + delete options.name; + width && height && (options = _extends({ + top: top, + left: left, + width: width, + height: height, + status: 1, + toolbar: 0, + menubar: 0, + resizable: 1, + scrollbars: 1 + }, options)); + var params = Object.keys(options).map((function(key) { + if (null != options[key]) return key + "=" + stringify(options[key]); + })).filter(Boolean).join(","); + var win; + try { + win = window.open("", name, params); + } catch (err) { + throw new dom_PopupOpenError("Can not open popup window - " + (err.stack || err.message)); + } + if (isWindowClosed(win)) { + throw new dom_PopupOpenError("Can not open popup window - blocked"); + } + closeOnUnload && window.addEventListener("unload", (function() { + return win.close(); + })); + return win; + }(0, _extends({ + name: windowName, + width: width, + height: height + }, getAttributes().popup)); + clean.register((function() { + return closeWindow(win); + })); + clean.register((function() { + return cleanUpWindow(win); + })); + return win; + } + throw new Error("No render context available for " + context); + })).then((function(win) { + proxyWin.setWindow(win, { + send: send_send + }); + return proxyWin.setName(windowName).then((function() { + return proxyWin; + })); + })); + }; + var watchForUnload = function() { + return promise_ZalgoPromise.try((function() { + var unloadWindowListener = addEventListener(window, "unload", once((function() { + destroy(new Error("Window navigated away")); + }))); + var closeParentWindowListener = onCloseWindow(parentWin, destroy, 3e3); + clean.register(closeParentWindowListener.cancel); + clean.register(unloadWindowListener.cancel); + if (watchForUnloadOverride) return watchForUnloadOverride(); + })); + }; + var checkWindowClose = function(proxyWin) { + var closed = !1; + return proxyWin.isClosed().then((function(isClosed) { + if (isClosed) { + closed = !0; + return close(new Error("Detected component window close")); + } + return promise_ZalgoPromise.delay(200).then((function() { + return proxyWin.isClosed(); + })).then((function(secondIsClosed) { + if (secondIsClosed) { + closed = !0; + return close(new Error("Detected component window close")); + } + })); + })).then((function() { + return closed; + })); + }; + var onError = function(err) { + return onErrorOverride ? onErrorOverride(err) : promise_ZalgoPromise.try((function() { + if (-1 === handledErrors.indexOf(err)) { + handledErrors.push(err); + initPromise.asyncReject(err); + return event.trigger(EVENT.ERROR, err); + } + })); + }; + var exportsPromise = new promise_ZalgoPromise; + var xport = function(actualExports) { + return promise_ZalgoPromise.try((function() { + exportsPromise.resolve(actualExports); + })); + }; + initChild.onError = onError; + var renderTemplate = function(renderer, _ref8) { + return renderer({ + uid: uid, + container: _ref8.container, + context: _ref8.context, + doc: _ref8.doc, + frame: _ref8.frame, + prerenderFrame: _ref8.prerenderFrame, + focus: focus, + close: close, + state: state, + props: props, + tag: tag, + dimensions: getDimensions(), + event: event + }); + }; + var prerender = function(proxyPrerenderWin, _ref9) { + var context = _ref9.context; + return prerenderOverride ? prerenderOverride(proxyPrerenderWin, { + context: context + }) : promise_ZalgoPromise.try((function() { + if (prerenderTemplate) { + var prerenderWindow = proxyPrerenderWin.getWindow(); + if (prerenderWindow && isSameDomain(prerenderWindow) && function(win) { + try { + if (!win.location.href) return !0; + if ("about:blank" === win.location.href) return !0; + } catch (err) {} + return !1; + }(prerenderWindow)) { + var doc = (prerenderWindow = assertSameDomain(prerenderWindow)).document; + var el = renderTemplate(prerenderTemplate, { + context: context, + doc: doc + }); + if (el) { + if (el.ownerDocument !== doc) throw new Error("Expected prerender template to have been created with document from child window"); + !function(win, el) { + var tag = el.tagName.toLowerCase(); + if ("html" !== tag) throw new Error("Expected element to be html, got " + tag); + var documentElement = win.document.documentElement; + for (var _i6 = 0, _arrayFrom2 = arrayFrom(documentElement.children); _i6 < _arrayFrom2.length; _i6++) documentElement.removeChild(_arrayFrom2[_i6]); + for (var _i8 = 0, _arrayFrom4 = arrayFrom(el.children); _i8 < _arrayFrom4.length; _i8++) documentElement.appendChild(_arrayFrom4[_i8]); + }(prerenderWindow, el); + var _autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, _autoResize$element = autoResize.element, element = void 0 === _autoResize$element ? "body" : _autoResize$element; + if ((element = getElementSafe(element, doc)) && (width || height)) { + var prerenderResizeListener = onResize(element, (function(_ref10) { + resize({ + width: width ? _ref10.width : void 0, + height: height ? _ref10.height : void 0 + }); + }), { + width: width, + height: height, + win: prerenderWindow + }); + event.on(EVENT.RENDERED, prerenderResizeListener.cancel); + } + } + } + } + })); + }; + var renderContainer = function(proxyContainer, _ref11) { + var proxyFrame = _ref11.proxyFrame, proxyPrerenderFrame = _ref11.proxyPrerenderFrame, context = _ref11.context, rerender = _ref11.rerender; + return renderContainerOverride ? renderContainerOverride(proxyContainer, { + proxyFrame: proxyFrame, + proxyPrerenderFrame: proxyPrerenderFrame, + context: context, + rerender: rerender + }) : promise_ZalgoPromise.hash({ + container: proxyContainer.get(), + frame: proxyFrame ? proxyFrame.get() : null, + prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null, + internalState: getInternalState() + }).then((function(_ref12) { + var container = _ref12.container, visible = _ref12.internalState.visible; + var innerContainer = renderTemplate(containerTemplate, { + context: context, + container: container, + frame: _ref12.frame, + prerenderFrame: _ref12.prerenderFrame, + doc: document + }); + if (innerContainer) { + visible || hideElement(innerContainer); + appendChild(container, innerContainer); + var containerWatcher = function(element, handler) { + handler = once(handler); + var cancelled = !1; + var mutationObservers = []; + var interval; + var sacrificialFrame; + var sacrificialFrameWin; + var cancel = function() { + cancelled = !0; + for (var _i18 = 0; _i18 < mutationObservers.length; _i18++) mutationObservers[_i18].disconnect(); + interval && interval.cancel(); + sacrificialFrameWin && sacrificialFrameWin.removeEventListener("unload", elementClosed); + sacrificialFrame && destroyElement(sacrificialFrame); + }; + var elementClosed = function() { + if (!cancelled) { + handler(); + cancel(); + } + }; + if (isElementClosed(element)) { + elementClosed(); + return { + cancel: cancel + }; + } + if (window.MutationObserver) { + var mutationElement = element.parentElement; + for (;mutationElement; ) { + var mutationObserver = new window.MutationObserver((function() { + isElementClosed(element) && elementClosed(); + })); + mutationObserver.observe(mutationElement, { + childList: !0 + }); + mutationObservers.push(mutationObserver); + mutationElement = mutationElement.parentElement; + } + } + (sacrificialFrame = document.createElement("iframe")).setAttribute("name", "__detect_close_" + uniqueID() + "__"); + sacrificialFrame.style.display = "none"; + awaitFrameWindow(sacrificialFrame).then((function(frameWin) { + (sacrificialFrameWin = assertSameDomain(frameWin)).addEventListener("unload", elementClosed); + })); + element.appendChild(sacrificialFrame); + interval = safeInterval((function() { + isElementClosed(element) && elementClosed(); + }), 1e3); + return { + cancel: cancel + }; + }(innerContainer, (function() { + var removeError = new Error("Detected container element removed from DOM"); + return promise_ZalgoPromise.delay(1).then((function() { + if (!isElementClosed(innerContainer)) { + clean.all(removeError); + return rerender().then(resolveInitPromise, rejectInitPromise); + } + close(removeError); + })); + })); + clean.register((function() { + return containerWatcher.cancel(); + })); + clean.register((function() { + return destroyElement(innerContainer); + })); + return currentProxyContainer = getProxyObject(innerContainer); + } + })); + }; + var getHelpers = function() { + return { + state: state, + event: event, + close: close, + focus: focus, + resize: resize, + onError: onError, + updateProps: updateProps, + show: show, + hide: hide + }; + }; + var setProps = function(newInputProps) { + void 0 === newInputProps && (newInputProps = {}); + var container = currentContainer; + var helpers = getHelpers(); + extend(inputProps, newInputProps); + !function(propsDef, existingProps, inputProps, helpers, container) { + var state = helpers.state, close = helpers.close, focus = helpers.focus, event = helpers.event, onError = helpers.onError; + eachProp(inputProps, propsDef, (function(key, propDef, val) { + var valueDetermined = !1; + var value = val; + Object.defineProperty(existingProps, key, { + configurable: !0, + enumerable: !0, + get: function() { + if (valueDetermined) return value; + valueDetermined = !0; + return function() { + if (!propDef) return value; + var alias = propDef.alias; + alias && !isDefined(val) && isDefined(inputProps[alias]) && (value = inputProps[alias]); + propDef.value && (value = propDef.value({ + props: existingProps, + state: state, + close: close, + focus: focus, + event: event, + onError: onError, + container: container + })); + !propDef.default || isDefined(value) || isDefined(inputProps[key]) || (value = propDef.default({ + props: existingProps, + state: state, + close: close, + focus: focus, + event: event, + onError: onError, + container: container + })); + if (isDefined(value)) { + if (propDef.type === PROP_TYPE.ARRAY ? !Array.isArray(value) : typeof value !== propDef.type) throw new TypeError("Prop is not of type " + propDef.type + ": " + key); + } else if (!1 !== propDef.required && !isDefined(inputProps[key])) throw new Error('Expected prop "' + key + '" to be defined'); + isDefined(value) && propDef.decorate && (value = propDef.decorate({ + value: value, + props: existingProps, + state: state, + close: close, + focus: focus, + event: event, + onError: onError, + container: container + })); + return value; + }(); + } + }); + })); + eachProp(existingProps, propsDef, src_util_noop); + }(propsDef, props, inputProps, helpers, container); + }; + var updateProps = function(newProps) { + setProps(newProps); + return initPromise.then((function() { + var child = childComponent; + var proxyWin = currentProxyWin; + if (child && proxyWin && currentChildDomain) return getPropsForChild(currentChildDomain).then((function(childProps) { + return child.updateProps(childProps).catch((function(err) { + return checkWindowClose(proxyWin).then((function(closed) { + if (!closed) throw err; + })); + })); + })); + })); + }; + var getProxyContainer = function(container) { + return getProxyContainerOverride ? getProxyContainerOverride(container) : promise_ZalgoPromise.try((function() { + return elementReady(container); + })).then((function(containerElement) { + isShadowElement(containerElement) && (containerElement = function insertShadowSlot(element) { + var shadowHost = function(element) { + var shadowRoot = function(element) { + for (;element.parentNode; ) element = element.parentNode; + if (isShadowElement(element)) return element; + }(element); + if (shadowRoot && shadowRoot.host) return shadowRoot.host; + }(element); + if (!shadowHost) throw new Error("Element is not in shadow dom"); + var slotName = "shadow-slot-" + uniqueID(); + var slot = document.createElement("slot"); + slot.setAttribute("name", slotName); + element.appendChild(slot); + var slotProvider = document.createElement("div"); + slotProvider.setAttribute("slot", slotName); + shadowHost.appendChild(slotProvider); + return isShadowElement(shadowHost) ? insertShadowSlot(slotProvider) : slotProvider; + }(containerElement)); + currentContainer = containerElement; + return getProxyObject(containerElement); + })); + }; + return { + init: function() { + !function() { + event.on(EVENT.RENDER, (function() { + return props.onRender(); + })); + event.on(EVENT.DISPLAY, (function() { + return props.onDisplay(); + })); + event.on(EVENT.RENDERED, (function() { + return props.onRendered(); + })); + event.on(EVENT.CLOSE, (function() { + return props.onClose(); + })); + event.on(EVENT.DESTROY, (function() { + return props.onDestroy(); + })); + event.on(EVENT.RESIZE, (function() { + return props.onResize(); + })); + event.on(EVENT.FOCUS, (function() { + return props.onFocus(); + })); + event.on(EVENT.PROPS, (function(newProps) { + return props.onProps(newProps); + })); + event.on(EVENT.ERROR, (function(err) { + return props && props.onError ? props.onError(err) : rejectInitPromise(err).then((function() { + setTimeout((function() { + throw err; + }), 1); + })); + })); + clean.register(event.reset); + }(); + }, + render: function(_ref14) { + var target = _ref14.target, container = _ref14.container, context = _ref14.context, rerender = _ref14.rerender; + return promise_ZalgoPromise.try((function() { + var initialChildDomain = getInitialChildDomain(); + var childDomainMatch = domainMatch || getInitialChildDomain(); + !function(target, childDomainMatch, container) { + if (target !== window) { + if (!isSameTopWindow(window, target)) throw new Error("Can only renderTo an adjacent frame"); + var origin = getDomain(); + if (!matchDomain(childDomainMatch, origin) && !isSameDomain(target)) throw new Error("Can not render remotely to " + childDomainMatch.toString() + " - can only render to " + origin); + if (container && "string" != typeof container) throw new Error("Container passed to renderTo must be a string selector, got " + typeof container + " }"); + } + }(target, childDomainMatch, container); + var delegatePromise = promise_ZalgoPromise.try((function() { + if (target !== window) return function(context, target) { + var delegateProps = {}; + for (var _i4 = 0, _Object$keys4 = Object.keys(props); _i4 < _Object$keys4.length; _i4++) { + var propName = _Object$keys4[_i4]; + var propDef = propsDef[propName]; + propDef && propDef.allowDelegate && (delegateProps[propName] = props[propName]); + } + var childOverridesPromise = send_send(target, "zoid_delegate_" + name, { + uid: uid, + overrides: { + props: delegateProps, + event: event, + close: close, + onError: onError, + getInternalState: getInternalState, + setInternalState: setInternalState, + resolveInitPromise: resolveInitPromise, + rejectInitPromise: rejectInitPromise + } + }).then((function(_ref13) { + var parentComp = _ref13.data.parent; + clean.register((function(err) { + if (!isWindowClosed(target)) return parentComp.destroy(err); + })); + return parentComp.getDelegateOverrides(); + })).catch((function(err) { + throw new Error("Unable to delegate rendering. Possibly the component is not loaded in the target window.\n\n" + stringifyError(err)); + })); + getProxyContainerOverride = function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.getProxyContainer.apply(childOverrides, args); + })); + }; + renderContainerOverride = function() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.renderContainer.apply(childOverrides, args); + })); + }; + showOverride = function() { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) args[_key3] = arguments[_key3]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.show.apply(childOverrides, args); + })); + }; + hideOverride = function() { + for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.hide.apply(childOverrides, args); + })); + }; + watchForUnloadOverride = function() { + for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) args[_key5] = arguments[_key5]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.watchForUnload.apply(childOverrides, args); + })); + }; + if (context === CONTEXT.IFRAME) { + getProxyWindowOverride = function() { + for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) args[_key6] = arguments[_key6]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.getProxyWindow.apply(childOverrides, args); + })); + }; + openFrameOverride = function() { + for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) args[_key7] = arguments[_key7]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.openFrame.apply(childOverrides, args); + })); + }; + openPrerenderFrameOverride = function() { + for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) args[_key8] = arguments[_key8]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.openPrerenderFrame.apply(childOverrides, args); + })); + }; + prerenderOverride = function() { + for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) args[_key9] = arguments[_key9]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.prerender.apply(childOverrides, args); + })); + }; + openOverride = function() { + for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) args[_key10] = arguments[_key10]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.open.apply(childOverrides, args); + })); + }; + openPrerenderOverride = function() { + for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) args[_key11] = arguments[_key11]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.openPrerender.apply(childOverrides, args); + })); + }; + } else context === CONTEXT.POPUP && (setProxyWinOverride = function() { + for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) args[_key12] = arguments[_key12]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.setProxyWin.apply(childOverrides, args); + })); + }); + return childOverridesPromise; + }(context, target); + })); + var windowProp = props.window; + var watchForUnloadPromise = watchForUnload(); + var buildBodyPromise = serializeProps(propsDef, props, "post"); + var onRenderPromise = event.trigger(EVENT.RENDER); + var getProxyContainerPromise = getProxyContainer(container); + var getProxyWindowPromise = getProxyWindow(); + var finalSetPropsPromise = getProxyContainerPromise.then((function() { + return setProps(); + })); + var buildUrlPromise = finalSetPropsPromise.then((function() { + return serializeProps(propsDef, props, "get").then((function(query) { + return function(url, options) { + var query = options.query || {}; + var hash = options.hash || {}; + var originalUrl; + var originalHash; + var _url$split = url.split("#"); + originalHash = _url$split[1]; + var _originalUrl$split = (originalUrl = _url$split[0]).split("?"); + originalUrl = _originalUrl$split[0]; + var queryString = extendQuery(_originalUrl$split[1], query); + var hashString = extendQuery(originalHash, hash); + queryString && (originalUrl = originalUrl + "?" + queryString); + hashString && (originalUrl = originalUrl + "#" + hashString); + return originalUrl; + }(normalizeMockUrl(getUrl()), { + query: query + }); + })); + })); + var buildWindowNamePromise = getProxyWindowPromise.then((function(proxyWin) { + return function(_temp2) { + var _ref6 = void 0 === _temp2 ? {} : _temp2, proxyWin = _ref6.proxyWin, initialChildDomain = _ref6.initialChildDomain, childDomainMatch = _ref6.childDomainMatch, _ref6$target = _ref6.target, target = void 0 === _ref6$target ? window : _ref6$target, context = _ref6.context; + return function(_temp) { + var _ref5 = void 0 === _temp ? {} : _temp, proxyWin = _ref5.proxyWin, childDomainMatch = _ref5.childDomainMatch, context = _ref5.context; + return getPropsForChild(_ref5.initialChildDomain).then((function(childProps) { + return { + uid: uid, + context: context, + tag: tag, + childDomainMatch: childDomainMatch, + version: "9_0_86", + props: childProps, + exports: (win = proxyWin, { + init: function(childExports) { + return initChild(this.origin, childExports); + }, + close: close, + checkClose: function() { + return checkWindowClose(win); + }, + resize: resize, + onError: onError, + show: show, + hide: hide, + export: xport + }) + }; + var win; + })); + }({ + proxyWin: proxyWin, + initialChildDomain: initialChildDomain, + childDomainMatch: childDomainMatch, + context: context + }).then((function(childPayload) { + var _crossDomainSerialize = crossDomainSerialize({ + data: childPayload, + metaData: { + windowRef: getWindowRef(target, initialChildDomain, context, proxyWin) + }, + sender: { + domain: getDomain(window) + }, + receiver: { + win: proxyWin, + domain: childDomainMatch + }, + passByReference: initialChildDomain === getDomain() + }), serializedData = _crossDomainSerialize.serializedData; + clean.register(_crossDomainSerialize.cleanReference); + return serializedData; + })); + }({ + proxyWin: (_ref7 = { + proxyWin: proxyWin, + initialChildDomain: initialChildDomain, + childDomainMatch: childDomainMatch, + target: target, + context: context + }).proxyWin, + initialChildDomain: _ref7.initialChildDomain, + childDomainMatch: _ref7.childDomainMatch, + target: _ref7.target, + context: _ref7.context + }).then((function(serializedPayload) { + return buildChildWindowName({ + name: name, + serializedPayload: serializedPayload + }); + })); + var _ref7; + })); + var openFramePromise = buildWindowNamePromise.then((function(windowName) { + return openFrame(context, { + windowName: windowName + }); + })); + var openPrerenderFramePromise = openPrerenderFrame(context); + var renderContainerPromise = promise_ZalgoPromise.hash({ + proxyContainer: getProxyContainerPromise, + proxyFrame: openFramePromise, + proxyPrerenderFrame: openPrerenderFramePromise + }).then((function(_ref15) { + return renderContainer(_ref15.proxyContainer, { + context: context, + proxyFrame: _ref15.proxyFrame, + proxyPrerenderFrame: _ref15.proxyPrerenderFrame, + rerender: rerender + }); + })).then((function(proxyContainer) { + return proxyContainer; + })); + var openPromise = promise_ZalgoPromise.hash({ + windowName: buildWindowNamePromise, + proxyFrame: openFramePromise, + proxyWin: getProxyWindowPromise + }).then((function(_ref16) { + var proxyWin = _ref16.proxyWin; + return windowProp ? proxyWin : open(context, { + windowName: _ref16.windowName, + proxyWin: proxyWin, + proxyFrame: _ref16.proxyFrame + }); + })); + var openPrerenderPromise = promise_ZalgoPromise.hash({ + proxyWin: openPromise, + proxyPrerenderFrame: openPrerenderFramePromise + }).then((function(_ref17) { + return openPrerender(context, _ref17.proxyWin, _ref17.proxyPrerenderFrame); + })); + var setStatePromise = openPromise.then((function(proxyWin) { + currentProxyWin = proxyWin; + return setProxyWin(proxyWin); + })); + var prerenderPromise = promise_ZalgoPromise.hash({ + proxyPrerenderWin: openPrerenderPromise, + state: setStatePromise + }).then((function(_ref18) { + return prerender(_ref18.proxyPrerenderWin, { + context: context + }); + })); + var setWindowNamePromise = promise_ZalgoPromise.hash({ + proxyWin: openPromise, + windowName: buildWindowNamePromise + }).then((function(_ref19) { + if (windowProp) return _ref19.proxyWin.setName(_ref19.windowName); + })); + var getMethodPromise = promise_ZalgoPromise.hash({ + body: buildBodyPromise + }).then((function(_ref20) { + return options.method ? options.method : Object.keys(_ref20.body).length ? "post" : "get"; + })); + var loadUrlPromise = promise_ZalgoPromise.hash({ + proxyWin: openPromise, + windowUrl: buildUrlPromise, + body: buildBodyPromise, + method: getMethodPromise, + windowName: setWindowNamePromise, + prerender: prerenderPromise + }).then((function(_ref21) { + return _ref21.proxyWin.setLocation(_ref21.windowUrl, { + method: _ref21.method, + body: _ref21.body + }); + })); + var watchForClosePromise = openPromise.then((function(proxyWin) { + !function watchForClose(proxyWin, context) { + var cancelled = !1; + clean.register((function() { + cancelled = !0; + })); + return promise_ZalgoPromise.delay(2e3).then((function() { + return proxyWin.isClosed(); + })).then((function(isClosed) { + if (!cancelled) return isClosed ? close(new Error("Detected " + context + " close")) : watchForClose(proxyWin, context); + })); + }(proxyWin, context); + })); + var onDisplayPromise = promise_ZalgoPromise.hash({ + container: renderContainerPromise, + prerender: prerenderPromise + }).then((function() { + return event.trigger(EVENT.DISPLAY); + })); + var openBridgePromise = openPromise.then((function(proxyWin) { + return function(proxyWin, initialChildDomain, context) { + return promise_ZalgoPromise.try((function() { + return proxyWin.awaitWindow(); + })).then((function(win) { + if (src_bridge && src_bridge.needsBridge({ + win: win, + domain: initialChildDomain + }) && !src_bridge.hasBridge(initialChildDomain, initialChildDomain)) { + var bridgeUrl = "function" == typeof options.bridgeUrl ? options.bridgeUrl({ + props: props + }) : options.bridgeUrl; + if (!bridgeUrl) throw new Error("Bridge needed to render " + context); + var bridgeDomain = getDomainFromUrl(bridgeUrl); + src_bridge.linkUrl(win, initialChildDomain); + return src_bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain); + } + })); + }(proxyWin, initialChildDomain, context); + })); + var runTimeoutPromise = loadUrlPromise.then((function() { + return promise_ZalgoPromise.try((function() { + var timeout = props.timeout; + if (timeout) return initPromise.timeout(timeout, new Error("Loading component timed out after " + timeout + " milliseconds")); + })); + })); + var onRenderedPromise = initPromise.then((function() { + return event.trigger(EVENT.RENDERED); + })); + return promise_ZalgoPromise.hash({ + initPromise: initPromise, + buildUrlPromise: buildUrlPromise, + onRenderPromise: onRenderPromise, + getProxyContainerPromise: getProxyContainerPromise, + openFramePromise: openFramePromise, + openPrerenderFramePromise: openPrerenderFramePromise, + renderContainerPromise: renderContainerPromise, + openPromise: openPromise, + openPrerenderPromise: openPrerenderPromise, + setStatePromise: setStatePromise, + prerenderPromise: prerenderPromise, + loadUrlPromise: loadUrlPromise, + buildWindowNamePromise: buildWindowNamePromise, + setWindowNamePromise: setWindowNamePromise, + watchForClosePromise: watchForClosePromise, + onDisplayPromise: onDisplayPromise, + openBridgePromise: openBridgePromise, + runTimeoutPromise: runTimeoutPromise, + onRenderedPromise: onRenderedPromise, + delegatePromise: delegatePromise, + watchForUnloadPromise: watchForUnloadPromise, + finalSetPropsPromise: finalSetPropsPromise + }); + })).catch((function(err) { + return promise_ZalgoPromise.all([ onError(err), destroy(err) ]).then((function() { + throw err; + }), (function() { + throw err; + })); + })).then(src_util_noop); + }, + destroy: destroy, + getProps: function() { + return props; + }, + setProps: setProps, + export: xport, + getHelpers: getHelpers, + getDelegateOverrides: function() { + return promise_ZalgoPromise.try((function() { + return { + getProxyContainer: getProxyContainer, + show: show, + hide: hide, + renderContainer: renderContainer, + getProxyWindow: getProxyWindow, + watchForUnload: watchForUnload, + openFrame: openFrame, + openPrerenderFrame: openPrerenderFrame, + prerender: prerender, + open: open, + openPrerender: openPrerender, + setProxyWin: setProxyWin + }; + })); + }, + getExports: function() { + return xports({ + getExports: function() { + return exportsPromise; + } + }); + } + }; + } + function defaultContainerTemplate(_ref) { + var uid = _ref.uid, frame = _ref.frame, prerenderFrame = _ref.prerenderFrame, doc = _ref.doc, props = _ref.props, event = _ref.event, dimensions = _ref.dimensions; + var width = dimensions.width, height = dimensions.height; + if (frame && prerenderFrame) { + var div = doc.createElement("div"); + div.setAttribute("id", uid); + var style = doc.createElement("style"); + 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.zoid-invisible {\n opacity: 0;\n }\n\n #" + uid + " > iframe.zoid-visible {\n opacity: 1;\n }\n ")); + div.appendChild(frame); + div.appendChild(prerenderFrame); + div.appendChild(style); + prerenderFrame.classList.add("zoid-visible"); + frame.classList.add("zoid-invisible"); + event.on(EVENT.RENDERED, (function() { + prerenderFrame.classList.remove("zoid-visible"); + prerenderFrame.classList.add("zoid-invisible"); + frame.classList.remove("zoid-invisible"); + frame.classList.add("zoid-visible"); + setTimeout((function() { + destroyElement(prerenderFrame); + }), 1); + })); + event.on(EVENT.RESIZE, (function(_ref2) { + var newWidth = _ref2.width, newHeight = _ref2.height; + "number" == typeof newWidth && (div.style.width = toCSS(newWidth)); + "number" == typeof newHeight && (div.style.height = toCSS(newHeight)); + })); + return div; + } + } + function defaultPrerenderTemplate(_ref) { + var doc = _ref.doc, props = _ref.props; + var html = doc.createElement("html"); + var body = doc.createElement("body"); + var style = doc.createElement("style"); + var spinner = doc.createElement("div"); + 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 ")); + return html; + } + var cleanInstances = cleanup(); + var cleanZoid = cleanup(); + function component(opts) { + var options = function(options) { + var tag = options.tag, url = options.url, domain = options.domain, bridgeUrl = options.bridgeUrl, _options$props = options.props, props = void 0 === _options$props ? {} : _options$props, _options$dimensions = options.dimensions, dimensions = void 0 === _options$dimensions ? {} : _options$dimensions, _options$autoResize = options.autoResize, autoResize = void 0 === _options$autoResize ? {} : _options$autoResize, _options$allowedParen = options.allowedParentDomains, allowedParentDomains = void 0 === _options$allowedParen ? "*" : _options$allowedParen, _options$attributes = options.attributes, attributes = void 0 === _options$attributes ? {} : _options$attributes, _options$defaultConte = options.defaultContext, defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte, _options$containerTem = options.containerTemplate, containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem, _options$prerenderTem = options.prerenderTemplate, prerenderTemplate = void 0 === _options$prerenderTem ? defaultPrerenderTemplate : _options$prerenderTem, validate = options.validate, _options$eligible = options.eligible, eligible = void 0 === _options$eligible ? function() { + return { + eligible: !0 + }; + } : _options$eligible, _options$logger = options.logger, logger = void 0 === _options$logger ? { + info: src_util_noop + } : _options$logger, _options$exports = options.exports, xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports, method = options.method, _options$children = options.children, children = void 0 === _options$children ? function() { + return {}; + } : _options$children; + var name = tag.replace(/-/g, "_"); + var propsDef = _extends({}, { + window: { + type: PROP_TYPE.OBJECT, + sendToChild: !1, + required: !1, + allowDelegate: !0, + validate: function(_ref2) { + var value = _ref2.value; + if (!isWindow(value) && !window_ProxyWindow.isProxyWindow(value)) throw new Error("Expected Window or ProxyWindow"); + if (isWindow(value)) { + if (isWindowClosed(value)) throw new Error("Window is closed"); + if (!isSameDomain(value)) throw new Error("Window is not same domain"); + } + }, + decorate: function(_ref3) { + return setup_toProxyWindow(_ref3.value); + } + }, + timeout: { + type: PROP_TYPE.NUMBER, + required: !1, + sendToChild: !1 + }, + cspNonce: { + type: PROP_TYPE.STRING, + required: !1 + }, + onDisplay: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onRendered: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onRender: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onClose: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onDestroy: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onResize: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop + }, + onFocus: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop + }, + close: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref4) { + return _ref4.close; + } + }, + focus: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref5) { + return _ref5.focus; + } + }, + resize: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref6) { + return _ref6.resize; + } + }, + uid: { + type: PROP_TYPE.STRING, + required: !1, + sendToChild: !1, + childDecorate: function(_ref7) { + return _ref7.uid; + } + }, + tag: { + type: PROP_TYPE.STRING, + required: !1, + sendToChild: !1, + childDecorate: function(_ref8) { + return _ref8.tag; + } + }, + getParent: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref9) { + return _ref9.getParent; + } + }, + getParentDomain: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref10) { + return _ref10.getParentDomain; + } + }, + show: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref11) { + return _ref11.show; + } + }, + hide: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref12) { + return _ref12.hide; + } + }, + export: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref13) { + return _ref13.export; + } + }, + onError: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref14) { + return _ref14.onError; + } + }, + onProps: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref15) { + return _ref15.onProps; + } + }, + getSiblings: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref16) { + return _ref16.getSiblings; + } + } + }, props); + if (!containerTemplate) throw new Error("Container template required"); + return { + name: name, + tag: tag, + url: url, + domain: domain, + bridgeUrl: bridgeUrl, + method: method, + propsDef: propsDef, + dimensions: dimensions, + autoResize: autoResize, + allowedParentDomains: allowedParentDomains, + attributes: attributes, + defaultContext: defaultContext, + containerTemplate: containerTemplate, + prerenderTemplate: prerenderTemplate, + validate: validate, + logger: logger, + eligible: eligible, + children: children, + exports: "function" == typeof xportsDefinition ? xportsDefinition : function(_ref) { + var getExports = _ref.getExports; + var result = {}; + var _loop = function(_i2, _Object$keys2) { + var key = _Object$keys2[_i2]; + var type = xportsDefinition[key].type; + var valuePromise = getExports().then((function(res) { + return res[key]; + })); + result[key] = type === PROP_TYPE.FUNCTION ? function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + return valuePromise.then((function(value) { + return value.apply(void 0, args); + })); + } : valuePromise; + }; + for (var _i2 = 0, _Object$keys2 = Object.keys(xportsDefinition); _i2 < _Object$keys2.length; _i2++) _loop(_i2, _Object$keys2); + return result; + } + }; + }(opts); + var name = options.name, tag = options.tag, defaultContext = options.defaultContext, eligible = options.eligible, children = options.children; + var global = lib_global_getGlobal(window); + var instances = []; + var isChild = function() { + if (function(name) { + try { + return parseWindowName(window.name).name === name; + } catch (err) {} + return !1; + }(name)) { + var _payload = getInitialParentPayload().payload; + if (_payload.tag === tag && matchDomain(_payload.childDomainMatch, getDomain())) return !0; + } + return !1; + }; + var registerChild = memoize((function() { + if (isChild()) { + if (window.xprops) { + delete global.components[tag]; + throw new Error("Can not register " + name + " as child - child already registered"); + } + var child = function(options) { + var tag = options.tag, propsDef = options.propsDef, autoResize = options.autoResize, allowedParentDomains = options.allowedParentDomains; + var onPropHandlers = []; + var _getInitialParentPayl = getInitialParentPayload(), parent = _getInitialParentPayl.parent, payload = _getInitialParentPayl.payload; + var parentComponentWindow = parent.win, parentDomain = parent.domain; + var props; + var exportsPromise = new promise_ZalgoPromise; + var version = payload.version, uid = payload.uid, parentExports = payload.exports, context = payload.context, initialProps = payload.props; + if ("9_0_86" !== version) throw new Error("Parent window has zoid version " + version + ", child window has version 9_0_86"); + var show = parentExports.show, hide = parentExports.hide, close = parentExports.close, onError = parentExports.onError, checkClose = parentExports.checkClose, parentExport = parentExports.export, parentResize = parentExports.resize, parentInit = parentExports.init; + var getParent = function() { + return parentComponentWindow; + }; + var getParentDomain = function() { + return parentDomain; + }; + var onProps = function(handler) { + onPropHandlers.push(handler); + return { + cancel: function() { + onPropHandlers.splice(onPropHandlers.indexOf(handler), 1); + } + }; + }; + var resize = function(_ref) { + return parentResize.fireAndForget({ + width: _ref.width, + height: _ref.height + }); + }; + var xport = function(xports) { + exportsPromise.resolve(xports); + return parentExport(xports); + }; + var getSiblings = function(_temp) { + var anyParent = (void 0 === _temp ? {} : _temp).anyParent; + var result = []; + var currentParent = props.parent; + void 0 === anyParent && (anyParent = !currentParent); + if (!anyParent && !currentParent) throw new Error("No parent found for " + tag + " child"); + for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(window); _i2 < _getAllFramesInWindow2.length; _i2++) { + var win = _getAllFramesInWindow2[_i2]; + if (isSameDomain(win)) { + var xprops = assertSameDomain(win).xprops; + if (xprops && getParent() === xprops.getParent()) { + var winParent = xprops.parent; + if (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) { + var xports = tryGlobal(win, (function(global) { + return global.exports; + })); + result.push({ + props: xprops, + exports: xports + }); + } + } + } + } + return result; + }; + var setProps = function(newProps, origin, isUpdate) { + void 0 === isUpdate && (isUpdate = !1); + var normalizedProps = function(parentComponentWindow, propsDef, props, origin, helpers, isUpdate) { + void 0 === isUpdate && (isUpdate = !1); + var result = {}; + for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) { + var key = _Object$keys2[_i2]; + var prop = propsDef[key]; + if (!prop || !prop.sameDomain || origin === getDomain(window) && isSameDomain(parentComponentWindow)) { + var value = normalizeChildProp(propsDef, 0, key, props[key], helpers); + result[key] = value; + prop && prop.alias && !result[prop.alias] && (result[prop.alias] = value); + } + } + if (!isUpdate) for (var _i4 = 0, _Object$keys4 = Object.keys(propsDef); _i4 < _Object$keys4.length; _i4++) { + var _key = _Object$keys4[_i4]; + props.hasOwnProperty(_key) || (result[_key] = normalizeChildProp(propsDef, 0, _key, void 0, helpers)); + } + return result; + }(parentComponentWindow, propsDef, newProps, origin, { + tag: tag, + show: show, + hide: hide, + close: close, + focus: child_focus, + onError: onError, + resize: resize, + getSiblings: getSiblings, + onProps: onProps, + getParent: getParent, + getParentDomain: getParentDomain, + uid: uid, + export: xport + }, isUpdate); + props ? extend(props, normalizedProps) : props = normalizedProps; + for (var _i4 = 0; _i4 < onPropHandlers.length; _i4++) (0, onPropHandlers[_i4])(props); + }; + var updateProps = function(newProps) { + return promise_ZalgoPromise.try((function() { + return setProps(newProps, parentDomain, !0); + })); + }; + return { + init: function() { + return promise_ZalgoPromise.try((function() { + isSameDomain(parentComponentWindow) && function(_ref3) { + var componentName = _ref3.componentName, parentComponentWindow = _ref3.parentComponentWindow; + var _crossDomainDeseriali2 = crossDomainDeserialize({ + data: parseWindowName(window.name).serializedInitialPayload, + sender: { + win: parentComponentWindow + }, + basic: !0 + }), sender = _crossDomainDeseriali2.sender; + if ("uid" === _crossDomainDeseriali2.reference.type || "global" === _crossDomainDeseriali2.metaData.windowRef.type) { + var _crossDomainSerialize = crossDomainSerialize({ + data: _crossDomainDeseriali2.data, + metaData: { + windowRef: window_getWindowRef(parentComponentWindow) + }, + sender: { + domain: sender.domain + }, + receiver: { + win: window, + domain: getDomain() + }, + basic: !0 + }); + window.name = buildChildWindowName({ + name: componentName, + serializedPayload: _crossDomainSerialize.serializedData + }); + } + }({ + componentName: options.name, + parentComponentWindow: parentComponentWindow + }); + lib_global_getGlobal(window).exports = options.exports({ + getExports: function() { + return exportsPromise; + } + }); + !function(allowedParentDomains, domain) { + if (!matchDomain(allowedParentDomains, domain)) throw new Error("Can not be rendered by domain: " + domain); + }(allowedParentDomains, parentDomain); + markWindowKnown(parentComponentWindow); + !function() { + window.addEventListener("beforeunload", (function() { + checkClose.fireAndForget(); + })); + window.addEventListener("unload", (function() { + checkClose.fireAndForget(); + })); + onCloseWindow(parentComponentWindow, (function() { + child_destroy(); + })); + }(); + return parentInit({ + updateProps: updateProps, + close: child_destroy + }); + })).then((function() { + 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) { + return { + width: width, + height: height, + element: element + }; + }))).then((function(_ref3) { + var width = _ref3.width, height = _ref3.height, element = _ref3.element; + element && (width || height) && context !== CONTEXT.POPUP && onResize(element, (function(_ref4) { + resize({ + width: width ? _ref4.width : void 0, + height: height ? _ref4.height : void 0 + }); + }), { + width: width, + height: height + }); + })); + var _autoResize$width, width, _autoResize$height, height, _autoResize$element; + })).catch((function(err) { + onError(err); + })); + }, + getProps: function() { + if (props) return props; + setProps(initialProps, parentDomain); + return props; + } + }; + }(options); + child.init(); + return child; + } + })); + registerChild(); + !function() { + var allowDelegateListener = on_on("zoid_allow_delegate_" + name, (function() { + return !0; + })); + var delegateListener = on_on("zoid_delegate_" + name, (function(_ref2) { + var _ref2$data = _ref2.data; + return { + parent: parentComponent({ + uid: _ref2$data.uid, + options: options, + overrides: _ref2$data.overrides, + parentWin: _ref2.source + }) + }; + })); + cleanZoid.register(allowDelegateListener.cancel); + cleanZoid.register(delegateListener.cancel); + }(); + global.components = global.components || {}; + if (global.components[tag]) throw new Error("Can not register multiple components with the same tag: " + tag); + global.components[tag] = !0; + return { + init: function init(inputProps) { + var instance; + var uid = "zoid-" + tag + "-" + uniqueID(); + var props = inputProps || {}; + var _eligible = eligible({ + props: props + }), eligibility = _eligible.eligible, reason = _eligible.reason; + var onDestroy = props.onDestroy; + props.onDestroy = function() { + instance && eligibility && instances.splice(instances.indexOf(instance), 1); + if (onDestroy) return onDestroy.apply(void 0, arguments); + }; + var parent = parentComponent({ + uid: uid, + options: options + }); + parent.init(); + eligibility ? parent.setProps(props) : props.onDestroy && props.onDestroy(); + cleanInstances.register((function(err) { + return parent.destroy(err || new Error("zoid destroyed all components")); + })); + var clone = function(_temp) { + var _ref4$decorate = (void 0 === _temp ? {} : _temp).decorate; + return init((void 0 === _ref4$decorate ? identity : _ref4$decorate)(props)); + }; + var _render = function(target, container, context) { + return promise_ZalgoPromise.try((function() { + if (!eligibility) { + var err = new Error(reason || name + " component is not eligible"); + return parent.destroy(err).then((function() { + throw err; + })); + } + if (!isWindow(target)) throw new Error("Must pass window to renderTo"); + return function(props, context) { + return promise_ZalgoPromise.try((function() { + if (props.window) return setup_toProxyWindow(props.window).getType(); + if (context) { + if (context !== CONTEXT.IFRAME && context !== CONTEXT.POPUP) throw new Error("Unrecognized context: " + context); + return context; + } + return defaultContext; + })); + }(props, context); + })).then((function(finalContext) { + container = function(context, container) { + if (container) { + if ("string" != typeof container && !isElement(container)) throw new TypeError("Expected string or element selector to be passed"); + return container; + } + if (context === CONTEXT.POPUP) return "body"; + throw new Error("Expected element to be passed to render iframe"); + }(finalContext, container); + if (target !== window && "string" != typeof container) throw new Error("Must pass string element when rendering to another window"); + return parent.render({ + target: target, + container: container, + context: finalContext, + rerender: function() { + var newInstance = clone(); + extend(instance, newInstance); + return newInstance.renderTo(target, container, context); + } + }); + })).catch((function(err) { + return parent.destroy(err).then((function() { + throw err; + })); + })); + }; + instance = _extends({}, parent.getExports(), parent.getHelpers(), function() { + var childComponents = children(); + var result = {}; + var _loop2 = function(_i4, _Object$keys4) { + var childName = _Object$keys4[_i4]; + var Child = childComponents[childName]; + result[childName] = function(childInputProps) { + var parentProps = parent.getProps(); + var childProps = _extends({}, childInputProps, { + parent: { + uid: uid, + props: parentProps, + export: parent.export + } + }); + return Child(childProps); + }; + }; + for (var _i4 = 0, _Object$keys4 = Object.keys(childComponents); _i4 < _Object$keys4.length; _i4++) _loop2(_i4, _Object$keys4); + return result; + }(), { + isEligible: function() { + return eligibility; + }, + clone: clone, + render: function(container, context) { + return _render(window, container, context); + }, + renderTo: function(target, container, context) { + return _render(target, container, context); + } + }); + eligibility && instances.push(instance); + return instance; + }, + instances: instances, + driver: function(driverName, dep) { + throw new Error("Driver support not enabled"); + }, + isChild: isChild, + canRenderTo: function(win) { + return send_send(win, "zoid_allow_delegate_" + name).then((function(_ref3) { + return _ref3.data; + })).catch((function() { + return !1; + })); + }, + registerChild: registerChild + }; + } + var component_create = function(options) { + !function() { + if (!global_getGlobal().initialized) { + global_getGlobal().initialized = !0; + on = (_ref3 = { + on: on_on, + send: send_send + }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) { + return receive_receiveMessage(message, { + on: on, + send: send + }); + }; + !function(_ref5) { + var on = _ref5.on, send = _ref5.send; + globalStore().getOrSet("postMessageListener", (function() { + return addEventListener(window, "message", (function(event) { + !function(event, _ref4) { + var on = _ref4.on, send = _ref4.send; + promise_ZalgoPromise.try((function() { + var source = event.source || event.sourceElement; + var origin = event.origin || event.originalEvent && event.originalEvent.origin; + var data = event.data; + "null" === origin && (origin = "file://"); + if (source) { + if (!origin) throw new Error("Post message did not have origin domain"); + receive_receiveMessage({ + source: source, + origin: origin, + data: data + }, { + on: on, + send: send + }); + } + })); + }(event, { + on: on, + send: send + }); + })); + })); + }({ + on: on_on, + send: send_send + }); + setupBridge({ + on: on_on, + send: send_send, + receiveMessage: receive_receiveMessage + }); + !function(_ref8) { + var on = _ref8.on, send = _ref8.send; + globalStore("builtinListeners").getOrSet("helloListener", (function() { + var listener = on("postrobot_hello", { + domain: "*" + }, (function(_ref3) { + resolveHelloPromise(_ref3.source, { + domain: _ref3.origin + }); + return { + instanceID: getInstanceID() + }; + })); + var parent = getAncestor(); + parent && sayHello(parent, { + send: send + }).catch((function(err) {})); + return listener; + })); + }({ + on: on_on, + send: send_send + }); + } + var _ref3, on, send, global; + }(); + var comp = component(options); + var init = function(props) { + return comp.init(props); + }; + init.driver = function(name, dep) { + return comp.driver(name, dep); + }; + init.isChild = function() { + return comp.isChild(); + }; + init.canRenderTo = function(win) { + return comp.canRenderTo(win); + }; + init.instances = comp.instances; + var child = comp.registerChild(); + child && (window.xprops = init.xprops = child.getProps()); + return init; + }; + function destroyComponents(err) { + src_bridge && src_bridge.destroyBridges(); + var destroyPromise = cleanInstances.all(err); + cleanInstances = cleanup(); + return destroyPromise; + } + var destroyAll = destroyComponents; + function component_destroy(err) { + destroyAll(); + delete window.__zoid_9_0_86__; + !function() { + !function() { + var responseListeners = globalStore("responseListeners"); + for (var _i2 = 0, _responseListeners$ke2 = responseListeners.keys(); _i2 < _responseListeners$ke2.length; _i2++) { + var hash = _responseListeners$ke2[_i2]; + var listener = responseListeners.get(hash); + listener && (listener.cancelled = !0); + responseListeners.del(hash); + } + }(); + (listener = globalStore().get("postMessageListener")) && listener.cancel(); + var listener; + delete window.__post_robot_10_0_44__; + }(); + return cleanZoid.all(err); + } + } ]); + })); + } (zoid$1)); + return zoid$1.exports; + } + + /* @flow */ + + (function (module) { + /* eslint import/no-commonjs: 0 */ + + // eslint-disable-next-line no-true-env + { + // $FlowFixMe + module.exports = requireZoid(); + // $FlowFixMe + module.exports.default = module.exports; + } + } (zoid$2)); + + var zoidExports = zoid$2.exports; + var zoid = /*@__PURE__*/getDefaultExportFromCjs(zoidExports); + + /* eslint-disable no-restricted-properties */ + const BASE_URL = "http://localhost:3000"; + const AdvancedZoid = zoid.create({ + tag: 'advanced-zoid', + // Dynamic URL + url: () => { + try { + const scriptSrc = document.getElementById('widget-id')?.getAttribute('src'); + if (!scriptSrc) { + throw new Error('No script source found'); + } + return `${new URL(scriptSrc).origin}/zoid-advanced`; + } + catch { + return BASE_URL; + } + }, + dimensions: { + width: '100%', + height: '100%' + }, + props: { + buttonTxt: { + type: 'string', + required: true + }, + onConfetti: { + type: 'function', + required: true + }, + } + }); + + return AdvancedZoid; + +})(); +//# sourceMappingURL=advanced-zoid.js.map diff --git a/apps/nextjs/src/widgets/advanced-zoid.js.map b/apps/nextjs/src/widgets/advanced-zoid.js.map new file mode 100644 index 0000000..fc15e8d --- /dev/null +++ b/apps/nextjs/src/widgets/advanced-zoid.js.map @@ -0,0 +1 @@ +{"version":3,"file":"advanced-zoid.js","sources":["../../../../node_modules/zoid/dist/zoid.js","../../../../node_modules/zoid/index.js","../components/zoid/advanced-zoid.ts"],"sourcesContent":["!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"zoid\", [], factory) : \"object\" == typeof exports ? exports.zoid = factory() : root.zoid = factory();\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.r = function(exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n };\n __webpack_require__.t = function(value, mode) {\n 1 & mode && (value = __webpack_require__(value));\n if (8 & mode) return value;\n if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n var ns = Object.create(null);\n __webpack_require__.r(ns);\n Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n });\n if (2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n return value[key];\n }.bind(null, key));\n return ns;\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return {}.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = 0);\n }([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n __webpack_require__.d(__webpack_exports__, \"PopupOpenError\", (function() {\n return dom_PopupOpenError;\n }));\n __webpack_require__.d(__webpack_exports__, \"create\", (function() {\n return component_create;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroy\", (function() {\n return component_destroy;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroyComponents\", (function() {\n return destroyComponents;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroyAll\", (function() {\n return destroyAll;\n }));\n __webpack_require__.d(__webpack_exports__, \"PROP_TYPE\", (function() {\n return PROP_TYPE;\n }));\n __webpack_require__.d(__webpack_exports__, \"PROP_SERIALIZATION\", (function() {\n return PROP_SERIALIZATION;\n }));\n __webpack_require__.d(__webpack_exports__, \"CONTEXT\", (function() {\n return CONTEXT;\n }));\n __webpack_require__.d(__webpack_exports__, \"EVENT\", (function() {\n return EVENT;\n }));\n function _setPrototypeOf(o, p) {\n return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) {\n o.__proto__ = p;\n return o;\n })(o, p);\n }\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n }\n function _extends() {\n return (_extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) ({}).hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }).apply(this, arguments);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && \"function\" == typeof window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && \"function\" == typeof window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n var dispatchedErrors = [];\n var possiblyUnhandledPromiseHandlers = [];\n var activeCount = 0;\n var flushPromise;\n function flushActive() {\n if (!activeCount && flushPromise) {\n var promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n }\n function startActive() {\n activeCount += 1;\n }\n function endActive() {\n activeCount -= 1;\n flushActive();\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n this.resolved = void 0;\n this.rejected = void 0;\n this.errorHandled = void 0;\n this.value = void 0;\n this.error = void 0;\n this.handlers = void 0;\n this.dispatching = void 0;\n this.stack = void 0;\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result;\n var _error;\n var resolved = !1;\n var rejected = !1;\n var isAsync = !1;\n startActive();\n try {\n handler((function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }), (function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n }));\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n endActive();\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n var _proto = ZalgoPromise.prototype;\n _proto.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n _proto.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : {}.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout((function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === dispatchedErrors.indexOf(err)) {\n dispatchedErrors.push(err);\n setTimeout((function() {\n throw err;\n }), 1);\n for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }), 1);\n this.dispatch();\n return this;\n };\n _proto.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n return this;\n };\n _proto.dispatch = function() {\n var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function(firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n secondPromise.resolve(res);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < handlers.length; i++) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise;\n var _result2 = void 0;\n if (resolved) try {\n _result2 = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n } else if (rejected) {\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n try {\n _result2 = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {\n var promiseResult = _result2;\n promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error);\n promiseResult.errorHandled = !0;\n } else utils_isPromise(_result2) ? _result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected) ? _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error) : chain(_result2, promise) : promise.resolve(_result2);\n }\n handlers.length = 0;\n this.dispatching = !1;\n endActive();\n }\n };\n _proto.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise;\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n _proto.catch = function(onError) {\n return this.then(void 0, onError);\n };\n _proto.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then((function(result) {\n return ZalgoPromise.try(onFinally).then((function() {\n return result;\n }));\n }), (function(err) {\n return ZalgoPromise.try(onFinally).then((function() {\n throw err;\n }));\n }));\n };\n _proto.timeout = function(time, err) {\n var _this3 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout((function() {\n _this3.resolved || _this3.rejected || _this3.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }), time);\n return this.then((function(result) {\n clearTimeout(timeout);\n return result;\n }));\n };\n _proto.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n _proto.lazy = function() {\n this.errorHandled = !0;\n return this;\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) {\n return value.then(resolve, reject);\n })) : (new ZalgoPromise).resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return (new ZalgoPromise).reject(error);\n };\n ZalgoPromise.asyncReject = function(error) {\n return (new ZalgoPromise).asyncReject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise;\n var count = promises.length;\n var results = [].slice();\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n var chain = function(i, firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n results[i] = res;\n 0 == (count -= 1) && promise.resolve(results);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < promises.length; i++) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n var awaitPromises = [];\n var _loop = function(key) {\n if (promises.hasOwnProperty(key)) {\n var value = promises[key];\n utils_isPromise(value) ? awaitPromises.push(value.then((function(res) {\n result[key] = res;\n }))) : result[key] = value;\n }\n };\n for (var key in promises) _loop(key);\n return ZalgoPromise.all(awaitPromises).then((function() {\n return result;\n }));\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result;\n startActive();\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n endActive();\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise((function(resolve) {\n setTimeout(resolve, _delay);\n }));\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n return function(Zalgo) {\n var promise = flushPromise = flushPromise || new Zalgo;\n flushActive();\n return promise;\n }(ZalgoPromise);\n };\n return ZalgoPromise;\n }();\n function isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n var WINDOW_TYPE = {\n IFRAME: \"iframe\",\n POPUP: \"popup\"\n };\n var IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function getActualProtocol(win) {\n void 0 === win && (win = window);\n return win.location.protocol;\n }\n function getProtocol(win) {\n void 0 === win && (win = window);\n if (win.mockDomain) {\n var protocol = win.mockDomain.split(\"//\")[0];\n if (protocol) return protocol;\n }\n return getActualProtocol(win);\n }\n function isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === getProtocol(win);\n }\n function utils_getParent(win) {\n void 0 === win && (win = window);\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n void 0 === win && (win = window);\n if (win && !utils_getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n void 0 === win && (win = window);\n var location = win.location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = getActualProtocol(win);\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (\"file:\" === protocol) return \"file://\";\n if (\"about:\" === protocol) {\n var parent = utils_getParent(win);\n return parent && canReadFromWindow() ? getActualDomain(parent) : \"about://\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n void 0 === win && (win = window);\n var domain = getActualDomain(win);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(\"mock:\") ? win.mockDomain : domain;\n }\n function isSameDomain(win) {\n if (!function(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (function(win) {\n void 0 === win && (win = window);\n return \"mock:\" === getProtocol(win);\n }(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }\n function assertSameDomain(win) {\n if (!isSameDomain(win)) throw new Error(\"Expected window to be same domain\");\n return win;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = utils_getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [];\n var frames;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n function getAllChildFrames(win) {\n var result = [];\n for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]);\n }\n return result;\n }\n function getTop(win) {\n void 0 === win && (win = window);\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (utils_getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (utils_getParent(frame) === frame) return frame;\n }\n }\n function getAllFramesInWindow(win) {\n var top = getTop(win);\n if (!top) throw new Error(\"Can not determine top window\");\n var result = [].concat(getAllChildFrames(top), [ top ]);\n -1 === result.indexOf(win) && (result = [].concat(result, [ win ], getAllChildFrames(win)));\n return result;\n }\n var iframeWindows = [];\n var iframeFrames = [];\n function isWindowClosed(win, allowMock) {\n void 0 === allowMock && (allowMock = !0);\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && isSameDomain(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n var parent = frame;\n for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode;\n if (!parent.host || !doc.documentElement.contains(parent.host)) return !0;\n }\n return !1;\n }(frame)) return !0;\n }\n return !1;\n }\n function utils_getUserAgent(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n }\n function getFrameByName(win, name) {\n var winFrames = getFrames(win);\n for (var _i9 = 0; _i9 < winFrames.length; _i9++) {\n var childFrame = winFrames[_i9];\n try {\n if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame;\n } catch (err) {}\n }\n try {\n if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name];\n } catch (err) {}\n try {\n if (-1 !== winFrames.indexOf(win[name])) return win[name];\n } catch (err) {}\n }\n function isOpener(parent, child) {\n return parent === getOpener(child);\n }\n function getAncestor(win) {\n void 0 === win && (win = window);\n return getOpener(win = win || window) || utils_getParent(win) || void 0;\n }\n function anyMatch(collection1, collection2) {\n for (var _i17 = 0; _i17 < collection1.length; _i17++) {\n var item1 = collection1[_i17];\n for (var _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0;\n }\n return !1;\n }\n function getDistanceFromTop(win) {\n void 0 === win && (win = window);\n var distance = 0;\n var parent = win;\n for (;parent; ) (parent = utils_getParent(parent)) && (distance += 1);\n return distance;\n }\n function isSameTopWindow(win1, win2) {\n var top1 = getTop(win1) || win1;\n var top2 = getTop(win2) || win2;\n try {\n if (top1 && top2) return top1 === top2;\n } catch (err) {}\n var allFrames1 = getAllFramesInWindow(win1);\n var allFrames2 = getAllFramesInWindow(win2);\n if (anyMatch(allFrames1, allFrames2)) return !0;\n var opener1 = getOpener(top1);\n var opener2 = getOpener(top2);\n return opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), \n !1;\n }\n function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return \"*\" === pattern || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some((function(subpattern) {\n return matchDomain(subpattern, origin);\n })));\n }\n function getDomainFromUrl(url) {\n return url.match(/^(https?|mock|file):\\/\\//) ? url.split(\"/\").slice(0, 3).join(\"/\") : getDomain();\n }\n function onCloseWindow(win, callback, delay, maxtime) {\n void 0 === delay && (delay = 1e3);\n void 0 === maxtime && (maxtime = 1 / 0);\n var timeout;\n !function check() {\n if (isWindowClosed(win)) {\n timeout && clearTimeout(timeout);\n return callback();\n }\n if (maxtime <= 0) clearTimeout(timeout); else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n }();\n return {\n cancel: function() {\n timeout && clearTimeout(timeout);\n }\n };\n }\n function isWindow(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === {}.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && \"__unlikely_value__\" === obj.__cross_domain_utils_window_check__) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) return !0;\n } catch (err) {}\n return !1;\n }\n function normalizeMockUrl(url) {\n if (!(domain = getDomainFromUrl(url), 0 === domain.indexOf(\"mock:\"))) return url;\n var domain;\n throw new Error(\"Mock urls not supported out of test mode\");\n }\n function getFrameForWindow(win) {\n if (isSameDomain(win)) return assertSameDomain(win).frameElement;\n for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll(\"iframe\"); _i21 < _document$querySelect2.length; _i21++) {\n var frame = _document$querySelect2[_i21];\n if (frame && frame.contentWindow && frame.contentWindow === win) return frame;\n }\n }\n function closeWindow(win) {\n if (function(win) {\n void 0 === win && (win = window);\n return Boolean(utils_getParent(win));\n }(win)) {\n var frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n try {\n win.close();\n } catch (err) {}\n }\n function util_safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n this.name = void 0;\n this.weakmap = void 0;\n this.keys = void 0;\n this.values = void 0;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\";\n if (function() {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap;\n var testKey = {};\n Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap;\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n var _proto = CrossDomainSafeWeakMap.prototype;\n _proto._cleanupClosedWindows = function() {\n var weakmap = this.weakmap;\n var keys = this.keys;\n for (var i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (isWindow(value) && isWindowClosed(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n _proto.isSafeToReadWrite = function(key) {\n return !isWindow(key);\n };\n _proto.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var name = this.name;\n var entry = key[name];\n entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n return;\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var values = this.values;\n var index = util_safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n };\n _proto.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return entry && entry[0] === key ? entry[1] : void 0;\n } catch (err) {}\n this._cleanupClosedWindows();\n var index = util_safeIndexOf(this.keys, key);\n if (-1 !== index) return this.values[index];\n };\n _proto.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var index = util_safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n };\n _proto.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return !0;\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n } catch (err) {}\n this._cleanupClosedWindows();\n return -1 !== util_safeIndexOf(this.keys, key);\n };\n _proto.getOrSet = function(key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n this.set(key, value);\n return value;\n };\n return CrossDomainSafeWeakMap;\n }();\n function _getPrototypeOf(o) {\n return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n })(o);\n }\n function _isNativeReflectConstruct() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return !0;\n } catch (e) {\n return !1;\n }\n }\n function construct_construct(Parent, args, Class) {\n return (construct_construct = _isNativeReflectConstruct() ? Reflect.construct : function(Parent, args, Class) {\n var a = [ null ];\n a.push.apply(a, args);\n var instance = new (Function.bind.apply(Parent, a));\n Class && _setPrototypeOf(instance, Class.prototype);\n return instance;\n }).apply(null, arguments);\n }\n function wrapNativeSuper_wrapNativeSuper(Class) {\n var _cache = \"function\" == typeof Map ? new Map : void 0;\n return (wrapNativeSuper_wrapNativeSuper = function(Class) {\n if (null === Class || !(fn = Class, -1 !== Function.toString.call(fn).indexOf(\"[native code]\"))) return Class;\n var fn;\n if (\"function\" != typeof Class) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== _cache) {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct_construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n })(Class);\n }\n function 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, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n var cache;\n cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {};\n var cacheKey = 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, _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n var key = serializeArgs(args);\n if (cache.hasOwnProperty(key)) return cache[key];\n cache[key] = promise_ZalgoPromise.try((function() {\n return method.apply(_this, _arguments);\n })).finally((function() {\n delete cache[key];\n }));\n return cache[key];\n }\n memoizedPromiseFunction.reset = function() {\n cache = {};\n };\n return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + \"::promiseMemoized\");\n }\n function src_util_noop() {}\n function once(method) {\n var called = !1;\n return setFunctionName((function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n }), getFunctionName(method) + \"::once\");\n }\n function stringifyError(err, level) {\n void 0 === level && (level = 1);\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack;\n var message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return err && err.toString && \"function\" == typeof err.toString ? err.toString() : {}.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n function stringify(item) {\n return \"string\" == typeof item ? item : item && item.toString && \"function\" == typeof item.toString ? item.toString() : {}.toString.call(item);\n }\n function extend(obj, source) {\n if (!source) return obj;\n if (Object.assign) return Object.assign(obj, source);\n for (var key in source) source.hasOwnProperty(key) && (obj[key] = source[key]);\n return obj;\n }\n memoize((function(obj) {\n if (Object.values) return Object.values(obj);\n var result = [];\n for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);\n return result;\n }));\n function identity(item) {\n return item;\n }\n function safeInterval(method, time) {\n var timeout;\n !function loop() {\n timeout = setTimeout((function() {\n method();\n loop();\n }), time);\n }();\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }\n function arrayFrom(item) {\n return [].slice.call(item);\n }\n function isDefined(value) {\n return null != value;\n }\n function util_isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n function util_getOrSet(obj, key, getter) {\n if (obj.hasOwnProperty(key)) return obj[key];\n var val = getter();\n obj[key] = val;\n return val;\n }\n function cleanup(obj) {\n var tasks = [];\n var cleaned = !1;\n var cleanErr;\n var cleaner = {\n set: function(name, item) {\n if (!cleaned) {\n obj[name] = item;\n cleaner.register((function() {\n delete obj[name];\n }));\n }\n return item;\n },\n register: function(method) {\n var task = once((function() {\n return method(cleanErr);\n }));\n cleaned ? method(cleanErr) : tasks.push(task);\n return {\n cancel: function() {\n var index = tasks.indexOf(task);\n -1 !== index && tasks.splice(index, 1);\n }\n };\n },\n all: function(err) {\n cleanErr = err;\n var results = [];\n cleaned = !0;\n for (;tasks.length; ) {\n var task = tasks.shift();\n results.push(task());\n }\n return promise_ZalgoPromise.all(results).then(src_util_noop);\n }\n };\n return cleaner;\n }\n function assertExists(name, thing) {\n if (null == thing) throw new Error(\"Expected \" + name + \" to be present\");\n return thing;\n }\n var util_ExtendableError = function(_Error) {\n _inheritsLoose(ExtendableError, _Error);\n function ExtendableError(message) {\n var _this6;\n (_this6 = _Error.call(this, message) || this).name = _this6.constructor.name;\n \"function\" == typeof Error.captureStackTrace ? Error.captureStackTrace(function(self) {\n if (void 0 === self) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return self;\n }(_this6), _this6.constructor) : _this6.stack = new Error(message).stack;\n return _this6;\n }\n return ExtendableError;\n }(wrapNativeSuper_wrapNativeSuper(Error));\n function getBody() {\n var body = document.body;\n if (!body) throw new Error(\"Body element not found\");\n return body;\n }\n function isDocumentReady() {\n return Boolean(document.body) && \"complete\" === document.readyState;\n }\n function isDocumentInteractive() {\n return Boolean(document.body) && \"interactive\" === document.readyState;\n }\n function urlEncode(str) {\n return encodeURIComponent(str);\n }\n memoize((function() {\n return new promise_ZalgoPromise((function(resolve) {\n if (isDocumentReady() || isDocumentInteractive()) return resolve();\n var interval = setInterval((function() {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }), 10);\n }));\n }));\n function parseQuery(queryString) {\n return function(method, logic, args) {\n void 0 === args && (args = []);\n var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {};\n var key = serializeArgs(args);\n return cache.hasOwnProperty(key) ? cache[key] : cache[key] = function() {\n var params = {};\n if (!queryString) return params;\n if (-1 === queryString.indexOf(\"=\")) return params;\n for (var _i2 = 0, _queryString$split2 = queryString.split(\"&\"); _i2 < _queryString$split2.length; _i2++) {\n var pair = _queryString$split2[_i2];\n (pair = pair.split(\"=\"))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]));\n }\n return params;\n }.apply(void 0, args);\n }(parseQuery, 0, [ queryString ]);\n }\n function extendQuery(originalQuery, props) {\n void 0 === props && (props = {});\n return props && Object.keys(props).length ? function(obj) {\n void 0 === obj && (obj = {});\n return Object.keys(obj).filter((function(key) {\n return \"string\" == typeof obj[key] || \"boolean\" == typeof obj[key];\n })).map((function(key) {\n var val = obj[key];\n if (\"string\" != typeof val && \"boolean\" != typeof val) throw new TypeError(\"Invalid type for query\");\n return urlEncode(key) + \"=\" + urlEncode(val.toString());\n })).join(\"&\");\n }(_extends({}, parseQuery(originalQuery), props)) : originalQuery;\n }\n function appendChild(container, child) {\n container.appendChild(child);\n }\n function 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() {\n obj.removeEventListener(event, handler);\n }\n };\n }\n function showElement(element) {\n element.style.setProperty(\"display\", \"\");\n }\n function hideElement(element) {\n element.style.setProperty(\"display\", \"none\", \"important\");\n }\n function destroyElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n function isElementClosed(el) {\n return !(el && el.parentNode && el.ownerDocument && el.ownerDocument.documentElement && el.ownerDocument.documentElement.contains(el));\n }\n function onResize(el, handler, _temp) {\n var _ref2 = void 0 === _temp ? {} : _temp, _ref2$width = _ref2.width, width = void 0 === _ref2$width || _ref2$width, _ref2$height = _ref2.height, height = void 0 === _ref2$height || _ref2$height, _ref2$interval = _ref2.interval, interval = void 0 === _ref2$interval ? 100 : _ref2$interval, _ref2$win = _ref2.win, win = void 0 === _ref2$win ? window : _ref2$win;\n var currentWidth = el.offsetWidth;\n var currentHeight = el.offsetHeight;\n var canceled = !1;\n handler({\n width: currentWidth,\n height: currentHeight\n });\n var check = function() {\n if (!canceled && function(el) {\n return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n }(el)) {\n var newWidth = el.offsetWidth;\n var newHeight = el.offsetHeight;\n (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({\n width: newWidth,\n height: newHeight\n });\n currentWidth = newWidth;\n currentHeight = newHeight;\n }\n };\n var observer;\n var timeout;\n win.addEventListener(\"resize\", check);\n if (void 0 !== win.ResizeObserver) {\n (observer = new win.ResizeObserver(check)).observe(el);\n timeout = safeInterval(check, 10 * interval);\n } else if (void 0 !== win.MutationObserver) {\n (observer = new win.MutationObserver(check)).observe(el, {\n attributes: !0,\n childList: !0,\n subtree: !0,\n characterData: !1\n });\n timeout = safeInterval(check, 10 * interval);\n } else timeout = safeInterval(check, interval);\n return {\n cancel: function() {\n canceled = !0;\n observer.disconnect();\n window.removeEventListener(\"resize\", check);\n timeout.cancel();\n }\n };\n }\n function isShadowElement(element) {\n for (;element.parentNode; ) element = element.parentNode;\n return \"[object ShadowRoot]\" === element.toString();\n }\n var currentScript = \"undefined\" != typeof document ? document.currentScript : null;\n var getCurrentScript = memoize((function() {\n if (currentScript) return currentScript;\n if (currentScript = function() {\n try {\n var stack = function() {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n }();\n var stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n var scriptLocation = stackDetails && stackDetails[1];\n if (!scriptLocation) return;\n for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName(\"script\")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) {\n var script = _Array$prototype$slic2[_i22];\n if (script.src && script.src === scriptLocation) return script;\n }\n } catch (err) {}\n }()) return currentScript;\n throw new Error(\"Can not determine current script\");\n }));\n var currentUID = uniqueID();\n memoize((function() {\n var script;\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n var uid = script.getAttribute(\"data-uid\");\n if (uid && \"string\" == typeof uid) return uid;\n if ((uid = script.getAttribute(\"data-uid-auto\")) && \"string\" == typeof uid) return uid;\n if (script.src) {\n var hashedString = function(str) {\n var hash = \"\";\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1));\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n return hash;\n }(JSON.stringify({\n src: script.src,\n dataset: script.dataset\n }));\n uid = \"uid_\" + hashedString.slice(hashedString.length - 30);\n } else uid = uniqueID();\n script.setAttribute(\"data-uid-auto\", uid);\n return uid;\n }));\n function isPerc(str) {\n return \"string\" == typeof str && /^[0-9]+%$/.test(str);\n }\n function toNum(val) {\n if (\"number\" == typeof val) return val;\n var match = val.match(/^([0-9]+)(px|%)$/);\n if (!match) throw new Error(\"Could not match css value from \" + val);\n return parseInt(match[1], 10);\n }\n function toPx(val) {\n return toNum(val) + \"px\";\n }\n function toCSS(val) {\n return \"number\" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val);\n }\n function normalizeDimension(dim, max) {\n if (\"number\" == typeof dim) return dim;\n if (isPerc(dim)) return parseInt(max * toNum(dim) / 100, 10);\n if (\"string\" == typeof (str = dim) && /^[0-9]+px$/.test(str)) return toNum(dim);\n var str;\n throw new Error(\"Can not normalize dimension: \" + dim);\n }\n function global_getGlobal(win) {\n void 0 === win && (win = window);\n var globalKey = \"__post_robot_10_0_44__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function() {\n return {};\n };\n function globalStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return util_getOrSet(global_getGlobal(), key, (function() {\n var store = defStore();\n return {\n has: function(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function() {\n store = defStore();\n },\n keys: function() {\n return Object.keys(store);\n }\n };\n }));\n }\n var WildCard = function() {};\n function getWildcard() {\n var global = global_getGlobal();\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard;\n return global.WINDOW_WILDCARD;\n }\n function windowStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return globalStore(\"windowStore\").getOrSet(key, (function() {\n var winStore = new weakmap_CrossDomainSafeWeakMap;\n var getStore = function(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function(win) {\n delete getStore(win)[key];\n },\n getOrSet: function(win, getter) {\n return util_getOrSet(getStore(win), key, getter);\n }\n };\n }));\n }\n function getInstanceID() {\n return globalStore(\"instance\").getOrSet(\"instanceID\", uniqueID);\n }\n function resolveHelloPromise(win, _ref) {\n var domain = _ref.domain;\n var helloPromises = windowStore(\"helloPromises\");\n var existingPromise = helloPromises.get(win);\n existingPromise && existingPromise.resolve({\n domain: domain\n });\n var newPromise = promise_ZalgoPromise.resolve({\n domain: domain\n });\n helloPromises.set(win, newPromise);\n return newPromise;\n }\n function sayHello(win, _ref4) {\n return (0, _ref4.send)(win, \"postrobot_hello\", {\n instanceID: getInstanceID()\n }, {\n domain: \"*\",\n timeout: -1\n }).then((function(_ref5) {\n var origin = _ref5.origin, instanceID = _ref5.data.instanceID;\n resolveHelloPromise(win, {\n domain: origin\n });\n return {\n win: win,\n domain: origin,\n instanceID: instanceID\n };\n }));\n }\n function getWindowInstanceID(win, _ref6) {\n var send = _ref6.send;\n return windowStore(\"windowInstanceIDPromises\").getOrSet(win, (function() {\n return sayHello(win, {\n send: send\n }).then((function(_ref7) {\n return _ref7.instanceID;\n }));\n }));\n }\n function awaitWindowHello(win, timeout, name) {\n void 0 === timeout && (timeout = 5e3);\n void 0 === name && (name = \"Window\");\n var promise = function(win) {\n return windowStore(\"helloPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }(win);\n -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + \" did not load after \" + timeout + \"ms\")));\n return promise;\n }\n function markWindowKnown(win) {\n windowStore(\"knownWindows\").set(win, !0);\n }\n function isSerializedType(item) {\n return \"object\" == typeof item && null !== item && \"string\" == typeof item.__type__;\n }\n function determineType(val) {\n return void 0 === val ? \"undefined\" : null === val ? \"null\" : Array.isArray(val) ? \"array\" : \"function\" == typeof val ? \"function\" : \"object\" == typeof val ? val instanceof Error ? \"error\" : \"function\" == typeof val.then ? \"promise\" : \"[object RegExp]\" === {}.toString.call(val) ? \"regex\" : \"[object Date]\" === {}.toString.call(val) ? \"date\" : \"object\" : \"string\" == typeof val ? \"string\" : \"number\" == typeof val ? \"number\" : \"boolean\" == typeof val ? \"boolean\" : void 0;\n }\n function serializeType(type, val) {\n return {\n __type__: type,\n __val__: val\n };\n }\n var _SERIALIZER;\n var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) {\n return serializeType(\"error\", {\n message: _ref.message,\n stack: _ref.stack,\n code: _ref.code,\n data: _ref.data\n });\n }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) {\n return serializeType(\"regex\", val.source);\n }, _SERIALIZER.date = function(val) {\n return serializeType(\"date\", val.toJSON());\n }, _SERIALIZER.array = function(val) {\n return val;\n }, _SERIALIZER.object = function(val) {\n return val;\n }, _SERIALIZER.string = function(val) {\n return val;\n }, _SERIALIZER.number = function(val) {\n return val;\n }, _SERIALIZER.boolean = function(val) {\n return val;\n }, _SERIALIZER.null = function(val) {\n return val;\n }, _SERIALIZER[void 0] = function(val) {\n return serializeType(\"undefined\", val);\n }, _SERIALIZER);\n var defaultSerializers = {};\n var _DESERIALIZER;\n var DESERIALIZER = ((_DESERIALIZER = {}).function = function() {\n throw new Error(\"Function serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.error = function(_ref2) {\n var stack = _ref2.stack, code = _ref2.code, data = _ref2.data;\n var error = new Error(_ref2.message);\n error.code = code;\n data && (error.data = data);\n error.stack = stack + \"\\n\\n\" + error.stack;\n return error;\n }, _DESERIALIZER.promise = function() {\n throw new Error(\"Promise serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.regex = function(val) {\n return new RegExp(val);\n }, _DESERIALIZER.date = function(val) {\n return new Date(val);\n }, _DESERIALIZER.array = function(val) {\n return val;\n }, _DESERIALIZER.object = function(val) {\n return val;\n }, _DESERIALIZER.string = function(val) {\n return val;\n }, _DESERIALIZER.number = function(val) {\n return val;\n }, _DESERIALIZER.boolean = function(val) {\n return val;\n }, _DESERIALIZER.null = function(val) {\n return val;\n }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER);\n var defaultDeserializers = {};\n function needsBridgeForBrowser() {\n return !!utils_getUserAgent(window).match(/MSIE|trident|edge\\/12|edge\\/13/i);\n }\n function needsBridgeForWin(win) {\n return !isSameTopWindow(window, win);\n }\n function needsBridgeForDomain(domain, win) {\n if (domain) {\n if (getDomain() !== getDomainFromUrl(domain)) return !0;\n } else if (win && !isSameDomain(win)) return !0;\n return !1;\n }\n function needsBridge(_ref) {\n var win = _ref.win, domain = _ref.domain;\n return !(!needsBridgeForBrowser() || domain && !needsBridgeForDomain(domain, win) || win && !needsBridgeForWin(win));\n }\n function getBridgeName(domain) {\n return \"__postrobot_bridge___\" + (domain = domain || getDomainFromUrl(domain)).replace(/[^a-zA-Z0-9]+/g, \"_\");\n }\n function isBridge() {\n return Boolean(window.name && window.name === getBridgeName(getDomain()));\n }\n var documentBodyReady = new promise_ZalgoPromise((function(resolve) {\n if (window.document && window.document.body) return resolve(window.document.body);\n var interval = setInterval((function() {\n if (window.document && window.document.body) {\n clearInterval(interval);\n return resolve(window.document.body);\n }\n }), 10);\n }));\n function registerRemoteWindow(win) {\n windowStore(\"remoteWindowPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }\n function findRemoteWindow(win) {\n var remoteWinPromise = windowStore(\"remoteWindowPromises\").get(win);\n if (!remoteWinPromise) throw new Error(\"Remote window promise not found\");\n return remoteWinPromise;\n }\n function registerRemoteSendMessage(win, domain, sendMessage) {\n findRemoteWindow(win).resolve((function(remoteWin, remoteDomain, message) {\n if (remoteWin !== win) throw new Error(\"Remote window does not match window\");\n if (!matchDomain(remoteDomain, domain)) throw new Error(\"Remote domain \" + remoteDomain + \" does not match domain \" + domain);\n sendMessage.fireAndForget(message);\n }));\n }\n function rejectRemoteSendMessage(win, err) {\n findRemoteWindow(win).reject(err).catch(src_util_noop);\n }\n function linkWindow(_ref3) {\n var win = _ref3.win, name = _ref3.name, domain = _ref3.domain;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n var popupWindowsByWin = windowStore(\"popupWindowsByWin\");\n for (var _i2 = 0, _popupWindowsByName$k2 = popupWindowsByName.keys(); _i2 < _popupWindowsByName$k2.length; _i2++) {\n var winName = _popupWindowsByName$k2[_i2];\n var _details = popupWindowsByName.get(winName);\n _details && !isWindowClosed(_details.win) || popupWindowsByName.del(winName);\n }\n if (isWindowClosed(win)) return {\n win: win,\n name: name,\n domain: domain\n };\n var details = popupWindowsByWin.getOrSet(win, (function() {\n return name ? popupWindowsByName.getOrSet(name, (function() {\n return {\n win: win,\n name: name\n };\n })) : {\n win: win\n };\n }));\n if (details.win && details.win !== win) throw new Error(\"Different window already linked for window: \" + (name || \"undefined\"));\n if (name) {\n details.name = name;\n popupWindowsByName.set(name, details);\n }\n if (domain) {\n details.domain = domain;\n registerRemoteWindow(win);\n }\n popupWindowsByWin.set(win, details);\n return details;\n }\n function setupBridge(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n windowOpen = window.open, window.open = function(url, name, options, last) {\n var win = windowOpen.call(this, normalizeMockUrl(url), name, options, last);\n if (!win) return win;\n linkWindow({\n win: win,\n name: name,\n domain: url ? getDomainFromUrl(url) : null\n });\n return win;\n };\n var windowOpen;\n !function(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n on(\"postrobot_open_tunnel\", (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var bridgePromise = globalStore(\"bridges\").get(origin);\n if (!bridgePromise) throw new Error(\"Can not find bridge promise for domain \" + origin);\n return bridgePromise.then((function(bridge) {\n if (source !== bridge) throw new Error(\"Message source does not matched registered bridge for domain \" + origin);\n if (!data.name) throw new Error(\"Register window expected to be passed window name\");\n if (!data.sendMessage) throw new Error(\"Register window expected to be passed sendMessage method\");\n if (!popupWindowsByName.has(data.name)) throw new Error(\"Window with name \" + data.name + \" does not exist, or was not opened by this window\");\n var getWindowDetails = function() {\n return popupWindowsByName.get(data.name);\n };\n if (!getWindowDetails().domain) throw new Error(\"We do not have a registered domain for window \" + data.name);\n if (getWindowDetails().domain !== origin) throw new Error(\"Message origin \" + origin + \" does not matched registered window origin \" + (getWindowDetails().domain || \"unknown\"));\n registerRemoteSendMessage(getWindowDetails().win, origin, data.sendMessage);\n return {\n sendMessage: function(message) {\n if (window && !window.closed && getWindowDetails()) {\n var domain = getWindowDetails().domain;\n if (domain) try {\n receiveMessage({\n data: message,\n origin: domain,\n source: getWindowDetails().win\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n promise_ZalgoPromise.reject(err);\n }\n }\n }\n };\n }));\n }));\n }({\n on: on,\n send: send,\n receiveMessage: receiveMessage\n });\n !function(_ref2) {\n var send = _ref2.send;\n global_getGlobal(window).openTunnelToParent = function(_ref3) {\n var name = _ref3.name, source = _ref3.source, canary = _ref3.canary, sendMessage = _ref3.sendMessage;\n var tunnelWindows = globalStore(\"tunnelWindows\");\n var parentWindow = utils_getParent(window);\n if (!parentWindow) throw new Error(\"No parent window found to open tunnel to\");\n var id = function(_ref) {\n var name = _ref.name, source = _ref.source, canary = _ref.canary, sendMessage = _ref.sendMessage;\n !function() {\n var tunnelWindows = globalStore(\"tunnelWindows\");\n for (var _i2 = 0, _tunnelWindows$keys2 = tunnelWindows.keys(); _i2 < _tunnelWindows$keys2.length; _i2++) {\n var key = _tunnelWindows$keys2[_i2];\n isWindowClosed(tunnelWindows[key].source) && tunnelWindows.del(key);\n }\n }();\n var id = uniqueID();\n globalStore(\"tunnelWindows\").set(id, {\n name: name,\n source: source,\n canary: canary,\n sendMessage: sendMessage\n });\n return id;\n }({\n name: name,\n source: source,\n canary: canary,\n sendMessage: sendMessage\n });\n return send(parentWindow, \"postrobot_open_tunnel\", {\n name: name,\n sendMessage: function() {\n var tunnelWindow = tunnelWindows.get(id);\n if (tunnelWindow && tunnelWindow.source && !isWindowClosed(tunnelWindow.source)) {\n try {\n tunnelWindow.canary();\n } catch (err) {\n return;\n }\n tunnelWindow.sendMessage.apply(this, arguments);\n }\n }\n }, {\n domain: \"*\"\n });\n };\n }({\n send: send\n });\n !function(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n promise_ZalgoPromise.try((function() {\n var opener = getOpener(window);\n if (opener && needsBridge({\n win: opener\n })) {\n registerRemoteWindow(opener);\n return (win = opener, windowStore(\"remoteBridgeAwaiters\").getOrSet(win, (function() {\n return promise_ZalgoPromise.try((function() {\n var frame = getFrameByName(win, getBridgeName(getDomain()));\n if (frame) return isSameDomain(frame) && global_getGlobal(assertSameDomain(frame)) ? frame : new promise_ZalgoPromise((function(resolve) {\n var interval;\n var timeout;\n interval = setInterval((function() {\n if (frame && isSameDomain(frame) && global_getGlobal(assertSameDomain(frame))) {\n clearInterval(interval);\n clearTimeout(timeout);\n return resolve(frame);\n }\n }), 100);\n timeout = setTimeout((function() {\n clearInterval(interval);\n return resolve();\n }), 2e3);\n }));\n }));\n }))).then((function(bridge) {\n return bridge ? window.name ? global_getGlobal(assertSameDomain(bridge)).openTunnelToParent({\n name: window.name,\n source: window,\n canary: function() {},\n sendMessage: function(message) {\n try {\n window;\n } catch (err) {\n return;\n }\n if (window && !window.closed) try {\n receiveMessage({\n data: message,\n origin: this.origin,\n source: this.source\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n promise_ZalgoPromise.reject(err);\n }\n }\n }).then((function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n if (source !== opener) throw new Error(\"Source does not match opener\");\n registerRemoteSendMessage(source, origin, data.sendMessage);\n })).catch((function(err) {\n rejectRemoteSendMessage(opener, err);\n throw err;\n })) : rejectRemoteSendMessage(opener, new Error(\"Can not register with opener: window does not have a name\")) : rejectRemoteSendMessage(opener, new Error(\"Can not register with opener: no bridge found in opener\"));\n }));\n var win;\n }\n }));\n }({\n on: on,\n send: send,\n receiveMessage: receiveMessage\n });\n }\n function cleanupProxyWindows() {\n var idToProxyWindow = globalStore(\"idToProxyWindow\");\n for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) {\n var id = _idToProxyWindow$keys2[_i2];\n idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id);\n }\n }\n function getSerializedWindow(winPromise, _ref) {\n var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id;\n var windowNamePromise = winPromise.then((function(win) {\n if (isSameDomain(win)) return assertSameDomain(win).name;\n }));\n var windowTypePromise = winPromise.then((function(window) {\n if (isWindowClosed(window)) throw new Error(\"Window is closed, can not determine type\");\n return getOpener(window) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME;\n }));\n windowNamePromise.catch(src_util_noop);\n windowTypePromise.catch(src_util_noop);\n var getName = function() {\n return winPromise.then((function(win) {\n if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise;\n }));\n };\n return {\n id: id,\n getType: function() {\n return windowTypePromise;\n },\n getInstanceID: memoizePromise((function() {\n return winPromise.then((function(win) {\n return getWindowInstanceID(win, {\n send: send\n });\n }));\n })),\n close: function() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function() {\n return winPromise.then((function(win) {\n win.focus();\n }));\n },\n isClosed: function() {\n return winPromise.then((function(win) {\n return isWindowClosed(win);\n }));\n },\n setLocation: function(href, opts) {\n void 0 === opts && (opts = {});\n return winPromise.then((function(win) {\n var domain = window.location.protocol + \"//\" + window.location.host;\n var _opts$method = opts.method, method = void 0 === _opts$method ? \"get\" : _opts$method, body = opts.body;\n if (0 === href.indexOf(\"/\")) href = \"\" + domain + href; else if (!href.match(/^https?:\\/\\//) && 0 !== href.indexOf(domain)) throw new Error(\"Expected url to be http or https url, or absolute path, got \" + JSON.stringify(href));\n if (\"post\" === method) return getName().then((function(name) {\n if (!name) throw new Error(\"Can not post to window without target name\");\n !function(_ref3) {\n var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? \"post\" : _ref3$method;\n var form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) {\n var _body$key;\n var key = _Object$keys4[_i24];\n var input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", null == (_body$key = body[key]) ? void 0 : _body$key.toString());\n form.appendChild(input);\n }\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n }({\n url: href,\n target: name,\n method: method,\n body: body\n });\n }));\n if (\"get\" !== method) throw new Error(\"Unsupported method: \" + method);\n if (isSameDomain(win)) try {\n if (win.location && \"function\" == typeof win.location.replace) {\n win.location.replace(href);\n return;\n }\n } catch (err) {}\n win.location = href;\n }));\n },\n setName: function(name) {\n return winPromise.then((function(win) {\n linkWindow({\n win: win,\n name: name\n });\n var sameDomain = isSameDomain(win);\n var frame = getFrameForWindow(win);\n if (!sameDomain) throw new Error(\"Can not set name for cross-domain window: \" + name);\n assertSameDomain(win).name = name;\n frame && frame.setAttribute(\"name\", name);\n windowNamePromise = promise_ZalgoPromise.resolve(name);\n }));\n }\n };\n }\n var window_ProxyWindow = function() {\n function ProxyWindow(_ref2) {\n var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow;\n this.id = void 0;\n this.isProxyWindow = !0;\n this.serializedWindow = void 0;\n this.actualWindow = void 0;\n this.actualWindowPromise = void 0;\n this.send = void 0;\n this.name = void 0;\n this.actualWindowPromise = new promise_ZalgoPromise;\n this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, {\n send: send\n });\n globalStore(\"idToProxyWindow\").set(this.getID(), this);\n win && this.setWindow(win, {\n send: send\n });\n }\n var _proto = ProxyWindow.prototype;\n _proto.getID = function() {\n return this.serializedWindow.id;\n };\n _proto.getType = function() {\n return this.serializedWindow.getType();\n };\n _proto.isPopup = function() {\n return this.getType().then((function(type) {\n return type === WINDOW_TYPE.POPUP;\n }));\n };\n _proto.setLocation = function(href, opts) {\n var _this = this;\n return this.serializedWindow.setLocation(href, opts).then((function() {\n return _this;\n }));\n };\n _proto.getName = function() {\n return this.serializedWindow.getName();\n };\n _proto.setName = function(name) {\n var _this2 = this;\n return this.serializedWindow.setName(name).then((function() {\n return _this2;\n }));\n };\n _proto.close = function() {\n var _this3 = this;\n return this.serializedWindow.close().then((function() {\n return _this3;\n }));\n };\n _proto.focus = function() {\n var _this4 = this;\n var isPopupPromise = this.isPopup();\n var getNamePromise = this.getName();\n var reopenPromise = promise_ZalgoPromise.hash({\n isPopup: isPopupPromise,\n name: getNamePromise\n }).then((function(_ref3) {\n var name = _ref3.name;\n _ref3.isPopup && name && window.open(\"\", name);\n }));\n var focusPromise = this.serializedWindow.focus();\n return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() {\n return _this4;\n }));\n };\n _proto.isClosed = function() {\n return this.serializedWindow.isClosed();\n };\n _proto.getWindow = function() {\n return this.actualWindow;\n };\n _proto.setWindow = function(win, _ref4) {\n var send = _ref4.send;\n this.actualWindow = win;\n this.actualWindowPromise.resolve(this.actualWindow);\n this.serializedWindow = getSerializedWindow(this.actualWindowPromise, {\n send: send,\n id: this.getID()\n });\n windowStore(\"winToProxyWindow\").set(win, this);\n };\n _proto.awaitWindow = function() {\n return this.actualWindowPromise;\n };\n _proto.matchWindow = function(win, _ref5) {\n var _this5 = this;\n var send = _ref5.send;\n return promise_ZalgoPromise.try((function() {\n return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({\n proxyInstanceID: _this5.getInstanceID(),\n knownWindowInstanceID: getWindowInstanceID(win, {\n send: send\n })\n }).then((function(_ref6) {\n var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID;\n match && _this5.setWindow(win, {\n send: send\n });\n return match;\n }));\n }));\n };\n _proto.unwrap = function() {\n return this.actualWindow || this;\n };\n _proto.getInstanceID = function() {\n return this.serializedWindow.getInstanceID();\n };\n _proto.shouldClean = function() {\n return Boolean(this.actualWindow && isWindowClosed(this.actualWindow));\n };\n _proto.serialize = function() {\n return this.serializedWindow;\n };\n ProxyWindow.unwrap = function(win) {\n return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win;\n };\n ProxyWindow.serialize = function(win, _ref7) {\n var send = _ref7.send;\n cleanupProxyWindows();\n return ProxyWindow.toProxyWindow(win, {\n send: send\n }).serialize();\n };\n ProxyWindow.deserialize = function(serializedWindow, _ref8) {\n var send = _ref8.send;\n cleanupProxyWindows();\n return globalStore(\"idToProxyWindow\").get(serializedWindow.id) || new ProxyWindow({\n serializedWindow: serializedWindow,\n send: send\n });\n };\n ProxyWindow.isProxyWindow = function(obj) {\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n };\n ProxyWindow.toProxyWindow = function(win, _ref9) {\n var send = _ref9.send;\n cleanupProxyWindows();\n if (ProxyWindow.isProxyWindow(win)) return win;\n var actualWindow = win;\n return windowStore(\"winToProxyWindow\").get(actualWindow) || new ProxyWindow({\n win: actualWindow,\n send: send\n });\n };\n return ProxyWindow;\n }();\n function addMethod(id, val, name, source, domain) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, {\n val: val,\n name: name,\n domain: domain,\n source: source\n }); else {\n proxyWindowMethods.del(id);\n methodStore.getOrSet(source, (function() {\n return {};\n }))[id] = {\n domain: domain,\n name: name,\n val: val,\n source: source\n };\n }\n }\n function lookupMethod(source, id) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n return methodStore.getOrSet(source, (function() {\n return {};\n }))[id] || proxyWindowMethods.get(id);\n }\n function function_serializeFunction(destination, domain, val, key, _ref3) {\n on = (_ref = {\n on: _ref3.on,\n send: _ref3.send\n }).on, send = _ref.send, globalStore(\"builtinListeners\").getOrSet(\"functionCalls\", (function() {\n return on(\"postrobot_method\", {\n domain: \"*\"\n }, (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var id = data.id, name = data.name;\n var meth = lookupMethod(source, id);\n if (!meth) throw new Error(\"Could not find method '\" + name + \"' with id: \" + data.id + \" in \" + getDomain(window));\n var methodSource = meth.source, domain = meth.domain, val = meth.val;\n return promise_ZalgoPromise.try((function() {\n if (!matchDomain(domain, origin)) throw new Error(\"Method '\" + data.name + \"' domain \" + JSON.stringify(util_isRegex(meth.domain) ? meth.domain.source : meth.domain) + \" does not match origin \" + origin + \" in \" + getDomain(window));\n if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, {\n send: send\n }).then((function(match) {\n if (!match) throw new Error(\"Method call '\" + data.name + \"' failed - proxy window does not match source in \" + getDomain(window));\n }));\n })).then((function() {\n return val.apply({\n source: source,\n origin: origin\n }, data.args);\n }), (function(err) {\n return promise_ZalgoPromise.try((function() {\n if (val.onError) return val.onError(err);\n })).then((function() {\n err.stack && (err.stack = \"Remote call to \" + name + \"(\" + function(args) {\n void 0 === args && (args = []);\n return arrayFrom(args).map((function(arg) {\n return \"string\" == typeof arg ? \"'\" + arg + \"'\" : void 0 === arg ? \"undefined\" : null === arg ? \"null\" : \"boolean\" == typeof arg ? arg.toString() : Array.isArray(arg) ? \"[ ... ]\" : \"object\" == typeof arg ? \"{ ... }\" : \"function\" == typeof arg ? \"() => { ... }\" : \"<\" + typeof arg + \">\";\n })).join(\", \");\n }(data.args) + \") failed\\n\\n\" + err.stack);\n throw err;\n }));\n })).then((function(result) {\n return {\n result: result,\n id: id,\n name: name\n };\n }));\n }));\n }));\n var _ref, on, send;\n var id = val.__id__ || uniqueID();\n destination = window_ProxyWindow.unwrap(destination);\n var name = val.__name__ || val.name || key;\n \"string\" == typeof name && \"function\" == typeof name.indexOf && 0 === name.indexOf(\"anonymous::\") && (name = name.replace(\"anonymous::\", key + \"::\"));\n if (window_ProxyWindow.isProxyWindow(destination)) {\n addMethod(id, val, name, destination, domain);\n destination.awaitWindow().then((function(win) {\n addMethod(id, val, name, win, domain);\n }));\n } else addMethod(id, val, name, destination, domain);\n return serializeType(\"cross_domain_function\", {\n id: id,\n name: name\n });\n }\n function serializeMessage(destination, domain, obj, _ref) {\n var _serialize;\n var on = _ref.on, send = _ref.send;\n return function(obj, serializers) {\n void 0 === serializers && (serializers = defaultSerializers);\n var result = JSON.stringify(obj, (function(key) {\n var val = this[key];\n if (isSerializedType(this)) return val;\n var type = determineType(val);\n if (!type) return val;\n var serializer = serializers[type] || SERIALIZER[type];\n return serializer ? serializer(val, key) : val;\n }));\n return void 0 === result ? \"undefined\" : result;\n }(obj, ((_serialize = {}).promise = function(val, key) {\n return function(destination, domain, val, key, _ref) {\n return serializeType(\"cross_domain_zalgo_promise\", {\n then: function_serializeFunction(destination, domain, (function(resolve, reject) {\n return val.then(resolve, reject);\n }), key, {\n on: _ref.on,\n send: _ref.send\n })\n });\n }(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.function = function(val, key) {\n return function_serializeFunction(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.object = function(val) {\n return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType(\"cross_domain_window\", window_ProxyWindow.serialize(val, {\n send: send\n })) : val;\n }, _serialize));\n }\n function deserializeMessage(source, origin, message, _ref2) {\n var _deserialize;\n var send = _ref2.send;\n return function(str, deserializers) {\n void 0 === deserializers && (deserializers = defaultDeserializers);\n if (\"undefined\" !== str) return JSON.parse(str, (function(key, val) {\n if (isSerializedType(this)) return val;\n var type;\n var value;\n if (isSerializedType(val)) {\n type = val.__type__;\n value = val.__val__;\n } else {\n type = determineType(val);\n value = val;\n }\n if (!type) return value;\n var deserializer = deserializers[type] || DESERIALIZER[type];\n return deserializer ? deserializer(value, key) : value;\n }));\n }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) {\n return function(source, origin, _ref2) {\n return new promise_ZalgoPromise(_ref2.then);\n }(0, 0, serializedPromise);\n }, _deserialize.cross_domain_function = function(serializedFunction) {\n return function(source, origin, _ref4, _ref5) {\n var id = _ref4.id, name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function(opts) {\n void 0 === opts && (opts = {});\n function crossDomainFunctionWrapper() {\n var _arguments = arguments;\n return window_ProxyWindow.toProxyWindow(source, {\n send: send\n }).awaitWindow().then((function(win) {\n var meth = lookupMethod(win, id);\n if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({\n source: window,\n origin: getDomain()\n }, _arguments);\n var _args = [].slice.call(_arguments);\n return opts.fireAndForget ? send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !0\n }) : send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !1\n }).then((function(res) {\n return res.data.result;\n }));\n })).catch((function(err) {\n throw err;\n }));\n }\n crossDomainFunctionWrapper.__name__ = name;\n crossDomainFunctionWrapper.__origin__ = origin;\n crossDomainFunctionWrapper.__source__ = source;\n crossDomainFunctionWrapper.__id__ = id;\n crossDomainFunctionWrapper.origin = origin;\n return crossDomainFunctionWrapper;\n };\n var crossDomainFunctionWrapper = getDeserializedFunction();\n crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({\n fireAndForget: !0\n });\n return crossDomainFunctionWrapper;\n }(source, origin, serializedFunction, {\n send: send\n });\n }, _deserialize.cross_domain_window = function(serializedWindow) {\n return window_ProxyWindow.deserialize(serializedWindow, {\n send: send\n });\n }, _deserialize));\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) {\n 0 === domain.indexOf(\"file:\") && (domain = \"*\");\n win.postMessage(serializedMessage, domain);\n };\n SEND_MESSAGE_STRATEGIES.postrobot_bridge = function(win, serializedMessage, domain) {\n if (!needsBridgeForBrowser() && !isBridge()) throw new Error(\"Bridge not needed for browser\");\n if (isSameDomain(win)) throw new Error(\"Post message through bridge disabled between same domain windows\");\n if (!1 !== isSameTopWindow(window, win)) throw new Error(\"Can only use bridge to communicate between two different windows, not between frames\");\n !function(win, domain, message) {\n var messagingChild = isOpener(window, win);\n var messagingParent = isOpener(win, window);\n if (!messagingChild && !messagingParent) throw new Error(\"Can only send messages to and from parent and popup windows\");\n findRemoteWindow(win).then((function(sendMessage) {\n return sendMessage(win, domain, message);\n }));\n }(win, domain, serializedMessage);\n };\n SEND_MESSAGE_STRATEGIES.postrobot_global = function(win, serializedMessage) {\n if (!utils_getUserAgent(window).match(/MSIE|rv:11|trident|edge\\/12|edge\\/13/i)) throw new Error(\"Global messaging not needed for browser\");\n if (!isSameDomain(win)) throw new Error(\"Post message through global disabled between different domain windows\");\n if (!1 !== isSameTopWindow(window, win)) throw new Error(\"Can only use global to communicate between two different windows, not between frames\");\n var foreignGlobal = global_getGlobal(win);\n if (!foreignGlobal) throw new Error(\"Can not find postRobot global on foreign window\");\n foreignGlobal.receiveMessage({\n source: window,\n origin: getDomain(),\n data: serializedMessage\n });\n };\n function send_sendMessage(win, domain, message, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n return promise_ZalgoPromise.try((function() {\n var domainBuffer = windowStore().getOrSet(win, (function() {\n return {};\n }));\n domainBuffer.buffer = domainBuffer.buffer || [];\n domainBuffer.buffer.push(message);\n domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() {\n if (isWindowClosed(win)) throw new Error(\"Window is closed\");\n var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_10_0_44__ = domainBuffer.buffer || [], \n _ref), {\n on: on,\n send: send\n });\n var _ref;\n delete domainBuffer.buffer;\n var strategies = Object.keys(SEND_MESSAGE_STRATEGIES);\n var errors = [];\n for (var _i2 = 0; _i2 < strategies.length; _i2++) {\n var strategyName = strategies[_i2];\n try {\n SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n } catch (err) {\n errors.push(err);\n }\n }\n if (errors.length === strategies.length) throw new Error(\"All post-robot messaging strategies failed:\\n\\n\" + errors.map((function(err, i) {\n return i + \". \" + stringifyError(err);\n })).join(\"\\n\\n\"));\n }));\n return domainBuffer.flush.then((function() {\n delete domainBuffer.flush;\n }));\n })).then(src_util_noop);\n }\n function getResponseListener(hash) {\n return globalStore(\"responseListeners\").get(hash);\n }\n function deleteResponseListener(hash) {\n globalStore(\"responseListeners\").del(hash);\n }\n function isResponseListenerErrored(hash) {\n return globalStore(\"erroredResponseListeners\").has(hash);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n var requestListeners = windowStore(\"requestListeners\");\n \"*\" === win && (win = null);\n \"*\" === domain && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) {\n var winQualifier = _ref3[_i4];\n if (winQualifier) {\n var nameListeners = requestListeners.get(winQualifier);\n if (nameListeners) {\n var domainListeners = nameListeners[name];\n if (domainListeners) {\n if (domain && \"string\" == typeof domain) {\n if (domainListeners[domain]) return domainListeners[domain];\n if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) {\n var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener;\n if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener;\n }\n }\n if (domainListeners[\"*\"]) return domainListeners[\"*\"];\n }\n }\n }\n }\n }\n function handleRequest(source, origin, message, _ref) {\n var on = _ref.on, send = _ref.send;\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n var logName = \"postrobot_method\" === message.name && message.data && \"string\" == typeof message.data.name ? message.data.name + \"()\" : message.name;\n function sendResponse(ack, data, error) {\n return promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_response\",\n hash: message.hash,\n name: message.name,\n ack: ack,\n data: data,\n error: error\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send response message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n }));\n }\n 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, \n Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() + \")\" : pattern.toString()));\n var pattern;\n if (source !== options.win) throw new Error(\"Response source does not match registered window\");\n deleteResponseListener(message.hash);\n \"error\" === message.ack ? options.promise.reject(message.error) : \"success\" === message.ack && options.promise.resolve({\n source: source,\n origin: origin,\n data: message.data\n });\n }\n }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n var receivedMessages = globalStore(\"receivedMessages\");\n try {\n if (!window || window.closed || !event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin;\n var messages = function(message, source, origin, _ref) {\n var on = _ref.on, send = _ref.send;\n var parsedMessage;\n try {\n parsedMessage = deserializeMessage(source, origin, message, {\n on: on,\n send: send\n });\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" == typeof parsedMessage && null !== parsedMessage) {\n var parseMessages = parsedMessage.__post_robot_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 for (var _i2 = 0; _i2 < messages.length; _i2++) {\n var message = messages[_i2];\n if (receivedMessages.has(message.id)) return;\n receivedMessages.set(message.id, !0);\n if (isWindowClosed(source) && !message.fireAndForget) return;\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 }\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, win = _ref4.win, domain = _ref4.domain;\n var requestListeners = windowStore(\"requestListeners\");\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n var listenersCollection = [];\n for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: _win2[_i8]\n }, listener));\n return {\n cancel: function() {\n for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n var _listenersCollection = [];\n for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _domain2[_i12]\n }, listener));\n return {\n cancel: function() {\n for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && \"*\" !== win || (win = getWildcard());\n 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() {\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() {\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_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function cleanUpWindow(win) {\n for (var _i2 = 0, _requestPromises$get2 = windowStore(\"requestPromises\").get(win, []); _i2 < _requestPromises$get2.length; _i2++) _requestPromises$get2[_i2].reject(new Error(\"Window \" + (isWindowClosed(win) ? \"closed\" : \"cleaned up\") + \" before response\")).catch(src_util_noop);\n }\n var src_bridge;\n src_bridge = {\n setupBridge: setupBridge,\n openBridge: function(url, domain) {\n var bridges = globalStore(\"bridges\");\n var bridgeFrames = globalStore(\"bridgeFrames\");\n domain = domain || getDomainFromUrl(url);\n return bridges.getOrSet(domain, (function() {\n return promise_ZalgoPromise.try((function() {\n if (getDomain() === domain) throw new Error(\"Can not open bridge on the same domain as current domain: \" + domain);\n var name = getBridgeName(domain);\n if (getFrameByName(window, name)) throw new Error(\"Frame with name \" + name + \" already exists on page\");\n var iframe = function(name, url) {\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"name\", name);\n iframe.setAttribute(\"id\", name);\n iframe.setAttribute(\"style\", \"display: none; margin: 0; padding: 0; border: 0px none; overflow: hidden;\");\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"border\", \"0\");\n iframe.setAttribute(\"scrolling\", \"no\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"tabindex\", \"-1\");\n iframe.setAttribute(\"hidden\", \"true\");\n iframe.setAttribute(\"title\", \"\");\n iframe.setAttribute(\"role\", \"presentation\");\n iframe.src = url;\n return iframe;\n }(name, url);\n bridgeFrames.set(domain, iframe);\n return documentBodyReady.then((function(body) {\n body.appendChild(iframe);\n var bridge = iframe.contentWindow;\n return new promise_ZalgoPromise((function(resolve, reject) {\n iframe.addEventListener(\"load\", resolve);\n iframe.addEventListener(\"error\", reject);\n })).then((function() {\n return awaitWindowHello(bridge, 5e3, \"Bridge \" + url);\n })).then((function() {\n return bridge;\n }));\n }));\n }));\n }));\n },\n linkWindow: linkWindow,\n linkUrl: function(win, url) {\n linkWindow({\n win: win,\n domain: getDomainFromUrl(url)\n });\n },\n isBridge: isBridge,\n needsBridge: needsBridge,\n needsBridgeForBrowser: needsBridgeForBrowser,\n hasBridge: function(url, domain) {\n return globalStore(\"bridges\").has(domain || getDomainFromUrl(url));\n },\n needsBridgeForWin: needsBridgeForWin,\n needsBridgeForDomain: needsBridgeForDomain,\n destroyBridges: function() {\n var bridges = globalStore(\"bridges\");\n var bridgeFrames = globalStore(\"bridgeFrames\");\n for (var _i4 = 0, _bridgeFrames$keys2 = bridgeFrames.keys(); _i4 < _bridgeFrames$keys2.length; _i4++) {\n var frame = bridgeFrames.get(_bridgeFrames$keys2[_i4]);\n frame && frame.parentNode && frame.parentNode.removeChild(frame);\n }\n bridgeFrames.reset();\n bridges.reset();\n }\n };\n function lib_global_getGlobal(win) {\n if (!isSameDomain(win)) throw new Error(\"Can not get global for window on different domain\");\n win.__zoid_9_0_86__ || (win.__zoid_9_0_86__ = {});\n return win.__zoid_9_0_86__;\n }\n function tryGlobal(win, handler) {\n try {\n return handler(lib_global_getGlobal(win));\n } catch (err) {}\n }\n function getProxyObject(obj) {\n return {\n get: function() {\n var _this = this;\n return promise_ZalgoPromise.try((function() {\n if (_this.source && _this.source !== window) throw new Error(\"Can not call get on proxy object from a remote window\");\n return obj;\n }));\n }\n };\n }\n function basicSerialize(data) {\n return base64encode(JSON.stringify(data));\n }\n function getUIDRefStore(win) {\n var global = lib_global_getGlobal(win);\n global.references = global.references || {};\n return global.references;\n }\n function crossDomainSerialize(_ref) {\n var data = _ref.data, metaData = _ref.metaData, sender = _ref.sender, receiver = _ref.receiver, _ref$passByReference = _ref.passByReference, passByReference = void 0 !== _ref$passByReference && _ref$passByReference, _ref$basic = _ref.basic, basic = void 0 !== _ref$basic && _ref$basic;\n var proxyWin = setup_toProxyWindow(receiver.win);\n var serializedMessage = basic ? JSON.stringify(data) : serializeMessage(proxyWin, receiver.domain, data, {\n on: on_on,\n send: send_send\n });\n var reference = passByReference ? function(val) {\n var uid = uniqueID();\n getUIDRefStore(window)[uid] = val;\n return {\n type: \"uid\",\n uid: uid\n };\n }(serializedMessage) : {\n type: \"raw\",\n val: serializedMessage\n };\n return {\n serializedData: basicSerialize({\n sender: {\n domain: sender.domain\n },\n metaData: metaData,\n reference: reference\n }),\n cleanReference: function() {\n win = window, \"uid\" === (ref = reference).type && delete getUIDRefStore(win)[ref.uid];\n var win, ref;\n }\n };\n }\n function crossDomainDeserialize(_ref2) {\n var sender = _ref2.sender, _ref2$basic = _ref2.basic, basic = void 0 !== _ref2$basic && _ref2$basic;\n var message = function(serializedData) {\n return JSON.parse(function(str) {\n if (\"function\" == typeof atob) return decodeURIComponent([].map.call(atob(str), (function(c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })).join(\"\"));\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"base64\").toString(\"utf8\");\n throw new Error(\"Can not find window.atob or Buffer\");\n }(serializedData));\n }(_ref2.data);\n var reference = message.reference, metaData = message.metaData;\n var win;\n win = \"function\" == typeof sender.win ? sender.win({\n metaData: metaData\n }) : sender.win;\n var domain;\n domain = \"function\" == typeof sender.domain ? sender.domain({\n metaData: metaData\n }) : \"string\" == typeof sender.domain ? sender.domain : message.sender.domain;\n var serializedData = function(win, ref) {\n if (\"raw\" === ref.type) return ref.val;\n if (\"uid\" === ref.type) return getUIDRefStore(win)[ref.uid];\n throw new Error(\"Unsupported ref type: \" + ref.type);\n }(win, reference);\n return {\n data: basic ? JSON.parse(serializedData) : function(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }(win, domain, serializedData),\n metaData: metaData,\n sender: {\n win: win,\n domain: domain\n },\n reference: reference\n };\n }\n var PROP_TYPE = {\n STRING: \"string\",\n OBJECT: \"object\",\n FUNCTION: \"function\",\n BOOLEAN: \"boolean\",\n NUMBER: \"number\",\n ARRAY: \"array\"\n };\n var PROP_SERIALIZATION = {\n JSON: \"json\",\n DOTIFY: \"dotify\",\n BASE64: \"base64\"\n };\n var CONTEXT = WINDOW_TYPE;\n var EVENT = {\n RENDER: \"zoid-render\",\n RENDERED: \"zoid-rendered\",\n DISPLAY: \"zoid-display\",\n ERROR: \"zoid-error\",\n CLOSE: \"zoid-close\",\n DESTROY: \"zoid-destroy\",\n PROPS: \"zoid-props\",\n RESIZE: \"zoid-resize\",\n FOCUS: \"zoid-focus\"\n };\n function buildChildWindowName(_ref) {\n return \"__zoid__\" + _ref.name + \"__\" + _ref.serializedPayload + \"__\";\n }\n function parseWindowName(windowName) {\n if (!windowName) throw new Error(\"No window name\");\n var _windowName$split = windowName.split(\"__\"), zoidcomp = _windowName$split[1], name = _windowName$split[2], serializedInitialPayload = _windowName$split[3];\n if (\"zoid\" !== zoidcomp) throw new Error(\"Window not rendered by zoid - got \" + zoidcomp);\n if (!name) throw new Error(\"Expected component name\");\n if (!serializedInitialPayload) throw new Error(\"Expected serialized payload ref\");\n return {\n name: name,\n serializedInitialPayload: serializedInitialPayload\n };\n }\n var parseInitialParentPayload = memoize((function(windowName) {\n var _crossDomainDeseriali = crossDomainDeserialize({\n data: parseWindowName(windowName).serializedInitialPayload,\n sender: {\n win: function(_ref2) {\n return function(windowRef) {\n if (\"opener\" === windowRef.type) return assertExists(\"opener\", getOpener(window));\n if (\"parent\" === windowRef.type && \"number\" == typeof windowRef.distance) return assertExists(\"parent\", function(win, n) {\n void 0 === n && (n = 1);\n return function(win, n) {\n void 0 === n && (n = 1);\n var parent = win;\n for (var i = 0; i < n; i++) {\n if (!parent) return;\n parent = utils_getParent(parent);\n }\n return parent;\n }(win, getDistanceFromTop(win) - n);\n }(window, windowRef.distance));\n if (\"global\" === windowRef.type && windowRef.uid && \"string\" == typeof windowRef.uid) {\n var _ret = function() {\n var uid = windowRef.uid;\n var ancestor = getAncestor(window);\n if (!ancestor) throw new Error(\"Can not find ancestor window\");\n for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(ancestor); _i2 < _getAllFramesInWindow2.length; _i2++) {\n var frame = _getAllFramesInWindow2[_i2];\n if (isSameDomain(frame)) {\n var win = tryGlobal(frame, (function(global) {\n return global.windows && global.windows[uid];\n }));\n if (win) return {\n v: win\n };\n }\n }\n }();\n if (\"object\" == typeof _ret) return _ret.v;\n } else if (\"name\" === windowRef.type) {\n var name = windowRef.name;\n return assertExists(\"namedWindow\", function(win, name) {\n return getFrameByName(win, name) || function findChildFrameByName(win, name) {\n var frame = getFrameByName(win, name);\n if (frame) return frame;\n for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) {\n var namedFrame = findChildFrameByName(_getFrames4[_i11], name);\n if (namedFrame) return namedFrame;\n }\n }(getTop(win) || win, name);\n }(assertExists(\"ancestor\", getAncestor(window)), name));\n }\n throw new Error(\"Unable to find \" + windowRef.type + \" parent component window\");\n }(_ref2.metaData.windowRef);\n }\n }\n });\n return {\n parent: _crossDomainDeseriali.sender,\n payload: _crossDomainDeseriali.data,\n reference: _crossDomainDeseriali.reference\n };\n }));\n function getInitialParentPayload() {\n return parseInitialParentPayload(window.name);\n }\n function window_getWindowRef(targetWindow, currentWindow) {\n void 0 === currentWindow && (currentWindow = window);\n if (targetWindow === utils_getParent(currentWindow)) return {\n type: \"parent\",\n distance: getDistanceFromTop(targetWindow)\n };\n if (targetWindow === getOpener(currentWindow)) return {\n type: \"opener\"\n };\n if (isSameDomain(targetWindow) && !(win = targetWindow, win === getTop(win))) {\n var windowName = assertSameDomain(targetWindow).name;\n if (windowName) return {\n type: \"name\",\n name: windowName\n };\n }\n var win;\n }\n function normalizeChildProp(propsDef, props, key, value, helpers) {\n if (!propsDef.hasOwnProperty(key)) return value;\n var prop = propsDef[key];\n return \"function\" == typeof prop.childDecorate ? prop.childDecorate({\n value: value,\n uid: helpers.uid,\n tag: helpers.tag,\n close: helpers.close,\n focus: helpers.focus,\n onError: helpers.onError,\n onProps: helpers.onProps,\n resize: helpers.resize,\n getParent: helpers.getParent,\n getParentDomain: helpers.getParentDomain,\n show: helpers.show,\n hide: helpers.hide,\n export: helpers.export,\n getSiblings: helpers.getSiblings\n }) : value;\n }\n function child_focus() {\n return promise_ZalgoPromise.try((function() {\n window.focus();\n }));\n }\n function child_destroy() {\n return promise_ZalgoPromise.try((function() {\n window.close();\n }));\n }\n var props_defaultNoop = function() {\n return src_util_noop;\n };\n var props_decorateOnce = function(_ref) {\n return once(_ref.value);\n };\n function eachProp(props, propsDef, handler) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(_extends({}, props, propsDef)); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n handler(key, propsDef[key], props[key]);\n }\n }\n function serializeProps(propsDef, props, method) {\n var params = {};\n return promise_ZalgoPromise.all(function(props, propsDef, handler) {\n var results = [];\n eachProp(props, propsDef, (function(key, propDef, value) {\n var result = function(key, propDef, value) {\n return promise_ZalgoPromise.resolve().then((function() {\n var _METHOD$GET$METHOD$PO, _METHOD$GET$METHOD$PO2;\n if (null != value && propDef) {\n var getParam = (_METHOD$GET$METHOD$PO = {}, _METHOD$GET$METHOD$PO.get = propDef.queryParam, \n _METHOD$GET$METHOD$PO.post = propDef.bodyParam, _METHOD$GET$METHOD$PO)[method];\n var getValue = (_METHOD$GET$METHOD$PO2 = {}, _METHOD$GET$METHOD$PO2.get = propDef.queryValue, \n _METHOD$GET$METHOD$PO2.post = propDef.bodyValue, _METHOD$GET$METHOD$PO2)[method];\n if (getParam) return promise_ZalgoPromise.hash({\n finalParam: promise_ZalgoPromise.try((function() {\n return \"function\" == typeof getParam ? getParam({\n value: value\n }) : \"string\" == typeof getParam ? getParam : key;\n })),\n finalValue: promise_ZalgoPromise.try((function() {\n return \"function\" == typeof getValue && isDefined(value) ? getValue({\n value: value\n }) : value;\n }))\n }).then((function(_ref) {\n var finalParam = _ref.finalParam, finalValue = _ref.finalValue;\n var result;\n if (\"boolean\" == typeof finalValue) result = finalValue.toString(); else if (\"string\" == typeof finalValue) result = finalValue.toString(); else if (\"object\" == typeof finalValue && null !== finalValue) {\n if (propDef.serialization === PROP_SERIALIZATION.JSON) result = JSON.stringify(finalValue); else if (propDef.serialization === PROP_SERIALIZATION.BASE64) result = base64encode(JSON.stringify(finalValue)); else if (propDef.serialization === PROP_SERIALIZATION.DOTIFY || !propDef.serialization) {\n result = function dotify(obj, prefix, newobj) {\n void 0 === prefix && (prefix = \"\");\n void 0 === newobj && (newobj = {});\n prefix = prefix ? prefix + \".\" : prefix;\n for (var key in obj) obj.hasOwnProperty(key) && null != obj[key] && \"function\" != typeof obj[key] && (obj[key] && Array.isArray(obj[key]) && obj[key].length && obj[key].every((function(val) {\n return \"object\" != typeof val;\n })) ? newobj[\"\" + prefix + key + \"[]\"] = obj[key].join(\",\") : obj[key] && \"object\" == typeof obj[key] ? newobj = dotify(obj[key], \"\" + prefix + key, newobj) : newobj[\"\" + prefix + key] = obj[key].toString());\n return newobj;\n }(finalValue, key);\n for (var _i2 = 0, _Object$keys2 = Object.keys(result); _i2 < _Object$keys2.length; _i2++) {\n var dotkey = _Object$keys2[_i2];\n params[dotkey] = result[dotkey];\n }\n return;\n }\n } else \"number\" == typeof finalValue && (result = finalValue.toString());\n params[finalParam] = result;\n }));\n }\n }));\n }(key, propDef, value);\n results.push(result);\n }));\n return results;\n }(props, propsDef)).then((function() {\n return params;\n }));\n }\n function parentComponent(_ref) {\n var uid = _ref.uid, options = _ref.options, _ref$overrides = _ref.overrides, overrides = void 0 === _ref$overrides ? {} : _ref$overrides, _ref$parentWin = _ref.parentWin, parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin;\n var propsDef = options.propsDef, containerTemplate = options.containerTemplate, prerenderTemplate = options.prerenderTemplate, tag = options.tag, name = options.name, attributes = options.attributes, dimensions = options.dimensions, autoResize = options.autoResize, url = options.url, domainMatch = options.domain, xports = options.exports;\n var initPromise = new promise_ZalgoPromise;\n var handledErrors = [];\n var clean = cleanup();\n var state = {};\n var inputProps = {};\n var internalState = {\n visible: !0\n };\n var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, \n emitter = {\n on: function(eventName, handler) {\n var handlerList = handlers[eventName] = handlers[eventName] || [];\n handlerList.push(handler);\n var cancelled = !1;\n return {\n cancel: function() {\n if (!cancelled) {\n cancelled = !0;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n }\n };\n },\n once: function(eventName, handler) {\n var listener = emitter.on(eventName, (function() {\n listener.cancel();\n handler();\n }));\n return listener;\n },\n trigger: function(eventName) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3];\n var handlerList = handlers[eventName];\n var promises = [];\n if (handlerList) {\n var _loop = function(_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(eventName) {\n if (triggered[eventName]) return promise_ZalgoPromise.resolve();\n triggered[eventName] = !0;\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) args[_key4 - 1] = arguments[_key4];\n return emitter.trigger.apply(emitter, [ eventName ].concat(args));\n },\n reset: function() {\n handlers = {};\n }\n });\n var triggered, handlers, emitter;\n var props = overrides.props ? overrides.props : {};\n var currentProxyWin;\n var currentProxyContainer;\n var childComponent;\n var currentChildDomain;\n var currentContainer;\n var onErrorOverride = overrides.onError;\n var getProxyContainerOverride = overrides.getProxyContainer;\n var showOverride = overrides.show;\n var hideOverride = overrides.hide;\n var closeOverride = overrides.close;\n var renderContainerOverride = overrides.renderContainer;\n var getProxyWindowOverride = overrides.getProxyWindow;\n var setProxyWinOverride = overrides.setProxyWin;\n var openFrameOverride = overrides.openFrame;\n var openPrerenderFrameOverride = overrides.openPrerenderFrame;\n var prerenderOverride = overrides.prerender;\n var openOverride = overrides.open;\n var openPrerenderOverride = overrides.openPrerender;\n var watchForUnloadOverride = overrides.watchForUnload;\n var getInternalStateOverride = overrides.getInternalState;\n var setInternalStateOverride = overrides.setInternalState;\n var getDimensions = function() {\n return \"function\" == typeof dimensions ? dimensions({\n props: props\n }) : dimensions;\n };\n var resolveInitPromise = function() {\n return promise_ZalgoPromise.try((function() {\n return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve();\n }));\n };\n var rejectInitPromise = function(err) {\n return promise_ZalgoPromise.try((function() {\n return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err);\n }));\n };\n var getPropsForChild = function(initialChildDomain) {\n var result = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var prop = propsDef[key];\n prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(initialChildDomain, getDomain(window)) || (result[key] = props[key]);\n }\n return promise_ZalgoPromise.hash(result);\n };\n var getInternalState = function() {\n return promise_ZalgoPromise.try((function() {\n return getInternalStateOverride ? getInternalStateOverride() : internalState;\n }));\n };\n var setInternalState = function(newInternalState) {\n return promise_ZalgoPromise.try((function() {\n return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState);\n }));\n };\n var getProxyWindow = function() {\n return getProxyWindowOverride ? getProxyWindowOverride() : promise_ZalgoPromise.try((function() {\n var windowProp = props.window;\n if (windowProp) {\n var _proxyWin = setup_toProxyWindow(windowProp);\n clean.register((function() {\n return windowProp.close();\n }));\n return _proxyWin;\n }\n return new window_ProxyWindow({\n send: send_send\n });\n }));\n };\n var setProxyWin = function(proxyWin) {\n return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise.try((function() {\n currentProxyWin = proxyWin;\n }));\n };\n var show = function() {\n return showOverride ? showOverride() : promise_ZalgoPromise.hash({\n setState: setInternalState({\n visible: !0\n }),\n showElement: currentProxyContainer ? currentProxyContainer.get().then(showElement) : null\n }).then(src_util_noop);\n };\n var hide = function() {\n return hideOverride ? hideOverride() : promise_ZalgoPromise.hash({\n setState: setInternalState({\n visible: !1\n }),\n showElement: currentProxyContainer ? currentProxyContainer.get().then(hideElement) : null\n }).then(src_util_noop);\n };\n var getUrl = function() {\n return \"function\" == typeof url ? url({\n props: props\n }) : url;\n };\n var getAttributes = function() {\n return \"function\" == typeof attributes ? attributes({\n props: props\n }) : attributes;\n };\n var getInitialChildDomain = function() {\n return getDomainFromUrl(getUrl());\n };\n var openFrame = function(context, _ref2) {\n var windowName = _ref2.windowName;\n return openFrameOverride ? openFrameOverride(context, {\n windowName: windowName\n }) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({\n attributes: _extends({\n name: windowName,\n title: name\n }, getAttributes().iframe)\n }));\n }));\n };\n var openPrerenderFrame = function(context) {\n return openPrerenderFrameOverride ? openPrerenderFrameOverride(context) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({\n attributes: _extends({\n name: \"__zoid_prerender_frame__\" + name + \"_\" + uniqueID() + \"__\",\n title: \"prerender__\" + name\n }, getAttributes().iframe)\n }));\n }));\n };\n var openPrerender = function(context, proxyWin, proxyPrerenderFrame) {\n return openPrerenderOverride ? openPrerenderOverride(context, proxyWin, proxyPrerenderFrame) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) {\n if (!proxyPrerenderFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyPrerenderFrame.get().then((function(prerenderFrame) {\n clean.register((function() {\n return destroyElement(prerenderFrame);\n }));\n return awaitFrameWindow(prerenderFrame).then((function(prerenderFrameWindow) {\n return assertSameDomain(prerenderFrameWindow);\n })).then((function(win) {\n return setup_toProxyWindow(win);\n }));\n }));\n }\n if (context === CONTEXT.POPUP) return proxyWin;\n throw new Error(\"No render context available for \" + context);\n }));\n };\n var focus = function() {\n return promise_ZalgoPromise.try((function() {\n if (currentProxyWin) return promise_ZalgoPromise.all([ event.trigger(EVENT.FOCUS), currentProxyWin.focus() ]).then(src_util_noop);\n }));\n };\n var getCurrentWindowReferenceUID = function() {\n var global = lib_global_getGlobal(window);\n global.windows = global.windows || {};\n global.windows[uid] = window;\n clean.register((function() {\n delete global.windows[uid];\n }));\n return uid;\n };\n var getWindowRef = function(target, initialChildDomain, context, proxyWin) {\n if (initialChildDomain === getDomain(window)) return {\n type: \"global\",\n uid: getCurrentWindowReferenceUID()\n };\n if (target !== window) throw new Error(\"Can not construct cross-domain window reference for different target window\");\n if (props.window) {\n var actualComponentWindow = proxyWin.getWindow();\n if (!actualComponentWindow) throw new Error(\"Can not construct cross-domain window reference for lazy window prop\");\n if (getAncestor(actualComponentWindow) !== window) throw new Error(\"Can not construct cross-domain window reference for window prop with different ancestor\");\n }\n if (context === CONTEXT.POPUP) return {\n type: \"opener\"\n };\n if (context === CONTEXT.IFRAME) return {\n type: \"parent\",\n distance: getDistanceFromTop(window)\n };\n throw new Error(\"Can not construct window reference for child\");\n };\n var initChild = function(childDomain, childExports) {\n return promise_ZalgoPromise.try((function() {\n currentChildDomain = childDomain;\n childComponent = childExports;\n resolveInitPromise();\n clean.register((function() {\n return childExports.close.fireAndForget().catch(src_util_noop);\n }));\n }));\n };\n var resize = function(_ref3) {\n var width = _ref3.width, height = _ref3.height;\n return promise_ZalgoPromise.try((function() {\n event.trigger(EVENT.RESIZE, {\n width: width,\n height: height\n });\n }));\n };\n var destroy = function(err) {\n return promise_ZalgoPromise.try((function() {\n return event.trigger(EVENT.DESTROY);\n })).catch(src_util_noop).then((function() {\n return clean.all(err);\n })).then((function() {\n 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(context, _ref4) {\n var proxyWin = _ref4.proxyWin, proxyFrame = _ref4.proxyFrame, windowName = _ref4.windowName;\n return openOverride ? openOverride(context, {\n proxyWin: proxyWin,\n proxyFrame: proxyFrame,\n windowName: windowName\n }) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) {\n if (!proxyFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyFrame.get().then((function(frame) {\n return awaitFrameWindow(frame).then((function(win) {\n clean.register((function() {\n return destroyElement(frame);\n }));\n clean.register((function() {\n return cleanUpWindow(win);\n }));\n return win;\n }));\n }));\n }\n if (context === CONTEXT.POPUP) {\n var _getDimensions = getDimensions(), _getDimensions$width = _getDimensions.width, width = void 0 === _getDimensions$width ? \"300px\" : _getDimensions$width, _getDimensions$height = _getDimensions.height, height = void 0 === _getDimensions$height ? \"150px\" : _getDimensions$height;\n width = normalizeDimension(width, window.outerWidth);\n height = normalizeDimension(height, window.outerWidth);\n var win = function(url, options) {\n var _options$closeOnUnloa = (options = options || {}).closeOnUnload, closeOnUnload = void 0 === _options$closeOnUnloa ? 1 : _options$closeOnUnloa, _options$name = options.name, name = void 0 === _options$name ? \"\" : _options$name, width = options.width, height = options.height;\n var top = 0;\n var left = 0;\n width && (window.outerWidth ? left = Math.round((window.outerWidth - width) / 2) + window.screenX : window.screen.width && (left = Math.round((window.screen.width - width) / 2)));\n height && (window.outerHeight ? top = Math.round((window.outerHeight - height) / 2) + window.screenY : window.screen.height && (top = Math.round((window.screen.height - height) / 2)));\n delete options.closeOnUnload;\n delete options.name;\n width && height && (options = _extends({\n top: top,\n left: left,\n width: width,\n height: height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1\n }, options));\n var params = Object.keys(options).map((function(key) {\n if (null != options[key]) return key + \"=\" + stringify(options[key]);\n })).filter(Boolean).join(\",\");\n var win;\n try {\n win = window.open(\"\", name, params);\n } catch (err) {\n throw new dom_PopupOpenError(\"Can not open popup window - \" + (err.stack || err.message));\n }\n if (isWindowClosed(win)) {\n var err;\n throw new dom_PopupOpenError(\"Can not open popup window - blocked\");\n }\n closeOnUnload && window.addEventListener(\"unload\", (function() {\n return win.close();\n }));\n return win;\n }(0, _extends({\n name: windowName,\n width: width,\n height: height\n }, getAttributes().popup));\n clean.register((function() {\n return closeWindow(win);\n }));\n clean.register((function() {\n return cleanUpWindow(win);\n }));\n return win;\n }\n throw new Error(\"No render context available for \" + context);\n })).then((function(win) {\n proxyWin.setWindow(win, {\n send: send_send\n });\n return proxyWin.setName(windowName).then((function() {\n return proxyWin;\n }));\n }));\n };\n var watchForUnload = function() {\n return promise_ZalgoPromise.try((function() {\n var unloadWindowListener = addEventListener(window, \"unload\", once((function() {\n destroy(new Error(\"Window navigated away\"));\n })));\n var closeParentWindowListener = onCloseWindow(parentWin, destroy, 3e3);\n clean.register(closeParentWindowListener.cancel);\n clean.register(unloadWindowListener.cancel);\n if (watchForUnloadOverride) return watchForUnloadOverride();\n }));\n };\n var checkWindowClose = function(proxyWin) {\n var closed = !1;\n return proxyWin.isClosed().then((function(isClosed) {\n if (isClosed) {\n closed = !0;\n return close(new Error(\"Detected component window close\"));\n }\n return promise_ZalgoPromise.delay(200).then((function() {\n return proxyWin.isClosed();\n })).then((function(secondIsClosed) {\n if (secondIsClosed) {\n closed = !0;\n return close(new Error(\"Detected component window close\"));\n }\n }));\n })).then((function() {\n return closed;\n }));\n };\n var onError = function(err) {\n return onErrorOverride ? onErrorOverride(err) : promise_ZalgoPromise.try((function() {\n if (-1 === handledErrors.indexOf(err)) {\n handledErrors.push(err);\n initPromise.asyncReject(err);\n return event.trigger(EVENT.ERROR, err);\n }\n }));\n };\n var exportsPromise = new promise_ZalgoPromise;\n var xport = function(actualExports) {\n return promise_ZalgoPromise.try((function() {\n exportsPromise.resolve(actualExports);\n }));\n };\n initChild.onError = onError;\n var renderTemplate = function(renderer, _ref8) {\n return renderer({\n uid: uid,\n container: _ref8.container,\n context: _ref8.context,\n doc: _ref8.doc,\n frame: _ref8.frame,\n prerenderFrame: _ref8.prerenderFrame,\n focus: focus,\n close: close,\n state: state,\n props: props,\n tag: tag,\n dimensions: getDimensions(),\n event: event\n });\n };\n var prerender = function(proxyPrerenderWin, _ref9) {\n var context = _ref9.context;\n return prerenderOverride ? prerenderOverride(proxyPrerenderWin, {\n context: context\n }) : promise_ZalgoPromise.try((function() {\n if (prerenderTemplate) {\n var prerenderWindow = proxyPrerenderWin.getWindow();\n if (prerenderWindow && isSameDomain(prerenderWindow) && function(win) {\n try {\n if (!win.location.href) return !0;\n if (\"about:blank\" === win.location.href) return !0;\n } catch (err) {}\n return !1;\n }(prerenderWindow)) {\n var doc = (prerenderWindow = assertSameDomain(prerenderWindow)).document;\n var el = renderTemplate(prerenderTemplate, {\n context: context,\n doc: doc\n });\n if (el) {\n if (el.ownerDocument !== doc) throw new Error(\"Expected prerender template to have been created with document from child window\");\n !function(win, el) {\n var tag = el.tagName.toLowerCase();\n if (\"html\" !== tag) throw new Error(\"Expected element to be html, got \" + tag);\n var documentElement = win.document.documentElement;\n for (var _i6 = 0, _arrayFrom2 = arrayFrom(documentElement.children); _i6 < _arrayFrom2.length; _i6++) documentElement.removeChild(_arrayFrom2[_i6]);\n for (var _i8 = 0, _arrayFrom4 = arrayFrom(el.children); _i8 < _arrayFrom4.length; _i8++) documentElement.appendChild(_arrayFrom4[_i8]);\n }(prerenderWindow, el);\n var _autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, _autoResize$element = autoResize.element, element = void 0 === _autoResize$element ? \"body\" : _autoResize$element;\n if ((element = getElementSafe(element, doc)) && (width || height)) {\n var prerenderResizeListener = onResize(element, (function(_ref10) {\n resize({\n width: width ? _ref10.width : void 0,\n height: height ? _ref10.height : void 0\n });\n }), {\n width: width,\n height: height,\n win: prerenderWindow\n });\n event.on(EVENT.RENDERED, prerenderResizeListener.cancel);\n }\n }\n }\n }\n }));\n };\n var renderContainer = function(proxyContainer, _ref11) {\n var proxyFrame = _ref11.proxyFrame, proxyPrerenderFrame = _ref11.proxyPrerenderFrame, context = _ref11.context, rerender = _ref11.rerender;\n return renderContainerOverride ? renderContainerOverride(proxyContainer, {\n proxyFrame: proxyFrame,\n proxyPrerenderFrame: proxyPrerenderFrame,\n context: context,\n rerender: rerender\n }) : promise_ZalgoPromise.hash({\n container: proxyContainer.get(),\n frame: proxyFrame ? proxyFrame.get() : null,\n prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null,\n internalState: getInternalState()\n }).then((function(_ref12) {\n var container = _ref12.container, visible = _ref12.internalState.visible;\n var innerContainer = renderTemplate(containerTemplate, {\n context: context,\n container: container,\n frame: _ref12.frame,\n prerenderFrame: _ref12.prerenderFrame,\n doc: document\n });\n if (innerContainer) {\n visible || hideElement(innerContainer);\n appendChild(container, innerContainer);\n var containerWatcher = function(element, handler) {\n handler = once(handler);\n var cancelled = !1;\n var mutationObservers = [];\n var interval;\n var sacrificialFrame;\n var sacrificialFrameWin;\n var cancel = function() {\n cancelled = !0;\n for (var _i18 = 0; _i18 < mutationObservers.length; _i18++) mutationObservers[_i18].disconnect();\n interval && interval.cancel();\n sacrificialFrameWin && sacrificialFrameWin.removeEventListener(\"unload\", elementClosed);\n sacrificialFrame && destroyElement(sacrificialFrame);\n };\n var elementClosed = function() {\n if (!cancelled) {\n handler();\n cancel();\n }\n };\n if (isElementClosed(element)) {\n elementClosed();\n return {\n cancel: cancel\n };\n }\n if (window.MutationObserver) {\n var mutationElement = element.parentElement;\n for (;mutationElement; ) {\n var mutationObserver = new window.MutationObserver((function() {\n isElementClosed(element) && elementClosed();\n }));\n mutationObserver.observe(mutationElement, {\n childList: !0\n });\n mutationObservers.push(mutationObserver);\n mutationElement = mutationElement.parentElement;\n }\n }\n (sacrificialFrame = document.createElement(\"iframe\")).setAttribute(\"name\", \"__detect_close_\" + uniqueID() + \"__\");\n sacrificialFrame.style.display = \"none\";\n awaitFrameWindow(sacrificialFrame).then((function(frameWin) {\n (sacrificialFrameWin = assertSameDomain(frameWin)).addEventListener(\"unload\", elementClosed);\n }));\n element.appendChild(sacrificialFrame);\n interval = safeInterval((function() {\n isElementClosed(element) && elementClosed();\n }), 1e3);\n return {\n cancel: cancel\n };\n }(innerContainer, (function() {\n var removeError = new Error(\"Detected container element removed from DOM\");\n return promise_ZalgoPromise.delay(1).then((function() {\n if (!isElementClosed(innerContainer)) {\n clean.all(removeError);\n return rerender().then(resolveInitPromise, rejectInitPromise);\n }\n close(removeError);\n }));\n }));\n clean.register((function() {\n return containerWatcher.cancel();\n }));\n clean.register((function() {\n return destroyElement(innerContainer);\n }));\n return currentProxyContainer = getProxyObject(innerContainer);\n }\n }));\n };\n var getHelpers = function() {\n return {\n state: state,\n event: event,\n close: close,\n focus: focus,\n resize: resize,\n onError: onError,\n updateProps: updateProps,\n show: show,\n hide: hide\n };\n };\n var setProps = function(newInputProps) {\n void 0 === newInputProps && (newInputProps = {});\n var container = currentContainer;\n var helpers = getHelpers();\n extend(inputProps, newInputProps);\n !function(propsDef, existingProps, inputProps, helpers, container) {\n var state = helpers.state, close = helpers.close, focus = helpers.focus, event = helpers.event, onError = helpers.onError;\n eachProp(inputProps, propsDef, (function(key, propDef, val) {\n var valueDetermined = !1;\n var value = val;\n Object.defineProperty(existingProps, key, {\n configurable: !0,\n enumerable: !0,\n get: function() {\n if (valueDetermined) return value;\n valueDetermined = !0;\n return function() {\n if (!propDef) return value;\n var alias = propDef.alias;\n alias && !isDefined(val) && isDefined(inputProps[alias]) && (value = inputProps[alias]);\n propDef.value && (value = propDef.value({\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n !propDef.default || isDefined(value) || isDefined(inputProps[key]) || (value = propDef.default({\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n if (isDefined(value)) {\n if (propDef.type === PROP_TYPE.ARRAY ? !Array.isArray(value) : typeof value !== propDef.type) throw new TypeError(\"Prop is not of type \" + propDef.type + \": \" + key);\n } else if (!1 !== propDef.required && !isDefined(inputProps[key])) throw new Error('Expected prop \"' + key + '\" to be defined');\n isDefined(value) && propDef.decorate && (value = propDef.decorate({\n value: value,\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n return value;\n }();\n }\n });\n }));\n eachProp(existingProps, propsDef, src_util_noop);\n }(propsDef, props, inputProps, helpers, container);\n };\n var updateProps = function(newProps) {\n setProps(newProps);\n return initPromise.then((function() {\n var child = childComponent;\n var proxyWin = currentProxyWin;\n if (child && proxyWin && currentChildDomain) return getPropsForChild(currentChildDomain).then((function(childProps) {\n return child.updateProps(childProps).catch((function(err) {\n return checkWindowClose(proxyWin).then((function(closed) {\n if (!closed) throw err;\n }));\n }));\n }));\n }));\n };\n var getProxyContainer = function(container) {\n return getProxyContainerOverride ? getProxyContainerOverride(container) : promise_ZalgoPromise.try((function() {\n return elementReady(container);\n })).then((function(containerElement) {\n isShadowElement(containerElement) && (containerElement = function insertShadowSlot(element) {\n var shadowHost = function(element) {\n var shadowRoot = function(element) {\n for (;element.parentNode; ) element = element.parentNode;\n if (isShadowElement(element)) return element;\n }(element);\n if (shadowRoot && shadowRoot.host) return shadowRoot.host;\n }(element);\n if (!shadowHost) throw new Error(\"Element is not in shadow dom\");\n var slotName = \"shadow-slot-\" + uniqueID();\n var slot = document.createElement(\"slot\");\n slot.setAttribute(\"name\", slotName);\n element.appendChild(slot);\n var slotProvider = document.createElement(\"div\");\n slotProvider.setAttribute(\"slot\", slotName);\n shadowHost.appendChild(slotProvider);\n return isShadowElement(shadowHost) ? insertShadowSlot(slotProvider) : slotProvider;\n }(containerElement));\n currentContainer = containerElement;\n return getProxyObject(containerElement);\n }));\n };\n return {\n init: function() {\n !function() {\n event.on(EVENT.RENDER, (function() {\n return props.onRender();\n }));\n event.on(EVENT.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(_ref14) {\n var target = _ref14.target, container = _ref14.container, context = _ref14.context, rerender = _ref14.rerender;\n return promise_ZalgoPromise.try((function() {\n var initialChildDomain = getInitialChildDomain();\n var childDomainMatch = domainMatch || getInitialChildDomain();\n !function(target, childDomainMatch, container) {\n if (target !== window) {\n if (!isSameTopWindow(window, target)) throw new Error(\"Can only renderTo an adjacent frame\");\n var origin = getDomain();\n if (!matchDomain(childDomainMatch, origin) && !isSameDomain(target)) throw new Error(\"Can not render remotely to \" + childDomainMatch.toString() + \" - can only render to \" + origin);\n if (container && \"string\" != typeof container) throw new Error(\"Container passed to renderTo must be a string selector, got \" + typeof container + \" }\");\n }\n }(target, childDomainMatch, container);\n var delegatePromise = promise_ZalgoPromise.try((function() {\n if (target !== window) return function(context, target) {\n var delegateProps = {};\n for (var _i4 = 0, _Object$keys4 = Object.keys(props); _i4 < _Object$keys4.length; _i4++) {\n var propName = _Object$keys4[_i4];\n var propDef = propsDef[propName];\n propDef && propDef.allowDelegate && (delegateProps[propName] = props[propName]);\n }\n var childOverridesPromise = send_send(target, \"zoid_delegate_\" + name, {\n uid: uid,\n overrides: {\n props: delegateProps,\n event: event,\n close: close,\n onError: onError,\n getInternalState: getInternalState,\n setInternalState: setInternalState,\n resolveInitPromise: resolveInitPromise,\n rejectInitPromise: rejectInitPromise\n }\n }).then((function(_ref13) {\n var parentComp = _ref13.data.parent;\n clean.register((function(err) {\n if (!isWindowClosed(target)) return parentComp.destroy(err);\n }));\n return parentComp.getDelegateOverrides();\n })).catch((function(err) {\n throw new Error(\"Unable to delegate rendering. Possibly the component is not loaded in the target window.\\n\\n\" + stringifyError(err));\n }));\n getProxyContainerOverride = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.getProxyContainer.apply(childOverrides, args);\n }));\n };\n renderContainerOverride = function() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.renderContainer.apply(childOverrides, args);\n }));\n };\n showOverride = function() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) args[_key3] = arguments[_key3];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.show.apply(childOverrides, args);\n }));\n };\n hideOverride = function() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.hide.apply(childOverrides, args);\n }));\n };\n watchForUnloadOverride = function() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) args[_key5] = arguments[_key5];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.watchForUnload.apply(childOverrides, args);\n }));\n };\n if (context === CONTEXT.IFRAME) {\n getProxyWindowOverride = function() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) args[_key6] = arguments[_key6];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.getProxyWindow.apply(childOverrides, args);\n }));\n };\n openFrameOverride = function() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) args[_key7] = arguments[_key7];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openFrame.apply(childOverrides, args);\n }));\n };\n openPrerenderFrameOverride = function() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) args[_key8] = arguments[_key8];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openPrerenderFrame.apply(childOverrides, args);\n }));\n };\n prerenderOverride = function() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) args[_key9] = arguments[_key9];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.prerender.apply(childOverrides, args);\n }));\n };\n openOverride = function() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) args[_key10] = arguments[_key10];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.open.apply(childOverrides, args);\n }));\n };\n openPrerenderOverride = function() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) args[_key11] = arguments[_key11];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openPrerender.apply(childOverrides, args);\n }));\n };\n } else context === CONTEXT.POPUP && (setProxyWinOverride = function() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) args[_key12] = arguments[_key12];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.setProxyWin.apply(childOverrides, args);\n }));\n });\n return childOverridesPromise;\n }(context, target);\n }));\n var windowProp = props.window;\n var watchForUnloadPromise = watchForUnload();\n var buildBodyPromise = serializeProps(propsDef, props, \"post\");\n var onRenderPromise = event.trigger(EVENT.RENDER);\n var getProxyContainerPromise = getProxyContainer(container);\n var getProxyWindowPromise = getProxyWindow();\n var finalSetPropsPromise = getProxyContainerPromise.then((function() {\n return setProps();\n }));\n var buildUrlPromise = finalSetPropsPromise.then((function() {\n return serializeProps(propsDef, props, \"get\").then((function(query) {\n return function(url, options) {\n var query = options.query || {};\n var hash = options.hash || {};\n var originalUrl;\n var originalHash;\n var _url$split = url.split(\"#\");\n originalHash = _url$split[1];\n var _originalUrl$split = (originalUrl = _url$split[0]).split(\"?\");\n originalUrl = _originalUrl$split[0];\n var queryString = extendQuery(_originalUrl$split[1], query);\n var hashString = extendQuery(originalHash, hash);\n queryString && (originalUrl = originalUrl + \"?\" + queryString);\n hashString && (originalUrl = originalUrl + \"#\" + hashString);\n return originalUrl;\n }(normalizeMockUrl(getUrl()), {\n query: query\n });\n }));\n }));\n var buildWindowNamePromise = getProxyWindowPromise.then((function(proxyWin) {\n return function(_temp2) {\n var _ref6 = void 0 === _temp2 ? {} : _temp2, proxyWin = _ref6.proxyWin, initialChildDomain = _ref6.initialChildDomain, childDomainMatch = _ref6.childDomainMatch, _ref6$target = _ref6.target, target = void 0 === _ref6$target ? window : _ref6$target, context = _ref6.context;\n return function(_temp) {\n var _ref5 = void 0 === _temp ? {} : _temp, proxyWin = _ref5.proxyWin, childDomainMatch = _ref5.childDomainMatch, context = _ref5.context;\n return getPropsForChild(_ref5.initialChildDomain).then((function(childProps) {\n return {\n uid: uid,\n context: context,\n tag: tag,\n childDomainMatch: childDomainMatch,\n version: \"9_0_86\",\n props: childProps,\n exports: (win = proxyWin, {\n init: function(childExports) {\n return initChild(this.origin, childExports);\n },\n close: close,\n checkClose: function() {\n return checkWindowClose(win);\n },\n resize: resize,\n onError: onError,\n show: show,\n hide: hide,\n export: xport\n })\n };\n var win;\n }));\n }({\n proxyWin: proxyWin,\n initialChildDomain: initialChildDomain,\n childDomainMatch: childDomainMatch,\n context: context\n }).then((function(childPayload) {\n var _crossDomainSerialize = crossDomainSerialize({\n data: childPayload,\n metaData: {\n windowRef: getWindowRef(target, initialChildDomain, context, proxyWin)\n },\n sender: {\n domain: getDomain(window)\n },\n receiver: {\n win: proxyWin,\n domain: childDomainMatch\n },\n passByReference: initialChildDomain === getDomain()\n }), serializedData = _crossDomainSerialize.serializedData;\n clean.register(_crossDomainSerialize.cleanReference);\n return serializedData;\n }));\n }({\n proxyWin: (_ref7 = {\n proxyWin: proxyWin,\n initialChildDomain: initialChildDomain,\n childDomainMatch: childDomainMatch,\n target: target,\n context: context\n }).proxyWin,\n initialChildDomain: _ref7.initialChildDomain,\n childDomainMatch: _ref7.childDomainMatch,\n target: _ref7.target,\n context: _ref7.context\n }).then((function(serializedPayload) {\n return buildChildWindowName({\n name: name,\n serializedPayload: serializedPayload\n });\n }));\n var _ref7;\n }));\n var openFramePromise = buildWindowNamePromise.then((function(windowName) {\n return openFrame(context, {\n windowName: windowName\n });\n }));\n var openPrerenderFramePromise = openPrerenderFrame(context);\n var renderContainerPromise = promise_ZalgoPromise.hash({\n proxyContainer: getProxyContainerPromise,\n proxyFrame: openFramePromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then((function(_ref15) {\n return renderContainer(_ref15.proxyContainer, {\n context: context,\n proxyFrame: _ref15.proxyFrame,\n proxyPrerenderFrame: _ref15.proxyPrerenderFrame,\n rerender: rerender\n });\n })).then((function(proxyContainer) {\n return proxyContainer;\n }));\n var openPromise = promise_ZalgoPromise.hash({\n windowName: buildWindowNamePromise,\n proxyFrame: openFramePromise,\n proxyWin: getProxyWindowPromise\n }).then((function(_ref16) {\n var proxyWin = _ref16.proxyWin;\n return windowProp ? proxyWin : open(context, {\n windowName: _ref16.windowName,\n proxyWin: proxyWin,\n proxyFrame: _ref16.proxyFrame\n });\n }));\n var openPrerenderPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then((function(_ref17) {\n return openPrerender(context, _ref17.proxyWin, _ref17.proxyPrerenderFrame);\n }));\n var setStatePromise = openPromise.then((function(proxyWin) {\n currentProxyWin = proxyWin;\n return setProxyWin(proxyWin);\n }));\n var prerenderPromise = promise_ZalgoPromise.hash({\n proxyPrerenderWin: openPrerenderPromise,\n state: setStatePromise\n }).then((function(_ref18) {\n return prerender(_ref18.proxyPrerenderWin, {\n context: context\n });\n }));\n var setWindowNamePromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowName: buildWindowNamePromise\n }).then((function(_ref19) {\n if (windowProp) return _ref19.proxyWin.setName(_ref19.windowName);\n }));\n var getMethodPromise = promise_ZalgoPromise.hash({\n body: buildBodyPromise\n }).then((function(_ref20) {\n return options.method ? options.method : Object.keys(_ref20.body).length ? \"post\" : \"get\";\n }));\n var loadUrlPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowUrl: buildUrlPromise,\n body: buildBodyPromise,\n method: getMethodPromise,\n windowName: setWindowNamePromise,\n prerender: prerenderPromise\n }).then((function(_ref21) {\n return _ref21.proxyWin.setLocation(_ref21.windowUrl, {\n method: _ref21.method,\n body: _ref21.body\n });\n }));\n var watchForClosePromise = openPromise.then((function(proxyWin) {\n !function watchForClose(proxyWin, context) {\n var cancelled = !1;\n clean.register((function() {\n cancelled = !0;\n }));\n return promise_ZalgoPromise.delay(2e3).then((function() {\n return proxyWin.isClosed();\n })).then((function(isClosed) {\n if (!cancelled) return isClosed ? close(new Error(\"Detected \" + context + \" close\")) : watchForClose(proxyWin, context);\n }));\n }(proxyWin, context);\n }));\n var onDisplayPromise = promise_ZalgoPromise.hash({\n container: renderContainerPromise,\n prerender: prerenderPromise\n }).then((function() {\n return event.trigger(EVENT.DISPLAY);\n }));\n var openBridgePromise = openPromise.then((function(proxyWin) {\n return function(proxyWin, initialChildDomain, context) {\n return promise_ZalgoPromise.try((function() {\n return proxyWin.awaitWindow();\n })).then((function(win) {\n if (src_bridge && src_bridge.needsBridge({\n win: win,\n domain: initialChildDomain\n }) && !src_bridge.hasBridge(initialChildDomain, initialChildDomain)) {\n var bridgeUrl = \"function\" == typeof options.bridgeUrl ? options.bridgeUrl({\n props: props\n }) : options.bridgeUrl;\n if (!bridgeUrl) throw new Error(\"Bridge needed to render \" + context);\n var bridgeDomain = getDomainFromUrl(bridgeUrl);\n src_bridge.linkUrl(win, initialChildDomain);\n return src_bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain);\n }\n }));\n }(proxyWin, initialChildDomain, context);\n }));\n var runTimeoutPromise = loadUrlPromise.then((function() {\n return promise_ZalgoPromise.try((function() {\n var timeout = props.timeout;\n if (timeout) return initPromise.timeout(timeout, new Error(\"Loading component timed out after \" + timeout + \" milliseconds\"));\n }));\n }));\n var onRenderedPromise = initPromise.then((function() {\n return event.trigger(EVENT.RENDERED);\n }));\n return promise_ZalgoPromise.hash({\n initPromise: initPromise,\n buildUrlPromise: buildUrlPromise,\n onRenderPromise: onRenderPromise,\n getProxyContainerPromise: getProxyContainerPromise,\n openFramePromise: openFramePromise,\n openPrerenderFramePromise: openPrerenderFramePromise,\n renderContainerPromise: renderContainerPromise,\n openPromise: openPromise,\n openPrerenderPromise: openPrerenderPromise,\n setStatePromise: setStatePromise,\n prerenderPromise: prerenderPromise,\n loadUrlPromise: loadUrlPromise,\n buildWindowNamePromise: buildWindowNamePromise,\n setWindowNamePromise: setWindowNamePromise,\n watchForClosePromise: watchForClosePromise,\n onDisplayPromise: onDisplayPromise,\n openBridgePromise: openBridgePromise,\n runTimeoutPromise: runTimeoutPromise,\n onRenderedPromise: onRenderedPromise,\n delegatePromise: delegatePromise,\n watchForUnloadPromise: watchForUnloadPromise,\n finalSetPropsPromise: finalSetPropsPromise\n });\n })).catch((function(err) {\n return promise_ZalgoPromise.all([ onError(err), destroy(err) ]).then((function() {\n throw err;\n }), (function() {\n throw err;\n }));\n })).then(src_util_noop);\n },\n destroy: destroy,\n getProps: function() {\n return props;\n },\n setProps: setProps,\n export: xport,\n getHelpers: getHelpers,\n getDelegateOverrides: function() {\n return promise_ZalgoPromise.try((function() {\n return {\n getProxyContainer: getProxyContainer,\n show: show,\n hide: hide,\n renderContainer: renderContainer,\n getProxyWindow: getProxyWindow,\n watchForUnload: watchForUnload,\n openFrame: openFrame,\n openPrerenderFrame: openPrerenderFrame,\n prerender: prerender,\n open: open,\n openPrerender: openPrerender,\n setProxyWin: setProxyWin\n };\n }));\n },\n getExports: function() {\n return xports({\n getExports: function() {\n return exportsPromise;\n }\n });\n }\n };\n }\n function defaultContainerTemplate(_ref) {\n var uid = _ref.uid, frame = _ref.frame, prerenderFrame = _ref.prerenderFrame, doc = _ref.doc, props = _ref.props, event = _ref.event, dimensions = _ref.dimensions;\n var width = dimensions.width, height = dimensions.height;\n if (frame && prerenderFrame) {\n var div = doc.createElement(\"div\");\n div.setAttribute(\"id\", uid);\n var style = doc.createElement(\"style\");\n props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce);\n style.appendChild(doc.createTextNode(\"\\n #\" + uid + \" {\\n display: inline-block;\\n position: relative;\\n width: \" + width + \";\\n height: \" + height + \";\\n }\\n\\n #\" + uid + \" > iframe {\\n display: inline-block;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n transition: opacity .2s ease-in-out;\\n }\\n\\n #\" + uid + \" > iframe.zoid-invisible {\\n opacity: 0;\\n }\\n\\n #\" + uid + \" > iframe.zoid-visible {\\n opacity: 1;\\n }\\n \"));\n div.appendChild(frame);\n div.appendChild(prerenderFrame);\n div.appendChild(style);\n prerenderFrame.classList.add(\"zoid-visible\");\n frame.classList.add(\"zoid-invisible\");\n event.on(EVENT.RENDERED, (function() {\n prerenderFrame.classList.remove(\"zoid-visible\");\n prerenderFrame.classList.add(\"zoid-invisible\");\n frame.classList.remove(\"zoid-invisible\");\n frame.classList.add(\"zoid-visible\");\n setTimeout((function() {\n destroyElement(prerenderFrame);\n }), 1);\n }));\n event.on(EVENT.RESIZE, (function(_ref2) {\n var newWidth = _ref2.width, newHeight = _ref2.height;\n \"number\" == typeof newWidth && (div.style.width = toCSS(newWidth));\n \"number\" == typeof newHeight && (div.style.height = toCSS(newHeight));\n }));\n return div;\n }\n }\n function defaultPrerenderTemplate(_ref) {\n var doc = _ref.doc, props = _ref.props;\n var html = doc.createElement(\"html\");\n var body = doc.createElement(\"body\");\n var style = doc.createElement(\"style\");\n var spinner = doc.createElement(\"div\");\n spinner.classList.add(\"spinner\");\n props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce);\n html.appendChild(body);\n body.appendChild(spinner);\n body.appendChild(style);\n style.appendChild(doc.createTextNode(\"\\n html, body {\\n width: 100%;\\n height: 100%;\\n }\\n\\n .spinner {\\n position: fixed;\\n max-height: 60vmin;\\n max-width: 60vmin;\\n height: 40px;\\n width: 40px;\\n top: 50%;\\n left: 50%;\\n box-sizing: border-box;\\n border: 3px solid rgba(0, 0, 0, .2);\\n border-top-color: rgba(33, 128, 192, 0.8);\\n border-radius: 100%;\\n animation: rotation .7s infinite linear;\\n }\\n\\n @keyframes rotation {\\n from {\\n transform: translateX(-50%) translateY(-50%) rotate(0deg);\\n }\\n to {\\n transform: translateX(-50%) translateY(-50%) rotate(359deg);\\n }\\n }\\n \"));\n return html;\n }\n var cleanInstances = cleanup();\n var cleanZoid = cleanup();\n function component(opts) {\n var options = function(options) {\n var tag = options.tag, url = options.url, domain = options.domain, bridgeUrl = options.bridgeUrl, _options$props = options.props, props = void 0 === _options$props ? {} : _options$props, _options$dimensions = options.dimensions, dimensions = void 0 === _options$dimensions ? {} : _options$dimensions, _options$autoResize = options.autoResize, autoResize = void 0 === _options$autoResize ? {} : _options$autoResize, _options$allowedParen = options.allowedParentDomains, allowedParentDomains = void 0 === _options$allowedParen ? \"*\" : _options$allowedParen, _options$attributes = options.attributes, attributes = void 0 === _options$attributes ? {} : _options$attributes, _options$defaultConte = options.defaultContext, defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte, _options$containerTem = options.containerTemplate, containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem, _options$prerenderTem = options.prerenderTemplate, prerenderTemplate = void 0 === _options$prerenderTem ? defaultPrerenderTemplate : _options$prerenderTem, validate = options.validate, _options$eligible = options.eligible, eligible = void 0 === _options$eligible ? function() {\n return {\n eligible: !0\n };\n } : _options$eligible, _options$logger = options.logger, logger = void 0 === _options$logger ? {\n info: src_util_noop\n } : _options$logger, _options$exports = options.exports, xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports, method = options.method, _options$children = options.children, children = void 0 === _options$children ? function() {\n return {};\n } : _options$children;\n var name = tag.replace(/-/g, \"_\");\n var propsDef = _extends({}, {\n window: {\n type: PROP_TYPE.OBJECT,\n sendToChild: !1,\n required: !1,\n allowDelegate: !0,\n validate: function(_ref2) {\n var value = _ref2.value;\n if (!isWindow(value) && !window_ProxyWindow.isProxyWindow(value)) throw new Error(\"Expected Window or ProxyWindow\");\n if (isWindow(value)) {\n if (isWindowClosed(value)) throw new Error(\"Window is closed\");\n if (!isSameDomain(value)) throw new Error(\"Window is not same domain\");\n }\n },\n decorate: function(_ref3) {\n return setup_toProxyWindow(_ref3.value);\n }\n },\n timeout: {\n type: PROP_TYPE.NUMBER,\n required: !1,\n sendToChild: !1\n },\n cspNonce: {\n type: PROP_TYPE.STRING,\n required: !1\n },\n onDisplay: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRendered: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRender: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onClose: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onDestroy: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onResize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop\n },\n onFocus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop\n },\n close: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref4) {\n return _ref4.close;\n }\n },\n focus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref5) {\n return _ref5.focus;\n }\n },\n resize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref6) {\n return _ref6.resize;\n }\n },\n uid: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref7) {\n return _ref7.uid;\n }\n },\n tag: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref8) {\n return _ref8.tag;\n }\n },\n getParent: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref9) {\n return _ref9.getParent;\n }\n },\n getParentDomain: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref10) {\n return _ref10.getParentDomain;\n }\n },\n show: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref11) {\n return _ref11.show;\n }\n },\n hide: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref12) {\n return _ref12.hide;\n }\n },\n export: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref13) {\n return _ref13.export;\n }\n },\n onError: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref14) {\n return _ref14.onError;\n }\n },\n onProps: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref15) {\n return _ref15.onProps;\n }\n },\n getSiblings: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref16) {\n return _ref16.getSiblings;\n }\n }\n }, props);\n if (!containerTemplate) throw new Error(\"Container template required\");\n return {\n name: name,\n tag: tag,\n url: url,\n domain: domain,\n bridgeUrl: bridgeUrl,\n method: method,\n propsDef: propsDef,\n dimensions: dimensions,\n autoResize: autoResize,\n allowedParentDomains: allowedParentDomains,\n attributes: attributes,\n defaultContext: defaultContext,\n containerTemplate: containerTemplate,\n prerenderTemplate: prerenderTemplate,\n validate: validate,\n logger: logger,\n eligible: eligible,\n children: children,\n exports: \"function\" == typeof xportsDefinition ? xportsDefinition : function(_ref) {\n var getExports = _ref.getExports;\n var result = {};\n var _loop = function(_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, tag = options.tag, defaultContext = options.defaultContext, eligible = options.eligible, children = options.children;\n var global = lib_global_getGlobal(window);\n var instances = [];\n var isChild = function() {\n if (function(name) {\n try {\n return parseWindowName(window.name).name === name;\n } catch (err) {}\n return !1;\n }(name)) {\n var _payload = getInitialParentPayload().payload;\n if (_payload.tag === tag && matchDomain(_payload.childDomainMatch, getDomain())) return !0;\n }\n return !1;\n };\n var registerChild = memoize((function() {\n if (isChild()) {\n if (window.xprops) {\n delete global.components[tag];\n throw new Error(\"Can not register \" + name + \" as child - child already registered\");\n }\n var child = function(options) {\n var tag = options.tag, propsDef = options.propsDef, autoResize = options.autoResize, allowedParentDomains = options.allowedParentDomains;\n var onPropHandlers = [];\n var _getInitialParentPayl = getInitialParentPayload(), parent = _getInitialParentPayl.parent, payload = _getInitialParentPayl.payload;\n var parentComponentWindow = parent.win, parentDomain = parent.domain;\n var props;\n var exportsPromise = new promise_ZalgoPromise;\n var version = payload.version, uid = payload.uid, parentExports = payload.exports, context = payload.context, initialProps = payload.props;\n if (\"9_0_86\" !== version) throw new Error(\"Parent window has zoid version \" + version + \", child window has version 9_0_86\");\n var show = parentExports.show, hide = parentExports.hide, close = parentExports.close, onError = parentExports.onError, checkClose = parentExports.checkClose, parentExport = parentExports.export, parentResize = parentExports.resize, parentInit = parentExports.init;\n var getParent = function() {\n return parentComponentWindow;\n };\n var getParentDomain = function() {\n return parentDomain;\n };\n var onProps = function(handler) {\n onPropHandlers.push(handler);\n return {\n cancel: function() {\n onPropHandlers.splice(onPropHandlers.indexOf(handler), 1);\n }\n };\n };\n var resize = function(_ref) {\n return parentResize.fireAndForget({\n width: _ref.width,\n height: _ref.height\n });\n };\n var xport = function(xports) {\n exportsPromise.resolve(xports);\n return parentExport(xports);\n };\n var getSiblings = function(_temp) {\n var anyParent = (void 0 === _temp ? {} : _temp).anyParent;\n var result = [];\n var currentParent = props.parent;\n void 0 === anyParent && (anyParent = !currentParent);\n if (!anyParent && !currentParent) throw new Error(\"No parent found for \" + tag + \" child\");\n for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(window); _i2 < _getAllFramesInWindow2.length; _i2++) {\n var win = _getAllFramesInWindow2[_i2];\n if (isSameDomain(win)) {\n var xprops = assertSameDomain(win).xprops;\n if (xprops && getParent() === xprops.getParent()) {\n var winParent = xprops.parent;\n if (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) {\n var xports = tryGlobal(win, (function(global) {\n return global.exports;\n }));\n result.push({\n props: xprops,\n exports: xports\n });\n }\n }\n }\n }\n return result;\n };\n var setProps = function(newProps, origin, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var normalizedProps = function(parentComponentWindow, propsDef, props, origin, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var result = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var prop = propsDef[key];\n 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 _i4 = 0; _i4 < onPropHandlers.length; _i4++) (0, onPropHandlers[_i4])(props);\n };\n var updateProps = function(newProps) {\n return promise_ZalgoPromise.try((function() {\n return setProps(newProps, parentDomain, !0);\n }));\n };\n return {\n init: function() {\n return promise_ZalgoPromise.try((function() {\n isSameDomain(parentComponentWindow) && function(_ref3) {\n var componentName = _ref3.componentName, parentComponentWindow = _ref3.parentComponentWindow;\n var _crossDomainDeseriali2 = crossDomainDeserialize({\n data: parseWindowName(window.name).serializedInitialPayload,\n sender: {\n win: parentComponentWindow\n },\n basic: !0\n }), sender = _crossDomainDeseriali2.sender;\n if (\"uid\" === _crossDomainDeseriali2.reference.type || \"global\" === _crossDomainDeseriali2.metaData.windowRef.type) {\n var _crossDomainSerialize = crossDomainSerialize({\n data: _crossDomainDeseriali2.data,\n metaData: {\n windowRef: window_getWindowRef(parentComponentWindow)\n },\n sender: {\n domain: sender.domain\n },\n receiver: {\n win: window,\n domain: getDomain()\n },\n basic: !0\n });\n window.name = buildChildWindowName({\n name: componentName,\n serializedPayload: _crossDomainSerialize.serializedData\n });\n }\n }({\n componentName: options.name,\n parentComponentWindow: parentComponentWindow\n });\n lib_global_getGlobal(window).exports = options.exports({\n getExports: function() {\n return exportsPromise;\n }\n });\n !function(allowedParentDomains, domain) {\n if (!matchDomain(allowedParentDomains, domain)) throw new Error(\"Can not be rendered by domain: \" + domain);\n }(allowedParentDomains, parentDomain);\n markWindowKnown(parentComponentWindow);\n !function() {\n window.addEventListener(\"beforeunload\", (function() {\n checkClose.fireAndForget();\n }));\n window.addEventListener(\"unload\", (function() {\n checkClose.fireAndForget();\n }));\n onCloseWindow(parentComponentWindow, (function() {\n child_destroy();\n }));\n }();\n return parentInit({\n updateProps: updateProps,\n close: child_destroy\n });\n })).then((function() {\n return (_autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, \n _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, \n _autoResize$element = autoResize.element, elementReady(void 0 === _autoResize$element ? \"body\" : _autoResize$element).catch(src_util_noop).then((function(element) {\n return {\n width: width,\n height: height,\n element: element\n };\n }))).then((function(_ref3) {\n var width = _ref3.width, height = _ref3.height, element = _ref3.element;\n element && (width || height) && context !== CONTEXT.POPUP && onResize(element, (function(_ref4) {\n resize({\n width: width ? _ref4.width : void 0,\n height: height ? _ref4.height : void 0\n });\n }), {\n width: width,\n height: height\n });\n }));\n var _autoResize$width, width, _autoResize$height, height, _autoResize$element;\n })).catch((function(err) {\n onError(err);\n }));\n },\n getProps: function() {\n if (props) return props;\n setProps(initialProps, parentDomain);\n return props;\n }\n };\n }(options);\n child.init();\n return child;\n }\n }));\n registerChild();\n !function() {\n var allowDelegateListener = on_on(\"zoid_allow_delegate_\" + name, (function() {\n return !0;\n }));\n var delegateListener = on_on(\"zoid_delegate_\" + name, (function(_ref2) {\n var _ref2$data = _ref2.data;\n return {\n parent: parentComponent({\n uid: _ref2$data.uid,\n options: options,\n overrides: _ref2$data.overrides,\n parentWin: _ref2.source\n })\n };\n }));\n cleanZoid.register(allowDelegateListener.cancel);\n cleanZoid.register(delegateListener.cancel);\n }();\n global.components = global.components || {};\n if (global.components[tag]) throw new Error(\"Can not register multiple components with the same tag: \" + tag);\n global.components[tag] = !0;\n return {\n init: function init(inputProps) {\n var instance;\n var uid = \"zoid-\" + tag + \"-\" + uniqueID();\n var props = inputProps || {};\n var _eligible = eligible({\n props: props\n }), eligibility = _eligible.eligible, reason = _eligible.reason;\n var onDestroy = props.onDestroy;\n props.onDestroy = function() {\n instance && eligibility && instances.splice(instances.indexOf(instance), 1);\n if (onDestroy) return onDestroy.apply(void 0, arguments);\n };\n var parent = parentComponent({\n uid: uid,\n options: options\n });\n parent.init();\n eligibility ? parent.setProps(props) : props.onDestroy && props.onDestroy();\n cleanInstances.register((function(err) {\n return parent.destroy(err || new Error(\"zoid destroyed all components\"));\n }));\n var clone = function(_temp) {\n var _ref4$decorate = (void 0 === _temp ? {} : _temp).decorate;\n return init((void 0 === _ref4$decorate ? identity : _ref4$decorate)(props));\n };\n var _render = function(target, container, context) {\n return promise_ZalgoPromise.try((function() {\n if (!eligibility) {\n var err = new Error(reason || name + \" component is not eligible\");\n return parent.destroy(err).then((function() {\n throw err;\n }));\n }\n if (!isWindow(target)) throw new Error(\"Must pass window to renderTo\");\n return function(props, context) {\n return promise_ZalgoPromise.try((function() {\n if (props.window) return setup_toProxyWindow(props.window).getType();\n if (context) {\n if (context !== CONTEXT.IFRAME && context !== CONTEXT.POPUP) throw new Error(\"Unrecognized context: \" + context);\n return context;\n }\n return defaultContext;\n }));\n }(props, context);\n })).then((function(finalContext) {\n container = function(context, container) {\n if (container) {\n if (\"string\" != typeof container && !isElement(container)) throw new TypeError(\"Expected string or element selector to be passed\");\n return container;\n }\n if (context === CONTEXT.POPUP) return \"body\";\n throw new Error(\"Expected element to be passed to render iframe\");\n }(finalContext, container);\n if (target !== window && \"string\" != typeof container) throw new Error(\"Must pass string element when rendering to another window\");\n return parent.render({\n target: target,\n container: container,\n context: finalContext,\n rerender: function() {\n var newInstance = clone();\n extend(instance, newInstance);\n return newInstance.renderTo(target, container, context);\n }\n });\n })).catch((function(err) {\n return parent.destroy(err).then((function() {\n throw err;\n }));\n }));\n };\n instance = _extends({}, parent.getExports(), parent.getHelpers(), function() {\n var childComponents = children();\n var result = {};\n var _loop2 = function(_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() {\n return eligibility;\n },\n clone: clone,\n render: function(container, context) {\n return _render(window, container, context);\n },\n renderTo: function(target, container, context) {\n return _render(target, container, context);\n }\n });\n eligibility && instances.push(instance);\n return instance;\n },\n instances: instances,\n driver: function(driverName, dep) {\n throw new Error(\"Driver support not enabled\");\n },\n isChild: isChild,\n canRenderTo: function(win) {\n return send_send(win, \"zoid_allow_delegate_\" + name).then((function(_ref3) {\n return _ref3.data;\n })).catch((function() {\n return !1;\n }));\n },\n registerChild: registerChild\n };\n }\n var component_create = function(options) {\n !function() {\n if (!global_getGlobal().initialized) {\n global_getGlobal().initialized = !0;\n on = (_ref3 = {\n on: on_on,\n send: send_send\n }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) {\n return receive_receiveMessage(message, {\n on: on,\n send: send\n });\n };\n !function(_ref5) {\n var on = _ref5.on, send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", (function() {\n return addEventListener(window, \"message\", (function(event) {\n !function(event, _ref4) {\n var on = _ref4.on, send = _ref4.send;\n promise_ZalgoPromise.try((function() {\n var source = event.source || event.sourceElement;\n var origin = event.origin || event.originalEvent && event.originalEvent.origin;\n var data = event.data;\n \"null\" === origin && (origin = \"file://\");\n if (source) {\n if (!origin) throw new Error(\"Post message did not have origin domain\");\n receive_receiveMessage({\n source: source,\n origin: origin,\n data: data\n }, {\n on: on,\n send: send\n });\n }\n }));\n }(event, {\n on: on,\n send: send\n });\n }));\n }));\n }({\n on: on_on,\n send: send_send\n });\n setupBridge({\n on: on_on,\n send: send_send,\n receiveMessage: receive_receiveMessage\n });\n !function(_ref8) {\n var on = _ref8.on, send = _ref8.send;\n globalStore(\"builtinListeners\").getOrSet(\"helloListener\", (function() {\n var listener = on(\"postrobot_hello\", {\n domain: \"*\"\n }, (function(_ref3) {\n resolveHelloPromise(_ref3.source, {\n domain: _ref3.origin\n });\n return {\n instanceID: getInstanceID()\n };\n }));\n var parent = getAncestor();\n parent && sayHello(parent, {\n send: send\n }).catch((function(err) {}));\n return listener;\n }));\n }({\n on: on_on,\n send: send_send\n });\n }\n var _ref3, on, send, global;\n }();\n var comp = component(options);\n var init = function(props) {\n return comp.init(props);\n };\n init.driver = function(name, dep) {\n return comp.driver(name, dep);\n };\n init.isChild = function() {\n return comp.isChild();\n };\n init.canRenderTo = function(win) {\n return comp.canRenderTo(win);\n };\n init.instances = comp.instances;\n var child = comp.registerChild();\n child && (window.xprops = init.xprops = child.getProps());\n return init;\n };\n function destroyComponents(err) {\n src_bridge && src_bridge.destroyBridges();\n var destroyPromise = cleanInstances.all(err);\n cleanInstances = cleanup();\n return destroyPromise;\n }\n var destroyAll = destroyComponents;\n function component_destroy(err) {\n destroyAll();\n delete window.__zoid_9_0_86__;\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}));","/* @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}\n","/* eslint-disable no-restricted-properties */\nimport zoid from 'zoid';\n\n// Handle Local and Production URLs\nconst isProduction = process.env.NODE_ENV === 'production';\nconst BASE_URL = isProduction ? \"https://nextjs-zoid.vercel.app\" : \"http://localhost:3000\";\n\nconst AdvancedZoid = zoid.create({\n tag: 'advanced-zoid',\n // Dynamic URL\n url: () => {\n try {\n const scriptSrc = document.getElementById('widget-id')?.getAttribute('src')\n if(!scriptSrc) {\n throw new Error('No script source found')\n }\n return `${new URL(scriptSrc).origin}/zoid-advanced`\n } catch {\n return BASE_URL\n }\n },\n dimensions: {\n width: '100%',\n height: '100%'\n },\n props: {\n buttonTxt: {\n type: 'string',\n required: true\n },\n onConfetti: {\n type: 'function',\n required: true\n },\n }\n});\n\n// Attach to the global scope\nexport default AdvancedZoid;\n"],"names":["this","require$$1"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/apps/nextjs/src/widgets/button.js b/apps/nextjs/src/widgets/button.js new file mode 100644 index 0000000..0158dbd --- /dev/null +++ b/apps/nextjs/src/widgets/button.js @@ -0,0 +1,5283 @@ +var Button = (function () { + 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + var zoid$2 = {exports: {}}; + + var zoid$1 = {exports: {}}; + + var hasRequiredZoid; + + function requireZoid () { + if (hasRequiredZoid) return zoid$1.exports; + hasRequiredZoid = 1; + (function (module, exports) { + !function(root, factory) { + module.exports = factory() ; + }("undefined" != typeof self ? self : commonjsGlobal, (function() { + return function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) return installedModules[moduleId].exports; + var module = installedModules[moduleId] = { + i: moduleId, + l: !1, + exports: {} + }; + modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + module.l = !0; + return module.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.d = function(exports, name, getter) { + __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, { + enumerable: !0, + get: getter + }); + }; + __webpack_require__.r = function(exports) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + Object.defineProperty(exports, "__esModule", { + value: !0 + }); + }; + __webpack_require__.t = function(value, mode) { + 1 & mode && (value = __webpack_require__(value)); + if (8 & mode) return value; + if (4 & mode && "object" == typeof value && value && value.__esModule) return value; + var ns = Object.create(null); + __webpack_require__.r(ns); + Object.defineProperty(ns, "default", { + enumerable: !0, + value: value + }); + if (2 & mode && "string" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) { + return value[key]; + }.bind(null, key)); + return ns; + }; + __webpack_require__.n = function(module) { + var getter = module && module.__esModule ? function() { + return module.default; + } : function() { + return module; + }; + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return {}.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 0); + }([ function(module, __webpack_exports__, __webpack_require__) { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, "PopupOpenError", (function() { + return dom_PopupOpenError; + })); + __webpack_require__.d(__webpack_exports__, "create", (function() { + return component_create; + })); + __webpack_require__.d(__webpack_exports__, "destroy", (function() { + return component_destroy; + })); + __webpack_require__.d(__webpack_exports__, "destroyComponents", (function() { + return destroyComponents; + })); + __webpack_require__.d(__webpack_exports__, "destroyAll", (function() { + return destroyAll; + })); + __webpack_require__.d(__webpack_exports__, "PROP_TYPE", (function() { + return PROP_TYPE; + })); + __webpack_require__.d(__webpack_exports__, "PROP_SERIALIZATION", (function() { + return PROP_SERIALIZATION; + })); + __webpack_require__.d(__webpack_exports__, "CONTEXT", (function() { + return CONTEXT; + })); + __webpack_require__.d(__webpack_exports__, "EVENT", (function() { + return EVENT; + })); + function _setPrototypeOf(o, p) { + return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) { + o.__proto__ = p; + return o; + })(o, p); + } + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + _setPrototypeOf(subClass, superClass); + } + function _extends() { + return (_extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) ({}).hasOwnProperty.call(source, key) && (target[key] = source[key]); + } + return target; + }).apply(this, arguments); + } + function utils_isPromise(item) { + try { + if (!item) return !1; + if ("undefined" != typeof Promise && item instanceof Promise) return !0; + if ("undefined" != typeof window && "function" == typeof window.Window && item instanceof window.Window) return !1; + if ("undefined" != typeof window && "function" == typeof window.constructor && item instanceof window.constructor) return !1; + var _toString = {}.toString; + if (_toString) { + var name = _toString.call(item); + if ("[object Window]" === name || "[object global]" === name || "[object DOMWindow]" === name) return !1; + } + if ("function" == typeof item.then) return !0; + } catch (err) { + return !1; + } + return !1; + } + var dispatchedErrors = []; + var possiblyUnhandledPromiseHandlers = []; + var activeCount = 0; + var flushPromise; + function flushActive() { + if (!activeCount && flushPromise) { + var promise = flushPromise; + flushPromise = null; + promise.resolve(); + } + } + function startActive() { + activeCount += 1; + } + function endActive() { + activeCount -= 1; + flushActive(); + } + var promise_ZalgoPromise = function() { + function ZalgoPromise(handler) { + var _this = this; + 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 = []; + if (handler) { + var _result; + var _error; + var resolved = !1; + var rejected = !1; + var isAsync = !1; + startActive(); + try { + handler((function(res) { + if (isAsync) _this.resolve(res); else { + resolved = !0; + _result = res; + } + }), (function(err) { + if (isAsync) _this.reject(err); else { + rejected = !0; + _error = err; + } + })); + } catch (err) { + endActive(); + this.reject(err); + return; + } + endActive(); + isAsync = !0; + resolved ? this.resolve(_result) : rejected && this.reject(_error); + } + } + var _proto = ZalgoPromise.prototype; + _proto.resolve = function(result) { + if (this.resolved || this.rejected) return this; + if (utils_isPromise(result)) throw new Error("Can not resolve promise with another promise"); + this.resolved = !0; + this.value = result; + this.dispatch(); + return this; + }; + _proto.reject = function(error) { + var _this2 = this; + if (this.resolved || this.rejected) return this; + if (utils_isPromise(error)) throw new Error("Can not reject promise with another promise"); + if (!error) { + var _err = error && "function" == typeof error.toString ? error.toString() : {}.toString.call(error); + error = new Error("Expected reject to be called with Error, got " + _err); + } + this.rejected = !0; + this.error = error; + this.errorHandled || setTimeout((function() { + _this2.errorHandled || function(err, promise) { + if (-1 === dispatchedErrors.indexOf(err)) { + dispatchedErrors.push(err); + setTimeout((function() { + throw err; + }), 1); + for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise); + } + }(error, _this2); + }), 1); + this.dispatch(); + return this; + }; + _proto.asyncReject = function(error) { + this.errorHandled = !0; + this.reject(error); + return this; + }; + _proto.dispatch = function() { + var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers; + if (!this.dispatching && (resolved || rejected)) { + this.dispatching = !0; + startActive(); + var chain = function(firstPromise, secondPromise) { + return firstPromise.then((function(res) { + secondPromise.resolve(res); + }), (function(err) { + secondPromise.reject(err); + })); + }; + for (var i = 0; i < handlers.length; i++) { + var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise; + var _result2 = void 0; + if (resolved) try { + _result2 = onSuccess ? onSuccess(this.value) : this.value; + } catch (err) { + promise.reject(err); + continue; + } else if (rejected) { + if (!onError) { + promise.reject(this.error); + continue; + } + try { + _result2 = onError(this.error); + } catch (err) { + promise.reject(err); + continue; + } + } + if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) { + var promiseResult = _result2; + promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error); + promiseResult.errorHandled = !0; + } 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); + } + handlers.length = 0; + this.dispatching = !1; + endActive(); + } + }; + _proto.then = function(onSuccess, onError) { + if (onSuccess && "function" != typeof onSuccess && !onSuccess.call) throw new Error("Promise.then expected a function for success handler"); + if (onError && "function" != typeof onError && !onError.call) throw new Error("Promise.then expected a function for error handler"); + var promise = new ZalgoPromise; + this.handlers.push({ + promise: promise, + onSuccess: onSuccess, + onError: onError + }); + this.errorHandled = !0; + this.dispatch(); + return promise; + }; + _proto.catch = function(onError) { + return this.then(void 0, onError); + }; + _proto.finally = function(onFinally) { + if (onFinally && "function" != typeof onFinally && !onFinally.call) throw new Error("Promise.finally expected a function"); + return this.then((function(result) { + return ZalgoPromise.try(onFinally).then((function() { + return result; + })); + }), (function(err) { + return ZalgoPromise.try(onFinally).then((function() { + throw err; + })); + })); + }; + _proto.timeout = function(time, err) { + var _this3 = this; + if (this.resolved || this.rejected) return this; + var timeout = setTimeout((function() { + _this3.resolved || _this3.rejected || _this3.reject(err || new Error("Promise timed out after " + time + "ms")); + }), time); + return this.then((function(result) { + clearTimeout(timeout); + return result; + })); + }; + _proto.toPromise = function() { + if ("undefined" == typeof Promise) throw new TypeError("Could not find Promise"); + return Promise.resolve(this); + }; + _proto.lazy = function() { + this.errorHandled = !0; + return this; + }; + ZalgoPromise.resolve = function(value) { + return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) { + return value.then(resolve, reject); + })) : (new ZalgoPromise).resolve(value); + }; + ZalgoPromise.reject = function(error) { + return (new ZalgoPromise).reject(error); + }; + ZalgoPromise.asyncReject = function(error) { + return (new ZalgoPromise).asyncReject(error); + }; + ZalgoPromise.all = function(promises) { + var promise = new ZalgoPromise; + var count = promises.length; + var results = [].slice(); + if (!count) { + promise.resolve(results); + return promise; + } + var chain = function(i, firstPromise, secondPromise) { + return firstPromise.then((function(res) { + results[i] = res; + 0 == (count -= 1) && promise.resolve(results); + }), (function(err) { + secondPromise.reject(err); + })); + }; + for (var i = 0; i < promises.length; i++) { + var prom = promises[i]; + if (prom instanceof ZalgoPromise) { + if (prom.resolved) { + results[i] = prom.value; + count -= 1; + continue; + } + } else if (!utils_isPromise(prom)) { + results[i] = prom; + count -= 1; + continue; + } + chain(i, ZalgoPromise.resolve(prom), promise); + } + 0 === count && promise.resolve(results); + return promise; + }; + ZalgoPromise.hash = function(promises) { + var result = {}; + var awaitPromises = []; + var _loop = function(key) { + if (promises.hasOwnProperty(key)) { + var value = promises[key]; + utils_isPromise(value) ? awaitPromises.push(value.then((function(res) { + result[key] = res; + }))) : result[key] = value; + } + }; + for (var key in promises) _loop(key); + return ZalgoPromise.all(awaitPromises).then((function() { + return result; + })); + }; + ZalgoPromise.map = function(items, method) { + return ZalgoPromise.all(items.map(method)); + }; + ZalgoPromise.onPossiblyUnhandledException = function(handler) { + return function(handler) { + possiblyUnhandledPromiseHandlers.push(handler); + return { + cancel: function() { + possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1); + } + }; + }(handler); + }; + ZalgoPromise.try = function(method, context, args) { + if (method && "function" != typeof method && !method.call) throw new Error("Promise.try expected a function"); + var result; + startActive(); + try { + result = method.apply(context, args || []); + } catch (err) { + endActive(); + return ZalgoPromise.reject(err); + } + endActive(); + return ZalgoPromise.resolve(result); + }; + ZalgoPromise.delay = function(_delay) { + return new ZalgoPromise((function(resolve) { + setTimeout(resolve, _delay); + })); + }; + ZalgoPromise.isPromise = function(value) { + return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value); + }; + ZalgoPromise.flush = function() { + return function(Zalgo) { + var promise = flushPromise = flushPromise || new Zalgo; + flushActive(); + return promise; + }(ZalgoPromise); + }; + return ZalgoPromise; + }(); + function isRegex(item) { + return "[object RegExp]" === {}.toString.call(item); + } + var WINDOW_TYPE = { + IFRAME: "iframe", + POPUP: "popup" + }; + var IE_WIN_ACCESS_ERROR = "Call was rejected by callee.\r\n"; + function getActualProtocol(win) { + void 0 === win && (win = window); + return win.location.protocol; + } + function getProtocol(win) { + void 0 === win && (win = window); + if (win.mockDomain) { + var protocol = win.mockDomain.split("//")[0]; + if (protocol) return protocol; + } + return getActualProtocol(win); + } + function isAboutProtocol(win) { + void 0 === win && (win = window); + return "about:" === getProtocol(win); + } + function utils_getParent(win) { + void 0 === win && (win = window); + if (win) try { + if (win.parent && win.parent !== win) return win.parent; + } catch (err) {} + } + function getOpener(win) { + void 0 === win && (win = window); + if (win && !utils_getParent(win)) try { + return win.opener; + } catch (err) {} + } + function canReadFromWindow(win) { + try { + return !0; + } catch (err) {} + return !1; + } + function getActualDomain(win) { + void 0 === win && (win = window); + var location = win.location; + if (!location) throw new Error("Can not read window location"); + var protocol = getActualProtocol(win); + if (!protocol) throw new Error("Can not read window protocol"); + if ("file:" === protocol) return "file://"; + if ("about:" === protocol) { + var parent = utils_getParent(win); + return parent && canReadFromWindow() ? getActualDomain(parent) : "about://"; + } + var host = location.host; + if (!host) throw new Error("Can not read window host"); + return protocol + "//" + host; + } + function getDomain(win) { + void 0 === win && (win = window); + var domain = getActualDomain(win); + return domain && win.mockDomain && 0 === win.mockDomain.indexOf("mock:") ? win.mockDomain : domain; + } + function isSameDomain(win) { + if (!function(win) { + try { + if (win === window) return !0; + } catch (err) {} + try { + var desc = Object.getOwnPropertyDescriptor(win, "location"); + if (desc && !1 === desc.enumerable) return !1; + } catch (err) {} + try { + if (isAboutProtocol(win) && canReadFromWindow()) return !0; + } catch (err) {} + try { + if (function(win) { + void 0 === win && (win = window); + return "mock:" === getProtocol(win); + }(win) && canReadFromWindow()) return !0; + } catch (err) {} + try { + if (getActualDomain(win) === getActualDomain(window)) return !0; + } catch (err) {} + return !1; + }(win)) return !1; + try { + if (win === window) return !0; + if (isAboutProtocol(win) && canReadFromWindow()) return !0; + if (getDomain(window) === getDomain(win)) return !0; + } catch (err) {} + return !1; + } + function assertSameDomain(win) { + if (!isSameDomain(win)) throw new Error("Expected window to be same domain"); + return win; + } + function isAncestorParent(parent, child) { + if (!parent || !child) return !1; + var childParent = utils_getParent(child); + return childParent ? childParent === parent : -1 !== function(win) { + var result = []; + try { + for (;win.parent !== win; ) { + result.push(win.parent); + win = win.parent; + } + } catch (err) {} + return result; + }(child).indexOf(parent); + } + function getFrames(win) { + var result = []; + var frames; + try { + frames = win.frames; + } catch (err) { + frames = win; + } + var len; + try { + len = frames.length; + } catch (err) {} + if (0 === len) return result; + if (len) { + for (var i = 0; i < len; i++) { + var frame = void 0; + try { + frame = frames[i]; + } catch (err) { + continue; + } + result.push(frame); + } + return result; + } + for (var _i = 0; _i < 100; _i++) { + var _frame = void 0; + try { + _frame = frames[_i]; + } catch (err) { + return result; + } + if (!_frame) return result; + result.push(_frame); + } + return result; + } + function getAllChildFrames(win) { + var result = []; + for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) { + var frame = _getFrames2[_i3]; + result.push(frame); + for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]); + } + return result; + } + function getTop(win) { + void 0 === win && (win = window); + try { + if (win.top) return win.top; + } catch (err) {} + if (utils_getParent(win) === win) return win; + try { + if (isAncestorParent(window, win) && window.top) return window.top; + } catch (err) {} + try { + if (isAncestorParent(win, window) && window.top) return window.top; + } catch (err) {} + for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) { + var frame = _getAllChildFrames4[_i7]; + try { + if (frame.top) return frame.top; + } catch (err) {} + if (utils_getParent(frame) === frame) return frame; + } + } + function getAllFramesInWindow(win) { + var top = getTop(win); + if (!top) throw new Error("Can not determine top window"); + var result = [].concat(getAllChildFrames(top), [ top ]); + -1 === result.indexOf(win) && (result = [].concat(result, [ win ], getAllChildFrames(win))); + return result; + } + var iframeWindows = []; + var iframeFrames = []; + function isWindowClosed(win, allowMock) { + void 0 === allowMock && (allowMock = !0); + try { + if (win === window) return !1; + } catch (err) { + return !0; + } + try { + if (!win) return !0; + } catch (err) { + return !0; + } + try { + if (win.closed) return !0; + } catch (err) { + return !err || err.message !== IE_WIN_ACCESS_ERROR; + } + if (allowMock && isSameDomain(win)) try { + if (win.mockclosed) return !0; + } catch (err) {} + try { + if (!win.parent || !win.top) return !0; + } catch (err) {} + var iframeIndex = function(collection, item) { + for (var i = 0; i < collection.length; i++) try { + if (collection[i] === item) return i; + } catch (err) {} + return -1; + }(iframeWindows, win); + if (-1 !== iframeIndex) { + var frame = iframeFrames[iframeIndex]; + if (frame && function(frame) { + if (!frame.contentWindow) return !0; + if (!frame.parentNode) return !0; + var doc = frame.ownerDocument; + if (doc && doc.documentElement && !doc.documentElement.contains(frame)) { + var parent = frame; + for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode; + if (!parent.host || !doc.documentElement.contains(parent.host)) return !0; + } + return !1; + }(frame)) return !0; + } + return !1; + } + function utils_getUserAgent(win) { + return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent; + } + function getFrameByName(win, name) { + var winFrames = getFrames(win); + for (var _i9 = 0; _i9 < winFrames.length; _i9++) { + var childFrame = winFrames[_i9]; + try { + if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame; + } catch (err) {} + } + try { + if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name]; + } catch (err) {} + try { + if (-1 !== winFrames.indexOf(win[name])) return win[name]; + } catch (err) {} + } + function isOpener(parent, child) { + return parent === getOpener(child); + } + function getAncestor(win) { + void 0 === win && (win = window); + return getOpener(win = win || window) || utils_getParent(win) || void 0; + } + function anyMatch(collection1, collection2) { + for (var _i17 = 0; _i17 < collection1.length; _i17++) { + var item1 = collection1[_i17]; + for (var _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0; + } + return !1; + } + function getDistanceFromTop(win) { + void 0 === win && (win = window); + var distance = 0; + var parent = win; + for (;parent; ) (parent = utils_getParent(parent)) && (distance += 1); + return distance; + } + function isSameTopWindow(win1, win2) { + var top1 = getTop(win1) || win1; + var top2 = getTop(win2) || win2; + try { + if (top1 && top2) return top1 === top2; + } catch (err) {} + var allFrames1 = getAllFramesInWindow(win1); + var allFrames2 = getAllFramesInWindow(win2); + if (anyMatch(allFrames1, allFrames2)) return !0; + var opener1 = getOpener(top1); + var opener2 = getOpener(top2); + return opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), + !1; + } + function matchDomain(pattern, origin) { + if ("string" == typeof pattern) { + if ("string" == typeof origin) return "*" === pattern || origin === pattern; + if (isRegex(origin)) return !1; + if (Array.isArray(origin)) return !1; + } + 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) { + return matchDomain(subpattern, origin); + }))); + } + function getDomainFromUrl(url) { + return url.match(/^(https?|mock|file):\/\//) ? url.split("/").slice(0, 3).join("/") : getDomain(); + } + function onCloseWindow(win, callback, delay, maxtime) { + void 0 === delay && (delay = 1e3); + void 0 === maxtime && (maxtime = 1 / 0); + var timeout; + !function check() { + if (isWindowClosed(win)) { + timeout && clearTimeout(timeout); + return callback(); + } + if (maxtime <= 0) clearTimeout(timeout); else { + maxtime -= delay; + timeout = setTimeout(check, delay); + } + }(); + return { + cancel: function() { + timeout && clearTimeout(timeout); + } + }; + } + function isWindow(obj) { + try { + if (obj === window) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if ("[object Window]" === {}.toString.call(obj)) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (window.Window && obj instanceof window.Window) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && obj.self === obj) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && obj.parent === obj) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && obj.top === obj) return !0; + } catch (err) { + if (err && err.message === IE_WIN_ACCESS_ERROR) return !0; + } + try { + if (obj && "__unlikely_value__" === obj.__cross_domain_utils_window_check__) return !1; + } catch (err) { + return !0; + } + try { + if ("postMessage" in obj && "self" in obj && "location" in obj) return !0; + } catch (err) {} + return !1; + } + function normalizeMockUrl(url) { + if (!(domain = getDomainFromUrl(url), 0 === domain.indexOf("mock:"))) return url; + var domain; + throw new Error("Mock urls not supported out of test mode"); + } + function getFrameForWindow(win) { + if (isSameDomain(win)) return assertSameDomain(win).frameElement; + for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll("iframe"); _i21 < _document$querySelect2.length; _i21++) { + var frame = _document$querySelect2[_i21]; + if (frame && frame.contentWindow && frame.contentWindow === win) return frame; + } + } + function closeWindow(win) { + if (function(win) { + void 0 === win && (win = window); + return Boolean(utils_getParent(win)); + }(win)) { + var frame = getFrameForWindow(win); + if (frame && frame.parentElement) { + frame.parentElement.removeChild(frame); + return; + } + } + try { + win.close(); + } catch (err) {} + } + function util_safeIndexOf(collection, item) { + for (var i = 0; i < collection.length; i++) try { + if (collection[i] === item) return i; + } catch (err) {} + return -1; + } + var weakmap_CrossDomainSafeWeakMap = function() { + function CrossDomainSafeWeakMap() { + this.name = void 0; + this.weakmap = void 0; + this.keys = void 0; + this.values = void 0; + this.name = "__weakmap_" + (1e9 * Math.random() >>> 0) + "__"; + if (function() { + if ("undefined" == typeof WeakMap) return !1; + if (void 0 === Object.freeze) return !1; + try { + var testWeakMap = new WeakMap; + var testKey = {}; + Object.freeze(testKey); + testWeakMap.set(testKey, "__testvalue__"); + return "__testvalue__" === testWeakMap.get(testKey); + } catch (err) { + return !1; + } + }()) try { + this.weakmap = new WeakMap; + } catch (err) {} + this.keys = []; + this.values = []; + } + var _proto = CrossDomainSafeWeakMap.prototype; + _proto._cleanupClosedWindows = function() { + var weakmap = this.weakmap; + var keys = this.keys; + for (var i = 0; i < keys.length; i++) { + var value = keys[i]; + if (isWindow(value) && isWindowClosed(value)) { + if (weakmap) try { + weakmap.delete(value); + } catch (err) {} + keys.splice(i, 1); + this.values.splice(i, 1); + i -= 1; + } + } + }; + _proto.isSafeToReadWrite = function(key) { + return !isWindow(key); + }; + _proto.set = function(key, value) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + weakmap.set(key, value); + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var name = this.name; + var entry = key[name]; + entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, { + value: [ key, value ], + writable: !0 + }); + return; + } catch (err) {} + this._cleanupClosedWindows(); + var keys = this.keys; + var values = this.values; + var index = util_safeIndexOf(keys, key); + if (-1 === index) { + keys.push(key); + values.push(value); + } else values[index] = value; + }; + _proto.get = function(key) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + if (weakmap.has(key)) return weakmap.get(key); + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var entry = key[this.name]; + return entry && entry[0] === key ? entry[1] : void 0; + } catch (err) {} + this._cleanupClosedWindows(); + var index = util_safeIndexOf(this.keys, key); + if (-1 !== index) return this.values[index]; + }; + _proto.delete = function(key) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + weakmap.delete(key); + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var entry = key[this.name]; + entry && entry[0] === key && (entry[0] = entry[1] = void 0); + } catch (err) {} + this._cleanupClosedWindows(); + var keys = this.keys; + var index = util_safeIndexOf(keys, key); + if (-1 !== index) { + keys.splice(index, 1); + this.values.splice(index, 1); + } + }; + _proto.has = function(key) { + if (!key) throw new Error("WeakMap expected key"); + var weakmap = this.weakmap; + if (weakmap) try { + if (weakmap.has(key)) return !0; + } catch (err) { + delete this.weakmap; + } + if (this.isSafeToReadWrite(key)) try { + var entry = key[this.name]; + return !(!entry || entry[0] !== key); + } catch (err) {} + this._cleanupClosedWindows(); + return -1 !== util_safeIndexOf(this.keys, key); + }; + _proto.getOrSet = function(key, getter) { + if (this.has(key)) return this.get(key); + var value = getter(); + this.set(key, value); + return value; + }; + return CrossDomainSafeWeakMap; + }(); + function _getPrototypeOf(o) { + return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) { + return o.__proto__ || Object.getPrototypeOf(o); + })(o); + } + function _isNativeReflectConstruct() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))); + return !0; + } catch (e) { + return !1; + } + } + function construct_construct(Parent, args, Class) { + return (construct_construct = _isNativeReflectConstruct() ? Reflect.construct : function(Parent, args, Class) { + var a = [ null ]; + a.push.apply(a, args); + var instance = new (Function.bind.apply(Parent, a)); + Class && _setPrototypeOf(instance, Class.prototype); + return instance; + }).apply(null, arguments); + } + function wrapNativeSuper_wrapNativeSuper(Class) { + var _cache = "function" == typeof Map ? new Map : void 0; + return (wrapNativeSuper_wrapNativeSuper = function(Class) { + if (null === Class || !(fn = Class, -1 !== Function.toString.call(fn).indexOf("[native code]"))) return Class; + var fn; + if ("function" != typeof Class) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== _cache) { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return construct_construct(Class, arguments, _getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: !1, + writable: !0, + configurable: !0 + } + }); + return _setPrototypeOf(Wrapper, Class); + })(Class); + } + function getFunctionName(fn) { + return fn.name || fn.__name__ || fn.displayName || "anonymous"; + } + function setFunctionName(fn, name) { + try { + delete fn.name; + fn.name = name; + } catch (err) {} + fn.__name__ = fn.displayName = name; + return fn; + } + function base64encode(str) { + if ("function" == typeof btoa) return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (function(m, p1) { + return String.fromCharCode(parseInt(p1, 16)); + }))).replace(/[=]/g, ""); + if ("undefined" != typeof Buffer) return Buffer.from(str, "utf8").toString("base64").replace(/[=]/g, ""); + throw new Error("Can not find window.btoa or Buffer"); + } + function uniqueID() { + var chars = "0123456789abcdef"; + return "uid_" + "xxxxxxxxxx".replace(/./g, (function() { + return chars.charAt(Math.floor(Math.random() * chars.length)); + })) + "_" + base64encode((new Date).toISOString().slice(11, 19).replace("T", ".")).replace(/[^a-zA-Z0-9]/g, "").toLowerCase(); + } + var objectIDs; + function serializeArgs(args) { + try { + return JSON.stringify([].slice.call(args), (function(subkey, val) { + return "function" == typeof val ? "memoize[" + function(obj) { + objectIDs = objectIDs || new weakmap_CrossDomainSafeWeakMap; + if (null == obj || "object" != typeof obj && "function" != typeof obj) throw new Error("Invalid object"); + var uid = objectIDs.get(obj); + if (!uid) { + uid = typeof obj + ":" + uniqueID(); + objectIDs.set(obj, uid); + } + return uid; + }(val) + "]" : val; + })); + } catch (err) { + throw new Error("Arguments not serializable -- can not be used to memoize"); + } + } + function getEmptyObject() { + return {}; + } + var memoizeGlobalIndex = 0; + var memoizeGlobalIndexValidFrom = 0; + function memoize(method, options) { + void 0 === options && (options = {}); + var _options$thisNamespac = options.thisNamespace, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time; + var simpleCache; + var thisCache; + var memoizeIndex = memoizeGlobalIndex; + memoizeGlobalIndex += 1; + var memoizedFunction = function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + if (memoizeIndex < memoizeGlobalIndexValidFrom) { + simpleCache = null; + thisCache = null; + memoizeIndex = memoizeGlobalIndex; + memoizeGlobalIndex += 1; + } + var cache; + cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {}; + var cacheKey = serializeArgs(args); + var cacheResult = cache[cacheKey]; + if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) { + delete cache[cacheKey]; + cacheResult = null; + } + if (cacheResult) return cacheResult.value; + var time = Date.now(); + var value = method.apply(this, arguments); + cache[cacheKey] = { + time: time, + value: value + }; + return value; + }; + memoizedFunction.reset = function() { + simpleCache = null; + thisCache = null; + }; + return setFunctionName(memoizedFunction, (options.name || getFunctionName(method)) + "::memoized"); + } + memoize.clear = function() { + memoizeGlobalIndexValidFrom = memoizeGlobalIndex; + }; + function memoizePromise(method) { + var cache = {}; + function memoizedPromiseFunction() { + var _arguments = arguments, _this = this; + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2]; + var key = serializeArgs(args); + if (cache.hasOwnProperty(key)) return cache[key]; + cache[key] = promise_ZalgoPromise.try((function() { + return method.apply(_this, _arguments); + })).finally((function() { + delete cache[key]; + })); + return cache[key]; + } + memoizedPromiseFunction.reset = function() { + cache = {}; + }; + return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + "::promiseMemoized"); + } + function src_util_noop() {} + function once(method) { + var called = !1; + return setFunctionName((function() { + if (!called) { + called = !0; + return method.apply(this, arguments); + } + }), getFunctionName(method) + "::once"); + } + function stringifyError(err, level) { + void 0 === level && (level = 1); + if (level >= 3) return "stringifyError stack overflow"; + try { + if (!err) return ""; + if ("string" == typeof err) return err; + if (err instanceof Error) { + var stack = err && err.stack; + var message = err && err.message; + if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + "\n" + stack; + if (stack) return stack; + if (message) return message; + } + return err && err.toString && "function" == typeof err.toString ? err.toString() : {}.toString.call(err); + } catch (newErr) { + return "Error while stringifying error: " + stringifyError(newErr, level + 1); + } + } + function stringify(item) { + return "string" == typeof item ? item : item && item.toString && "function" == typeof item.toString ? item.toString() : {}.toString.call(item); + } + function extend(obj, source) { + if (!source) return obj; + if (Object.assign) return Object.assign(obj, source); + for (var key in source) source.hasOwnProperty(key) && (obj[key] = source[key]); + return obj; + } + memoize((function(obj) { + if (Object.values) return Object.values(obj); + var result = []; + for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]); + return result; + })); + function identity(item) { + return item; + } + function safeInterval(method, time) { + var timeout; + !function loop() { + timeout = setTimeout((function() { + method(); + loop(); + }), time); + }(); + return { + cancel: function() { + clearTimeout(timeout); + } + }; + } + function arrayFrom(item) { + return [].slice.call(item); + } + function isDefined(value) { + return null != value; + } + function util_isRegex(item) { + return "[object RegExp]" === {}.toString.call(item); + } + function util_getOrSet(obj, key, getter) { + if (obj.hasOwnProperty(key)) return obj[key]; + var val = getter(); + obj[key] = val; + return val; + } + function cleanup(obj) { + var tasks = []; + var cleaned = !1; + var cleanErr; + var cleaner = { + set: function(name, item) { + if (!cleaned) { + obj[name] = item; + cleaner.register((function() { + delete obj[name]; + })); + } + return item; + }, + register: function(method) { + var task = once((function() { + return method(cleanErr); + })); + cleaned ? method(cleanErr) : tasks.push(task); + return { + cancel: function() { + var index = tasks.indexOf(task); + -1 !== index && tasks.splice(index, 1); + } + }; + }, + all: function(err) { + cleanErr = err; + var results = []; + cleaned = !0; + for (;tasks.length; ) { + var task = tasks.shift(); + results.push(task()); + } + return promise_ZalgoPromise.all(results).then(src_util_noop); + } + }; + return cleaner; + } + function assertExists(name, thing) { + if (null == thing) throw new Error("Expected " + name + " to be present"); + return thing; + } + var util_ExtendableError = function(_Error) { + _inheritsLoose(ExtendableError, _Error); + function ExtendableError(message) { + var _this6; + (_this6 = _Error.call(this, message) || this).name = _this6.constructor.name; + "function" == typeof Error.captureStackTrace ? Error.captureStackTrace(function(self) { + if (void 0 === self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return self; + }(_this6), _this6.constructor) : _this6.stack = new Error(message).stack; + return _this6; + } + return ExtendableError; + }(wrapNativeSuper_wrapNativeSuper(Error)); + function getBody() { + var body = document.body; + if (!body) throw new Error("Body element not found"); + return body; + } + function isDocumentReady() { + return Boolean(document.body) && "complete" === document.readyState; + } + function isDocumentInteractive() { + return Boolean(document.body) && "interactive" === document.readyState; + } + function urlEncode(str) { + return encodeURIComponent(str); + } + memoize((function() { + return new promise_ZalgoPromise((function(resolve) { + if (isDocumentReady() || isDocumentInteractive()) return resolve(); + var interval = setInterval((function() { + if (isDocumentReady() || isDocumentInteractive()) { + clearInterval(interval); + return resolve(); + } + }), 10); + })); + })); + function parseQuery(queryString) { + return function(method, logic, args) { + void 0 === args && (args = []); + var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {}; + var key = serializeArgs(args); + return cache.hasOwnProperty(key) ? cache[key] : cache[key] = function() { + var params = {}; + if (!queryString) return params; + if (-1 === queryString.indexOf("=")) return params; + for (var _i2 = 0, _queryString$split2 = queryString.split("&"); _i2 < _queryString$split2.length; _i2++) { + var pair = _queryString$split2[_i2]; + (pair = pair.split("="))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1])); + } + return params; + }.apply(void 0, args); + }(parseQuery, 0, [ queryString ]); + } + function extendQuery(originalQuery, props) { + void 0 === props && (props = {}); + return props && Object.keys(props).length ? function(obj) { + void 0 === obj && (obj = {}); + return Object.keys(obj).filter((function(key) { + return "string" == typeof obj[key] || "boolean" == typeof obj[key]; + })).map((function(key) { + var val = obj[key]; + if ("string" != typeof val && "boolean" != typeof val) throw new TypeError("Invalid type for query"); + return urlEncode(key) + "=" + urlEncode(val.toString()); + })).join("&"); + }(_extends({}, parseQuery(originalQuery), props)) : originalQuery; + } + function appendChild(container, child) { + container.appendChild(child); + } + function isElement(element) { + return element instanceof window.Element || null !== element && "object" == typeof element && 1 === element.nodeType && "object" == typeof element.style && "object" == typeof element.ownerDocument; + } + function getElementSafe(id, doc) { + void 0 === doc && (doc = document); + return isElement(id) ? id : "string" == typeof id ? doc.querySelector(id) : void 0; + } + function elementReady(id) { + return new promise_ZalgoPromise((function(resolve, reject) { + var name = stringify(id); + var el = getElementSafe(id); + if (el) return resolve(el); + if (isDocumentReady()) return reject(new Error("Document is ready and element " + name + " does not exist")); + var interval = setInterval((function() { + if (el = getElementSafe(id)) { + resolve(el); + clearInterval(interval); + } else if (isDocumentReady()) { + clearInterval(interval); + return reject(new Error("Document is ready and element " + name + " does not exist")); + } + }), 10); + })); + } + var dom_PopupOpenError = function(_ExtendableError) { + _inheritsLoose(PopupOpenError, _ExtendableError); + function PopupOpenError() { + return _ExtendableError.apply(this, arguments) || this; + } + return PopupOpenError; + }(util_ExtendableError); + var awaitFrameLoadPromises; + function awaitFrameLoad(frame) { + if ((awaitFrameLoadPromises = awaitFrameLoadPromises || new weakmap_CrossDomainSafeWeakMap).has(frame)) { + var _promise = awaitFrameLoadPromises.get(frame); + if (_promise) return _promise; + } + var promise = new promise_ZalgoPromise((function(resolve, reject) { + frame.addEventListener("load", (function() { + !function(frame) { + !function() { + for (var i = 0; i < iframeWindows.length; i++) { + var closed = !1; + try { + closed = iframeWindows[i].closed; + } catch (err) {} + if (closed) { + iframeFrames.splice(i, 1); + iframeWindows.splice(i, 1); + } + } + }(); + if (frame && frame.contentWindow) try { + iframeWindows.push(frame.contentWindow); + iframeFrames.push(frame); + } catch (err) {} + }(frame); + resolve(frame); + })); + frame.addEventListener("error", (function(err) { + frame.contentWindow ? resolve(frame) : reject(err); + })); + })); + awaitFrameLoadPromises.set(frame, promise); + return promise; + } + function awaitFrameWindow(frame) { + return awaitFrameLoad(frame).then((function(loadedFrame) { + if (!loadedFrame.contentWindow) throw new Error("Could not find window in iframe"); + return loadedFrame.contentWindow; + })); + } + function dom_iframe(options, container) { + void 0 === options && (options = {}); + var style = options.style || {}; + var frame = function(tag, options, container) { + void 0 === tag && (tag = "div"); + void 0 === options && (options = {}); + tag = tag.toLowerCase(); + var element = document.createElement(tag); + options.style && extend(element.style, options.style); + options.class && (element.className = options.class.join(" ")); + options.id && element.setAttribute("id", options.id); + if (options.attributes) for (var _i10 = 0, _Object$keys2 = Object.keys(options.attributes); _i10 < _Object$keys2.length; _i10++) { + var key = _Object$keys2[_i10]; + element.setAttribute(key, options.attributes[key]); + } + options.styleSheet && function(el, styleText, doc) { + void 0 === doc && (doc = window.document); + el.styleSheet ? el.styleSheet.cssText = styleText : el.appendChild(doc.createTextNode(styleText)); + }(element, options.styleSheet); + if (options.html) { + if ("iframe" === tag) throw new Error("Iframe html can not be written unless container provided and iframe in DOM"); + element.innerHTML = options.html; + } + return element; + }("iframe", { + attributes: _extends({ + allowTransparency: "true" + }, options.attributes || {}), + style: _extends({ + backgroundColor: "transparent", + border: "none" + }, style), + html: options.html, + class: options.class + }); + var isIE = window.navigator.userAgent.match(/MSIE|Edge/i); + frame.hasAttribute("id") || frame.setAttribute("id", uniqueID()); + awaitFrameLoad(frame); + (options.url || isIE) && frame.setAttribute("src", options.url || "about:blank"); + return frame; + } + function addEventListener(obj, event, handler) { + obj.addEventListener(event, handler); + return { + cancel: function() { + obj.removeEventListener(event, handler); + } + }; + } + function showElement(element) { + element.style.setProperty("display", ""); + } + function hideElement(element) { + element.style.setProperty("display", "none", "important"); + } + function destroyElement(element) { + element && element.parentNode && element.parentNode.removeChild(element); + } + function isElementClosed(el) { + return !(el && el.parentNode && el.ownerDocument && el.ownerDocument.documentElement && el.ownerDocument.documentElement.contains(el)); + } + function onResize(el, handler, _temp) { + var _ref2 = void 0 === _temp ? {} : _temp, _ref2$width = _ref2.width, width = void 0 === _ref2$width || _ref2$width, _ref2$height = _ref2.height, height = void 0 === _ref2$height || _ref2$height, _ref2$interval = _ref2.interval, interval = void 0 === _ref2$interval ? 100 : _ref2$interval, _ref2$win = _ref2.win, win = void 0 === _ref2$win ? window : _ref2$win; + var currentWidth = el.offsetWidth; + var currentHeight = el.offsetHeight; + var canceled = !1; + handler({ + width: currentWidth, + height: currentHeight + }); + var check = function() { + if (!canceled && function(el) { + return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length); + }(el)) { + var newWidth = el.offsetWidth; + var newHeight = el.offsetHeight; + (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({ + width: newWidth, + height: newHeight + }); + currentWidth = newWidth; + currentHeight = newHeight; + } + }; + var observer; + var timeout; + win.addEventListener("resize", check); + if (void 0 !== win.ResizeObserver) { + (observer = new win.ResizeObserver(check)).observe(el); + timeout = safeInterval(check, 10 * interval); + } else if (void 0 !== win.MutationObserver) { + (observer = new win.MutationObserver(check)).observe(el, { + attributes: !0, + childList: !0, + subtree: !0, + characterData: !1 + }); + timeout = safeInterval(check, 10 * interval); + } else timeout = safeInterval(check, interval); + return { + cancel: function() { + canceled = !0; + observer.disconnect(); + window.removeEventListener("resize", check); + timeout.cancel(); + } + }; + } + function isShadowElement(element) { + for (;element.parentNode; ) element = element.parentNode; + return "[object ShadowRoot]" === element.toString(); + } + var currentScript = "undefined" != typeof document ? document.currentScript : null; + var getCurrentScript = memoize((function() { + if (currentScript) return currentScript; + if (currentScript = function() { + try { + var stack = function() { + try { + throw new Error("_"); + } catch (err) { + return err.stack || ""; + } + }(); + var stackDetails = /.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(stack); + var scriptLocation = stackDetails && stackDetails[1]; + if (!scriptLocation) return; + for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName("script")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) { + var script = _Array$prototype$slic2[_i22]; + if (script.src && script.src === scriptLocation) return script; + } + } catch (err) {} + }()) return currentScript; + throw new Error("Can not determine current script"); + })); + var currentUID = uniqueID(); + memoize((function() { + var script; + try { + script = getCurrentScript(); + } catch (err) { + return currentUID; + } + var uid = script.getAttribute("data-uid"); + if (uid && "string" == typeof uid) return uid; + if ((uid = script.getAttribute("data-uid-auto")) && "string" == typeof uid) return uid; + if (script.src) { + var hashedString = function(str) { + var hash = ""; + for (var i = 0; i < str.length; i++) { + var total = str[i].charCodeAt(0) * i; + str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1)); + hash += String.fromCharCode(97 + Math.abs(total) % 26); + } + return hash; + }(JSON.stringify({ + src: script.src, + dataset: script.dataset + })); + uid = "uid_" + hashedString.slice(hashedString.length - 30); + } else uid = uniqueID(); + script.setAttribute("data-uid-auto", uid); + return uid; + })); + function isPerc(str) { + return "string" == typeof str && /^[0-9]+%$/.test(str); + } + function toNum(val) { + if ("number" == typeof val) return val; + var match = val.match(/^([0-9]+)(px|%)$/); + if (!match) throw new Error("Could not match css value from " + val); + return parseInt(match[1], 10); + } + function toPx(val) { + return toNum(val) + "px"; + } + function toCSS(val) { + return "number" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val); + } + function normalizeDimension(dim, max) { + if ("number" == typeof dim) return dim; + if (isPerc(dim)) return parseInt(max * toNum(dim) / 100, 10); + if ("string" == typeof (str = dim) && /^[0-9]+px$/.test(str)) return toNum(dim); + var str; + throw new Error("Can not normalize dimension: " + dim); + } + function global_getGlobal(win) { + void 0 === win && (win = window); + var globalKey = "__post_robot_10_0_44__"; + return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {}; + } + var getObj = function() { + return {}; + }; + function globalStore(key, defStore) { + void 0 === key && (key = "store"); + void 0 === defStore && (defStore = getObj); + return util_getOrSet(global_getGlobal(), key, (function() { + var store = defStore(); + return { + has: function(storeKey) { + return store.hasOwnProperty(storeKey); + }, + get: function(storeKey, defVal) { + return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal; + }, + set: function(storeKey, val) { + store[storeKey] = val; + return val; + }, + del: function(storeKey) { + delete store[storeKey]; + }, + getOrSet: function(storeKey, getter) { + return util_getOrSet(store, storeKey, getter); + }, + reset: function() { + store = defStore(); + }, + keys: function() { + return Object.keys(store); + } + }; + })); + } + var WildCard = function() {}; + function getWildcard() { + var global = global_getGlobal(); + global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard; + return global.WINDOW_WILDCARD; + } + function windowStore(key, defStore) { + void 0 === key && (key = "store"); + void 0 === defStore && (defStore = getObj); + return globalStore("windowStore").getOrSet(key, (function() { + var winStore = new weakmap_CrossDomainSafeWeakMap; + var getStore = function(win) { + return winStore.getOrSet(win, defStore); + }; + return { + has: function(win) { + return getStore(win).hasOwnProperty(key); + }, + get: function(win, defVal) { + var store = getStore(win); + return store.hasOwnProperty(key) ? store[key] : defVal; + }, + set: function(win, val) { + getStore(win)[key] = val; + return val; + }, + del: function(win) { + delete getStore(win)[key]; + }, + getOrSet: function(win, getter) { + return util_getOrSet(getStore(win), key, getter); + } + }; + })); + } + function getInstanceID() { + return globalStore("instance").getOrSet("instanceID", uniqueID); + } + function resolveHelloPromise(win, _ref) { + var domain = _ref.domain; + var helloPromises = windowStore("helloPromises"); + var existingPromise = helloPromises.get(win); + existingPromise && existingPromise.resolve({ + domain: domain + }); + var newPromise = promise_ZalgoPromise.resolve({ + domain: domain + }); + helloPromises.set(win, newPromise); + return newPromise; + } + function sayHello(win, _ref4) { + return (0, _ref4.send)(win, "postrobot_hello", { + instanceID: getInstanceID() + }, { + domain: "*", + timeout: -1 + }).then((function(_ref5) { + var origin = _ref5.origin, instanceID = _ref5.data.instanceID; + resolveHelloPromise(win, { + domain: origin + }); + return { + win: win, + domain: origin, + instanceID: instanceID + }; + })); + } + function getWindowInstanceID(win, _ref6) { + var send = _ref6.send; + return windowStore("windowInstanceIDPromises").getOrSet(win, (function() { + return sayHello(win, { + send: send + }).then((function(_ref7) { + return _ref7.instanceID; + })); + })); + } + function awaitWindowHello(win, timeout, name) { + void 0 === timeout && (timeout = 5e3); + void 0 === name && (name = "Window"); + var promise = function(win) { + return windowStore("helloPromises").getOrSet(win, (function() { + return new promise_ZalgoPromise; + })); + }(win); + -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + " did not load after " + timeout + "ms"))); + return promise; + } + function markWindowKnown(win) { + windowStore("knownWindows").set(win, !0); + } + function isSerializedType(item) { + return "object" == typeof item && null !== item && "string" == typeof item.__type__; + } + function determineType(val) { + 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; + } + function serializeType(type, val) { + return { + __type__: type, + __val__: val + }; + } + var _SERIALIZER; + var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) { + return serializeType("error", { + message: _ref.message, + stack: _ref.stack, + code: _ref.code, + data: _ref.data + }); + }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) { + return serializeType("regex", val.source); + }, _SERIALIZER.date = function(val) { + return serializeType("date", val.toJSON()); + }, _SERIALIZER.array = function(val) { + return val; + }, _SERIALIZER.object = function(val) { + return val; + }, _SERIALIZER.string = function(val) { + return val; + }, _SERIALIZER.number = function(val) { + return val; + }, _SERIALIZER.boolean = function(val) { + return val; + }, _SERIALIZER.null = function(val) { + return val; + }, _SERIALIZER[void 0] = function(val) { + return serializeType("undefined", val); + }, _SERIALIZER); + var defaultSerializers = {}; + var _DESERIALIZER; + var DESERIALIZER = ((_DESERIALIZER = {}).function = function() { + throw new Error("Function serialization is not implemented; nothing to deserialize"); + }, _DESERIALIZER.error = function(_ref2) { + var stack = _ref2.stack, code = _ref2.code, data = _ref2.data; + var error = new Error(_ref2.message); + error.code = code; + data && (error.data = data); + error.stack = stack + "\n\n" + error.stack; + return error; + }, _DESERIALIZER.promise = function() { + throw new Error("Promise serialization is not implemented; nothing to deserialize"); + }, _DESERIALIZER.regex = function(val) { + return new RegExp(val); + }, _DESERIALIZER.date = function(val) { + return new Date(val); + }, _DESERIALIZER.array = function(val) { + return val; + }, _DESERIALIZER.object = function(val) { + return val; + }, _DESERIALIZER.string = function(val) { + return val; + }, _DESERIALIZER.number = function(val) { + return val; + }, _DESERIALIZER.boolean = function(val) { + return val; + }, _DESERIALIZER.null = function(val) { + return val; + }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER); + var defaultDeserializers = {}; + function needsBridgeForBrowser() { + return !!utils_getUserAgent(window).match(/MSIE|trident|edge\/12|edge\/13/i); + } + function needsBridgeForWin(win) { + return !isSameTopWindow(window, win); + } + function needsBridgeForDomain(domain, win) { + if (domain) { + if (getDomain() !== getDomainFromUrl(domain)) return !0; + } else if (win && !isSameDomain(win)) return !0; + return !1; + } + function needsBridge(_ref) { + var win = _ref.win, domain = _ref.domain; + return !(!needsBridgeForBrowser() || domain && !needsBridgeForDomain(domain, win) || win && !needsBridgeForWin(win)); + } + function getBridgeName(domain) { + return "__postrobot_bridge___" + (domain = domain || getDomainFromUrl(domain)).replace(/[^a-zA-Z0-9]+/g, "_"); + } + function isBridge() { + return Boolean(window.name && window.name === getBridgeName(getDomain())); + } + var documentBodyReady = new promise_ZalgoPromise((function(resolve) { + if (window.document && window.document.body) return resolve(window.document.body); + var interval = setInterval((function() { + if (window.document && window.document.body) { + clearInterval(interval); + return resolve(window.document.body); + } + }), 10); + })); + function registerRemoteWindow(win) { + windowStore("remoteWindowPromises").getOrSet(win, (function() { + return new promise_ZalgoPromise; + })); + } + function findRemoteWindow(win) { + var remoteWinPromise = windowStore("remoteWindowPromises").get(win); + if (!remoteWinPromise) throw new Error("Remote window promise not found"); + return remoteWinPromise; + } + function registerRemoteSendMessage(win, domain, sendMessage) { + findRemoteWindow(win).resolve((function(remoteWin, remoteDomain, message) { + if (remoteWin !== win) throw new Error("Remote window does not match window"); + if (!matchDomain(remoteDomain, domain)) throw new Error("Remote domain " + remoteDomain + " does not match domain " + domain); + sendMessage.fireAndForget(message); + })); + } + function rejectRemoteSendMessage(win, err) { + findRemoteWindow(win).reject(err).catch(src_util_noop); + } + function linkWindow(_ref3) { + var win = _ref3.win, name = _ref3.name, domain = _ref3.domain; + var popupWindowsByName = globalStore("popupWindowsByName"); + var popupWindowsByWin = windowStore("popupWindowsByWin"); + for (var _i2 = 0, _popupWindowsByName$k2 = popupWindowsByName.keys(); _i2 < _popupWindowsByName$k2.length; _i2++) { + var winName = _popupWindowsByName$k2[_i2]; + var _details = popupWindowsByName.get(winName); + _details && !isWindowClosed(_details.win) || popupWindowsByName.del(winName); + } + if (isWindowClosed(win)) return { + win: win, + name: name, + domain: domain + }; + var details = popupWindowsByWin.getOrSet(win, (function() { + return name ? popupWindowsByName.getOrSet(name, (function() { + return { + win: win, + name: name + }; + })) : { + win: win + }; + })); + if (details.win && details.win !== win) throw new Error("Different window already linked for window: " + (name || "undefined")); + if (name) { + details.name = name; + popupWindowsByName.set(name, details); + } + if (domain) { + details.domain = domain; + registerRemoteWindow(win); + } + popupWindowsByWin.set(win, details); + return details; + } + function setupBridge(_ref) { + var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage; + windowOpen = window.open, window.open = function(url, name, options, last) { + var win = windowOpen.call(this, normalizeMockUrl(url), name, options, last); + if (!win) return win; + linkWindow({ + win: win, + name: name, + domain: url ? getDomainFromUrl(url) : null + }); + return win; + }; + var windowOpen; + !function(_ref) { + var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage; + var popupWindowsByName = globalStore("popupWindowsByName"); + on("postrobot_open_tunnel", (function(_ref2) { + var source = _ref2.source, origin = _ref2.origin, data = _ref2.data; + var bridgePromise = globalStore("bridges").get(origin); + if (!bridgePromise) throw new Error("Can not find bridge promise for domain " + origin); + return bridgePromise.then((function(bridge) { + if (source !== bridge) throw new Error("Message source does not matched registered bridge for domain " + origin); + if (!data.name) throw new Error("Register window expected to be passed window name"); + if (!data.sendMessage) throw new Error("Register window expected to be passed sendMessage method"); + if (!popupWindowsByName.has(data.name)) throw new Error("Window with name " + data.name + " does not exist, or was not opened by this window"); + var getWindowDetails = function() { + return popupWindowsByName.get(data.name); + }; + if (!getWindowDetails().domain) throw new Error("We do not have a registered domain for window " + data.name); + if (getWindowDetails().domain !== origin) throw new Error("Message origin " + origin + " does not matched registered window origin " + (getWindowDetails().domain || "unknown")); + registerRemoteSendMessage(getWindowDetails().win, origin, data.sendMessage); + return { + sendMessage: function(message) { + if (window && !window.closed && getWindowDetails()) { + var domain = getWindowDetails().domain; + if (domain) try { + receiveMessage({ + data: message, + origin: domain, + source: getWindowDetails().win + }, { + on: on, + send: send + }); + } catch (err) { + promise_ZalgoPromise.reject(err); + } + } + } + }; + })); + })); + }({ + on: on, + send: send, + receiveMessage: receiveMessage + }); + !function(_ref2) { + var send = _ref2.send; + global_getGlobal(window).openTunnelToParent = function(_ref3) { + var name = _ref3.name, source = _ref3.source, canary = _ref3.canary, sendMessage = _ref3.sendMessage; + var tunnelWindows = globalStore("tunnelWindows"); + var parentWindow = utils_getParent(window); + if (!parentWindow) throw new Error("No parent window found to open tunnel to"); + var id = function(_ref) { + var name = _ref.name, source = _ref.source, canary = _ref.canary, sendMessage = _ref.sendMessage; + !function() { + var tunnelWindows = globalStore("tunnelWindows"); + for (var _i2 = 0, _tunnelWindows$keys2 = tunnelWindows.keys(); _i2 < _tunnelWindows$keys2.length; _i2++) { + var key = _tunnelWindows$keys2[_i2]; + isWindowClosed(tunnelWindows[key].source) && tunnelWindows.del(key); + } + }(); + var id = uniqueID(); + globalStore("tunnelWindows").set(id, { + name: name, + source: source, + canary: canary, + sendMessage: sendMessage + }); + return id; + }({ + name: name, + source: source, + canary: canary, + sendMessage: sendMessage + }); + return send(parentWindow, "postrobot_open_tunnel", { + name: name, + sendMessage: function() { + var tunnelWindow = tunnelWindows.get(id); + if (tunnelWindow && tunnelWindow.source && !isWindowClosed(tunnelWindow.source)) { + try { + tunnelWindow.canary(); + } catch (err) { + return; + } + tunnelWindow.sendMessage.apply(this, arguments); + } + } + }, { + domain: "*" + }); + }; + }({ + send: send + }); + !function(_ref) { + var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage; + promise_ZalgoPromise.try((function() { + var opener = getOpener(window); + if (opener && needsBridge({ + win: opener + })) { + registerRemoteWindow(opener); + return (win = opener, windowStore("remoteBridgeAwaiters").getOrSet(win, (function() { + return promise_ZalgoPromise.try((function() { + var frame = getFrameByName(win, getBridgeName(getDomain())); + if (frame) return isSameDomain(frame) && global_getGlobal(assertSameDomain(frame)) ? frame : new promise_ZalgoPromise((function(resolve) { + var interval; + var timeout; + interval = setInterval((function() { + if (frame && isSameDomain(frame) && global_getGlobal(assertSameDomain(frame))) { + clearInterval(interval); + clearTimeout(timeout); + return resolve(frame); + } + }), 100); + timeout = setTimeout((function() { + clearInterval(interval); + return resolve(); + }), 2e3); + })); + })); + }))).then((function(bridge) { + return bridge ? window.name ? global_getGlobal(assertSameDomain(bridge)).openTunnelToParent({ + name: window.name, + source: window, + canary: function() {}, + sendMessage: function(message) { + try { + window; + } catch (err) { + return; + } + if (window && !window.closed) try { + receiveMessage({ + data: message, + origin: this.origin, + source: this.source + }, { + on: on, + send: send + }); + } catch (err) { + promise_ZalgoPromise.reject(err); + } + } + }).then((function(_ref2) { + var source = _ref2.source, origin = _ref2.origin, data = _ref2.data; + if (source !== opener) throw new Error("Source does not match opener"); + registerRemoteSendMessage(source, origin, data.sendMessage); + })).catch((function(err) { + rejectRemoteSendMessage(opener, err); + throw err; + })) : 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")); + })); + var win; + } + })); + }({ + on: on, + send: send, + receiveMessage: receiveMessage + }); + } + function cleanupProxyWindows() { + var idToProxyWindow = globalStore("idToProxyWindow"); + for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) { + var id = _idToProxyWindow$keys2[_i2]; + idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id); + } + } + function getSerializedWindow(winPromise, _ref) { + var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id; + var windowNamePromise = winPromise.then((function(win) { + if (isSameDomain(win)) return assertSameDomain(win).name; + })); + var windowTypePromise = winPromise.then((function(window) { + if (isWindowClosed(window)) throw new Error("Window is closed, can not determine type"); + return getOpener(window) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME; + })); + windowNamePromise.catch(src_util_noop); + windowTypePromise.catch(src_util_noop); + var getName = function() { + return winPromise.then((function(win) { + if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise; + })); + }; + return { + id: id, + getType: function() { + return windowTypePromise; + }, + getInstanceID: memoizePromise((function() { + return winPromise.then((function(win) { + return getWindowInstanceID(win, { + send: send + }); + })); + })), + close: function() { + return winPromise.then(closeWindow); + }, + getName: getName, + focus: function() { + return winPromise.then((function(win) { + win.focus(); + })); + }, + isClosed: function() { + return winPromise.then((function(win) { + return isWindowClosed(win); + })); + }, + setLocation: function(href, opts) { + void 0 === opts && (opts = {}); + return winPromise.then((function(win) { + var domain = window.location.protocol + "//" + window.location.host; + var _opts$method = opts.method, method = void 0 === _opts$method ? "get" : _opts$method, body = opts.body; + 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)); + if ("post" === method) return getName().then((function(name) { + if (!name) throw new Error("Can not post to window without target name"); + !function(_ref3) { + var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? "post" : _ref3$method; + var form = document.createElement("form"); + form.setAttribute("target", target); + form.setAttribute("method", method); + form.setAttribute("action", url); + form.style.display = "none"; + if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) { + var _body$key; + var key = _Object$keys4[_i24]; + var input = document.createElement("input"); + input.setAttribute("name", key); + input.setAttribute("value", null == (_body$key = body[key]) ? void 0 : _body$key.toString()); + form.appendChild(input); + } + getBody().appendChild(form); + form.submit(); + getBody().removeChild(form); + }({ + url: href, + target: name, + method: method, + body: body + }); + })); + if ("get" !== method) throw new Error("Unsupported method: " + method); + if (isSameDomain(win)) try { + if (win.location && "function" == typeof win.location.replace) { + win.location.replace(href); + return; + } + } catch (err) {} + win.location = href; + })); + }, + setName: function(name) { + return winPromise.then((function(win) { + linkWindow({ + win: win, + name: name + }); + var sameDomain = isSameDomain(win); + var frame = getFrameForWindow(win); + if (!sameDomain) throw new Error("Can not set name for cross-domain window: " + name); + assertSameDomain(win).name = name; + frame && frame.setAttribute("name", name); + windowNamePromise = promise_ZalgoPromise.resolve(name); + })); + } + }; + } + var window_ProxyWindow = function() { + function ProxyWindow(_ref2) { + var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow; + this.id = void 0; + this.isProxyWindow = !0; + this.serializedWindow = void 0; + this.actualWindow = void 0; + this.actualWindowPromise = void 0; + this.send = void 0; + this.name = void 0; + this.actualWindowPromise = new promise_ZalgoPromise; + this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, { + send: send + }); + globalStore("idToProxyWindow").set(this.getID(), this); + win && this.setWindow(win, { + send: send + }); + } + var _proto = ProxyWindow.prototype; + _proto.getID = function() { + return this.serializedWindow.id; + }; + _proto.getType = function() { + return this.serializedWindow.getType(); + }; + _proto.isPopup = function() { + return this.getType().then((function(type) { + return type === WINDOW_TYPE.POPUP; + })); + }; + _proto.setLocation = function(href, opts) { + var _this = this; + return this.serializedWindow.setLocation(href, opts).then((function() { + return _this; + })); + }; + _proto.getName = function() { + return this.serializedWindow.getName(); + }; + _proto.setName = function(name) { + var _this2 = this; + return this.serializedWindow.setName(name).then((function() { + return _this2; + })); + }; + _proto.close = function() { + var _this3 = this; + return this.serializedWindow.close().then((function() { + return _this3; + })); + }; + _proto.focus = function() { + var _this4 = this; + var isPopupPromise = this.isPopup(); + var getNamePromise = this.getName(); + var reopenPromise = promise_ZalgoPromise.hash({ + isPopup: isPopupPromise, + name: getNamePromise + }).then((function(_ref3) { + var name = _ref3.name; + _ref3.isPopup && name && window.open("", name); + })); + var focusPromise = this.serializedWindow.focus(); + return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() { + return _this4; + })); + }; + _proto.isClosed = function() { + return this.serializedWindow.isClosed(); + }; + _proto.getWindow = function() { + return this.actualWindow; + }; + _proto.setWindow = function(win, _ref4) { + var send = _ref4.send; + this.actualWindow = win; + this.actualWindowPromise.resolve(this.actualWindow); + this.serializedWindow = getSerializedWindow(this.actualWindowPromise, { + send: send, + id: this.getID() + }); + windowStore("winToProxyWindow").set(win, this); + }; + _proto.awaitWindow = function() { + return this.actualWindowPromise; + }; + _proto.matchWindow = function(win, _ref5) { + var _this5 = this; + var send = _ref5.send; + return promise_ZalgoPromise.try((function() { + return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({ + proxyInstanceID: _this5.getInstanceID(), + knownWindowInstanceID: getWindowInstanceID(win, { + send: send + }) + }).then((function(_ref6) { + var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID; + match && _this5.setWindow(win, { + send: send + }); + return match; + })); + })); + }; + _proto.unwrap = function() { + return this.actualWindow || this; + }; + _proto.getInstanceID = function() { + return this.serializedWindow.getInstanceID(); + }; + _proto.shouldClean = function() { + return Boolean(this.actualWindow && isWindowClosed(this.actualWindow)); + }; + _proto.serialize = function() { + return this.serializedWindow; + }; + ProxyWindow.unwrap = function(win) { + return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win; + }; + ProxyWindow.serialize = function(win, _ref7) { + var send = _ref7.send; + cleanupProxyWindows(); + return ProxyWindow.toProxyWindow(win, { + send: send + }).serialize(); + }; + ProxyWindow.deserialize = function(serializedWindow, _ref8) { + var send = _ref8.send; + cleanupProxyWindows(); + return globalStore("idToProxyWindow").get(serializedWindow.id) || new ProxyWindow({ + serializedWindow: serializedWindow, + send: send + }); + }; + ProxyWindow.isProxyWindow = function(obj) { + return Boolean(obj && !isWindow(obj) && obj.isProxyWindow); + }; + ProxyWindow.toProxyWindow = function(win, _ref9) { + var send = _ref9.send; + cleanupProxyWindows(); + if (ProxyWindow.isProxyWindow(win)) return win; + var actualWindow = win; + return windowStore("winToProxyWindow").get(actualWindow) || new ProxyWindow({ + win: actualWindow, + send: send + }); + }; + return ProxyWindow; + }(); + function addMethod(id, val, name, source, domain) { + var methodStore = windowStore("methodStore"); + var proxyWindowMethods = globalStore("proxyWindowMethods"); + if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, { + val: val, + name: name, + domain: domain, + source: source + }); else { + proxyWindowMethods.del(id); + methodStore.getOrSet(source, (function() { + return {}; + }))[id] = { + domain: domain, + name: name, + val: val, + source: source + }; + } + } + function lookupMethod(source, id) { + var methodStore = windowStore("methodStore"); + var proxyWindowMethods = globalStore("proxyWindowMethods"); + return methodStore.getOrSet(source, (function() { + return {}; + }))[id] || proxyWindowMethods.get(id); + } + function function_serializeFunction(destination, domain, val, key, _ref3) { + on = (_ref = { + on: _ref3.on, + send: _ref3.send + }).on, send = _ref.send, globalStore("builtinListeners").getOrSet("functionCalls", (function() { + return on("postrobot_method", { + domain: "*" + }, (function(_ref2) { + var source = _ref2.source, origin = _ref2.origin, data = _ref2.data; + var id = data.id, name = data.name; + var meth = lookupMethod(source, id); + if (!meth) throw new Error("Could not find method '" + name + "' with id: " + data.id + " in " + getDomain(window)); + var methodSource = meth.source, domain = meth.domain, val = meth.val; + return promise_ZalgoPromise.try((function() { + 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)); + if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, { + send: send + }).then((function(match) { + if (!match) throw new Error("Method call '" + data.name + "' failed - proxy window does not match source in " + getDomain(window)); + })); + })).then((function() { + return val.apply({ + source: source, + origin: origin + }, data.args); + }), (function(err) { + return promise_ZalgoPromise.try((function() { + if (val.onError) return val.onError(err); + })).then((function() { + err.stack && (err.stack = "Remote call to " + name + "(" + function(args) { + void 0 === args && (args = []); + return arrayFrom(args).map((function(arg) { + 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 + ">"; + })).join(", "); + }(data.args) + ") failed\n\n" + err.stack); + throw err; + })); + })).then((function(result) { + return { + result: result, + id: id, + name: name + }; + })); + })); + })); + var _ref, on, send; + var id = val.__id__ || uniqueID(); + destination = window_ProxyWindow.unwrap(destination); + var name = val.__name__ || val.name || key; + "string" == typeof name && "function" == typeof name.indexOf && 0 === name.indexOf("anonymous::") && (name = name.replace("anonymous::", key + "::")); + if (window_ProxyWindow.isProxyWindow(destination)) { + addMethod(id, val, name, destination, domain); + destination.awaitWindow().then((function(win) { + addMethod(id, val, name, win, domain); + })); + } else addMethod(id, val, name, destination, domain); + return serializeType("cross_domain_function", { + id: id, + name: name + }); + } + function serializeMessage(destination, domain, obj, _ref) { + var _serialize; + var on = _ref.on, send = _ref.send; + return function(obj, serializers) { + void 0 === serializers && (serializers = defaultSerializers); + var result = JSON.stringify(obj, (function(key) { + var val = this[key]; + if (isSerializedType(this)) return val; + var type = determineType(val); + if (!type) return val; + var serializer = serializers[type] || SERIALIZER[type]; + return serializer ? serializer(val, key) : val; + })); + return void 0 === result ? "undefined" : result; + }(obj, ((_serialize = {}).promise = function(val, key) { + return function(destination, domain, val, key, _ref) { + return serializeType("cross_domain_zalgo_promise", { + then: function_serializeFunction(destination, domain, (function(resolve, reject) { + return val.then(resolve, reject); + }), key, { + on: _ref.on, + send: _ref.send + }) + }); + }(destination, domain, val, key, { + on: on, + send: send + }); + }, _serialize.function = function(val, key) { + return function_serializeFunction(destination, domain, val, key, { + on: on, + send: send + }); + }, _serialize.object = function(val) { + return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType("cross_domain_window", window_ProxyWindow.serialize(val, { + send: send + })) : val; + }, _serialize)); + } + function deserializeMessage(source, origin, message, _ref2) { + var _deserialize; + var send = _ref2.send; + return function(str, deserializers) { + void 0 === deserializers && (deserializers = defaultDeserializers); + if ("undefined" !== str) return JSON.parse(str, (function(key, val) { + if (isSerializedType(this)) return val; + var type; + var value; + if (isSerializedType(val)) { + type = val.__type__; + value = val.__val__; + } else { + type = determineType(val); + value = val; + } + if (!type) return value; + var deserializer = deserializers[type] || DESERIALIZER[type]; + return deserializer ? deserializer(value, key) : value; + })); + }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) { + return function(source, origin, _ref2) { + return new promise_ZalgoPromise(_ref2.then); + }(0, 0, serializedPromise); + }, _deserialize.cross_domain_function = function(serializedFunction) { + return function(source, origin, _ref4, _ref5) { + var id = _ref4.id, name = _ref4.name; + var send = _ref5.send; + var getDeserializedFunction = function(opts) { + void 0 === opts && (opts = {}); + function crossDomainFunctionWrapper() { + var _arguments = arguments; + return window_ProxyWindow.toProxyWindow(source, { + send: send + }).awaitWindow().then((function(win) { + var meth = lookupMethod(win, id); + if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({ + source: window, + origin: getDomain() + }, _arguments); + var _args = [].slice.call(_arguments); + return opts.fireAndForget ? send(win, "postrobot_method", { + id: id, + name: name, + args: _args + }, { + domain: origin, + fireAndForget: !0 + }) : send(win, "postrobot_method", { + id: id, + name: name, + args: _args + }, { + domain: origin, + fireAndForget: !1 + }).then((function(res) { + return res.data.result; + })); + })).catch((function(err) { + throw err; + })); + } + crossDomainFunctionWrapper.__name__ = name; + crossDomainFunctionWrapper.__origin__ = origin; + crossDomainFunctionWrapper.__source__ = source; + crossDomainFunctionWrapper.__id__ = id; + crossDomainFunctionWrapper.origin = origin; + return crossDomainFunctionWrapper; + }; + var crossDomainFunctionWrapper = getDeserializedFunction(); + crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({ + fireAndForget: !0 + }); + return crossDomainFunctionWrapper; + }(source, origin, serializedFunction, { + send: send + }); + }, _deserialize.cross_domain_window = function(serializedWindow) { + return window_ProxyWindow.deserialize(serializedWindow, { + send: send + }); + }, _deserialize)); + } + var SEND_MESSAGE_STRATEGIES = {}; + SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) { + 0 === domain.indexOf("file:") && (domain = "*"); + win.postMessage(serializedMessage, domain); + }; + SEND_MESSAGE_STRATEGIES.postrobot_bridge = function(win, serializedMessage, domain) { + if (!needsBridgeForBrowser() && !isBridge()) throw new Error("Bridge not needed for browser"); + if (isSameDomain(win)) throw new Error("Post message through bridge disabled between same domain windows"); + if (!1 !== isSameTopWindow(window, win)) throw new Error("Can only use bridge to communicate between two different windows, not between frames"); + !function(win, domain, message) { + var messagingChild = isOpener(window, win); + var messagingParent = isOpener(win, window); + if (!messagingChild && !messagingParent) throw new Error("Can only send messages to and from parent and popup windows"); + findRemoteWindow(win).then((function(sendMessage) { + return sendMessage(win, domain, message); + })); + }(win, domain, serializedMessage); + }; + SEND_MESSAGE_STRATEGIES.postrobot_global = function(win, serializedMessage) { + if (!utils_getUserAgent(window).match(/MSIE|rv:11|trident|edge\/12|edge\/13/i)) throw new Error("Global messaging not needed for browser"); + if (!isSameDomain(win)) throw new Error("Post message through global disabled between different domain windows"); + if (!1 !== isSameTopWindow(window, win)) throw new Error("Can only use global to communicate between two different windows, not between frames"); + var foreignGlobal = global_getGlobal(win); + if (!foreignGlobal) throw new Error("Can not find postRobot global on foreign window"); + foreignGlobal.receiveMessage({ + source: window, + origin: getDomain(), + data: serializedMessage + }); + }; + function send_sendMessage(win, domain, message, _ref2) { + var on = _ref2.on, send = _ref2.send; + return promise_ZalgoPromise.try((function() { + var domainBuffer = windowStore().getOrSet(win, (function() { + return {}; + })); + domainBuffer.buffer = domainBuffer.buffer || []; + domainBuffer.buffer.push(message); + domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() { + if (isWindowClosed(win)) throw new Error("Window is closed"); + var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_10_0_44__ = domainBuffer.buffer || [], + _ref), { + on: on, + send: send + }); + var _ref; + delete domainBuffer.buffer; + var strategies = Object.keys(SEND_MESSAGE_STRATEGIES); + var errors = []; + for (var _i2 = 0; _i2 < strategies.length; _i2++) { + var strategyName = strategies[_i2]; + try { + SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain); + } catch (err) { + errors.push(err); + } + } + if (errors.length === strategies.length) throw new Error("All post-robot messaging strategies failed:\n\n" + errors.map((function(err, i) { + return i + ". " + stringifyError(err); + })).join("\n\n")); + })); + return domainBuffer.flush.then((function() { + delete domainBuffer.flush; + })); + })).then(src_util_noop); + } + function getResponseListener(hash) { + return globalStore("responseListeners").get(hash); + } + function deleteResponseListener(hash) { + globalStore("responseListeners").del(hash); + } + function isResponseListenerErrored(hash) { + return globalStore("erroredResponseListeners").has(hash); + } + function getRequestListener(_ref) { + var name = _ref.name, win = _ref.win, domain = _ref.domain; + var requestListeners = windowStore("requestListeners"); + "*" === win && (win = null); + "*" === domain && (domain = null); + if (!name) throw new Error("Name required to get request listener"); + for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) { + var winQualifier = _ref3[_i4]; + if (winQualifier) { + var nameListeners = requestListeners.get(winQualifier); + if (nameListeners) { + var domainListeners = nameListeners[name]; + if (domainListeners) { + if (domain && "string" == typeof domain) { + if (domainListeners[domain]) return domainListeners[domain]; + if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) { + var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener; + if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener; + } + } + if (domainListeners["*"]) return domainListeners["*"]; + } + } + } + } + } + function handleRequest(source, origin, message, _ref) { + var on = _ref.on, send = _ref.send; + var options = getRequestListener({ + name: message.name, + win: source, + domain: origin + }); + var logName = "postrobot_method" === message.name && message.data && "string" == typeof message.data.name ? message.data.name + "()" : message.name; + function sendResponse(ack, data, error) { + return promise_ZalgoPromise.flush().then((function() { + if (!message.fireAndForget && !isWindowClosed(source)) try { + return send_sendMessage(source, origin, { + id: uniqueID(), + origin: getDomain(window), + type: "postrobot_message_response", + hash: message.hash, + name: message.name, + ack: ack, + data: data, + error: error + }, { + on: on, + send: send + }); + } catch (err) { + throw new Error("Send response message failed for " + logName + " in " + getDomain() + "\n\n" + stringifyError(err)); + } + })); + } + return promise_ZalgoPromise.all([ promise_ZalgoPromise.flush().then((function() { + if (!message.fireAndForget && !isWindowClosed(source)) try { + return send_sendMessage(source, origin, { + id: uniqueID(), + origin: getDomain(window), + type: "postrobot_message_ack", + hash: message.hash, + name: message.name + }, { + on: on, + send: send + }); + } catch (err) { + throw new Error("Send ack message failed for " + logName + " in " + getDomain() + "\n\n" + stringifyError(err)); + } + })), promise_ZalgoPromise.try((function() { + 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); + if (!matchDomain(options.domain, origin)) throw new Error("Request origin " + origin + " does not match domain " + options.domain.toString()); + return options.handler({ + source: source, + origin: origin, + data: message.data + }); + })).then((function(data) { + return sendResponse("success", data); + }), (function(error) { + return sendResponse("error", null, error); + })) ]).then(src_util_noop).catch((function(err) { + if (options && options.handleError) return options.handleError(err); + throw err; + })); + } + function handleAck(source, origin, message) { + if (!isResponseListenerErrored(message.hash)) { + var options = getResponseListener(message.hash); + 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); + try { + if (!matchDomain(options.domain, origin)) throw new Error("Ack origin " + origin + " does not match domain " + options.domain.toString()); + if (source !== options.win) throw new Error("Ack source does not match registered window"); + } catch (err) { + options.promise.reject(err); + } + options.ack = !0; + } + } + function handleResponse(source, origin, message) { + if (!isResponseListenerErrored(message.hash)) { + var options = getResponseListener(message.hash); + 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); + 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())); + var pattern; + if (source !== options.win) throw new Error("Response source does not match registered window"); + deleteResponseListener(message.hash); + "error" === message.ack ? options.promise.reject(message.error) : "success" === message.ack && options.promise.resolve({ + source: source, + origin: origin, + data: message.data + }); + } + } + function receive_receiveMessage(event, _ref2) { + var on = _ref2.on, send = _ref2.send; + var receivedMessages = globalStore("receivedMessages"); + try { + if (!window || window.closed || !event.source) return; + } catch (err) { + return; + } + var source = event.source, origin = event.origin; + var messages = function(message, source, origin, _ref) { + var on = _ref.on, send = _ref.send; + var parsedMessage; + try { + parsedMessage = deserializeMessage(source, origin, message, { + on: on, + send: send + }); + } catch (err) { + return; + } + if (parsedMessage && "object" == typeof parsedMessage && null !== parsedMessage) { + var parseMessages = parsedMessage.__post_robot_10_0_44__; + if (Array.isArray(parseMessages)) return parseMessages; + } + }(event.data, source, origin, { + on: on, + send: send + }); + if (messages) { + markWindowKnown(source); + for (var _i2 = 0; _i2 < messages.length; _i2++) { + var message = messages[_i2]; + if (receivedMessages.has(message.id)) return; + receivedMessages.set(message.id, !0); + if (isWindowClosed(source) && !message.fireAndForget) return; + 0 === message.origin.indexOf("file:") && (origin = "file://"); + try { + "postrobot_message_request" === message.type ? handleRequest(source, origin, message, { + on: on, + send: send + }) : "postrobot_message_response" === message.type ? handleResponse(source, origin, message) : "postrobot_message_ack" === message.type && handleAck(source, origin, message); + } catch (err) { + setTimeout((function() { + throw err; + }), 0); + } + } + } + } + function on_on(name, options, handler) { + if (!name) throw new Error("Expected name"); + if ("function" == typeof (options = options || {})) { + handler = options; + options = {}; + } + if (!handler) throw new Error("Expected handler"); + (options = options || {}).name = name; + options.handler = handler || options.handler; + var win = options.window; + var domain = options.domain; + var requestListener = function addRequestListener(_ref4, listener) { + var name = _ref4.name, win = _ref4.win, domain = _ref4.domain; + var requestListeners = windowStore("requestListeners"); + if (!name || "string" != typeof name) throw new Error("Name required to add request listener"); + if (Array.isArray(win)) { + var listenersCollection = []; + for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({ + name: name, + domain: domain, + win: _win2[_i8] + }, listener)); + return { + cancel: function() { + for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel(); + } + }; + } + if (Array.isArray(domain)) { + var _listenersCollection = []; + for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({ + name: name, + win: win, + domain: _domain2[_i12] + }, listener)); + return { + cancel: function() { + for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel(); + } + }; + } + var existingListener = getRequestListener({ + name: name, + win: win, + domain: domain + }); + win && "*" !== win || (win = getWildcard()); + domain = domain || "*"; + 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); + var nameListeners = requestListeners.getOrSet(win, (function() { + return {}; + })); + var domainListeners = util_getOrSet(nameListeners, name, (function() { + return {}; + })); + var strDomain = domain.toString(); + var regexListeners; + var regexListener; + util_isRegex(domain) ? (regexListeners = util_getOrSet(domainListeners, "__domain_regex__", (function() { + return []; + }))).push(regexListener = { + regex: domain, + listener: listener + }) : domainListeners[strDomain] = listener; + return { + cancel: function() { + delete domainListeners[strDomain]; + if (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); + } + }; + }({ + name: name, + win: win, + domain: domain + }, { + handler: options.handler, + handleError: options.errorHandler || function(err) { + throw err; + }, + window: win, + domain: domain || "*", + name: name + }); + return { + cancel: function() { + requestListener.cancel(); + } + }; + } + var send_send = function send(win, name, data, options) { + var domainMatcher = (options = options || {}).domain || "*"; + var responseTimeout = options.timeout || -1; + var childTimeout = options.timeout || 5e3; + var fireAndForget = options.fireAndForget || !1; + return promise_ZalgoPromise.try((function() { + !function(name, win, domain) { + if (!name) throw new Error("Expected name"); + 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"); + if (isWindowClosed(win)) throw new Error("Can not send " + name + ". Target window is closed"); + }(name, win, domainMatcher); + if (function(parent, child) { + var actualParent = getAncestor(child); + if (actualParent) return actualParent === parent; + if (child === parent) return !1; + if (getTop(child) === child) return !1; + for (var _i15 = 0, _getFrames8 = getFrames(parent); _i15 < _getFrames8.length; _i15++) if (_getFrames8[_i15] === child) return !0; + return !1; + }(window, win)) return awaitWindowHello(win, childTimeout); + })).then((function(_temp) { + return function(win, targetDomain, actualDomain, _ref) { + var send = _ref.send; + return promise_ZalgoPromise.try((function() { + return "string" == typeof targetDomain ? targetDomain : promise_ZalgoPromise.try((function() { + return actualDomain || sayHello(win, { + send: send + }).then((function(_ref2) { + return _ref2.domain; + })); + })).then((function(normalizedDomain) { + if (!matchDomain(targetDomain, targetDomain)) throw new Error("Domain " + stringify(targetDomain) + " does not match " + stringify(targetDomain)); + return normalizedDomain; + })); + })); + }(win, domainMatcher, (void 0 === _temp ? {} : _temp).domain, { + send: send + }); + })).then((function(targetDomain) { + var domain = targetDomain; + var logName = "postrobot_method" === name && data && "string" == typeof data.name ? data.name + "()" : name; + var promise = new promise_ZalgoPromise; + var hash = name + "_" + uniqueID(); + if (!fireAndForget) { + var responseListener = { + name: name, + win: win, + domain: domain, + promise: promise + }; + !function(hash, listener) { + globalStore("responseListeners").set(hash, listener); + }(hash, responseListener); + var reqPromises = windowStore("requestPromises").getOrSet(win, (function() { + return []; + })); + reqPromises.push(promise); + promise.catch((function() { + !function(hash) { + globalStore("erroredResponseListeners").set(hash, !0); + }(hash); + deleteResponseListener(hash); + })); + var totalAckTimeout = function(win) { + return windowStore("knownWindows").get(win, !1); + }(win) ? 1e4 : 2e3; + var totalResTimeout = responseTimeout; + var ackTimeout = totalAckTimeout; + var resTimeout = totalResTimeout; + var interval = safeInterval((function() { + if (isWindowClosed(win)) return promise.reject(new Error("Window closed for " + name + " before " + (responseListener.ack ? "response" : "ack"))); + if (responseListener.cancelled) return promise.reject(new Error("Response listener was cancelled for " + name)); + ackTimeout = Math.max(ackTimeout - 500, 0); + -1 !== resTimeout && (resTimeout = Math.max(resTimeout - 500, 0)); + 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")); + }), 500); + promise.finally((function() { + interval.cancel(); + reqPromises.splice(reqPromises.indexOf(promise, 1)); + })).catch(src_util_noop); + } + return send_sendMessage(win, domain, { + id: uniqueID(), + origin: getDomain(window), + type: "postrobot_message_request", + hash: hash, + name: name, + data: data, + fireAndForget: fireAndForget + }, { + on: on_on, + send: send + }).then((function() { + return fireAndForget ? promise.resolve() : promise; + }), (function(err) { + throw new Error("Send request message failed for " + logName + " in " + getDomain() + "\n\n" + stringifyError(err)); + })); + })); + }; + function setup_toProxyWindow(win) { + return window_ProxyWindow.toProxyWindow(win, { + send: send_send + }); + } + function cleanUpWindow(win) { + 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); + } + var src_bridge; + src_bridge = { + setupBridge: setupBridge, + openBridge: function(url, domain) { + var bridges = globalStore("bridges"); + var bridgeFrames = globalStore("bridgeFrames"); + domain = domain || getDomainFromUrl(url); + return bridges.getOrSet(domain, (function() { + return promise_ZalgoPromise.try((function() { + if (getDomain() === domain) throw new Error("Can not open bridge on the same domain as current domain: " + domain); + var name = getBridgeName(domain); + if (getFrameByName(window, name)) throw new Error("Frame with name " + name + " already exists on page"); + var iframe = function(name, url) { + var iframe = document.createElement("iframe"); + iframe.setAttribute("name", name); + iframe.setAttribute("id", name); + iframe.setAttribute("style", "display: none; margin: 0; padding: 0; border: 0px none; overflow: hidden;"); + iframe.setAttribute("frameborder", "0"); + iframe.setAttribute("border", "0"); + iframe.setAttribute("scrolling", "no"); + iframe.setAttribute("allowTransparency", "true"); + iframe.setAttribute("tabindex", "-1"); + iframe.setAttribute("hidden", "true"); + iframe.setAttribute("title", ""); + iframe.setAttribute("role", "presentation"); + iframe.src = url; + return iframe; + }(name, url); + bridgeFrames.set(domain, iframe); + return documentBodyReady.then((function(body) { + body.appendChild(iframe); + var bridge = iframe.contentWindow; + return new promise_ZalgoPromise((function(resolve, reject) { + iframe.addEventListener("load", resolve); + iframe.addEventListener("error", reject); + })).then((function() { + return awaitWindowHello(bridge, 5e3, "Bridge " + url); + })).then((function() { + return bridge; + })); + })); + })); + })); + }, + linkWindow: linkWindow, + linkUrl: function(win, url) { + linkWindow({ + win: win, + domain: getDomainFromUrl(url) + }); + }, + isBridge: isBridge, + needsBridge: needsBridge, + needsBridgeForBrowser: needsBridgeForBrowser, + hasBridge: function(url, domain) { + return globalStore("bridges").has(domain || getDomainFromUrl(url)); + }, + needsBridgeForWin: needsBridgeForWin, + needsBridgeForDomain: needsBridgeForDomain, + destroyBridges: function() { + var bridges = globalStore("bridges"); + var bridgeFrames = globalStore("bridgeFrames"); + for (var _i4 = 0, _bridgeFrames$keys2 = bridgeFrames.keys(); _i4 < _bridgeFrames$keys2.length; _i4++) { + var frame = bridgeFrames.get(_bridgeFrames$keys2[_i4]); + frame && frame.parentNode && frame.parentNode.removeChild(frame); + } + bridgeFrames.reset(); + bridges.reset(); + } + }; + function lib_global_getGlobal(win) { + if (!isSameDomain(win)) throw new Error("Can not get global for window on different domain"); + win.__zoid_9_0_86__ || (win.__zoid_9_0_86__ = {}); + return win.__zoid_9_0_86__; + } + function tryGlobal(win, handler) { + try { + return handler(lib_global_getGlobal(win)); + } catch (err) {} + } + function getProxyObject(obj) { + return { + get: function() { + var _this = this; + return promise_ZalgoPromise.try((function() { + if (_this.source && _this.source !== window) throw new Error("Can not call get on proxy object from a remote window"); + return obj; + })); + } + }; + } + function basicSerialize(data) { + return base64encode(JSON.stringify(data)); + } + function getUIDRefStore(win) { + var global = lib_global_getGlobal(win); + global.references = global.references || {}; + return global.references; + } + function crossDomainSerialize(_ref) { + var data = _ref.data, metaData = _ref.metaData, sender = _ref.sender, receiver = _ref.receiver, _ref$passByReference = _ref.passByReference, passByReference = void 0 !== _ref$passByReference && _ref$passByReference, _ref$basic = _ref.basic, basic = void 0 !== _ref$basic && _ref$basic; + var proxyWin = setup_toProxyWindow(receiver.win); + var serializedMessage = basic ? JSON.stringify(data) : serializeMessage(proxyWin, receiver.domain, data, { + on: on_on, + send: send_send + }); + var reference = passByReference ? function(val) { + var uid = uniqueID(); + getUIDRefStore(window)[uid] = val; + return { + type: "uid", + uid: uid + }; + }(serializedMessage) : { + type: "raw", + val: serializedMessage + }; + return { + serializedData: basicSerialize({ + sender: { + domain: sender.domain + }, + metaData: metaData, + reference: reference + }), + cleanReference: function() { + win = window, "uid" === (ref = reference).type && delete getUIDRefStore(win)[ref.uid]; + var win, ref; + } + }; + } + function crossDomainDeserialize(_ref2) { + var sender = _ref2.sender, _ref2$basic = _ref2.basic, basic = void 0 !== _ref2$basic && _ref2$basic; + var message = function(serializedData) { + return JSON.parse(function(str) { + if ("function" == typeof atob) return decodeURIComponent([].map.call(atob(str), (function(c) { + return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2); + })).join("")); + if ("undefined" != typeof Buffer) return Buffer.from(str, "base64").toString("utf8"); + throw new Error("Can not find window.atob or Buffer"); + }(serializedData)); + }(_ref2.data); + var reference = message.reference, metaData = message.metaData; + var win; + win = "function" == typeof sender.win ? sender.win({ + metaData: metaData + }) : sender.win; + var domain; + domain = "function" == typeof sender.domain ? sender.domain({ + metaData: metaData + }) : "string" == typeof sender.domain ? sender.domain : message.sender.domain; + var serializedData = function(win, ref) { + if ("raw" === ref.type) return ref.val; + if ("uid" === ref.type) return getUIDRefStore(win)[ref.uid]; + throw new Error("Unsupported ref type: " + ref.type); + }(win, reference); + return { + data: basic ? JSON.parse(serializedData) : function(source, origin, message) { + return deserializeMessage(source, origin, message, { + on: on_on, + send: send_send + }); + }(win, domain, serializedData), + metaData: metaData, + sender: { + win: win, + domain: domain + }, + reference: reference + }; + } + var PROP_TYPE = { + STRING: "string", + OBJECT: "object", + FUNCTION: "function", + BOOLEAN: "boolean", + NUMBER: "number", + ARRAY: "array" + }; + var PROP_SERIALIZATION = { + JSON: "json", + DOTIFY: "dotify", + BASE64: "base64" + }; + var CONTEXT = WINDOW_TYPE; + var EVENT = { + RENDER: "zoid-render", + RENDERED: "zoid-rendered", + DISPLAY: "zoid-display", + ERROR: "zoid-error", + CLOSE: "zoid-close", + DESTROY: "zoid-destroy", + PROPS: "zoid-props", + RESIZE: "zoid-resize", + FOCUS: "zoid-focus" + }; + function buildChildWindowName(_ref) { + return "__zoid__" + _ref.name + "__" + _ref.serializedPayload + "__"; + } + function parseWindowName(windowName) { + if (!windowName) throw new Error("No window name"); + var _windowName$split = windowName.split("__"), zoidcomp = _windowName$split[1], name = _windowName$split[2], serializedInitialPayload = _windowName$split[3]; + if ("zoid" !== zoidcomp) throw new Error("Window not rendered by zoid - got " + zoidcomp); + if (!name) throw new Error("Expected component name"); + if (!serializedInitialPayload) throw new Error("Expected serialized payload ref"); + return { + name: name, + serializedInitialPayload: serializedInitialPayload + }; + } + var parseInitialParentPayload = memoize((function(windowName) { + var _crossDomainDeseriali = crossDomainDeserialize({ + data: parseWindowName(windowName).serializedInitialPayload, + sender: { + win: function(_ref2) { + return function(windowRef) { + if ("opener" === windowRef.type) return assertExists("opener", getOpener(window)); + if ("parent" === windowRef.type && "number" == typeof windowRef.distance) return assertExists("parent", function(win, n) { + void 0 === n && (n = 1); + return function(win, n) { + void 0 === n && (n = 1); + var parent = win; + for (var i = 0; i < n; i++) { + if (!parent) return; + parent = utils_getParent(parent); + } + return parent; + }(win, getDistanceFromTop(win) - n); + }(window, windowRef.distance)); + if ("global" === windowRef.type && windowRef.uid && "string" == typeof windowRef.uid) { + var _ret = function() { + var uid = windowRef.uid; + var ancestor = getAncestor(window); + if (!ancestor) throw new Error("Can not find ancestor window"); + for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(ancestor); _i2 < _getAllFramesInWindow2.length; _i2++) { + var frame = _getAllFramesInWindow2[_i2]; + if (isSameDomain(frame)) { + var win = tryGlobal(frame, (function(global) { + return global.windows && global.windows[uid]; + })); + if (win) return { + v: win + }; + } + } + }(); + if ("object" == typeof _ret) return _ret.v; + } else if ("name" === windowRef.type) { + var name = windowRef.name; + return assertExists("namedWindow", function(win, name) { + return getFrameByName(win, name) || function findChildFrameByName(win, name) { + var frame = getFrameByName(win, name); + if (frame) return frame; + for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) { + var namedFrame = findChildFrameByName(_getFrames4[_i11], name); + if (namedFrame) return namedFrame; + } + }(getTop(win) || win, name); + }(assertExists("ancestor", getAncestor(window)), name)); + } + throw new Error("Unable to find " + windowRef.type + " parent component window"); + }(_ref2.metaData.windowRef); + } + } + }); + return { + parent: _crossDomainDeseriali.sender, + payload: _crossDomainDeseriali.data, + reference: _crossDomainDeseriali.reference + }; + })); + function getInitialParentPayload() { + return parseInitialParentPayload(window.name); + } + function window_getWindowRef(targetWindow, currentWindow) { + void 0 === currentWindow && (currentWindow = window); + if (targetWindow === utils_getParent(currentWindow)) return { + type: "parent", + distance: getDistanceFromTop(targetWindow) + }; + if (targetWindow === getOpener(currentWindow)) return { + type: "opener" + }; + if (isSameDomain(targetWindow) && !(win = targetWindow, win === getTop(win))) { + var windowName = assertSameDomain(targetWindow).name; + if (windowName) return { + type: "name", + name: windowName + }; + } + var win; + } + function normalizeChildProp(propsDef, props, key, value, helpers) { + if (!propsDef.hasOwnProperty(key)) return value; + var prop = propsDef[key]; + return "function" == typeof prop.childDecorate ? prop.childDecorate({ + value: value, + uid: helpers.uid, + tag: helpers.tag, + close: helpers.close, + focus: helpers.focus, + onError: helpers.onError, + onProps: helpers.onProps, + resize: helpers.resize, + getParent: helpers.getParent, + getParentDomain: helpers.getParentDomain, + show: helpers.show, + hide: helpers.hide, + export: helpers.export, + getSiblings: helpers.getSiblings + }) : value; + } + function child_focus() { + return promise_ZalgoPromise.try((function() { + window.focus(); + })); + } + function child_destroy() { + return promise_ZalgoPromise.try((function() { + window.close(); + })); + } + var props_defaultNoop = function() { + return src_util_noop; + }; + var props_decorateOnce = function(_ref) { + return once(_ref.value); + }; + function eachProp(props, propsDef, handler) { + for (var _i2 = 0, _Object$keys2 = Object.keys(_extends({}, props, propsDef)); _i2 < _Object$keys2.length; _i2++) { + var key = _Object$keys2[_i2]; + handler(key, propsDef[key], props[key]); + } + } + function serializeProps(propsDef, props, method) { + var params = {}; + return promise_ZalgoPromise.all(function(props, propsDef, handler) { + var results = []; + eachProp(props, propsDef, (function(key, propDef, value) { + var result = function(key, propDef, value) { + return promise_ZalgoPromise.resolve().then((function() { + var _METHOD$GET$METHOD$PO, _METHOD$GET$METHOD$PO2; + if (null != value && propDef) { + 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]; + 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]; + if (getParam) return promise_ZalgoPromise.hash({ + finalParam: promise_ZalgoPromise.try((function() { + return "function" == typeof getParam ? getParam({ + value: value + }) : "string" == typeof getParam ? getParam : key; + })), + finalValue: promise_ZalgoPromise.try((function() { + return "function" == typeof getValue && isDefined(value) ? getValue({ + value: value + }) : value; + })) + }).then((function(_ref) { + var finalParam = _ref.finalParam, finalValue = _ref.finalValue; + var result; + if ("boolean" == typeof finalValue) result = finalValue.toString(); else if ("string" == typeof finalValue) result = finalValue.toString(); else if ("object" == typeof finalValue && null !== finalValue) { + 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) { + result = function dotify(obj, prefix, newobj) { + void 0 === prefix && (prefix = ""); + void 0 === newobj && (newobj = {}); + prefix = prefix ? prefix + "." : prefix; + 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) { + return "object" != typeof val; + })) ? 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()); + return newobj; + }(finalValue, key); + for (var _i2 = 0, _Object$keys2 = Object.keys(result); _i2 < _Object$keys2.length; _i2++) { + var dotkey = _Object$keys2[_i2]; + params[dotkey] = result[dotkey]; + } + return; + } + } else "number" == typeof finalValue && (result = finalValue.toString()); + params[finalParam] = result; + })); + } + })); + }(key, propDef, value); + results.push(result); + })); + return results; + }(props, propsDef)).then((function() { + return params; + })); + } + function parentComponent(_ref) { + var uid = _ref.uid, options = _ref.options, _ref$overrides = _ref.overrides, overrides = void 0 === _ref$overrides ? {} : _ref$overrides, _ref$parentWin = _ref.parentWin, parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin; + var propsDef = options.propsDef, containerTemplate = options.containerTemplate, prerenderTemplate = options.prerenderTemplate, tag = options.tag, name = options.name, attributes = options.attributes, dimensions = options.dimensions, autoResize = options.autoResize, url = options.url, domainMatch = options.domain, xports = options.exports; + var initPromise = new promise_ZalgoPromise; + var handledErrors = []; + var clean = cleanup(); + var state = {}; + var inputProps = {}; + var internalState = { + visible: !0 + }; + var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, + emitter = { + on: function(eventName, handler) { + var handlerList = handlers[eventName] = handlers[eventName] || []; + handlerList.push(handler); + var cancelled = !1; + return { + cancel: function() { + if (!cancelled) { + cancelled = !0; + handlerList.splice(handlerList.indexOf(handler), 1); + } + } + }; + }, + once: function(eventName, handler) { + var listener = emitter.on(eventName, (function() { + listener.cancel(); + handler(); + })); + return listener; + }, + trigger: function(eventName) { + for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3]; + var handlerList = handlers[eventName]; + var promises = []; + if (handlerList) { + var _loop = function(_i2) { + var handler = handlerList[_i2]; + promises.push(promise_ZalgoPromise.try((function() { + return handler.apply(void 0, args); + }))); + }; + for (var _i2 = 0; _i2 < handlerList.length; _i2++) _loop(_i2); + } + return promise_ZalgoPromise.all(promises).then(src_util_noop); + }, + triggerOnce: function(eventName) { + if (triggered[eventName]) return promise_ZalgoPromise.resolve(); + triggered[eventName] = !0; + for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) args[_key4 - 1] = arguments[_key4]; + return emitter.trigger.apply(emitter, [ eventName ].concat(args)); + }, + reset: function() { + handlers = {}; + } + }); + var triggered, handlers, emitter; + var props = overrides.props ? overrides.props : {}; + var currentProxyWin; + var currentProxyContainer; + var childComponent; + var currentChildDomain; + var currentContainer; + var onErrorOverride = overrides.onError; + var getProxyContainerOverride = overrides.getProxyContainer; + var showOverride = overrides.show; + var hideOverride = overrides.hide; + var closeOverride = overrides.close; + var renderContainerOverride = overrides.renderContainer; + var getProxyWindowOverride = overrides.getProxyWindow; + var setProxyWinOverride = overrides.setProxyWin; + var openFrameOverride = overrides.openFrame; + var openPrerenderFrameOverride = overrides.openPrerenderFrame; + var prerenderOverride = overrides.prerender; + var openOverride = overrides.open; + var openPrerenderOverride = overrides.openPrerender; + var watchForUnloadOverride = overrides.watchForUnload; + var getInternalStateOverride = overrides.getInternalState; + var setInternalStateOverride = overrides.setInternalState; + var getDimensions = function() { + return "function" == typeof dimensions ? dimensions({ + props: props + }) : dimensions; + }; + var resolveInitPromise = function() { + return promise_ZalgoPromise.try((function() { + return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve(); + })); + }; + var rejectInitPromise = function(err) { + return promise_ZalgoPromise.try((function() { + return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err); + })); + }; + var getPropsForChild = function(initialChildDomain) { + var result = {}; + for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) { + var key = _Object$keys2[_i2]; + var prop = propsDef[key]; + prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(initialChildDomain, getDomain(window)) || (result[key] = props[key]); + } + return promise_ZalgoPromise.hash(result); + }; + var getInternalState = function() { + return promise_ZalgoPromise.try((function() { + return getInternalStateOverride ? getInternalStateOverride() : internalState; + })); + }; + var setInternalState = function(newInternalState) { + return promise_ZalgoPromise.try((function() { + return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState); + })); + }; + var getProxyWindow = function() { + return getProxyWindowOverride ? getProxyWindowOverride() : promise_ZalgoPromise.try((function() { + var windowProp = props.window; + if (windowProp) { + var _proxyWin = setup_toProxyWindow(windowProp); + clean.register((function() { + return windowProp.close(); + })); + return _proxyWin; + } + return new window_ProxyWindow({ + send: send_send + }); + })); + }; + var setProxyWin = function(proxyWin) { + return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise.try((function() { + currentProxyWin = proxyWin; + })); + }; + var show = function() { + return showOverride ? showOverride() : promise_ZalgoPromise.hash({ + setState: setInternalState({ + visible: !0 + }), + showElement: currentProxyContainer ? currentProxyContainer.get().then(showElement) : null + }).then(src_util_noop); + }; + var hide = function() { + return hideOverride ? hideOverride() : promise_ZalgoPromise.hash({ + setState: setInternalState({ + visible: !1 + }), + showElement: currentProxyContainer ? currentProxyContainer.get().then(hideElement) : null + }).then(src_util_noop); + }; + var getUrl = function() { + return "function" == typeof url ? url({ + props: props + }) : url; + }; + var getAttributes = function() { + return "function" == typeof attributes ? attributes({ + props: props + }) : attributes; + }; + var getInitialChildDomain = function() { + return getDomainFromUrl(getUrl()); + }; + var openFrame = function(context, _ref2) { + var windowName = _ref2.windowName; + return openFrameOverride ? openFrameOverride(context, { + windowName: windowName + }) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({ + attributes: _extends({ + name: windowName, + title: name + }, getAttributes().iframe) + })); + })); + }; + var openPrerenderFrame = function(context) { + return openPrerenderFrameOverride ? openPrerenderFrameOverride(context) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({ + attributes: _extends({ + name: "__zoid_prerender_frame__" + name + "_" + uniqueID() + "__", + title: "prerender__" + name + }, getAttributes().iframe) + })); + })); + }; + var openPrerender = function(context, proxyWin, proxyPrerenderFrame) { + return openPrerenderOverride ? openPrerenderOverride(context, proxyWin, proxyPrerenderFrame) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) { + if (!proxyPrerenderFrame) throw new Error("Expected proxy frame to be passed"); + return proxyPrerenderFrame.get().then((function(prerenderFrame) { + clean.register((function() { + return destroyElement(prerenderFrame); + })); + return awaitFrameWindow(prerenderFrame).then((function(prerenderFrameWindow) { + return assertSameDomain(prerenderFrameWindow); + })).then((function(win) { + return setup_toProxyWindow(win); + })); + })); + } + if (context === CONTEXT.POPUP) return proxyWin; + throw new Error("No render context available for " + context); + })); + }; + var focus = function() { + return promise_ZalgoPromise.try((function() { + if (currentProxyWin) return promise_ZalgoPromise.all([ event.trigger(EVENT.FOCUS), currentProxyWin.focus() ]).then(src_util_noop); + })); + }; + var getCurrentWindowReferenceUID = function() { + var global = lib_global_getGlobal(window); + global.windows = global.windows || {}; + global.windows[uid] = window; + clean.register((function() { + delete global.windows[uid]; + })); + return uid; + }; + var getWindowRef = function(target, initialChildDomain, context, proxyWin) { + if (initialChildDomain === getDomain(window)) return { + type: "global", + uid: getCurrentWindowReferenceUID() + }; + if (target !== window) throw new Error("Can not construct cross-domain window reference for different target window"); + if (props.window) { + var actualComponentWindow = proxyWin.getWindow(); + if (!actualComponentWindow) throw new Error("Can not construct cross-domain window reference for lazy window prop"); + if (getAncestor(actualComponentWindow) !== window) throw new Error("Can not construct cross-domain window reference for window prop with different ancestor"); + } + if (context === CONTEXT.POPUP) return { + type: "opener" + }; + if (context === CONTEXT.IFRAME) return { + type: "parent", + distance: getDistanceFromTop(window) + }; + throw new Error("Can not construct window reference for child"); + }; + var initChild = function(childDomain, childExports) { + return promise_ZalgoPromise.try((function() { + currentChildDomain = childDomain; + childComponent = childExports; + resolveInitPromise(); + clean.register((function() { + return childExports.close.fireAndForget().catch(src_util_noop); + })); + })); + }; + var resize = function(_ref3) { + var width = _ref3.width, height = _ref3.height; + return promise_ZalgoPromise.try((function() { + event.trigger(EVENT.RESIZE, { + width: width, + height: height + }); + })); + }; + var destroy = function(err) { + return promise_ZalgoPromise.try((function() { + return event.trigger(EVENT.DESTROY); + })).catch(src_util_noop).then((function() { + return clean.all(err); + })).then((function() { + initPromise.asyncReject(err || new Error("Component destroyed")); + })); + }; + var close = memoize((function(err) { + return promise_ZalgoPromise.try((function() { + if (closeOverride) { + if (isWindowClosed(closeOverride.__source__)) return; + return closeOverride(); + } + return promise_ZalgoPromise.try((function() { + return event.trigger(EVENT.CLOSE); + })).then((function() { + return destroy(err || new Error("Component closed")); + })); + })); + })); + var open = function(context, _ref4) { + var proxyWin = _ref4.proxyWin, proxyFrame = _ref4.proxyFrame, windowName = _ref4.windowName; + return openOverride ? openOverride(context, { + proxyWin: proxyWin, + proxyFrame: proxyFrame, + windowName: windowName + }) : promise_ZalgoPromise.try((function() { + if (context === CONTEXT.IFRAME) { + if (!proxyFrame) throw new Error("Expected proxy frame to be passed"); + return proxyFrame.get().then((function(frame) { + return awaitFrameWindow(frame).then((function(win) { + clean.register((function() { + return destroyElement(frame); + })); + clean.register((function() { + return cleanUpWindow(win); + })); + return win; + })); + })); + } + if (context === CONTEXT.POPUP) { + var _getDimensions = getDimensions(), _getDimensions$width = _getDimensions.width, width = void 0 === _getDimensions$width ? "300px" : _getDimensions$width, _getDimensions$height = _getDimensions.height, height = void 0 === _getDimensions$height ? "150px" : _getDimensions$height; + width = normalizeDimension(width, window.outerWidth); + height = normalizeDimension(height, window.outerWidth); + var win = function(url, options) { + var _options$closeOnUnloa = (options = options || {}).closeOnUnload, closeOnUnload = void 0 === _options$closeOnUnloa ? 1 : _options$closeOnUnloa, _options$name = options.name, name = void 0 === _options$name ? "" : _options$name, width = options.width, height = options.height; + var top = 0; + var left = 0; + width && (window.outerWidth ? left = Math.round((window.outerWidth - width) / 2) + window.screenX : window.screen.width && (left = Math.round((window.screen.width - width) / 2))); + height && (window.outerHeight ? top = Math.round((window.outerHeight - height) / 2) + window.screenY : window.screen.height && (top = Math.round((window.screen.height - height) / 2))); + delete options.closeOnUnload; + delete options.name; + width && height && (options = _extends({ + top: top, + left: left, + width: width, + height: height, + status: 1, + toolbar: 0, + menubar: 0, + resizable: 1, + scrollbars: 1 + }, options)); + var params = Object.keys(options).map((function(key) { + if (null != options[key]) return key + "=" + stringify(options[key]); + })).filter(Boolean).join(","); + var win; + try { + win = window.open("", name, params); + } catch (err) { + throw new dom_PopupOpenError("Can not open popup window - " + (err.stack || err.message)); + } + if (isWindowClosed(win)) { + throw new dom_PopupOpenError("Can not open popup window - blocked"); + } + closeOnUnload && window.addEventListener("unload", (function() { + return win.close(); + })); + return win; + }(0, _extends({ + name: windowName, + width: width, + height: height + }, getAttributes().popup)); + clean.register((function() { + return closeWindow(win); + })); + clean.register((function() { + return cleanUpWindow(win); + })); + return win; + } + throw new Error("No render context available for " + context); + })).then((function(win) { + proxyWin.setWindow(win, { + send: send_send + }); + return proxyWin.setName(windowName).then((function() { + return proxyWin; + })); + })); + }; + var watchForUnload = function() { + return promise_ZalgoPromise.try((function() { + var unloadWindowListener = addEventListener(window, "unload", once((function() { + destroy(new Error("Window navigated away")); + }))); + var closeParentWindowListener = onCloseWindow(parentWin, destroy, 3e3); + clean.register(closeParentWindowListener.cancel); + clean.register(unloadWindowListener.cancel); + if (watchForUnloadOverride) return watchForUnloadOverride(); + })); + }; + var checkWindowClose = function(proxyWin) { + var closed = !1; + return proxyWin.isClosed().then((function(isClosed) { + if (isClosed) { + closed = !0; + return close(new Error("Detected component window close")); + } + return promise_ZalgoPromise.delay(200).then((function() { + return proxyWin.isClosed(); + })).then((function(secondIsClosed) { + if (secondIsClosed) { + closed = !0; + return close(new Error("Detected component window close")); + } + })); + })).then((function() { + return closed; + })); + }; + var onError = function(err) { + return onErrorOverride ? onErrorOverride(err) : promise_ZalgoPromise.try((function() { + if (-1 === handledErrors.indexOf(err)) { + handledErrors.push(err); + initPromise.asyncReject(err); + return event.trigger(EVENT.ERROR, err); + } + })); + }; + var exportsPromise = new promise_ZalgoPromise; + var xport = function(actualExports) { + return promise_ZalgoPromise.try((function() { + exportsPromise.resolve(actualExports); + })); + }; + initChild.onError = onError; + var renderTemplate = function(renderer, _ref8) { + return renderer({ + uid: uid, + container: _ref8.container, + context: _ref8.context, + doc: _ref8.doc, + frame: _ref8.frame, + prerenderFrame: _ref8.prerenderFrame, + focus: focus, + close: close, + state: state, + props: props, + tag: tag, + dimensions: getDimensions(), + event: event + }); + }; + var prerender = function(proxyPrerenderWin, _ref9) { + var context = _ref9.context; + return prerenderOverride ? prerenderOverride(proxyPrerenderWin, { + context: context + }) : promise_ZalgoPromise.try((function() { + if (prerenderTemplate) { + var prerenderWindow = proxyPrerenderWin.getWindow(); + if (prerenderWindow && isSameDomain(prerenderWindow) && function(win) { + try { + if (!win.location.href) return !0; + if ("about:blank" === win.location.href) return !0; + } catch (err) {} + return !1; + }(prerenderWindow)) { + var doc = (prerenderWindow = assertSameDomain(prerenderWindow)).document; + var el = renderTemplate(prerenderTemplate, { + context: context, + doc: doc + }); + if (el) { + if (el.ownerDocument !== doc) throw new Error("Expected prerender template to have been created with document from child window"); + !function(win, el) { + var tag = el.tagName.toLowerCase(); + if ("html" !== tag) throw new Error("Expected element to be html, got " + tag); + var documentElement = win.document.documentElement; + for (var _i6 = 0, _arrayFrom2 = arrayFrom(documentElement.children); _i6 < _arrayFrom2.length; _i6++) documentElement.removeChild(_arrayFrom2[_i6]); + for (var _i8 = 0, _arrayFrom4 = arrayFrom(el.children); _i8 < _arrayFrom4.length; _i8++) documentElement.appendChild(_arrayFrom4[_i8]); + }(prerenderWindow, el); + var _autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, _autoResize$element = autoResize.element, element = void 0 === _autoResize$element ? "body" : _autoResize$element; + if ((element = getElementSafe(element, doc)) && (width || height)) { + var prerenderResizeListener = onResize(element, (function(_ref10) { + resize({ + width: width ? _ref10.width : void 0, + height: height ? _ref10.height : void 0 + }); + }), { + width: width, + height: height, + win: prerenderWindow + }); + event.on(EVENT.RENDERED, prerenderResizeListener.cancel); + } + } + } + } + })); + }; + var renderContainer = function(proxyContainer, _ref11) { + var proxyFrame = _ref11.proxyFrame, proxyPrerenderFrame = _ref11.proxyPrerenderFrame, context = _ref11.context, rerender = _ref11.rerender; + return renderContainerOverride ? renderContainerOverride(proxyContainer, { + proxyFrame: proxyFrame, + proxyPrerenderFrame: proxyPrerenderFrame, + context: context, + rerender: rerender + }) : promise_ZalgoPromise.hash({ + container: proxyContainer.get(), + frame: proxyFrame ? proxyFrame.get() : null, + prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null, + internalState: getInternalState() + }).then((function(_ref12) { + var container = _ref12.container, visible = _ref12.internalState.visible; + var innerContainer = renderTemplate(containerTemplate, { + context: context, + container: container, + frame: _ref12.frame, + prerenderFrame: _ref12.prerenderFrame, + doc: document + }); + if (innerContainer) { + visible || hideElement(innerContainer); + appendChild(container, innerContainer); + var containerWatcher = function(element, handler) { + handler = once(handler); + var cancelled = !1; + var mutationObservers = []; + var interval; + var sacrificialFrame; + var sacrificialFrameWin; + var cancel = function() { + cancelled = !0; + for (var _i18 = 0; _i18 < mutationObservers.length; _i18++) mutationObservers[_i18].disconnect(); + interval && interval.cancel(); + sacrificialFrameWin && sacrificialFrameWin.removeEventListener("unload", elementClosed); + sacrificialFrame && destroyElement(sacrificialFrame); + }; + var elementClosed = function() { + if (!cancelled) { + handler(); + cancel(); + } + }; + if (isElementClosed(element)) { + elementClosed(); + return { + cancel: cancel + }; + } + if (window.MutationObserver) { + var mutationElement = element.parentElement; + for (;mutationElement; ) { + var mutationObserver = new window.MutationObserver((function() { + isElementClosed(element) && elementClosed(); + })); + mutationObserver.observe(mutationElement, { + childList: !0 + }); + mutationObservers.push(mutationObserver); + mutationElement = mutationElement.parentElement; + } + } + (sacrificialFrame = document.createElement("iframe")).setAttribute("name", "__detect_close_" + uniqueID() + "__"); + sacrificialFrame.style.display = "none"; + awaitFrameWindow(sacrificialFrame).then((function(frameWin) { + (sacrificialFrameWin = assertSameDomain(frameWin)).addEventListener("unload", elementClosed); + })); + element.appendChild(sacrificialFrame); + interval = safeInterval((function() { + isElementClosed(element) && elementClosed(); + }), 1e3); + return { + cancel: cancel + }; + }(innerContainer, (function() { + var removeError = new Error("Detected container element removed from DOM"); + return promise_ZalgoPromise.delay(1).then((function() { + if (!isElementClosed(innerContainer)) { + clean.all(removeError); + return rerender().then(resolveInitPromise, rejectInitPromise); + } + close(removeError); + })); + })); + clean.register((function() { + return containerWatcher.cancel(); + })); + clean.register((function() { + return destroyElement(innerContainer); + })); + return currentProxyContainer = getProxyObject(innerContainer); + } + })); + }; + var getHelpers = function() { + return { + state: state, + event: event, + close: close, + focus: focus, + resize: resize, + onError: onError, + updateProps: updateProps, + show: show, + hide: hide + }; + }; + var setProps = function(newInputProps) { + void 0 === newInputProps && (newInputProps = {}); + var container = currentContainer; + var helpers = getHelpers(); + extend(inputProps, newInputProps); + !function(propsDef, existingProps, inputProps, helpers, container) { + var state = helpers.state, close = helpers.close, focus = helpers.focus, event = helpers.event, onError = helpers.onError; + eachProp(inputProps, propsDef, (function(key, propDef, val) { + var valueDetermined = !1; + var value = val; + Object.defineProperty(existingProps, key, { + configurable: !0, + enumerable: !0, + get: function() { + if (valueDetermined) return value; + valueDetermined = !0; + return function() { + if (!propDef) return value; + var alias = propDef.alias; + alias && !isDefined(val) && isDefined(inputProps[alias]) && (value = inputProps[alias]); + propDef.value && (value = propDef.value({ + props: existingProps, + state: state, + close: close, + focus: focus, + event: event, + onError: onError, + container: container + })); + !propDef.default || isDefined(value) || isDefined(inputProps[key]) || (value = propDef.default({ + props: existingProps, + state: state, + close: close, + focus: focus, + event: event, + onError: onError, + container: container + })); + if (isDefined(value)) { + if (propDef.type === PROP_TYPE.ARRAY ? !Array.isArray(value) : typeof value !== propDef.type) throw new TypeError("Prop is not of type " + propDef.type + ": " + key); + } else if (!1 !== propDef.required && !isDefined(inputProps[key])) throw new Error('Expected prop "' + key + '" to be defined'); + isDefined(value) && propDef.decorate && (value = propDef.decorate({ + value: value, + props: existingProps, + state: state, + close: close, + focus: focus, + event: event, + onError: onError, + container: container + })); + return value; + }(); + } + }); + })); + eachProp(existingProps, propsDef, src_util_noop); + }(propsDef, props, inputProps, helpers, container); + }; + var updateProps = function(newProps) { + setProps(newProps); + return initPromise.then((function() { + var child = childComponent; + var proxyWin = currentProxyWin; + if (child && proxyWin && currentChildDomain) return getPropsForChild(currentChildDomain).then((function(childProps) { + return child.updateProps(childProps).catch((function(err) { + return checkWindowClose(proxyWin).then((function(closed) { + if (!closed) throw err; + })); + })); + })); + })); + }; + var getProxyContainer = function(container) { + return getProxyContainerOverride ? getProxyContainerOverride(container) : promise_ZalgoPromise.try((function() { + return elementReady(container); + })).then((function(containerElement) { + isShadowElement(containerElement) && (containerElement = function insertShadowSlot(element) { + var shadowHost = function(element) { + var shadowRoot = function(element) { + for (;element.parentNode; ) element = element.parentNode; + if (isShadowElement(element)) return element; + }(element); + if (shadowRoot && shadowRoot.host) return shadowRoot.host; + }(element); + if (!shadowHost) throw new Error("Element is not in shadow dom"); + var slotName = "shadow-slot-" + uniqueID(); + var slot = document.createElement("slot"); + slot.setAttribute("name", slotName); + element.appendChild(slot); + var slotProvider = document.createElement("div"); + slotProvider.setAttribute("slot", slotName); + shadowHost.appendChild(slotProvider); + return isShadowElement(shadowHost) ? insertShadowSlot(slotProvider) : slotProvider; + }(containerElement)); + currentContainer = containerElement; + return getProxyObject(containerElement); + })); + }; + return { + init: function() { + !function() { + event.on(EVENT.RENDER, (function() { + return props.onRender(); + })); + event.on(EVENT.DISPLAY, (function() { + return props.onDisplay(); + })); + event.on(EVENT.RENDERED, (function() { + return props.onRendered(); + })); + event.on(EVENT.CLOSE, (function() { + return props.onClose(); + })); + event.on(EVENT.DESTROY, (function() { + return props.onDestroy(); + })); + event.on(EVENT.RESIZE, (function() { + return props.onResize(); + })); + event.on(EVENT.FOCUS, (function() { + return props.onFocus(); + })); + event.on(EVENT.PROPS, (function(newProps) { + return props.onProps(newProps); + })); + event.on(EVENT.ERROR, (function(err) { + return props && props.onError ? props.onError(err) : rejectInitPromise(err).then((function() { + setTimeout((function() { + throw err; + }), 1); + })); + })); + clean.register(event.reset); + }(); + }, + render: function(_ref14) { + var target = _ref14.target, container = _ref14.container, context = _ref14.context, rerender = _ref14.rerender; + return promise_ZalgoPromise.try((function() { + var initialChildDomain = getInitialChildDomain(); + var childDomainMatch = domainMatch || getInitialChildDomain(); + !function(target, childDomainMatch, container) { + if (target !== window) { + if (!isSameTopWindow(window, target)) throw new Error("Can only renderTo an adjacent frame"); + var origin = getDomain(); + if (!matchDomain(childDomainMatch, origin) && !isSameDomain(target)) throw new Error("Can not render remotely to " + childDomainMatch.toString() + " - can only render to " + origin); + if (container && "string" != typeof container) throw new Error("Container passed to renderTo must be a string selector, got " + typeof container + " }"); + } + }(target, childDomainMatch, container); + var delegatePromise = promise_ZalgoPromise.try((function() { + if (target !== window) return function(context, target) { + var delegateProps = {}; + for (var _i4 = 0, _Object$keys4 = Object.keys(props); _i4 < _Object$keys4.length; _i4++) { + var propName = _Object$keys4[_i4]; + var propDef = propsDef[propName]; + propDef && propDef.allowDelegate && (delegateProps[propName] = props[propName]); + } + var childOverridesPromise = send_send(target, "zoid_delegate_" + name, { + uid: uid, + overrides: { + props: delegateProps, + event: event, + close: close, + onError: onError, + getInternalState: getInternalState, + setInternalState: setInternalState, + resolveInitPromise: resolveInitPromise, + rejectInitPromise: rejectInitPromise + } + }).then((function(_ref13) { + var parentComp = _ref13.data.parent; + clean.register((function(err) { + if (!isWindowClosed(target)) return parentComp.destroy(err); + })); + return parentComp.getDelegateOverrides(); + })).catch((function(err) { + throw new Error("Unable to delegate rendering. Possibly the component is not loaded in the target window.\n\n" + stringifyError(err)); + })); + getProxyContainerOverride = function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.getProxyContainer.apply(childOverrides, args); + })); + }; + renderContainerOverride = function() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.renderContainer.apply(childOverrides, args); + })); + }; + showOverride = function() { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) args[_key3] = arguments[_key3]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.show.apply(childOverrides, args); + })); + }; + hideOverride = function() { + for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.hide.apply(childOverrides, args); + })); + }; + watchForUnloadOverride = function() { + for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) args[_key5] = arguments[_key5]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.watchForUnload.apply(childOverrides, args); + })); + }; + if (context === CONTEXT.IFRAME) { + getProxyWindowOverride = function() { + for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) args[_key6] = arguments[_key6]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.getProxyWindow.apply(childOverrides, args); + })); + }; + openFrameOverride = function() { + for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) args[_key7] = arguments[_key7]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.openFrame.apply(childOverrides, args); + })); + }; + openPrerenderFrameOverride = function() { + for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) args[_key8] = arguments[_key8]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.openPrerenderFrame.apply(childOverrides, args); + })); + }; + prerenderOverride = function() { + for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) args[_key9] = arguments[_key9]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.prerender.apply(childOverrides, args); + })); + }; + openOverride = function() { + for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) args[_key10] = arguments[_key10]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.open.apply(childOverrides, args); + })); + }; + openPrerenderOverride = function() { + for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) args[_key11] = arguments[_key11]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.openPrerender.apply(childOverrides, args); + })); + }; + } else context === CONTEXT.POPUP && (setProxyWinOverride = function() { + for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) args[_key12] = arguments[_key12]; + return childOverridesPromise.then((function(childOverrides) { + return childOverrides.setProxyWin.apply(childOverrides, args); + })); + }); + return childOverridesPromise; + }(context, target); + })); + var windowProp = props.window; + var watchForUnloadPromise = watchForUnload(); + var buildBodyPromise = serializeProps(propsDef, props, "post"); + var onRenderPromise = event.trigger(EVENT.RENDER); + var getProxyContainerPromise = getProxyContainer(container); + var getProxyWindowPromise = getProxyWindow(); + var finalSetPropsPromise = getProxyContainerPromise.then((function() { + return setProps(); + })); + var buildUrlPromise = finalSetPropsPromise.then((function() { + return serializeProps(propsDef, props, "get").then((function(query) { + return function(url, options) { + var query = options.query || {}; + var hash = options.hash || {}; + var originalUrl; + var originalHash; + var _url$split = url.split("#"); + originalHash = _url$split[1]; + var _originalUrl$split = (originalUrl = _url$split[0]).split("?"); + originalUrl = _originalUrl$split[0]; + var queryString = extendQuery(_originalUrl$split[1], query); + var hashString = extendQuery(originalHash, hash); + queryString && (originalUrl = originalUrl + "?" + queryString); + hashString && (originalUrl = originalUrl + "#" + hashString); + return originalUrl; + }(normalizeMockUrl(getUrl()), { + query: query + }); + })); + })); + var buildWindowNamePromise = getProxyWindowPromise.then((function(proxyWin) { + return function(_temp2) { + var _ref6 = void 0 === _temp2 ? {} : _temp2, proxyWin = _ref6.proxyWin, initialChildDomain = _ref6.initialChildDomain, childDomainMatch = _ref6.childDomainMatch, _ref6$target = _ref6.target, target = void 0 === _ref6$target ? window : _ref6$target, context = _ref6.context; + return function(_temp) { + var _ref5 = void 0 === _temp ? {} : _temp, proxyWin = _ref5.proxyWin, childDomainMatch = _ref5.childDomainMatch, context = _ref5.context; + return getPropsForChild(_ref5.initialChildDomain).then((function(childProps) { + return { + uid: uid, + context: context, + tag: tag, + childDomainMatch: childDomainMatch, + version: "9_0_86", + props: childProps, + exports: (win = proxyWin, { + init: function(childExports) { + return initChild(this.origin, childExports); + }, + close: close, + checkClose: function() { + return checkWindowClose(win); + }, + resize: resize, + onError: onError, + show: show, + hide: hide, + export: xport + }) + }; + var win; + })); + }({ + proxyWin: proxyWin, + initialChildDomain: initialChildDomain, + childDomainMatch: childDomainMatch, + context: context + }).then((function(childPayload) { + var _crossDomainSerialize = crossDomainSerialize({ + data: childPayload, + metaData: { + windowRef: getWindowRef(target, initialChildDomain, context, proxyWin) + }, + sender: { + domain: getDomain(window) + }, + receiver: { + win: proxyWin, + domain: childDomainMatch + }, + passByReference: initialChildDomain === getDomain() + }), serializedData = _crossDomainSerialize.serializedData; + clean.register(_crossDomainSerialize.cleanReference); + return serializedData; + })); + }({ + proxyWin: (_ref7 = { + proxyWin: proxyWin, + initialChildDomain: initialChildDomain, + childDomainMatch: childDomainMatch, + target: target, + context: context + }).proxyWin, + initialChildDomain: _ref7.initialChildDomain, + childDomainMatch: _ref7.childDomainMatch, + target: _ref7.target, + context: _ref7.context + }).then((function(serializedPayload) { + return buildChildWindowName({ + name: name, + serializedPayload: serializedPayload + }); + })); + var _ref7; + })); + var openFramePromise = buildWindowNamePromise.then((function(windowName) { + return openFrame(context, { + windowName: windowName + }); + })); + var openPrerenderFramePromise = openPrerenderFrame(context); + var renderContainerPromise = promise_ZalgoPromise.hash({ + proxyContainer: getProxyContainerPromise, + proxyFrame: openFramePromise, + proxyPrerenderFrame: openPrerenderFramePromise + }).then((function(_ref15) { + return renderContainer(_ref15.proxyContainer, { + context: context, + proxyFrame: _ref15.proxyFrame, + proxyPrerenderFrame: _ref15.proxyPrerenderFrame, + rerender: rerender + }); + })).then((function(proxyContainer) { + return proxyContainer; + })); + var openPromise = promise_ZalgoPromise.hash({ + windowName: buildWindowNamePromise, + proxyFrame: openFramePromise, + proxyWin: getProxyWindowPromise + }).then((function(_ref16) { + var proxyWin = _ref16.proxyWin; + return windowProp ? proxyWin : open(context, { + windowName: _ref16.windowName, + proxyWin: proxyWin, + proxyFrame: _ref16.proxyFrame + }); + })); + var openPrerenderPromise = promise_ZalgoPromise.hash({ + proxyWin: openPromise, + proxyPrerenderFrame: openPrerenderFramePromise + }).then((function(_ref17) { + return openPrerender(context, _ref17.proxyWin, _ref17.proxyPrerenderFrame); + })); + var setStatePromise = openPromise.then((function(proxyWin) { + currentProxyWin = proxyWin; + return setProxyWin(proxyWin); + })); + var prerenderPromise = promise_ZalgoPromise.hash({ + proxyPrerenderWin: openPrerenderPromise, + state: setStatePromise + }).then((function(_ref18) { + return prerender(_ref18.proxyPrerenderWin, { + context: context + }); + })); + var setWindowNamePromise = promise_ZalgoPromise.hash({ + proxyWin: openPromise, + windowName: buildWindowNamePromise + }).then((function(_ref19) { + if (windowProp) return _ref19.proxyWin.setName(_ref19.windowName); + })); + var getMethodPromise = promise_ZalgoPromise.hash({ + body: buildBodyPromise + }).then((function(_ref20) { + return options.method ? options.method : Object.keys(_ref20.body).length ? "post" : "get"; + })); + var loadUrlPromise = promise_ZalgoPromise.hash({ + proxyWin: openPromise, + windowUrl: buildUrlPromise, + body: buildBodyPromise, + method: getMethodPromise, + windowName: setWindowNamePromise, + prerender: prerenderPromise + }).then((function(_ref21) { + return _ref21.proxyWin.setLocation(_ref21.windowUrl, { + method: _ref21.method, + body: _ref21.body + }); + })); + var watchForClosePromise = openPromise.then((function(proxyWin) { + !function watchForClose(proxyWin, context) { + var cancelled = !1; + clean.register((function() { + cancelled = !0; + })); + return promise_ZalgoPromise.delay(2e3).then((function() { + return proxyWin.isClosed(); + })).then((function(isClosed) { + if (!cancelled) return isClosed ? close(new Error("Detected " + context + " close")) : watchForClose(proxyWin, context); + })); + }(proxyWin, context); + })); + var onDisplayPromise = promise_ZalgoPromise.hash({ + container: renderContainerPromise, + prerender: prerenderPromise + }).then((function() { + return event.trigger(EVENT.DISPLAY); + })); + var openBridgePromise = openPromise.then((function(proxyWin) { + return function(proxyWin, initialChildDomain, context) { + return promise_ZalgoPromise.try((function() { + return proxyWin.awaitWindow(); + })).then((function(win) { + if (src_bridge && src_bridge.needsBridge({ + win: win, + domain: initialChildDomain + }) && !src_bridge.hasBridge(initialChildDomain, initialChildDomain)) { + var bridgeUrl = "function" == typeof options.bridgeUrl ? options.bridgeUrl({ + props: props + }) : options.bridgeUrl; + if (!bridgeUrl) throw new Error("Bridge needed to render " + context); + var bridgeDomain = getDomainFromUrl(bridgeUrl); + src_bridge.linkUrl(win, initialChildDomain); + return src_bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain); + } + })); + }(proxyWin, initialChildDomain, context); + })); + var runTimeoutPromise = loadUrlPromise.then((function() { + return promise_ZalgoPromise.try((function() { + var timeout = props.timeout; + if (timeout) return initPromise.timeout(timeout, new Error("Loading component timed out after " + timeout + " milliseconds")); + })); + })); + var onRenderedPromise = initPromise.then((function() { + return event.trigger(EVENT.RENDERED); + })); + return promise_ZalgoPromise.hash({ + initPromise: initPromise, + buildUrlPromise: buildUrlPromise, + onRenderPromise: onRenderPromise, + getProxyContainerPromise: getProxyContainerPromise, + openFramePromise: openFramePromise, + openPrerenderFramePromise: openPrerenderFramePromise, + renderContainerPromise: renderContainerPromise, + openPromise: openPromise, + openPrerenderPromise: openPrerenderPromise, + setStatePromise: setStatePromise, + prerenderPromise: prerenderPromise, + loadUrlPromise: loadUrlPromise, + buildWindowNamePromise: buildWindowNamePromise, + setWindowNamePromise: setWindowNamePromise, + watchForClosePromise: watchForClosePromise, + onDisplayPromise: onDisplayPromise, + openBridgePromise: openBridgePromise, + runTimeoutPromise: runTimeoutPromise, + onRenderedPromise: onRenderedPromise, + delegatePromise: delegatePromise, + watchForUnloadPromise: watchForUnloadPromise, + finalSetPropsPromise: finalSetPropsPromise + }); + })).catch((function(err) { + return promise_ZalgoPromise.all([ onError(err), destroy(err) ]).then((function() { + throw err; + }), (function() { + throw err; + })); + })).then(src_util_noop); + }, + destroy: destroy, + getProps: function() { + return props; + }, + setProps: setProps, + export: xport, + getHelpers: getHelpers, + getDelegateOverrides: function() { + return promise_ZalgoPromise.try((function() { + return { + getProxyContainer: getProxyContainer, + show: show, + hide: hide, + renderContainer: renderContainer, + getProxyWindow: getProxyWindow, + watchForUnload: watchForUnload, + openFrame: openFrame, + openPrerenderFrame: openPrerenderFrame, + prerender: prerender, + open: open, + openPrerender: openPrerender, + setProxyWin: setProxyWin + }; + })); + }, + getExports: function() { + return xports({ + getExports: function() { + return exportsPromise; + } + }); + } + }; + } + function defaultContainerTemplate(_ref) { + var uid = _ref.uid, frame = _ref.frame, prerenderFrame = _ref.prerenderFrame, doc = _ref.doc, props = _ref.props, event = _ref.event, dimensions = _ref.dimensions; + var width = dimensions.width, height = dimensions.height; + if (frame && prerenderFrame) { + var div = doc.createElement("div"); + div.setAttribute("id", uid); + var style = doc.createElement("style"); + 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.zoid-invisible {\n opacity: 0;\n }\n\n #" + uid + " > iframe.zoid-visible {\n opacity: 1;\n }\n ")); + div.appendChild(frame); + div.appendChild(prerenderFrame); + div.appendChild(style); + prerenderFrame.classList.add("zoid-visible"); + frame.classList.add("zoid-invisible"); + event.on(EVENT.RENDERED, (function() { + prerenderFrame.classList.remove("zoid-visible"); + prerenderFrame.classList.add("zoid-invisible"); + frame.classList.remove("zoid-invisible"); + frame.classList.add("zoid-visible"); + setTimeout((function() { + destroyElement(prerenderFrame); + }), 1); + })); + event.on(EVENT.RESIZE, (function(_ref2) { + var newWidth = _ref2.width, newHeight = _ref2.height; + "number" == typeof newWidth && (div.style.width = toCSS(newWidth)); + "number" == typeof newHeight && (div.style.height = toCSS(newHeight)); + })); + return div; + } + } + function defaultPrerenderTemplate(_ref) { + var doc = _ref.doc, props = _ref.props; + var html = doc.createElement("html"); + var body = doc.createElement("body"); + var style = doc.createElement("style"); + var spinner = doc.createElement("div"); + 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 ")); + return html; + } + var cleanInstances = cleanup(); + var cleanZoid = cleanup(); + function component(opts) { + var options = function(options) { + var tag = options.tag, url = options.url, domain = options.domain, bridgeUrl = options.bridgeUrl, _options$props = options.props, props = void 0 === _options$props ? {} : _options$props, _options$dimensions = options.dimensions, dimensions = void 0 === _options$dimensions ? {} : _options$dimensions, _options$autoResize = options.autoResize, autoResize = void 0 === _options$autoResize ? {} : _options$autoResize, _options$allowedParen = options.allowedParentDomains, allowedParentDomains = void 0 === _options$allowedParen ? "*" : _options$allowedParen, _options$attributes = options.attributes, attributes = void 0 === _options$attributes ? {} : _options$attributes, _options$defaultConte = options.defaultContext, defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte, _options$containerTem = options.containerTemplate, containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem, _options$prerenderTem = options.prerenderTemplate, prerenderTemplate = void 0 === _options$prerenderTem ? defaultPrerenderTemplate : _options$prerenderTem, validate = options.validate, _options$eligible = options.eligible, eligible = void 0 === _options$eligible ? function() { + return { + eligible: !0 + }; + } : _options$eligible, _options$logger = options.logger, logger = void 0 === _options$logger ? { + info: src_util_noop + } : _options$logger, _options$exports = options.exports, xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports, method = options.method, _options$children = options.children, children = void 0 === _options$children ? function() { + return {}; + } : _options$children; + var name = tag.replace(/-/g, "_"); + var propsDef = _extends({}, { + window: { + type: PROP_TYPE.OBJECT, + sendToChild: !1, + required: !1, + allowDelegate: !0, + validate: function(_ref2) { + var value = _ref2.value; + if (!isWindow(value) && !window_ProxyWindow.isProxyWindow(value)) throw new Error("Expected Window or ProxyWindow"); + if (isWindow(value)) { + if (isWindowClosed(value)) throw new Error("Window is closed"); + if (!isSameDomain(value)) throw new Error("Window is not same domain"); + } + }, + decorate: function(_ref3) { + return setup_toProxyWindow(_ref3.value); + } + }, + timeout: { + type: PROP_TYPE.NUMBER, + required: !1, + sendToChild: !1 + }, + cspNonce: { + type: PROP_TYPE.STRING, + required: !1 + }, + onDisplay: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onRendered: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onRender: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onClose: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onDestroy: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop, + decorate: props_decorateOnce + }, + onResize: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop + }, + onFocus: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + allowDelegate: !0, + default: props_defaultNoop + }, + close: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref4) { + return _ref4.close; + } + }, + focus: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref5) { + return _ref5.focus; + } + }, + resize: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref6) { + return _ref6.resize; + } + }, + uid: { + type: PROP_TYPE.STRING, + required: !1, + sendToChild: !1, + childDecorate: function(_ref7) { + return _ref7.uid; + } + }, + tag: { + type: PROP_TYPE.STRING, + required: !1, + sendToChild: !1, + childDecorate: function(_ref8) { + return _ref8.tag; + } + }, + getParent: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref9) { + return _ref9.getParent; + } + }, + getParentDomain: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref10) { + return _ref10.getParentDomain; + } + }, + show: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref11) { + return _ref11.show; + } + }, + hide: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref12) { + return _ref12.hide; + } + }, + export: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref13) { + return _ref13.export; + } + }, + onError: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref14) { + return _ref14.onError; + } + }, + onProps: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref15) { + return _ref15.onProps; + } + }, + getSiblings: { + type: PROP_TYPE.FUNCTION, + required: !1, + sendToChild: !1, + childDecorate: function(_ref16) { + return _ref16.getSiblings; + } + } + }, props); + if (!containerTemplate) throw new Error("Container template required"); + return { + name: name, + tag: tag, + url: url, + domain: domain, + bridgeUrl: bridgeUrl, + method: method, + propsDef: propsDef, + dimensions: dimensions, + autoResize: autoResize, + allowedParentDomains: allowedParentDomains, + attributes: attributes, + defaultContext: defaultContext, + containerTemplate: containerTemplate, + prerenderTemplate: prerenderTemplate, + validate: validate, + logger: logger, + eligible: eligible, + children: children, + exports: "function" == typeof xportsDefinition ? xportsDefinition : function(_ref) { + var getExports = _ref.getExports; + var result = {}; + var _loop = function(_i2, _Object$keys2) { + var key = _Object$keys2[_i2]; + var type = xportsDefinition[key].type; + var valuePromise = getExports().then((function(res) { + return res[key]; + })); + result[key] = type === PROP_TYPE.FUNCTION ? function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; + return valuePromise.then((function(value) { + return value.apply(void 0, args); + })); + } : valuePromise; + }; + for (var _i2 = 0, _Object$keys2 = Object.keys(xportsDefinition); _i2 < _Object$keys2.length; _i2++) _loop(_i2, _Object$keys2); + return result; + } + }; + }(opts); + var name = options.name, tag = options.tag, defaultContext = options.defaultContext, eligible = options.eligible, children = options.children; + var global = lib_global_getGlobal(window); + var instances = []; + var isChild = function() { + if (function(name) { + try { + return parseWindowName(window.name).name === name; + } catch (err) {} + return !1; + }(name)) { + var _payload = getInitialParentPayload().payload; + if (_payload.tag === tag && matchDomain(_payload.childDomainMatch, getDomain())) return !0; + } + return !1; + }; + var registerChild = memoize((function() { + if (isChild()) { + if (window.xprops) { + delete global.components[tag]; + throw new Error("Can not register " + name + " as child - child already registered"); + } + var child = function(options) { + var tag = options.tag, propsDef = options.propsDef, autoResize = options.autoResize, allowedParentDomains = options.allowedParentDomains; + var onPropHandlers = []; + var _getInitialParentPayl = getInitialParentPayload(), parent = _getInitialParentPayl.parent, payload = _getInitialParentPayl.payload; + var parentComponentWindow = parent.win, parentDomain = parent.domain; + var props; + var exportsPromise = new promise_ZalgoPromise; + var version = payload.version, uid = payload.uid, parentExports = payload.exports, context = payload.context, initialProps = payload.props; + if ("9_0_86" !== version) throw new Error("Parent window has zoid version " + version + ", child window has version 9_0_86"); + var show = parentExports.show, hide = parentExports.hide, close = parentExports.close, onError = parentExports.onError, checkClose = parentExports.checkClose, parentExport = parentExports.export, parentResize = parentExports.resize, parentInit = parentExports.init; + var getParent = function() { + return parentComponentWindow; + }; + var getParentDomain = function() { + return parentDomain; + }; + var onProps = function(handler) { + onPropHandlers.push(handler); + return { + cancel: function() { + onPropHandlers.splice(onPropHandlers.indexOf(handler), 1); + } + }; + }; + var resize = function(_ref) { + return parentResize.fireAndForget({ + width: _ref.width, + height: _ref.height + }); + }; + var xport = function(xports) { + exportsPromise.resolve(xports); + return parentExport(xports); + }; + var getSiblings = function(_temp) { + var anyParent = (void 0 === _temp ? {} : _temp).anyParent; + var result = []; + var currentParent = props.parent; + void 0 === anyParent && (anyParent = !currentParent); + if (!anyParent && !currentParent) throw new Error("No parent found for " + tag + " child"); + for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(window); _i2 < _getAllFramesInWindow2.length; _i2++) { + var win = _getAllFramesInWindow2[_i2]; + if (isSameDomain(win)) { + var xprops = assertSameDomain(win).xprops; + if (xprops && getParent() === xprops.getParent()) { + var winParent = xprops.parent; + if (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) { + var xports = tryGlobal(win, (function(global) { + return global.exports; + })); + result.push({ + props: xprops, + exports: xports + }); + } + } + } + } + return result; + }; + var setProps = function(newProps, origin, isUpdate) { + void 0 === isUpdate && (isUpdate = !1); + var normalizedProps = function(parentComponentWindow, propsDef, props, origin, helpers, isUpdate) { + void 0 === isUpdate && (isUpdate = !1); + var result = {}; + for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) { + var key = _Object$keys2[_i2]; + var prop = propsDef[key]; + if (!prop || !prop.sameDomain || origin === getDomain(window) && isSameDomain(parentComponentWindow)) { + var value = normalizeChildProp(propsDef, 0, key, props[key], helpers); + result[key] = value; + prop && prop.alias && !result[prop.alias] && (result[prop.alias] = value); + } + } + if (!isUpdate) for (var _i4 = 0, _Object$keys4 = Object.keys(propsDef); _i4 < _Object$keys4.length; _i4++) { + var _key = _Object$keys4[_i4]; + props.hasOwnProperty(_key) || (result[_key] = normalizeChildProp(propsDef, 0, _key, void 0, helpers)); + } + return result; + }(parentComponentWindow, propsDef, newProps, origin, { + tag: tag, + show: show, + hide: hide, + close: close, + focus: child_focus, + onError: onError, + resize: resize, + getSiblings: getSiblings, + onProps: onProps, + getParent: getParent, + getParentDomain: getParentDomain, + uid: uid, + export: xport + }, isUpdate); + props ? extend(props, normalizedProps) : props = normalizedProps; + for (var _i4 = 0; _i4 < onPropHandlers.length; _i4++) (0, onPropHandlers[_i4])(props); + }; + var updateProps = function(newProps) { + return promise_ZalgoPromise.try((function() { + return setProps(newProps, parentDomain, !0); + })); + }; + return { + init: function() { + return promise_ZalgoPromise.try((function() { + isSameDomain(parentComponentWindow) && function(_ref3) { + var componentName = _ref3.componentName, parentComponentWindow = _ref3.parentComponentWindow; + var _crossDomainDeseriali2 = crossDomainDeserialize({ + data: parseWindowName(window.name).serializedInitialPayload, + sender: { + win: parentComponentWindow + }, + basic: !0 + }), sender = _crossDomainDeseriali2.sender; + if ("uid" === _crossDomainDeseriali2.reference.type || "global" === _crossDomainDeseriali2.metaData.windowRef.type) { + var _crossDomainSerialize = crossDomainSerialize({ + data: _crossDomainDeseriali2.data, + metaData: { + windowRef: window_getWindowRef(parentComponentWindow) + }, + sender: { + domain: sender.domain + }, + receiver: { + win: window, + domain: getDomain() + }, + basic: !0 + }); + window.name = buildChildWindowName({ + name: componentName, + serializedPayload: _crossDomainSerialize.serializedData + }); + } + }({ + componentName: options.name, + parentComponentWindow: parentComponentWindow + }); + lib_global_getGlobal(window).exports = options.exports({ + getExports: function() { + return exportsPromise; + } + }); + !function(allowedParentDomains, domain) { + if (!matchDomain(allowedParentDomains, domain)) throw new Error("Can not be rendered by domain: " + domain); + }(allowedParentDomains, parentDomain); + markWindowKnown(parentComponentWindow); + !function() { + window.addEventListener("beforeunload", (function() { + checkClose.fireAndForget(); + })); + window.addEventListener("unload", (function() { + checkClose.fireAndForget(); + })); + onCloseWindow(parentComponentWindow, (function() { + child_destroy(); + })); + }(); + return parentInit({ + updateProps: updateProps, + close: child_destroy + }); + })).then((function() { + 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) { + return { + width: width, + height: height, + element: element + }; + }))).then((function(_ref3) { + var width = _ref3.width, height = _ref3.height, element = _ref3.element; + element && (width || height) && context !== CONTEXT.POPUP && onResize(element, (function(_ref4) { + resize({ + width: width ? _ref4.width : void 0, + height: height ? _ref4.height : void 0 + }); + }), { + width: width, + height: height + }); + })); + var _autoResize$width, width, _autoResize$height, height, _autoResize$element; + })).catch((function(err) { + onError(err); + })); + }, + getProps: function() { + if (props) return props; + setProps(initialProps, parentDomain); + return props; + } + }; + }(options); + child.init(); + return child; + } + })); + registerChild(); + !function() { + var allowDelegateListener = on_on("zoid_allow_delegate_" + name, (function() { + return !0; + })); + var delegateListener = on_on("zoid_delegate_" + name, (function(_ref2) { + var _ref2$data = _ref2.data; + return { + parent: parentComponent({ + uid: _ref2$data.uid, + options: options, + overrides: _ref2$data.overrides, + parentWin: _ref2.source + }) + }; + })); + cleanZoid.register(allowDelegateListener.cancel); + cleanZoid.register(delegateListener.cancel); + }(); + global.components = global.components || {}; + if (global.components[tag]) throw new Error("Can not register multiple components with the same tag: " + tag); + global.components[tag] = !0; + return { + init: function init(inputProps) { + var instance; + var uid = "zoid-" + tag + "-" + uniqueID(); + var props = inputProps || {}; + var _eligible = eligible({ + props: props + }), eligibility = _eligible.eligible, reason = _eligible.reason; + var onDestroy = props.onDestroy; + props.onDestroy = function() { + instance && eligibility && instances.splice(instances.indexOf(instance), 1); + if (onDestroy) return onDestroy.apply(void 0, arguments); + }; + var parent = parentComponent({ + uid: uid, + options: options + }); + parent.init(); + eligibility ? parent.setProps(props) : props.onDestroy && props.onDestroy(); + cleanInstances.register((function(err) { + return parent.destroy(err || new Error("zoid destroyed all components")); + })); + var clone = function(_temp) { + var _ref4$decorate = (void 0 === _temp ? {} : _temp).decorate; + return init((void 0 === _ref4$decorate ? identity : _ref4$decorate)(props)); + }; + var _render = function(target, container, context) { + return promise_ZalgoPromise.try((function() { + if (!eligibility) { + var err = new Error(reason || name + " component is not eligible"); + return parent.destroy(err).then((function() { + throw err; + })); + } + if (!isWindow(target)) throw new Error("Must pass window to renderTo"); + return function(props, context) { + return promise_ZalgoPromise.try((function() { + if (props.window) return setup_toProxyWindow(props.window).getType(); + if (context) { + if (context !== CONTEXT.IFRAME && context !== CONTEXT.POPUP) throw new Error("Unrecognized context: " + context); + return context; + } + return defaultContext; + })); + }(props, context); + })).then((function(finalContext) { + container = function(context, container) { + if (container) { + if ("string" != typeof container && !isElement(container)) throw new TypeError("Expected string or element selector to be passed"); + return container; + } + if (context === CONTEXT.POPUP) return "body"; + throw new Error("Expected element to be passed to render iframe"); + }(finalContext, container); + if (target !== window && "string" != typeof container) throw new Error("Must pass string element when rendering to another window"); + return parent.render({ + target: target, + container: container, + context: finalContext, + rerender: function() { + var newInstance = clone(); + extend(instance, newInstance); + return newInstance.renderTo(target, container, context); + } + }); + })).catch((function(err) { + return parent.destroy(err).then((function() { + throw err; + })); + })); + }; + instance = _extends({}, parent.getExports(), parent.getHelpers(), function() { + var childComponents = children(); + var result = {}; + var _loop2 = function(_i4, _Object$keys4) { + var childName = _Object$keys4[_i4]; + var Child = childComponents[childName]; + result[childName] = function(childInputProps) { + var parentProps = parent.getProps(); + var childProps = _extends({}, childInputProps, { + parent: { + uid: uid, + props: parentProps, + export: parent.export + } + }); + return Child(childProps); + }; + }; + for (var _i4 = 0, _Object$keys4 = Object.keys(childComponents); _i4 < _Object$keys4.length; _i4++) _loop2(_i4, _Object$keys4); + return result; + }(), { + isEligible: function() { + return eligibility; + }, + clone: clone, + render: function(container, context) { + return _render(window, container, context); + }, + renderTo: function(target, container, context) { + return _render(target, container, context); + } + }); + eligibility && instances.push(instance); + return instance; + }, + instances: instances, + driver: function(driverName, dep) { + throw new Error("Driver support not enabled"); + }, + isChild: isChild, + canRenderTo: function(win) { + return send_send(win, "zoid_allow_delegate_" + name).then((function(_ref3) { + return _ref3.data; + })).catch((function() { + return !1; + })); + }, + registerChild: registerChild + }; + } + var component_create = function(options) { + !function() { + if (!global_getGlobal().initialized) { + global_getGlobal().initialized = !0; + on = (_ref3 = { + on: on_on, + send: send_send + }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) { + return receive_receiveMessage(message, { + on: on, + send: send + }); + }; + !function(_ref5) { + var on = _ref5.on, send = _ref5.send; + globalStore().getOrSet("postMessageListener", (function() { + return addEventListener(window, "message", (function(event) { + !function(event, _ref4) { + var on = _ref4.on, send = _ref4.send; + promise_ZalgoPromise.try((function() { + var source = event.source || event.sourceElement; + var origin = event.origin || event.originalEvent && event.originalEvent.origin; + var data = event.data; + "null" === origin && (origin = "file://"); + if (source) { + if (!origin) throw new Error("Post message did not have origin domain"); + receive_receiveMessage({ + source: source, + origin: origin, + data: data + }, { + on: on, + send: send + }); + } + })); + }(event, { + on: on, + send: send + }); + })); + })); + }({ + on: on_on, + send: send_send + }); + setupBridge({ + on: on_on, + send: send_send, + receiveMessage: receive_receiveMessage + }); + !function(_ref8) { + var on = _ref8.on, send = _ref8.send; + globalStore("builtinListeners").getOrSet("helloListener", (function() { + var listener = on("postrobot_hello", { + domain: "*" + }, (function(_ref3) { + resolveHelloPromise(_ref3.source, { + domain: _ref3.origin + }); + return { + instanceID: getInstanceID() + }; + })); + var parent = getAncestor(); + parent && sayHello(parent, { + send: send + }).catch((function(err) {})); + return listener; + })); + }({ + on: on_on, + send: send_send + }); + } + var _ref3, on, send, global; + }(); + var comp = component(options); + var init = function(props) { + return comp.init(props); + }; + init.driver = function(name, dep) { + return comp.driver(name, dep); + }; + init.isChild = function() { + return comp.isChild(); + }; + init.canRenderTo = function(win) { + return comp.canRenderTo(win); + }; + init.instances = comp.instances; + var child = comp.registerChild(); + child && (window.xprops = init.xprops = child.getProps()); + return init; + }; + function destroyComponents(err) { + src_bridge && src_bridge.destroyBridges(); + var destroyPromise = cleanInstances.all(err); + cleanInstances = cleanup(); + return destroyPromise; + } + var destroyAll = destroyComponents; + function component_destroy(err) { + destroyAll(); + delete window.__zoid_9_0_86__; + !function() { + !function() { + var responseListeners = globalStore("responseListeners"); + for (var _i2 = 0, _responseListeners$ke2 = responseListeners.keys(); _i2 < _responseListeners$ke2.length; _i2++) { + var hash = _responseListeners$ke2[_i2]; + var listener = responseListeners.get(hash); + listener && (listener.cancelled = !0); + responseListeners.del(hash); + } + }(); + (listener = globalStore().get("postMessageListener")) && listener.cancel(); + var listener; + delete window.__post_robot_10_0_44__; + }(); + return cleanZoid.all(err); + } + } ]); + })); + } (zoid$1)); + return zoid$1.exports; + } + + /* @flow */ + + (function (module) { + /* eslint import/no-commonjs: 0 */ + + // eslint-disable-next-line no-true-env + { + // $FlowFixMe + module.exports = requireZoid(); + // $FlowFixMe + module.exports.default = module.exports; + } + } (zoid$2)); + + var zoidExports = zoid$2.exports; + var zoid = /*@__PURE__*/getDefaultExportFromCjs(zoidExports); + + /* eslint-disable no-restricted-properties */ + const BASE_URL = "http://localhost:3000"; + const Button = zoid.create({ + tag: 'button', + // Dynamic URL + url: () => { + try { + const scriptSrc = document.getElementById('widget-id')?.getAttribute('src'); + if (!scriptSrc) { + throw new Error('No script source found'); + } + return `${new URL(scriptSrc).origin}/zoid-button`; + } + catch { + return BASE_URL; + } + }, + dimensions: { + width: '120px', + height: '0px' + }, + autoResize: { + width: false, + height: true + }, + props: { + name: { + type: 'string', + required: false + } + } + }); + + return Button; + +})(); +//# sourceMappingURL=button.js.map diff --git a/apps/nextjs/src/widgets/button.js.map b/apps/nextjs/src/widgets/button.js.map new file mode 100644 index 0000000..e3006ab --- /dev/null +++ b/apps/nextjs/src/widgets/button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"button.js","sources":["../../../../node_modules/zoid/dist/zoid.js","../../../../node_modules/zoid/index.js","../components/zoid/button.ts"],"sourcesContent":["!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"zoid\", [], factory) : \"object\" == typeof exports ? exports.zoid = factory() : root.zoid = factory();\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.r = function(exports) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n };\n __webpack_require__.t = function(value, mode) {\n 1 & mode && (value = __webpack_require__(value));\n if (8 & mode) return value;\n if (4 & mode && \"object\" == typeof value && value && value.__esModule) return value;\n var ns = Object.create(null);\n __webpack_require__.r(ns);\n Object.defineProperty(ns, \"default\", {\n enumerable: !0,\n value: value\n });\n if (2 & mode && \"string\" != typeof value) for (var key in value) __webpack_require__.d(ns, key, function(key) {\n return value[key];\n }.bind(null, key));\n return ns;\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return {}.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = 0);\n }([ function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n __webpack_require__.d(__webpack_exports__, \"PopupOpenError\", (function() {\n return dom_PopupOpenError;\n }));\n __webpack_require__.d(__webpack_exports__, \"create\", (function() {\n return component_create;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroy\", (function() {\n return component_destroy;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroyComponents\", (function() {\n return destroyComponents;\n }));\n __webpack_require__.d(__webpack_exports__, \"destroyAll\", (function() {\n return destroyAll;\n }));\n __webpack_require__.d(__webpack_exports__, \"PROP_TYPE\", (function() {\n return PROP_TYPE;\n }));\n __webpack_require__.d(__webpack_exports__, \"PROP_SERIALIZATION\", (function() {\n return PROP_SERIALIZATION;\n }));\n __webpack_require__.d(__webpack_exports__, \"CONTEXT\", (function() {\n return CONTEXT;\n }));\n __webpack_require__.d(__webpack_exports__, \"EVENT\", (function() {\n return EVENT;\n }));\n function _setPrototypeOf(o, p) {\n return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) {\n o.__proto__ = p;\n return o;\n })(o, p);\n }\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n }\n function _extends() {\n return (_extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) ({}).hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }).apply(this, arguments);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && \"function\" == typeof window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && \"function\" == typeof window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n var dispatchedErrors = [];\n var possiblyUnhandledPromiseHandlers = [];\n var activeCount = 0;\n var flushPromise;\n function flushActive() {\n if (!activeCount && flushPromise) {\n var promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n }\n function startActive() {\n activeCount += 1;\n }\n function endActive() {\n activeCount -= 1;\n flushActive();\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n this.resolved = void 0;\n this.rejected = void 0;\n this.errorHandled = void 0;\n this.value = void 0;\n this.error = void 0;\n this.handlers = void 0;\n this.dispatching = void 0;\n this.stack = void 0;\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result;\n var _error;\n var resolved = !1;\n var rejected = !1;\n var isAsync = !1;\n startActive();\n try {\n handler((function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }), (function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n }));\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n endActive();\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n var _proto = ZalgoPromise.prototype;\n _proto.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n _proto.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : {}.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout((function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === dispatchedErrors.indexOf(err)) {\n dispatchedErrors.push(err);\n setTimeout((function() {\n throw err;\n }), 1);\n for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }), 1);\n this.dispatch();\n return this;\n };\n _proto.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n return this;\n };\n _proto.dispatch = function() {\n var resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!this.dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n startActive();\n var chain = function(firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n secondPromise.resolve(res);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < handlers.length; i++) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise;\n var _result2 = void 0;\n if (resolved) try {\n _result2 = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n } else if (rejected) {\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n try {\n _result2 = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n if (_result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected)) {\n var promiseResult = _result2;\n promiseResult.resolved ? promise.resolve(promiseResult.value) : promise.reject(promiseResult.error);\n promiseResult.errorHandled = !0;\n } else utils_isPromise(_result2) ? _result2 instanceof ZalgoPromise && (_result2.resolved || _result2.rejected) ? _result2.resolved ? promise.resolve(_result2.value) : promise.reject(_result2.error) : chain(_result2, promise) : promise.resolve(_result2);\n }\n handlers.length = 0;\n this.dispatching = !1;\n endActive();\n }\n };\n _proto.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise;\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n _proto.catch = function(onError) {\n return this.then(void 0, onError);\n };\n _proto.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then((function(result) {\n return ZalgoPromise.try(onFinally).then((function() {\n return result;\n }));\n }), (function(err) {\n return ZalgoPromise.try(onFinally).then((function() {\n throw err;\n }));\n }));\n };\n _proto.timeout = function(time, err) {\n var _this3 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout((function() {\n _this3.resolved || _this3.rejected || _this3.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }), time);\n return this.then((function(result) {\n clearTimeout(timeout);\n return result;\n }));\n };\n _proto.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n _proto.lazy = function() {\n this.errorHandled = !0;\n return this;\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise((function(resolve, reject) {\n return value.then(resolve, reject);\n })) : (new ZalgoPromise).resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return (new ZalgoPromise).reject(error);\n };\n ZalgoPromise.asyncReject = function(error) {\n return (new ZalgoPromise).asyncReject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise;\n var count = promises.length;\n var results = [].slice();\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n var chain = function(i, firstPromise, secondPromise) {\n return firstPromise.then((function(res) {\n results[i] = res;\n 0 == (count -= 1) && promise.resolve(results);\n }), (function(err) {\n secondPromise.reject(err);\n }));\n };\n for (var i = 0; i < promises.length; i++) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n var awaitPromises = [];\n var _loop = function(key) {\n if (promises.hasOwnProperty(key)) {\n var value = promises[key];\n utils_isPromise(value) ? awaitPromises.push(value.then((function(res) {\n result[key] = res;\n }))) : result[key] = value;\n }\n };\n for (var key in promises) _loop(key);\n return ZalgoPromise.all(awaitPromises).then((function() {\n return result;\n }));\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result;\n startActive();\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n endActive();\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise((function(resolve) {\n setTimeout(resolve, _delay);\n }));\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n return function(Zalgo) {\n var promise = flushPromise = flushPromise || new Zalgo;\n flushActive();\n return promise;\n }(ZalgoPromise);\n };\n return ZalgoPromise;\n }();\n function isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n var WINDOW_TYPE = {\n IFRAME: \"iframe\",\n POPUP: \"popup\"\n };\n var IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function getActualProtocol(win) {\n void 0 === win && (win = window);\n return win.location.protocol;\n }\n function getProtocol(win) {\n void 0 === win && (win = window);\n if (win.mockDomain) {\n var protocol = win.mockDomain.split(\"//\")[0];\n if (protocol) return protocol;\n }\n return getActualProtocol(win);\n }\n function isAboutProtocol(win) {\n void 0 === win && (win = window);\n return \"about:\" === getProtocol(win);\n }\n function utils_getParent(win) {\n void 0 === win && (win = window);\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n void 0 === win && (win = window);\n if (win && !utils_getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n void 0 === win && (win = window);\n var location = win.location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = getActualProtocol(win);\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (\"file:\" === protocol) return \"file://\";\n if (\"about:\" === protocol) {\n var parent = utils_getParent(win);\n return parent && canReadFromWindow() ? getActualDomain(parent) : \"about://\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n void 0 === win && (win = window);\n var domain = getActualDomain(win);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(\"mock:\") ? win.mockDomain : domain;\n }\n function isSameDomain(win) {\n if (!function(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (function(win) {\n void 0 === win && (win = window);\n return \"mock:\" === getProtocol(win);\n }(win) && canReadFromWindow()) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow()) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }\n function assertSameDomain(win) {\n if (!isSameDomain(win)) throw new Error(\"Expected window to be same domain\");\n return win;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = utils_getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [];\n var frames;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n function getAllChildFrames(win) {\n var result = [];\n for (var _i3 = 0, _getFrames2 = getFrames(win); _i3 < _getFrames2.length; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame); _i5 < _getAllChildFrames2.length; _i5++) result.push(_getAllChildFrames2[_i5]);\n }\n return result;\n }\n function getTop(win) {\n void 0 === win && (win = window);\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (utils_getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = getAllChildFrames(win); _i7 < _getAllChildFrames4.length; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (utils_getParent(frame) === frame) return frame;\n }\n }\n function getAllFramesInWindow(win) {\n var top = getTop(win);\n if (!top) throw new Error(\"Can not determine top window\");\n var result = [].concat(getAllChildFrames(top), [ top ]);\n -1 === result.indexOf(win) && (result = [].concat(result, [ win ], getAllChildFrames(win)));\n return result;\n }\n var iframeWindows = [];\n var iframeFrames = [];\n function isWindowClosed(win, allowMock) {\n void 0 === allowMock && (allowMock = !0);\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && isSameDomain(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n var parent = frame;\n for (;parent.parentNode && parent.parentNode !== parent; ) parent = parent.parentNode;\n if (!parent.host || !doc.documentElement.contains(parent.host)) return !0;\n }\n return !1;\n }(frame)) return !0;\n }\n return !1;\n }\n function utils_getUserAgent(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n }\n function getFrameByName(win, name) {\n var winFrames = getFrames(win);\n for (var _i9 = 0; _i9 < winFrames.length; _i9++) {\n var childFrame = winFrames[_i9];\n try {\n if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame;\n } catch (err) {}\n }\n try {\n if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name];\n } catch (err) {}\n try {\n if (-1 !== winFrames.indexOf(win[name])) return win[name];\n } catch (err) {}\n }\n function isOpener(parent, child) {\n return parent === getOpener(child);\n }\n function getAncestor(win) {\n void 0 === win && (win = window);\n return getOpener(win = win || window) || utils_getParent(win) || void 0;\n }\n function anyMatch(collection1, collection2) {\n for (var _i17 = 0; _i17 < collection1.length; _i17++) {\n var item1 = collection1[_i17];\n for (var _i19 = 0; _i19 < collection2.length; _i19++) if (item1 === collection2[_i19]) return !0;\n }\n return !1;\n }\n function getDistanceFromTop(win) {\n void 0 === win && (win = window);\n var distance = 0;\n var parent = win;\n for (;parent; ) (parent = utils_getParent(parent)) && (distance += 1);\n return distance;\n }\n function isSameTopWindow(win1, win2) {\n var top1 = getTop(win1) || win1;\n var top2 = getTop(win2) || win2;\n try {\n if (top1 && top2) return top1 === top2;\n } catch (err) {}\n var allFrames1 = getAllFramesInWindow(win1);\n var allFrames2 = getAllFramesInWindow(win2);\n if (anyMatch(allFrames1, allFrames2)) return !0;\n var opener1 = getOpener(top1);\n var opener2 = getOpener(top2);\n return opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2) || opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1), \n !1;\n }\n function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return \"*\" === pattern || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some((function(subpattern) {\n return matchDomain(subpattern, origin);\n })));\n }\n function getDomainFromUrl(url) {\n return url.match(/^(https?|mock|file):\\/\\//) ? url.split(\"/\").slice(0, 3).join(\"/\") : getDomain();\n }\n function onCloseWindow(win, callback, delay, maxtime) {\n void 0 === delay && (delay = 1e3);\n void 0 === maxtime && (maxtime = 1 / 0);\n var timeout;\n !function check() {\n if (isWindowClosed(win)) {\n timeout && clearTimeout(timeout);\n return callback();\n }\n if (maxtime <= 0) clearTimeout(timeout); else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n }();\n return {\n cancel: function() {\n timeout && clearTimeout(timeout);\n }\n };\n }\n function isWindow(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === {}.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && \"__unlikely_value__\" === obj.__cross_domain_utils_window_check__) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) return !0;\n } catch (err) {}\n return !1;\n }\n function normalizeMockUrl(url) {\n if (!(domain = getDomainFromUrl(url), 0 === domain.indexOf(\"mock:\"))) return url;\n var domain;\n throw new Error(\"Mock urls not supported out of test mode\");\n }\n function getFrameForWindow(win) {\n if (isSameDomain(win)) return assertSameDomain(win).frameElement;\n for (var _i21 = 0, _document$querySelect2 = document.querySelectorAll(\"iframe\"); _i21 < _document$querySelect2.length; _i21++) {\n var frame = _document$querySelect2[_i21];\n if (frame && frame.contentWindow && frame.contentWindow === win) return frame;\n }\n }\n function closeWindow(win) {\n if (function(win) {\n void 0 === win && (win = window);\n return Boolean(utils_getParent(win));\n }(win)) {\n var frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n try {\n win.close();\n } catch (err) {}\n }\n function util_safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n this.name = void 0;\n this.weakmap = void 0;\n this.keys = void 0;\n this.values = void 0;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\";\n if (function() {\n if (\"undefined\" == typeof WeakMap) return !1;\n if (void 0 === Object.freeze) return !1;\n try {\n var testWeakMap = new WeakMap;\n var testKey = {};\n Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new WeakMap;\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n var _proto = CrossDomainSafeWeakMap.prototype;\n _proto._cleanupClosedWindows = function() {\n var weakmap = this.weakmap;\n var keys = this.keys;\n for (var i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (isWindow(value) && isWindowClosed(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n _proto.isSafeToReadWrite = function(key) {\n return !isWindow(key);\n };\n _proto.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var name = this.name;\n var entry = key[name];\n entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n return;\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var values = this.values;\n var index = util_safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n };\n _proto.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return entry && entry[0] === key ? entry[1] : void 0;\n } catch (err) {}\n this._cleanupClosedWindows();\n var index = util_safeIndexOf(this.keys, key);\n if (-1 !== index) return this.values[index];\n };\n _proto.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } catch (err) {}\n this._cleanupClosedWindows();\n var keys = this.keys;\n var index = util_safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n };\n _proto.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return !0;\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) try {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n } catch (err) {}\n this._cleanupClosedWindows();\n return -1 !== util_safeIndexOf(this.keys, key);\n };\n _proto.getOrSet = function(key, getter) {\n if (this.has(key)) return this.get(key);\n var value = getter();\n this.set(key, value);\n return value;\n };\n return CrossDomainSafeWeakMap;\n }();\n function _getPrototypeOf(o) {\n return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n })(o);\n }\n function _isNativeReflectConstruct() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], (function() {})));\n return !0;\n } catch (e) {\n return !1;\n }\n }\n function construct_construct(Parent, args, Class) {\n return (construct_construct = _isNativeReflectConstruct() ? Reflect.construct : function(Parent, args, Class) {\n var a = [ null ];\n a.push.apply(a, args);\n var instance = new (Function.bind.apply(Parent, a));\n Class && _setPrototypeOf(instance, Class.prototype);\n return instance;\n }).apply(null, arguments);\n }\n function wrapNativeSuper_wrapNativeSuper(Class) {\n var _cache = \"function\" == typeof Map ? new Map : void 0;\n return (wrapNativeSuper_wrapNativeSuper = function(Class) {\n if (null === Class || !(fn = Class, -1 !== Function.toString.call(fn).indexOf(\"[native code]\"))) return Class;\n var fn;\n if (\"function\" != typeof Class) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== _cache) {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct_construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n })(Class);\n }\n function 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, thisNamespace = void 0 !== _options$thisNamespac && _options$thisNamespac, cacheTime = options.time;\n var simpleCache;\n var thisCache;\n var memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n var memoizedFunction = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n var cache;\n cache = thisNamespace ? (thisCache = thisCache || new weakmap_CrossDomainSafeWeakMap).getOrSet(this, getEmptyObject) : simpleCache = simpleCache || {};\n var cacheKey = 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, _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n var key = serializeArgs(args);\n if (cache.hasOwnProperty(key)) return cache[key];\n cache[key] = promise_ZalgoPromise.try((function() {\n return method.apply(_this, _arguments);\n })).finally((function() {\n delete cache[key];\n }));\n return cache[key];\n }\n memoizedPromiseFunction.reset = function() {\n cache = {};\n };\n return setFunctionName(memoizedPromiseFunction, getFunctionName(method) + \"::promiseMemoized\");\n }\n function src_util_noop() {}\n function once(method) {\n var called = !1;\n return setFunctionName((function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n }), getFunctionName(method) + \"::once\");\n }\n function stringifyError(err, level) {\n void 0 === level && (level = 1);\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack;\n var message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return err && err.toString && \"function\" == typeof err.toString ? err.toString() : {}.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n function stringify(item) {\n return \"string\" == typeof item ? item : item && item.toString && \"function\" == typeof item.toString ? item.toString() : {}.toString.call(item);\n }\n function extend(obj, source) {\n if (!source) return obj;\n if (Object.assign) return Object.assign(obj, source);\n for (var key in source) source.hasOwnProperty(key) && (obj[key] = source[key]);\n return obj;\n }\n memoize((function(obj) {\n if (Object.values) return Object.values(obj);\n var result = [];\n for (var key in obj) obj.hasOwnProperty(key) && result.push(obj[key]);\n return result;\n }));\n function identity(item) {\n return item;\n }\n function safeInterval(method, time) {\n var timeout;\n !function loop() {\n timeout = setTimeout((function() {\n method();\n loop();\n }), time);\n }();\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }\n function arrayFrom(item) {\n return [].slice.call(item);\n }\n function isDefined(value) {\n return null != value;\n }\n function util_isRegex(item) {\n return \"[object RegExp]\" === {}.toString.call(item);\n }\n function util_getOrSet(obj, key, getter) {\n if (obj.hasOwnProperty(key)) return obj[key];\n var val = getter();\n obj[key] = val;\n return val;\n }\n function cleanup(obj) {\n var tasks = [];\n var cleaned = !1;\n var cleanErr;\n var cleaner = {\n set: function(name, item) {\n if (!cleaned) {\n obj[name] = item;\n cleaner.register((function() {\n delete obj[name];\n }));\n }\n return item;\n },\n register: function(method) {\n var task = once((function() {\n return method(cleanErr);\n }));\n cleaned ? method(cleanErr) : tasks.push(task);\n return {\n cancel: function() {\n var index = tasks.indexOf(task);\n -1 !== index && tasks.splice(index, 1);\n }\n };\n },\n all: function(err) {\n cleanErr = err;\n var results = [];\n cleaned = !0;\n for (;tasks.length; ) {\n var task = tasks.shift();\n results.push(task());\n }\n return promise_ZalgoPromise.all(results).then(src_util_noop);\n }\n };\n return cleaner;\n }\n function assertExists(name, thing) {\n if (null == thing) throw new Error(\"Expected \" + name + \" to be present\");\n return thing;\n }\n var util_ExtendableError = function(_Error) {\n _inheritsLoose(ExtendableError, _Error);\n function ExtendableError(message) {\n var _this6;\n (_this6 = _Error.call(this, message) || this).name = _this6.constructor.name;\n \"function\" == typeof Error.captureStackTrace ? Error.captureStackTrace(function(self) {\n if (void 0 === self) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return self;\n }(_this6), _this6.constructor) : _this6.stack = new Error(message).stack;\n return _this6;\n }\n return ExtendableError;\n }(wrapNativeSuper_wrapNativeSuper(Error));\n function getBody() {\n var body = document.body;\n if (!body) throw new Error(\"Body element not found\");\n return body;\n }\n function isDocumentReady() {\n return Boolean(document.body) && \"complete\" === document.readyState;\n }\n function isDocumentInteractive() {\n return Boolean(document.body) && \"interactive\" === document.readyState;\n }\n function urlEncode(str) {\n return encodeURIComponent(str);\n }\n memoize((function() {\n return new promise_ZalgoPromise((function(resolve) {\n if (isDocumentReady() || isDocumentInteractive()) return resolve();\n var interval = setInterval((function() {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }), 10);\n }));\n }));\n function parseQuery(queryString) {\n return function(method, logic, args) {\n void 0 === args && (args = []);\n var cache = method.__inline_memoize_cache__ = method.__inline_memoize_cache__ || {};\n var key = serializeArgs(args);\n return cache.hasOwnProperty(key) ? cache[key] : cache[key] = function() {\n var params = {};\n if (!queryString) return params;\n if (-1 === queryString.indexOf(\"=\")) return params;\n for (var _i2 = 0, _queryString$split2 = queryString.split(\"&\"); _i2 < _queryString$split2.length; _i2++) {\n var pair = _queryString$split2[_i2];\n (pair = pair.split(\"=\"))[0] && pair[1] && (params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]));\n }\n return params;\n }.apply(void 0, args);\n }(parseQuery, 0, [ queryString ]);\n }\n function extendQuery(originalQuery, props) {\n void 0 === props && (props = {});\n return props && Object.keys(props).length ? function(obj) {\n void 0 === obj && (obj = {});\n return Object.keys(obj).filter((function(key) {\n return \"string\" == typeof obj[key] || \"boolean\" == typeof obj[key];\n })).map((function(key) {\n var val = obj[key];\n if (\"string\" != typeof val && \"boolean\" != typeof val) throw new TypeError(\"Invalid type for query\");\n return urlEncode(key) + \"=\" + urlEncode(val.toString());\n })).join(\"&\");\n }(_extends({}, parseQuery(originalQuery), props)) : originalQuery;\n }\n function appendChild(container, child) {\n container.appendChild(child);\n }\n function 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() {\n obj.removeEventListener(event, handler);\n }\n };\n }\n function showElement(element) {\n element.style.setProperty(\"display\", \"\");\n }\n function hideElement(element) {\n element.style.setProperty(\"display\", \"none\", \"important\");\n }\n function destroyElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n function isElementClosed(el) {\n return !(el && el.parentNode && el.ownerDocument && el.ownerDocument.documentElement && el.ownerDocument.documentElement.contains(el));\n }\n function onResize(el, handler, _temp) {\n var _ref2 = void 0 === _temp ? {} : _temp, _ref2$width = _ref2.width, width = void 0 === _ref2$width || _ref2$width, _ref2$height = _ref2.height, height = void 0 === _ref2$height || _ref2$height, _ref2$interval = _ref2.interval, interval = void 0 === _ref2$interval ? 100 : _ref2$interval, _ref2$win = _ref2.win, win = void 0 === _ref2$win ? window : _ref2$win;\n var currentWidth = el.offsetWidth;\n var currentHeight = el.offsetHeight;\n var canceled = !1;\n handler({\n width: currentWidth,\n height: currentHeight\n });\n var check = function() {\n if (!canceled && function(el) {\n return Boolean(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n }(el)) {\n var newWidth = el.offsetWidth;\n var newHeight = el.offsetHeight;\n (width && newWidth !== currentWidth || height && newHeight !== currentHeight) && handler({\n width: newWidth,\n height: newHeight\n });\n currentWidth = newWidth;\n currentHeight = newHeight;\n }\n };\n var observer;\n var timeout;\n win.addEventListener(\"resize\", check);\n if (void 0 !== win.ResizeObserver) {\n (observer = new win.ResizeObserver(check)).observe(el);\n timeout = safeInterval(check, 10 * interval);\n } else if (void 0 !== win.MutationObserver) {\n (observer = new win.MutationObserver(check)).observe(el, {\n attributes: !0,\n childList: !0,\n subtree: !0,\n characterData: !1\n });\n timeout = safeInterval(check, 10 * interval);\n } else timeout = safeInterval(check, interval);\n return {\n cancel: function() {\n canceled = !0;\n observer.disconnect();\n window.removeEventListener(\"resize\", check);\n timeout.cancel();\n }\n };\n }\n function isShadowElement(element) {\n for (;element.parentNode; ) element = element.parentNode;\n return \"[object ShadowRoot]\" === element.toString();\n }\n var currentScript = \"undefined\" != typeof document ? document.currentScript : null;\n var getCurrentScript = memoize((function() {\n if (currentScript) return currentScript;\n if (currentScript = function() {\n try {\n var stack = function() {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n }();\n var stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n var scriptLocation = stackDetails && stackDetails[1];\n if (!scriptLocation) return;\n for (var _i22 = 0, _Array$prototype$slic2 = [].slice.call(document.getElementsByTagName(\"script\")).reverse(); _i22 < _Array$prototype$slic2.length; _i22++) {\n var script = _Array$prototype$slic2[_i22];\n if (script.src && script.src === scriptLocation) return script;\n }\n } catch (err) {}\n }()) return currentScript;\n throw new Error(\"Can not determine current script\");\n }));\n var currentUID = uniqueID();\n memoize((function() {\n var script;\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n var uid = script.getAttribute(\"data-uid\");\n if (uid && \"string\" == typeof uid) return uid;\n if ((uid = script.getAttribute(\"data-uid-auto\")) && \"string\" == typeof uid) return uid;\n if (script.src) {\n var hashedString = function(str) {\n var hash = \"\";\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n str[i + 1] && (total += str[i + 1].charCodeAt(0) * (i - 1));\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n return hash;\n }(JSON.stringify({\n src: script.src,\n dataset: script.dataset\n }));\n uid = \"uid_\" + hashedString.slice(hashedString.length - 30);\n } else uid = uniqueID();\n script.setAttribute(\"data-uid-auto\", uid);\n return uid;\n }));\n function isPerc(str) {\n return \"string\" == typeof str && /^[0-9]+%$/.test(str);\n }\n function toNum(val) {\n if (\"number\" == typeof val) return val;\n var match = val.match(/^([0-9]+)(px|%)$/);\n if (!match) throw new Error(\"Could not match css value from \" + val);\n return parseInt(match[1], 10);\n }\n function toPx(val) {\n return toNum(val) + \"px\";\n }\n function toCSS(val) {\n return \"number\" == typeof val ? toPx(val) : isPerc(val) ? val : toPx(val);\n }\n function normalizeDimension(dim, max) {\n if (\"number\" == typeof dim) return dim;\n if (isPerc(dim)) return parseInt(max * toNum(dim) / 100, 10);\n if (\"string\" == typeof (str = dim) && /^[0-9]+px$/.test(str)) return toNum(dim);\n var str;\n throw new Error(\"Can not normalize dimension: \" + dim);\n }\n function global_getGlobal(win) {\n void 0 === win && (win = window);\n var globalKey = \"__post_robot_10_0_44__\";\n return win !== window ? win[globalKey] : win[globalKey] = win[globalKey] || {};\n }\n var getObj = function() {\n return {};\n };\n function globalStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return util_getOrSet(global_getGlobal(), key, (function() {\n var store = defStore();\n return {\n has: function(storeKey) {\n return store.hasOwnProperty(storeKey);\n },\n get: function(storeKey, defVal) {\n return store.hasOwnProperty(storeKey) ? store[storeKey] : defVal;\n },\n set: function(storeKey, val) {\n store[storeKey] = val;\n return val;\n },\n del: function(storeKey) {\n delete store[storeKey];\n },\n getOrSet: function(storeKey, getter) {\n return util_getOrSet(store, storeKey, getter);\n },\n reset: function() {\n store = defStore();\n },\n keys: function() {\n return Object.keys(store);\n }\n };\n }));\n }\n var WildCard = function() {};\n function getWildcard() {\n var global = global_getGlobal();\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new WildCard;\n return global.WINDOW_WILDCARD;\n }\n function windowStore(key, defStore) {\n void 0 === key && (key = \"store\");\n void 0 === defStore && (defStore = getObj);\n return globalStore(\"windowStore\").getOrSet(key, (function() {\n var winStore = new weakmap_CrossDomainSafeWeakMap;\n var getStore = function(win) {\n return winStore.getOrSet(win, defStore);\n };\n return {\n has: function(win) {\n return getStore(win).hasOwnProperty(key);\n },\n get: function(win, defVal) {\n var store = getStore(win);\n return store.hasOwnProperty(key) ? store[key] : defVal;\n },\n set: function(win, val) {\n getStore(win)[key] = val;\n return val;\n },\n del: function(win) {\n delete getStore(win)[key];\n },\n getOrSet: function(win, getter) {\n return util_getOrSet(getStore(win), key, getter);\n }\n };\n }));\n }\n function getInstanceID() {\n return globalStore(\"instance\").getOrSet(\"instanceID\", uniqueID);\n }\n function resolveHelloPromise(win, _ref) {\n var domain = _ref.domain;\n var helloPromises = windowStore(\"helloPromises\");\n var existingPromise = helloPromises.get(win);\n existingPromise && existingPromise.resolve({\n domain: domain\n });\n var newPromise = promise_ZalgoPromise.resolve({\n domain: domain\n });\n helloPromises.set(win, newPromise);\n return newPromise;\n }\n function sayHello(win, _ref4) {\n return (0, _ref4.send)(win, \"postrobot_hello\", {\n instanceID: getInstanceID()\n }, {\n domain: \"*\",\n timeout: -1\n }).then((function(_ref5) {\n var origin = _ref5.origin, instanceID = _ref5.data.instanceID;\n resolveHelloPromise(win, {\n domain: origin\n });\n return {\n win: win,\n domain: origin,\n instanceID: instanceID\n };\n }));\n }\n function getWindowInstanceID(win, _ref6) {\n var send = _ref6.send;\n return windowStore(\"windowInstanceIDPromises\").getOrSet(win, (function() {\n return sayHello(win, {\n send: send\n }).then((function(_ref7) {\n return _ref7.instanceID;\n }));\n }));\n }\n function awaitWindowHello(win, timeout, name) {\n void 0 === timeout && (timeout = 5e3);\n void 0 === name && (name = \"Window\");\n var promise = function(win) {\n return windowStore(\"helloPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }(win);\n -1 !== timeout && (promise = promise.timeout(timeout, new Error(name + \" did not load after \" + timeout + \"ms\")));\n return promise;\n }\n function markWindowKnown(win) {\n windowStore(\"knownWindows\").set(win, !0);\n }\n function isSerializedType(item) {\n return \"object\" == typeof item && null !== item && \"string\" == typeof item.__type__;\n }\n function determineType(val) {\n return void 0 === val ? \"undefined\" : null === val ? \"null\" : Array.isArray(val) ? \"array\" : \"function\" == typeof val ? \"function\" : \"object\" == typeof val ? val instanceof Error ? \"error\" : \"function\" == typeof val.then ? \"promise\" : \"[object RegExp]\" === {}.toString.call(val) ? \"regex\" : \"[object Date]\" === {}.toString.call(val) ? \"date\" : \"object\" : \"string\" == typeof val ? \"string\" : \"number\" == typeof val ? \"number\" : \"boolean\" == typeof val ? \"boolean\" : void 0;\n }\n function serializeType(type, val) {\n return {\n __type__: type,\n __val__: val\n };\n }\n var _SERIALIZER;\n var SERIALIZER = ((_SERIALIZER = {}).function = function() {}, _SERIALIZER.error = function(_ref) {\n return serializeType(\"error\", {\n message: _ref.message,\n stack: _ref.stack,\n code: _ref.code,\n data: _ref.data\n });\n }, _SERIALIZER.promise = function() {}, _SERIALIZER.regex = function(val) {\n return serializeType(\"regex\", val.source);\n }, _SERIALIZER.date = function(val) {\n return serializeType(\"date\", val.toJSON());\n }, _SERIALIZER.array = function(val) {\n return val;\n }, _SERIALIZER.object = function(val) {\n return val;\n }, _SERIALIZER.string = function(val) {\n return val;\n }, _SERIALIZER.number = function(val) {\n return val;\n }, _SERIALIZER.boolean = function(val) {\n return val;\n }, _SERIALIZER.null = function(val) {\n return val;\n }, _SERIALIZER[void 0] = function(val) {\n return serializeType(\"undefined\", val);\n }, _SERIALIZER);\n var defaultSerializers = {};\n var _DESERIALIZER;\n var DESERIALIZER = ((_DESERIALIZER = {}).function = function() {\n throw new Error(\"Function serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.error = function(_ref2) {\n var stack = _ref2.stack, code = _ref2.code, data = _ref2.data;\n var error = new Error(_ref2.message);\n error.code = code;\n data && (error.data = data);\n error.stack = stack + \"\\n\\n\" + error.stack;\n return error;\n }, _DESERIALIZER.promise = function() {\n throw new Error(\"Promise serialization is not implemented; nothing to deserialize\");\n }, _DESERIALIZER.regex = function(val) {\n return new RegExp(val);\n }, _DESERIALIZER.date = function(val) {\n return new Date(val);\n }, _DESERIALIZER.array = function(val) {\n return val;\n }, _DESERIALIZER.object = function(val) {\n return val;\n }, _DESERIALIZER.string = function(val) {\n return val;\n }, _DESERIALIZER.number = function(val) {\n return val;\n }, _DESERIALIZER.boolean = function(val) {\n return val;\n }, _DESERIALIZER.null = function(val) {\n return val;\n }, _DESERIALIZER[void 0] = function() {}, _DESERIALIZER);\n var defaultDeserializers = {};\n function needsBridgeForBrowser() {\n return !!utils_getUserAgent(window).match(/MSIE|trident|edge\\/12|edge\\/13/i);\n }\n function needsBridgeForWin(win) {\n return !isSameTopWindow(window, win);\n }\n function needsBridgeForDomain(domain, win) {\n if (domain) {\n if (getDomain() !== getDomainFromUrl(domain)) return !0;\n } else if (win && !isSameDomain(win)) return !0;\n return !1;\n }\n function needsBridge(_ref) {\n var win = _ref.win, domain = _ref.domain;\n return !(!needsBridgeForBrowser() || domain && !needsBridgeForDomain(domain, win) || win && !needsBridgeForWin(win));\n }\n function getBridgeName(domain) {\n return \"__postrobot_bridge___\" + (domain = domain || getDomainFromUrl(domain)).replace(/[^a-zA-Z0-9]+/g, \"_\");\n }\n function isBridge() {\n return Boolean(window.name && window.name === getBridgeName(getDomain()));\n }\n var documentBodyReady = new promise_ZalgoPromise((function(resolve) {\n if (window.document && window.document.body) return resolve(window.document.body);\n var interval = setInterval((function() {\n if (window.document && window.document.body) {\n clearInterval(interval);\n return resolve(window.document.body);\n }\n }), 10);\n }));\n function registerRemoteWindow(win) {\n windowStore(\"remoteWindowPromises\").getOrSet(win, (function() {\n return new promise_ZalgoPromise;\n }));\n }\n function findRemoteWindow(win) {\n var remoteWinPromise = windowStore(\"remoteWindowPromises\").get(win);\n if (!remoteWinPromise) throw new Error(\"Remote window promise not found\");\n return remoteWinPromise;\n }\n function registerRemoteSendMessage(win, domain, sendMessage) {\n findRemoteWindow(win).resolve((function(remoteWin, remoteDomain, message) {\n if (remoteWin !== win) throw new Error(\"Remote window does not match window\");\n if (!matchDomain(remoteDomain, domain)) throw new Error(\"Remote domain \" + remoteDomain + \" does not match domain \" + domain);\n sendMessage.fireAndForget(message);\n }));\n }\n function rejectRemoteSendMessage(win, err) {\n findRemoteWindow(win).reject(err).catch(src_util_noop);\n }\n function linkWindow(_ref3) {\n var win = _ref3.win, name = _ref3.name, domain = _ref3.domain;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n var popupWindowsByWin = windowStore(\"popupWindowsByWin\");\n for (var _i2 = 0, _popupWindowsByName$k2 = popupWindowsByName.keys(); _i2 < _popupWindowsByName$k2.length; _i2++) {\n var winName = _popupWindowsByName$k2[_i2];\n var _details = popupWindowsByName.get(winName);\n _details && !isWindowClosed(_details.win) || popupWindowsByName.del(winName);\n }\n if (isWindowClosed(win)) return {\n win: win,\n name: name,\n domain: domain\n };\n var details = popupWindowsByWin.getOrSet(win, (function() {\n return name ? popupWindowsByName.getOrSet(name, (function() {\n return {\n win: win,\n name: name\n };\n })) : {\n win: win\n };\n }));\n if (details.win && details.win !== win) throw new Error(\"Different window already linked for window: \" + (name || \"undefined\"));\n if (name) {\n details.name = name;\n popupWindowsByName.set(name, details);\n }\n if (domain) {\n details.domain = domain;\n registerRemoteWindow(win);\n }\n popupWindowsByWin.set(win, details);\n return details;\n }\n function setupBridge(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n windowOpen = window.open, window.open = function(url, name, options, last) {\n var win = windowOpen.call(this, normalizeMockUrl(url), name, options, last);\n if (!win) return win;\n linkWindow({\n win: win,\n name: name,\n domain: url ? getDomainFromUrl(url) : null\n });\n return win;\n };\n var windowOpen;\n !function(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n var popupWindowsByName = globalStore(\"popupWindowsByName\");\n on(\"postrobot_open_tunnel\", (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var bridgePromise = globalStore(\"bridges\").get(origin);\n if (!bridgePromise) throw new Error(\"Can not find bridge promise for domain \" + origin);\n return bridgePromise.then((function(bridge) {\n if (source !== bridge) throw new Error(\"Message source does not matched registered bridge for domain \" + origin);\n if (!data.name) throw new Error(\"Register window expected to be passed window name\");\n if (!data.sendMessage) throw new Error(\"Register window expected to be passed sendMessage method\");\n if (!popupWindowsByName.has(data.name)) throw new Error(\"Window with name \" + data.name + \" does not exist, or was not opened by this window\");\n var getWindowDetails = function() {\n return popupWindowsByName.get(data.name);\n };\n if (!getWindowDetails().domain) throw new Error(\"We do not have a registered domain for window \" + data.name);\n if (getWindowDetails().domain !== origin) throw new Error(\"Message origin \" + origin + \" does not matched registered window origin \" + (getWindowDetails().domain || \"unknown\"));\n registerRemoteSendMessage(getWindowDetails().win, origin, data.sendMessage);\n return {\n sendMessage: function(message) {\n if (window && !window.closed && getWindowDetails()) {\n var domain = getWindowDetails().domain;\n if (domain) try {\n receiveMessage({\n data: message,\n origin: domain,\n source: getWindowDetails().win\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n promise_ZalgoPromise.reject(err);\n }\n }\n }\n };\n }));\n }));\n }({\n on: on,\n send: send,\n receiveMessage: receiveMessage\n });\n !function(_ref2) {\n var send = _ref2.send;\n global_getGlobal(window).openTunnelToParent = function(_ref3) {\n var name = _ref3.name, source = _ref3.source, canary = _ref3.canary, sendMessage = _ref3.sendMessage;\n var tunnelWindows = globalStore(\"tunnelWindows\");\n var parentWindow = utils_getParent(window);\n if (!parentWindow) throw new Error(\"No parent window found to open tunnel to\");\n var id = function(_ref) {\n var name = _ref.name, source = _ref.source, canary = _ref.canary, sendMessage = _ref.sendMessage;\n !function() {\n var tunnelWindows = globalStore(\"tunnelWindows\");\n for (var _i2 = 0, _tunnelWindows$keys2 = tunnelWindows.keys(); _i2 < _tunnelWindows$keys2.length; _i2++) {\n var key = _tunnelWindows$keys2[_i2];\n isWindowClosed(tunnelWindows[key].source) && tunnelWindows.del(key);\n }\n }();\n var id = uniqueID();\n globalStore(\"tunnelWindows\").set(id, {\n name: name,\n source: source,\n canary: canary,\n sendMessage: sendMessage\n });\n return id;\n }({\n name: name,\n source: source,\n canary: canary,\n sendMessage: sendMessage\n });\n return send(parentWindow, \"postrobot_open_tunnel\", {\n name: name,\n sendMessage: function() {\n var tunnelWindow = tunnelWindows.get(id);\n if (tunnelWindow && tunnelWindow.source && !isWindowClosed(tunnelWindow.source)) {\n try {\n tunnelWindow.canary();\n } catch (err) {\n return;\n }\n tunnelWindow.sendMessage.apply(this, arguments);\n }\n }\n }, {\n domain: \"*\"\n });\n };\n }({\n send: send\n });\n !function(_ref) {\n var on = _ref.on, send = _ref.send, receiveMessage = _ref.receiveMessage;\n promise_ZalgoPromise.try((function() {\n var opener = getOpener(window);\n if (opener && needsBridge({\n win: opener\n })) {\n registerRemoteWindow(opener);\n return (win = opener, windowStore(\"remoteBridgeAwaiters\").getOrSet(win, (function() {\n return promise_ZalgoPromise.try((function() {\n var frame = getFrameByName(win, getBridgeName(getDomain()));\n if (frame) return isSameDomain(frame) && global_getGlobal(assertSameDomain(frame)) ? frame : new promise_ZalgoPromise((function(resolve) {\n var interval;\n var timeout;\n interval = setInterval((function() {\n if (frame && isSameDomain(frame) && global_getGlobal(assertSameDomain(frame))) {\n clearInterval(interval);\n clearTimeout(timeout);\n return resolve(frame);\n }\n }), 100);\n timeout = setTimeout((function() {\n clearInterval(interval);\n return resolve();\n }), 2e3);\n }));\n }));\n }))).then((function(bridge) {\n return bridge ? window.name ? global_getGlobal(assertSameDomain(bridge)).openTunnelToParent({\n name: window.name,\n source: window,\n canary: function() {},\n sendMessage: function(message) {\n try {\n window;\n } catch (err) {\n return;\n }\n if (window && !window.closed) try {\n receiveMessage({\n data: message,\n origin: this.origin,\n source: this.source\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n promise_ZalgoPromise.reject(err);\n }\n }\n }).then((function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n if (source !== opener) throw new Error(\"Source does not match opener\");\n registerRemoteSendMessage(source, origin, data.sendMessage);\n })).catch((function(err) {\n rejectRemoteSendMessage(opener, err);\n throw err;\n })) : rejectRemoteSendMessage(opener, new Error(\"Can not register with opener: window does not have a name\")) : rejectRemoteSendMessage(opener, new Error(\"Can not register with opener: no bridge found in opener\"));\n }));\n var win;\n }\n }));\n }({\n on: on,\n send: send,\n receiveMessage: receiveMessage\n });\n }\n function cleanupProxyWindows() {\n var idToProxyWindow = globalStore(\"idToProxyWindow\");\n for (var _i2 = 0, _idToProxyWindow$keys2 = idToProxyWindow.keys(); _i2 < _idToProxyWindow$keys2.length; _i2++) {\n var id = _idToProxyWindow$keys2[_i2];\n idToProxyWindow.get(id).shouldClean() && idToProxyWindow.del(id);\n }\n }\n function getSerializedWindow(winPromise, _ref) {\n var send = _ref.send, _ref$id = _ref.id, id = void 0 === _ref$id ? uniqueID() : _ref$id;\n var windowNamePromise = winPromise.then((function(win) {\n if (isSameDomain(win)) return assertSameDomain(win).name;\n }));\n var windowTypePromise = winPromise.then((function(window) {\n if (isWindowClosed(window)) throw new Error(\"Window is closed, can not determine type\");\n return getOpener(window) ? WINDOW_TYPE.POPUP : WINDOW_TYPE.IFRAME;\n }));\n windowNamePromise.catch(src_util_noop);\n windowTypePromise.catch(src_util_noop);\n var getName = function() {\n return winPromise.then((function(win) {\n if (!isWindowClosed(win)) return isSameDomain(win) ? assertSameDomain(win).name : windowNamePromise;\n }));\n };\n return {\n id: id,\n getType: function() {\n return windowTypePromise;\n },\n getInstanceID: memoizePromise((function() {\n return winPromise.then((function(win) {\n return getWindowInstanceID(win, {\n send: send\n });\n }));\n })),\n close: function() {\n return winPromise.then(closeWindow);\n },\n getName: getName,\n focus: function() {\n return winPromise.then((function(win) {\n win.focus();\n }));\n },\n isClosed: function() {\n return winPromise.then((function(win) {\n return isWindowClosed(win);\n }));\n },\n setLocation: function(href, opts) {\n void 0 === opts && (opts = {});\n return winPromise.then((function(win) {\n var domain = window.location.protocol + \"//\" + window.location.host;\n var _opts$method = opts.method, method = void 0 === _opts$method ? \"get\" : _opts$method, body = opts.body;\n if (0 === href.indexOf(\"/\")) href = \"\" + domain + href; else if (!href.match(/^https?:\\/\\//) && 0 !== href.indexOf(domain)) throw new Error(\"Expected url to be http or https url, or absolute path, got \" + JSON.stringify(href));\n if (\"post\" === method) return getName().then((function(name) {\n if (!name) throw new Error(\"Can not post to window without target name\");\n !function(_ref3) {\n var url = _ref3.url, target = _ref3.target, body = _ref3.body, _ref3$method = _ref3.method, method = void 0 === _ref3$method ? \"post\" : _ref3$method;\n var form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n if (body) for (var _i24 = 0, _Object$keys4 = Object.keys(body); _i24 < _Object$keys4.length; _i24++) {\n var _body$key;\n var key = _Object$keys4[_i24];\n var input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", null == (_body$key = body[key]) ? void 0 : _body$key.toString());\n form.appendChild(input);\n }\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n }({\n url: href,\n target: name,\n method: method,\n body: body\n });\n }));\n if (\"get\" !== method) throw new Error(\"Unsupported method: \" + method);\n if (isSameDomain(win)) try {\n if (win.location && \"function\" == typeof win.location.replace) {\n win.location.replace(href);\n return;\n }\n } catch (err) {}\n win.location = href;\n }));\n },\n setName: function(name) {\n return winPromise.then((function(win) {\n linkWindow({\n win: win,\n name: name\n });\n var sameDomain = isSameDomain(win);\n var frame = getFrameForWindow(win);\n if (!sameDomain) throw new Error(\"Can not set name for cross-domain window: \" + name);\n assertSameDomain(win).name = name;\n frame && frame.setAttribute(\"name\", name);\n windowNamePromise = promise_ZalgoPromise.resolve(name);\n }));\n }\n };\n }\n var window_ProxyWindow = function() {\n function ProxyWindow(_ref2) {\n var send = _ref2.send, win = _ref2.win, serializedWindow = _ref2.serializedWindow;\n this.id = void 0;\n this.isProxyWindow = !0;\n this.serializedWindow = void 0;\n this.actualWindow = void 0;\n this.actualWindowPromise = void 0;\n this.send = void 0;\n this.name = void 0;\n this.actualWindowPromise = new promise_ZalgoPromise;\n this.serializedWindow = serializedWindow || getSerializedWindow(this.actualWindowPromise, {\n send: send\n });\n globalStore(\"idToProxyWindow\").set(this.getID(), this);\n win && this.setWindow(win, {\n send: send\n });\n }\n var _proto = ProxyWindow.prototype;\n _proto.getID = function() {\n return this.serializedWindow.id;\n };\n _proto.getType = function() {\n return this.serializedWindow.getType();\n };\n _proto.isPopup = function() {\n return this.getType().then((function(type) {\n return type === WINDOW_TYPE.POPUP;\n }));\n };\n _proto.setLocation = function(href, opts) {\n var _this = this;\n return this.serializedWindow.setLocation(href, opts).then((function() {\n return _this;\n }));\n };\n _proto.getName = function() {\n return this.serializedWindow.getName();\n };\n _proto.setName = function(name) {\n var _this2 = this;\n return this.serializedWindow.setName(name).then((function() {\n return _this2;\n }));\n };\n _proto.close = function() {\n var _this3 = this;\n return this.serializedWindow.close().then((function() {\n return _this3;\n }));\n };\n _proto.focus = function() {\n var _this4 = this;\n var isPopupPromise = this.isPopup();\n var getNamePromise = this.getName();\n var reopenPromise = promise_ZalgoPromise.hash({\n isPopup: isPopupPromise,\n name: getNamePromise\n }).then((function(_ref3) {\n var name = _ref3.name;\n _ref3.isPopup && name && window.open(\"\", name);\n }));\n var focusPromise = this.serializedWindow.focus();\n return promise_ZalgoPromise.all([ reopenPromise, focusPromise ]).then((function() {\n return _this4;\n }));\n };\n _proto.isClosed = function() {\n return this.serializedWindow.isClosed();\n };\n _proto.getWindow = function() {\n return this.actualWindow;\n };\n _proto.setWindow = function(win, _ref4) {\n var send = _ref4.send;\n this.actualWindow = win;\n this.actualWindowPromise.resolve(this.actualWindow);\n this.serializedWindow = getSerializedWindow(this.actualWindowPromise, {\n send: send,\n id: this.getID()\n });\n windowStore(\"winToProxyWindow\").set(win, this);\n };\n _proto.awaitWindow = function() {\n return this.actualWindowPromise;\n };\n _proto.matchWindow = function(win, _ref5) {\n var _this5 = this;\n var send = _ref5.send;\n return promise_ZalgoPromise.try((function() {\n return _this5.actualWindow ? win === _this5.actualWindow : promise_ZalgoPromise.hash({\n proxyInstanceID: _this5.getInstanceID(),\n knownWindowInstanceID: getWindowInstanceID(win, {\n send: send\n })\n }).then((function(_ref6) {\n var match = _ref6.proxyInstanceID === _ref6.knownWindowInstanceID;\n match && _this5.setWindow(win, {\n send: send\n });\n return match;\n }));\n }));\n };\n _proto.unwrap = function() {\n return this.actualWindow || this;\n };\n _proto.getInstanceID = function() {\n return this.serializedWindow.getInstanceID();\n };\n _proto.shouldClean = function() {\n return Boolean(this.actualWindow && isWindowClosed(this.actualWindow));\n };\n _proto.serialize = function() {\n return this.serializedWindow;\n };\n ProxyWindow.unwrap = function(win) {\n return ProxyWindow.isProxyWindow(win) ? win.unwrap() : win;\n };\n ProxyWindow.serialize = function(win, _ref7) {\n var send = _ref7.send;\n cleanupProxyWindows();\n return ProxyWindow.toProxyWindow(win, {\n send: send\n }).serialize();\n };\n ProxyWindow.deserialize = function(serializedWindow, _ref8) {\n var send = _ref8.send;\n cleanupProxyWindows();\n return globalStore(\"idToProxyWindow\").get(serializedWindow.id) || new ProxyWindow({\n serializedWindow: serializedWindow,\n send: send\n });\n };\n ProxyWindow.isProxyWindow = function(obj) {\n return Boolean(obj && !isWindow(obj) && obj.isProxyWindow);\n };\n ProxyWindow.toProxyWindow = function(win, _ref9) {\n var send = _ref9.send;\n cleanupProxyWindows();\n if (ProxyWindow.isProxyWindow(win)) return win;\n var actualWindow = win;\n return windowStore(\"winToProxyWindow\").get(actualWindow) || new ProxyWindow({\n win: actualWindow,\n send: send\n });\n };\n return ProxyWindow;\n }();\n function addMethod(id, val, name, source, domain) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n if (window_ProxyWindow.isProxyWindow(source)) proxyWindowMethods.set(id, {\n val: val,\n name: name,\n domain: domain,\n source: source\n }); else {\n proxyWindowMethods.del(id);\n methodStore.getOrSet(source, (function() {\n return {};\n }))[id] = {\n domain: domain,\n name: name,\n val: val,\n source: source\n };\n }\n }\n function lookupMethod(source, id) {\n var methodStore = windowStore(\"methodStore\");\n var proxyWindowMethods = globalStore(\"proxyWindowMethods\");\n return methodStore.getOrSet(source, (function() {\n return {};\n }))[id] || proxyWindowMethods.get(id);\n }\n function function_serializeFunction(destination, domain, val, key, _ref3) {\n on = (_ref = {\n on: _ref3.on,\n send: _ref3.send\n }).on, send = _ref.send, globalStore(\"builtinListeners\").getOrSet(\"functionCalls\", (function() {\n return on(\"postrobot_method\", {\n domain: \"*\"\n }, (function(_ref2) {\n var source = _ref2.source, origin = _ref2.origin, data = _ref2.data;\n var id = data.id, name = data.name;\n var meth = lookupMethod(source, id);\n if (!meth) throw new Error(\"Could not find method '\" + name + \"' with id: \" + data.id + \" in \" + getDomain(window));\n var methodSource = meth.source, domain = meth.domain, val = meth.val;\n return promise_ZalgoPromise.try((function() {\n if (!matchDomain(domain, origin)) throw new Error(\"Method '\" + data.name + \"' domain \" + JSON.stringify(util_isRegex(meth.domain) ? meth.domain.source : meth.domain) + \" does not match origin \" + origin + \" in \" + getDomain(window));\n if (window_ProxyWindow.isProxyWindow(methodSource)) return methodSource.matchWindow(source, {\n send: send\n }).then((function(match) {\n if (!match) throw new Error(\"Method call '\" + data.name + \"' failed - proxy window does not match source in \" + getDomain(window));\n }));\n })).then((function() {\n return val.apply({\n source: source,\n origin: origin\n }, data.args);\n }), (function(err) {\n return promise_ZalgoPromise.try((function() {\n if (val.onError) return val.onError(err);\n })).then((function() {\n err.stack && (err.stack = \"Remote call to \" + name + \"(\" + function(args) {\n void 0 === args && (args = []);\n return arrayFrom(args).map((function(arg) {\n return \"string\" == typeof arg ? \"'\" + arg + \"'\" : void 0 === arg ? \"undefined\" : null === arg ? \"null\" : \"boolean\" == typeof arg ? arg.toString() : Array.isArray(arg) ? \"[ ... ]\" : \"object\" == typeof arg ? \"{ ... }\" : \"function\" == typeof arg ? \"() => { ... }\" : \"<\" + typeof arg + \">\";\n })).join(\", \");\n }(data.args) + \") failed\\n\\n\" + err.stack);\n throw err;\n }));\n })).then((function(result) {\n return {\n result: result,\n id: id,\n name: name\n };\n }));\n }));\n }));\n var _ref, on, send;\n var id = val.__id__ || uniqueID();\n destination = window_ProxyWindow.unwrap(destination);\n var name = val.__name__ || val.name || key;\n \"string\" == typeof name && \"function\" == typeof name.indexOf && 0 === name.indexOf(\"anonymous::\") && (name = name.replace(\"anonymous::\", key + \"::\"));\n if (window_ProxyWindow.isProxyWindow(destination)) {\n addMethod(id, val, name, destination, domain);\n destination.awaitWindow().then((function(win) {\n addMethod(id, val, name, win, domain);\n }));\n } else addMethod(id, val, name, destination, domain);\n return serializeType(\"cross_domain_function\", {\n id: id,\n name: name\n });\n }\n function serializeMessage(destination, domain, obj, _ref) {\n var _serialize;\n var on = _ref.on, send = _ref.send;\n return function(obj, serializers) {\n void 0 === serializers && (serializers = defaultSerializers);\n var result = JSON.stringify(obj, (function(key) {\n var val = this[key];\n if (isSerializedType(this)) return val;\n var type = determineType(val);\n if (!type) return val;\n var serializer = serializers[type] || SERIALIZER[type];\n return serializer ? serializer(val, key) : val;\n }));\n return void 0 === result ? \"undefined\" : result;\n }(obj, ((_serialize = {}).promise = function(val, key) {\n return function(destination, domain, val, key, _ref) {\n return serializeType(\"cross_domain_zalgo_promise\", {\n then: function_serializeFunction(destination, domain, (function(resolve, reject) {\n return val.then(resolve, reject);\n }), key, {\n on: _ref.on,\n send: _ref.send\n })\n });\n }(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.function = function(val, key) {\n return function_serializeFunction(destination, domain, val, key, {\n on: on,\n send: send\n });\n }, _serialize.object = function(val) {\n return isWindow(val) || window_ProxyWindow.isProxyWindow(val) ? serializeType(\"cross_domain_window\", window_ProxyWindow.serialize(val, {\n send: send\n })) : val;\n }, _serialize));\n }\n function deserializeMessage(source, origin, message, _ref2) {\n var _deserialize;\n var send = _ref2.send;\n return function(str, deserializers) {\n void 0 === deserializers && (deserializers = defaultDeserializers);\n if (\"undefined\" !== str) return JSON.parse(str, (function(key, val) {\n if (isSerializedType(this)) return val;\n var type;\n var value;\n if (isSerializedType(val)) {\n type = val.__type__;\n value = val.__val__;\n } else {\n type = determineType(val);\n value = val;\n }\n if (!type) return value;\n var deserializer = deserializers[type] || DESERIALIZER[type];\n return deserializer ? deserializer(value, key) : value;\n }));\n }(message, ((_deserialize = {}).cross_domain_zalgo_promise = function(serializedPromise) {\n return function(source, origin, _ref2) {\n return new promise_ZalgoPromise(_ref2.then);\n }(0, 0, serializedPromise);\n }, _deserialize.cross_domain_function = function(serializedFunction) {\n return function(source, origin, _ref4, _ref5) {\n var id = _ref4.id, name = _ref4.name;\n var send = _ref5.send;\n var getDeserializedFunction = function(opts) {\n void 0 === opts && (opts = {});\n function crossDomainFunctionWrapper() {\n var _arguments = arguments;\n return window_ProxyWindow.toProxyWindow(source, {\n send: send\n }).awaitWindow().then((function(win) {\n var meth = lookupMethod(win, id);\n if (meth && meth.val !== crossDomainFunctionWrapper) return meth.val.apply({\n source: window,\n origin: getDomain()\n }, _arguments);\n var _args = [].slice.call(_arguments);\n return opts.fireAndForget ? send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !0\n }) : send(win, \"postrobot_method\", {\n id: id,\n name: name,\n args: _args\n }, {\n domain: origin,\n fireAndForget: !1\n }).then((function(res) {\n return res.data.result;\n }));\n })).catch((function(err) {\n throw err;\n }));\n }\n crossDomainFunctionWrapper.__name__ = name;\n crossDomainFunctionWrapper.__origin__ = origin;\n crossDomainFunctionWrapper.__source__ = source;\n crossDomainFunctionWrapper.__id__ = id;\n crossDomainFunctionWrapper.origin = origin;\n return crossDomainFunctionWrapper;\n };\n var crossDomainFunctionWrapper = getDeserializedFunction();\n crossDomainFunctionWrapper.fireAndForget = getDeserializedFunction({\n fireAndForget: !0\n });\n return crossDomainFunctionWrapper;\n }(source, origin, serializedFunction, {\n send: send\n });\n }, _deserialize.cross_domain_window = function(serializedWindow) {\n return window_ProxyWindow.deserialize(serializedWindow, {\n send: send\n });\n }, _deserialize));\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES.postrobot_post_message = function(win, serializedMessage, domain) {\n 0 === domain.indexOf(\"file:\") && (domain = \"*\");\n win.postMessage(serializedMessage, domain);\n };\n SEND_MESSAGE_STRATEGIES.postrobot_bridge = function(win, serializedMessage, domain) {\n if (!needsBridgeForBrowser() && !isBridge()) throw new Error(\"Bridge not needed for browser\");\n if (isSameDomain(win)) throw new Error(\"Post message through bridge disabled between same domain windows\");\n if (!1 !== isSameTopWindow(window, win)) throw new Error(\"Can only use bridge to communicate between two different windows, not between frames\");\n !function(win, domain, message) {\n var messagingChild = isOpener(window, win);\n var messagingParent = isOpener(win, window);\n if (!messagingChild && !messagingParent) throw new Error(\"Can only send messages to and from parent and popup windows\");\n findRemoteWindow(win).then((function(sendMessage) {\n return sendMessage(win, domain, message);\n }));\n }(win, domain, serializedMessage);\n };\n SEND_MESSAGE_STRATEGIES.postrobot_global = function(win, serializedMessage) {\n if (!utils_getUserAgent(window).match(/MSIE|rv:11|trident|edge\\/12|edge\\/13/i)) throw new Error(\"Global messaging not needed for browser\");\n if (!isSameDomain(win)) throw new Error(\"Post message through global disabled between different domain windows\");\n if (!1 !== isSameTopWindow(window, win)) throw new Error(\"Can only use global to communicate between two different windows, not between frames\");\n var foreignGlobal = global_getGlobal(win);\n if (!foreignGlobal) throw new Error(\"Can not find postRobot global on foreign window\");\n foreignGlobal.receiveMessage({\n source: window,\n origin: getDomain(),\n data: serializedMessage\n });\n };\n function send_sendMessage(win, domain, message, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n return promise_ZalgoPromise.try((function() {\n var domainBuffer = windowStore().getOrSet(win, (function() {\n return {};\n }));\n domainBuffer.buffer = domainBuffer.buffer || [];\n domainBuffer.buffer.push(message);\n domainBuffer.flush = domainBuffer.flush || promise_ZalgoPromise.flush().then((function() {\n if (isWindowClosed(win)) throw new Error(\"Window is closed\");\n var serializedMessage = serializeMessage(win, domain, ((_ref = {}).__post_robot_10_0_44__ = domainBuffer.buffer || [], \n _ref), {\n on: on,\n send: send\n });\n var _ref;\n delete domainBuffer.buffer;\n var strategies = Object.keys(SEND_MESSAGE_STRATEGIES);\n var errors = [];\n for (var _i2 = 0; _i2 < strategies.length; _i2++) {\n var strategyName = strategies[_i2];\n try {\n SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n } catch (err) {\n errors.push(err);\n }\n }\n if (errors.length === strategies.length) throw new Error(\"All post-robot messaging strategies failed:\\n\\n\" + errors.map((function(err, i) {\n return i + \". \" + stringifyError(err);\n })).join(\"\\n\\n\"));\n }));\n return domainBuffer.flush.then((function() {\n delete domainBuffer.flush;\n }));\n })).then(src_util_noop);\n }\n function getResponseListener(hash) {\n return globalStore(\"responseListeners\").get(hash);\n }\n function deleteResponseListener(hash) {\n globalStore(\"responseListeners\").del(hash);\n }\n function isResponseListenerErrored(hash) {\n return globalStore(\"erroredResponseListeners\").has(hash);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n var requestListeners = windowStore(\"requestListeners\");\n \"*\" === win && (win = null);\n \"*\" === domain && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n for (var _i4 = 0, _ref3 = [ win, getWildcard() ]; _i4 < _ref3.length; _i4++) {\n var winQualifier = _ref3[_i4];\n if (winQualifier) {\n var nameListeners = requestListeners.get(winQualifier);\n if (nameListeners) {\n var domainListeners = nameListeners[name];\n if (domainListeners) {\n if (domain && \"string\" == typeof domain) {\n if (domainListeners[domain]) return domainListeners[domain];\n if (domainListeners.__domain_regex__) for (var _i6 = 0, _domainListeners$__DO2 = domainListeners.__domain_regex__; _i6 < _domainListeners$__DO2.length; _i6++) {\n var _domainListeners$__DO3 = _domainListeners$__DO2[_i6], listener = _domainListeners$__DO3.listener;\n if (matchDomain(_domainListeners$__DO3.regex, domain)) return listener;\n }\n }\n if (domainListeners[\"*\"]) return domainListeners[\"*\"];\n }\n }\n }\n }\n }\n function handleRequest(source, origin, message, _ref) {\n var on = _ref.on, send = _ref.send;\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n var logName = \"postrobot_method\" === message.name && message.data && \"string\" == typeof message.data.name ? message.data.name + \"()\" : message.name;\n function sendResponse(ack, data, error) {\n return promise_ZalgoPromise.flush().then((function() {\n if (!message.fireAndForget && !isWindowClosed(source)) try {\n return send_sendMessage(source, origin, {\n id: uniqueID(),\n origin: getDomain(window),\n type: \"postrobot_message_response\",\n hash: message.hash,\n name: message.name,\n ack: ack,\n data: data,\n error: error\n }, {\n on: on,\n send: send\n });\n } catch (err) {\n throw new Error(\"Send response message failed for \" + logName + \" in \" + getDomain() + \"\\n\\n\" + stringifyError(err));\n }\n }));\n }\n 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, \n Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() + \")\" : pattern.toString()));\n var pattern;\n if (source !== options.win) throw new Error(\"Response source does not match registered window\");\n deleteResponseListener(message.hash);\n \"error\" === message.ack ? options.promise.reject(message.error) : \"success\" === message.ack && options.promise.resolve({\n source: source,\n origin: origin,\n data: message.data\n });\n }\n }\n function receive_receiveMessage(event, _ref2) {\n var on = _ref2.on, send = _ref2.send;\n var receivedMessages = globalStore(\"receivedMessages\");\n try {\n if (!window || window.closed || !event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin;\n var messages = function(message, source, origin, _ref) {\n var on = _ref.on, send = _ref.send;\n var parsedMessage;\n try {\n parsedMessage = deserializeMessage(source, origin, message, {\n on: on,\n send: send\n });\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" == typeof parsedMessage && null !== parsedMessage) {\n var parseMessages = parsedMessage.__post_robot_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 for (var _i2 = 0; _i2 < messages.length; _i2++) {\n var message = messages[_i2];\n if (receivedMessages.has(message.id)) return;\n receivedMessages.set(message.id, !0);\n if (isWindowClosed(source) && !message.fireAndForget) return;\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 }\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, win = _ref4.win, domain = _ref4.domain;\n var requestListeners = windowStore(\"requestListeners\");\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n var listenersCollection = [];\n for (var _i8 = 0, _win2 = win; _i8 < _win2.length; _i8++) listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: _win2[_i8]\n }, listener));\n return {\n cancel: function() {\n for (var _i10 = 0; _i10 < listenersCollection.length; _i10++) listenersCollection[_i10].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n var _listenersCollection = [];\n for (var _i12 = 0, _domain2 = domain; _i12 < _domain2.length; _i12++) _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _domain2[_i12]\n }, listener));\n return {\n cancel: function() {\n for (var _i14 = 0; _i14 < _listenersCollection.length; _i14++) _listenersCollection[_i14].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && \"*\" !== win || (win = getWildcard());\n 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() {\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() {\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_toProxyWindow(win) {\n return window_ProxyWindow.toProxyWindow(win, {\n send: send_send\n });\n }\n function cleanUpWindow(win) {\n for (var _i2 = 0, _requestPromises$get2 = windowStore(\"requestPromises\").get(win, []); _i2 < _requestPromises$get2.length; _i2++) _requestPromises$get2[_i2].reject(new Error(\"Window \" + (isWindowClosed(win) ? \"closed\" : \"cleaned up\") + \" before response\")).catch(src_util_noop);\n }\n var src_bridge;\n src_bridge = {\n setupBridge: setupBridge,\n openBridge: function(url, domain) {\n var bridges = globalStore(\"bridges\");\n var bridgeFrames = globalStore(\"bridgeFrames\");\n domain = domain || getDomainFromUrl(url);\n return bridges.getOrSet(domain, (function() {\n return promise_ZalgoPromise.try((function() {\n if (getDomain() === domain) throw new Error(\"Can not open bridge on the same domain as current domain: \" + domain);\n var name = getBridgeName(domain);\n if (getFrameByName(window, name)) throw new Error(\"Frame with name \" + name + \" already exists on page\");\n var iframe = function(name, url) {\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"name\", name);\n iframe.setAttribute(\"id\", name);\n iframe.setAttribute(\"style\", \"display: none; margin: 0; padding: 0; border: 0px none; overflow: hidden;\");\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"border\", \"0\");\n iframe.setAttribute(\"scrolling\", \"no\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"tabindex\", \"-1\");\n iframe.setAttribute(\"hidden\", \"true\");\n iframe.setAttribute(\"title\", \"\");\n iframe.setAttribute(\"role\", \"presentation\");\n iframe.src = url;\n return iframe;\n }(name, url);\n bridgeFrames.set(domain, iframe);\n return documentBodyReady.then((function(body) {\n body.appendChild(iframe);\n var bridge = iframe.contentWindow;\n return new promise_ZalgoPromise((function(resolve, reject) {\n iframe.addEventListener(\"load\", resolve);\n iframe.addEventListener(\"error\", reject);\n })).then((function() {\n return awaitWindowHello(bridge, 5e3, \"Bridge \" + url);\n })).then((function() {\n return bridge;\n }));\n }));\n }));\n }));\n },\n linkWindow: linkWindow,\n linkUrl: function(win, url) {\n linkWindow({\n win: win,\n domain: getDomainFromUrl(url)\n });\n },\n isBridge: isBridge,\n needsBridge: needsBridge,\n needsBridgeForBrowser: needsBridgeForBrowser,\n hasBridge: function(url, domain) {\n return globalStore(\"bridges\").has(domain || getDomainFromUrl(url));\n },\n needsBridgeForWin: needsBridgeForWin,\n needsBridgeForDomain: needsBridgeForDomain,\n destroyBridges: function() {\n var bridges = globalStore(\"bridges\");\n var bridgeFrames = globalStore(\"bridgeFrames\");\n for (var _i4 = 0, _bridgeFrames$keys2 = bridgeFrames.keys(); _i4 < _bridgeFrames$keys2.length; _i4++) {\n var frame = bridgeFrames.get(_bridgeFrames$keys2[_i4]);\n frame && frame.parentNode && frame.parentNode.removeChild(frame);\n }\n bridgeFrames.reset();\n bridges.reset();\n }\n };\n function lib_global_getGlobal(win) {\n if (!isSameDomain(win)) throw new Error(\"Can not get global for window on different domain\");\n win.__zoid_9_0_86__ || (win.__zoid_9_0_86__ = {});\n return win.__zoid_9_0_86__;\n }\n function tryGlobal(win, handler) {\n try {\n return handler(lib_global_getGlobal(win));\n } catch (err) {}\n }\n function getProxyObject(obj) {\n return {\n get: function() {\n var _this = this;\n return promise_ZalgoPromise.try((function() {\n if (_this.source && _this.source !== window) throw new Error(\"Can not call get on proxy object from a remote window\");\n return obj;\n }));\n }\n };\n }\n function basicSerialize(data) {\n return base64encode(JSON.stringify(data));\n }\n function getUIDRefStore(win) {\n var global = lib_global_getGlobal(win);\n global.references = global.references || {};\n return global.references;\n }\n function crossDomainSerialize(_ref) {\n var data = _ref.data, metaData = _ref.metaData, sender = _ref.sender, receiver = _ref.receiver, _ref$passByReference = _ref.passByReference, passByReference = void 0 !== _ref$passByReference && _ref$passByReference, _ref$basic = _ref.basic, basic = void 0 !== _ref$basic && _ref$basic;\n var proxyWin = setup_toProxyWindow(receiver.win);\n var serializedMessage = basic ? JSON.stringify(data) : serializeMessage(proxyWin, receiver.domain, data, {\n on: on_on,\n send: send_send\n });\n var reference = passByReference ? function(val) {\n var uid = uniqueID();\n getUIDRefStore(window)[uid] = val;\n return {\n type: \"uid\",\n uid: uid\n };\n }(serializedMessage) : {\n type: \"raw\",\n val: serializedMessage\n };\n return {\n serializedData: basicSerialize({\n sender: {\n domain: sender.domain\n },\n metaData: metaData,\n reference: reference\n }),\n cleanReference: function() {\n win = window, \"uid\" === (ref = reference).type && delete getUIDRefStore(win)[ref.uid];\n var win, ref;\n }\n };\n }\n function crossDomainDeserialize(_ref2) {\n var sender = _ref2.sender, _ref2$basic = _ref2.basic, basic = void 0 !== _ref2$basic && _ref2$basic;\n var message = function(serializedData) {\n return JSON.parse(function(str) {\n if (\"function\" == typeof atob) return decodeURIComponent([].map.call(atob(str), (function(c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })).join(\"\"));\n if (\"undefined\" != typeof Buffer) return Buffer.from(str, \"base64\").toString(\"utf8\");\n throw new Error(\"Can not find window.atob or Buffer\");\n }(serializedData));\n }(_ref2.data);\n var reference = message.reference, metaData = message.metaData;\n var win;\n win = \"function\" == typeof sender.win ? sender.win({\n metaData: metaData\n }) : sender.win;\n var domain;\n domain = \"function\" == typeof sender.domain ? sender.domain({\n metaData: metaData\n }) : \"string\" == typeof sender.domain ? sender.domain : message.sender.domain;\n var serializedData = function(win, ref) {\n if (\"raw\" === ref.type) return ref.val;\n if (\"uid\" === ref.type) return getUIDRefStore(win)[ref.uid];\n throw new Error(\"Unsupported ref type: \" + ref.type);\n }(win, reference);\n return {\n data: basic ? JSON.parse(serializedData) : function(source, origin, message) {\n return deserializeMessage(source, origin, message, {\n on: on_on,\n send: send_send\n });\n }(win, domain, serializedData),\n metaData: metaData,\n sender: {\n win: win,\n domain: domain\n },\n reference: reference\n };\n }\n var PROP_TYPE = {\n STRING: \"string\",\n OBJECT: \"object\",\n FUNCTION: \"function\",\n BOOLEAN: \"boolean\",\n NUMBER: \"number\",\n ARRAY: \"array\"\n };\n var PROP_SERIALIZATION = {\n JSON: \"json\",\n DOTIFY: \"dotify\",\n BASE64: \"base64\"\n };\n var CONTEXT = WINDOW_TYPE;\n var EVENT = {\n RENDER: \"zoid-render\",\n RENDERED: \"zoid-rendered\",\n DISPLAY: \"zoid-display\",\n ERROR: \"zoid-error\",\n CLOSE: \"zoid-close\",\n DESTROY: \"zoid-destroy\",\n PROPS: \"zoid-props\",\n RESIZE: \"zoid-resize\",\n FOCUS: \"zoid-focus\"\n };\n function buildChildWindowName(_ref) {\n return \"__zoid__\" + _ref.name + \"__\" + _ref.serializedPayload + \"__\";\n }\n function parseWindowName(windowName) {\n if (!windowName) throw new Error(\"No window name\");\n var _windowName$split = windowName.split(\"__\"), zoidcomp = _windowName$split[1], name = _windowName$split[2], serializedInitialPayload = _windowName$split[3];\n if (\"zoid\" !== zoidcomp) throw new Error(\"Window not rendered by zoid - got \" + zoidcomp);\n if (!name) throw new Error(\"Expected component name\");\n if (!serializedInitialPayload) throw new Error(\"Expected serialized payload ref\");\n return {\n name: name,\n serializedInitialPayload: serializedInitialPayload\n };\n }\n var parseInitialParentPayload = memoize((function(windowName) {\n var _crossDomainDeseriali = crossDomainDeserialize({\n data: parseWindowName(windowName).serializedInitialPayload,\n sender: {\n win: function(_ref2) {\n return function(windowRef) {\n if (\"opener\" === windowRef.type) return assertExists(\"opener\", getOpener(window));\n if (\"parent\" === windowRef.type && \"number\" == typeof windowRef.distance) return assertExists(\"parent\", function(win, n) {\n void 0 === n && (n = 1);\n return function(win, n) {\n void 0 === n && (n = 1);\n var parent = win;\n for (var i = 0; i < n; i++) {\n if (!parent) return;\n parent = utils_getParent(parent);\n }\n return parent;\n }(win, getDistanceFromTop(win) - n);\n }(window, windowRef.distance));\n if (\"global\" === windowRef.type && windowRef.uid && \"string\" == typeof windowRef.uid) {\n var _ret = function() {\n var uid = windowRef.uid;\n var ancestor = getAncestor(window);\n if (!ancestor) throw new Error(\"Can not find ancestor window\");\n for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(ancestor); _i2 < _getAllFramesInWindow2.length; _i2++) {\n var frame = _getAllFramesInWindow2[_i2];\n if (isSameDomain(frame)) {\n var win = tryGlobal(frame, (function(global) {\n return global.windows && global.windows[uid];\n }));\n if (win) return {\n v: win\n };\n }\n }\n }();\n if (\"object\" == typeof _ret) return _ret.v;\n } else if (\"name\" === windowRef.type) {\n var name = windowRef.name;\n return assertExists(\"namedWindow\", function(win, name) {\n return getFrameByName(win, name) || function findChildFrameByName(win, name) {\n var frame = getFrameByName(win, name);\n if (frame) return frame;\n for (var _i11 = 0, _getFrames4 = getFrames(win); _i11 < _getFrames4.length; _i11++) {\n var namedFrame = findChildFrameByName(_getFrames4[_i11], name);\n if (namedFrame) return namedFrame;\n }\n }(getTop(win) || win, name);\n }(assertExists(\"ancestor\", getAncestor(window)), name));\n }\n throw new Error(\"Unable to find \" + windowRef.type + \" parent component window\");\n }(_ref2.metaData.windowRef);\n }\n }\n });\n return {\n parent: _crossDomainDeseriali.sender,\n payload: _crossDomainDeseriali.data,\n reference: _crossDomainDeseriali.reference\n };\n }));\n function getInitialParentPayload() {\n return parseInitialParentPayload(window.name);\n }\n function window_getWindowRef(targetWindow, currentWindow) {\n void 0 === currentWindow && (currentWindow = window);\n if (targetWindow === utils_getParent(currentWindow)) return {\n type: \"parent\",\n distance: getDistanceFromTop(targetWindow)\n };\n if (targetWindow === getOpener(currentWindow)) return {\n type: \"opener\"\n };\n if (isSameDomain(targetWindow) && !(win = targetWindow, win === getTop(win))) {\n var windowName = assertSameDomain(targetWindow).name;\n if (windowName) return {\n type: \"name\",\n name: windowName\n };\n }\n var win;\n }\n function normalizeChildProp(propsDef, props, key, value, helpers) {\n if (!propsDef.hasOwnProperty(key)) return value;\n var prop = propsDef[key];\n return \"function\" == typeof prop.childDecorate ? prop.childDecorate({\n value: value,\n uid: helpers.uid,\n tag: helpers.tag,\n close: helpers.close,\n focus: helpers.focus,\n onError: helpers.onError,\n onProps: helpers.onProps,\n resize: helpers.resize,\n getParent: helpers.getParent,\n getParentDomain: helpers.getParentDomain,\n show: helpers.show,\n hide: helpers.hide,\n export: helpers.export,\n getSiblings: helpers.getSiblings\n }) : value;\n }\n function child_focus() {\n return promise_ZalgoPromise.try((function() {\n window.focus();\n }));\n }\n function child_destroy() {\n return promise_ZalgoPromise.try((function() {\n window.close();\n }));\n }\n var props_defaultNoop = function() {\n return src_util_noop;\n };\n var props_decorateOnce = function(_ref) {\n return once(_ref.value);\n };\n function eachProp(props, propsDef, handler) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(_extends({}, props, propsDef)); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n handler(key, propsDef[key], props[key]);\n }\n }\n function serializeProps(propsDef, props, method) {\n var params = {};\n return promise_ZalgoPromise.all(function(props, propsDef, handler) {\n var results = [];\n eachProp(props, propsDef, (function(key, propDef, value) {\n var result = function(key, propDef, value) {\n return promise_ZalgoPromise.resolve().then((function() {\n var _METHOD$GET$METHOD$PO, _METHOD$GET$METHOD$PO2;\n if (null != value && propDef) {\n var getParam = (_METHOD$GET$METHOD$PO = {}, _METHOD$GET$METHOD$PO.get = propDef.queryParam, \n _METHOD$GET$METHOD$PO.post = propDef.bodyParam, _METHOD$GET$METHOD$PO)[method];\n var getValue = (_METHOD$GET$METHOD$PO2 = {}, _METHOD$GET$METHOD$PO2.get = propDef.queryValue, \n _METHOD$GET$METHOD$PO2.post = propDef.bodyValue, _METHOD$GET$METHOD$PO2)[method];\n if (getParam) return promise_ZalgoPromise.hash({\n finalParam: promise_ZalgoPromise.try((function() {\n return \"function\" == typeof getParam ? getParam({\n value: value\n }) : \"string\" == typeof getParam ? getParam : key;\n })),\n finalValue: promise_ZalgoPromise.try((function() {\n return \"function\" == typeof getValue && isDefined(value) ? getValue({\n value: value\n }) : value;\n }))\n }).then((function(_ref) {\n var finalParam = _ref.finalParam, finalValue = _ref.finalValue;\n var result;\n if (\"boolean\" == typeof finalValue) result = finalValue.toString(); else if (\"string\" == typeof finalValue) result = finalValue.toString(); else if (\"object\" == typeof finalValue && null !== finalValue) {\n if (propDef.serialization === PROP_SERIALIZATION.JSON) result = JSON.stringify(finalValue); else if (propDef.serialization === PROP_SERIALIZATION.BASE64) result = base64encode(JSON.stringify(finalValue)); else if (propDef.serialization === PROP_SERIALIZATION.DOTIFY || !propDef.serialization) {\n result = function dotify(obj, prefix, newobj) {\n void 0 === prefix && (prefix = \"\");\n void 0 === newobj && (newobj = {});\n prefix = prefix ? prefix + \".\" : prefix;\n for (var key in obj) obj.hasOwnProperty(key) && null != obj[key] && \"function\" != typeof obj[key] && (obj[key] && Array.isArray(obj[key]) && obj[key].length && obj[key].every((function(val) {\n return \"object\" != typeof val;\n })) ? newobj[\"\" + prefix + key + \"[]\"] = obj[key].join(\",\") : obj[key] && \"object\" == typeof obj[key] ? newobj = dotify(obj[key], \"\" + prefix + key, newobj) : newobj[\"\" + prefix + key] = obj[key].toString());\n return newobj;\n }(finalValue, key);\n for (var _i2 = 0, _Object$keys2 = Object.keys(result); _i2 < _Object$keys2.length; _i2++) {\n var dotkey = _Object$keys2[_i2];\n params[dotkey] = result[dotkey];\n }\n return;\n }\n } else \"number\" == typeof finalValue && (result = finalValue.toString());\n params[finalParam] = result;\n }));\n }\n }));\n }(key, propDef, value);\n results.push(result);\n }));\n return results;\n }(props, propsDef)).then((function() {\n return params;\n }));\n }\n function parentComponent(_ref) {\n var uid = _ref.uid, options = _ref.options, _ref$overrides = _ref.overrides, overrides = void 0 === _ref$overrides ? {} : _ref$overrides, _ref$parentWin = _ref.parentWin, parentWin = void 0 === _ref$parentWin ? window : _ref$parentWin;\n var propsDef = options.propsDef, containerTemplate = options.containerTemplate, prerenderTemplate = options.prerenderTemplate, tag = options.tag, name = options.name, attributes = options.attributes, dimensions = options.dimensions, autoResize = options.autoResize, url = options.url, domainMatch = options.domain, xports = options.exports;\n var initPromise = new promise_ZalgoPromise;\n var handledErrors = [];\n var clean = cleanup();\n var state = {};\n var inputProps = {};\n var internalState = {\n visible: !0\n };\n var event = overrides.event ? overrides.event : (triggered = {}, handlers = {}, \n emitter = {\n on: function(eventName, handler) {\n var handlerList = handlers[eventName] = handlers[eventName] || [];\n handlerList.push(handler);\n var cancelled = !1;\n return {\n cancel: function() {\n if (!cancelled) {\n cancelled = !0;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n }\n };\n },\n once: function(eventName, handler) {\n var listener = emitter.on(eventName, (function() {\n listener.cancel();\n handler();\n }));\n return listener;\n },\n trigger: function(eventName) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3];\n var handlerList = handlers[eventName];\n var promises = [];\n if (handlerList) {\n var _loop = function(_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(eventName) {\n if (triggered[eventName]) return promise_ZalgoPromise.resolve();\n triggered[eventName] = !0;\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) args[_key4 - 1] = arguments[_key4];\n return emitter.trigger.apply(emitter, [ eventName ].concat(args));\n },\n reset: function() {\n handlers = {};\n }\n });\n var triggered, handlers, emitter;\n var props = overrides.props ? overrides.props : {};\n var currentProxyWin;\n var currentProxyContainer;\n var childComponent;\n var currentChildDomain;\n var currentContainer;\n var onErrorOverride = overrides.onError;\n var getProxyContainerOverride = overrides.getProxyContainer;\n var showOverride = overrides.show;\n var hideOverride = overrides.hide;\n var closeOverride = overrides.close;\n var renderContainerOverride = overrides.renderContainer;\n var getProxyWindowOverride = overrides.getProxyWindow;\n var setProxyWinOverride = overrides.setProxyWin;\n var openFrameOverride = overrides.openFrame;\n var openPrerenderFrameOverride = overrides.openPrerenderFrame;\n var prerenderOverride = overrides.prerender;\n var openOverride = overrides.open;\n var openPrerenderOverride = overrides.openPrerender;\n var watchForUnloadOverride = overrides.watchForUnload;\n var getInternalStateOverride = overrides.getInternalState;\n var setInternalStateOverride = overrides.setInternalState;\n var getDimensions = function() {\n return \"function\" == typeof dimensions ? dimensions({\n props: props\n }) : dimensions;\n };\n var resolveInitPromise = function() {\n return promise_ZalgoPromise.try((function() {\n return overrides.resolveInitPromise ? overrides.resolveInitPromise() : initPromise.resolve();\n }));\n };\n var rejectInitPromise = function(err) {\n return promise_ZalgoPromise.try((function() {\n return overrides.rejectInitPromise ? overrides.rejectInitPromise(err) : initPromise.reject(err);\n }));\n };\n var getPropsForChild = function(initialChildDomain) {\n var result = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var prop = propsDef[key];\n prop && !1 === prop.sendToChild || prop && prop.sameDomain && !matchDomain(initialChildDomain, getDomain(window)) || (result[key] = props[key]);\n }\n return promise_ZalgoPromise.hash(result);\n };\n var getInternalState = function() {\n return promise_ZalgoPromise.try((function() {\n return getInternalStateOverride ? getInternalStateOverride() : internalState;\n }));\n };\n var setInternalState = function(newInternalState) {\n return promise_ZalgoPromise.try((function() {\n return setInternalStateOverride ? setInternalStateOverride(newInternalState) : internalState = _extends({}, internalState, newInternalState);\n }));\n };\n var getProxyWindow = function() {\n return getProxyWindowOverride ? getProxyWindowOverride() : promise_ZalgoPromise.try((function() {\n var windowProp = props.window;\n if (windowProp) {\n var _proxyWin = setup_toProxyWindow(windowProp);\n clean.register((function() {\n return windowProp.close();\n }));\n return _proxyWin;\n }\n return new window_ProxyWindow({\n send: send_send\n });\n }));\n };\n var setProxyWin = function(proxyWin) {\n return setProxyWinOverride ? setProxyWinOverride(proxyWin) : promise_ZalgoPromise.try((function() {\n currentProxyWin = proxyWin;\n }));\n };\n var show = function() {\n return showOverride ? showOverride() : promise_ZalgoPromise.hash({\n setState: setInternalState({\n visible: !0\n }),\n showElement: currentProxyContainer ? currentProxyContainer.get().then(showElement) : null\n }).then(src_util_noop);\n };\n var hide = function() {\n return hideOverride ? hideOverride() : promise_ZalgoPromise.hash({\n setState: setInternalState({\n visible: !1\n }),\n showElement: currentProxyContainer ? currentProxyContainer.get().then(hideElement) : null\n }).then(src_util_noop);\n };\n var getUrl = function() {\n return \"function\" == typeof url ? url({\n props: props\n }) : url;\n };\n var getAttributes = function() {\n return \"function\" == typeof attributes ? attributes({\n props: props\n }) : attributes;\n };\n var getInitialChildDomain = function() {\n return getDomainFromUrl(getUrl());\n };\n var openFrame = function(context, _ref2) {\n var windowName = _ref2.windowName;\n return openFrameOverride ? openFrameOverride(context, {\n windowName: windowName\n }) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({\n attributes: _extends({\n name: windowName,\n title: name\n }, getAttributes().iframe)\n }));\n }));\n };\n var openPrerenderFrame = function(context) {\n return openPrerenderFrameOverride ? openPrerenderFrameOverride(context) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) return getProxyObject(dom_iframe({\n attributes: _extends({\n name: \"__zoid_prerender_frame__\" + name + \"_\" + uniqueID() + \"__\",\n title: \"prerender__\" + name\n }, getAttributes().iframe)\n }));\n }));\n };\n var openPrerender = function(context, proxyWin, proxyPrerenderFrame) {\n return openPrerenderOverride ? openPrerenderOverride(context, proxyWin, proxyPrerenderFrame) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) {\n if (!proxyPrerenderFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyPrerenderFrame.get().then((function(prerenderFrame) {\n clean.register((function() {\n return destroyElement(prerenderFrame);\n }));\n return awaitFrameWindow(prerenderFrame).then((function(prerenderFrameWindow) {\n return assertSameDomain(prerenderFrameWindow);\n })).then((function(win) {\n return setup_toProxyWindow(win);\n }));\n }));\n }\n if (context === CONTEXT.POPUP) return proxyWin;\n throw new Error(\"No render context available for \" + context);\n }));\n };\n var focus = function() {\n return promise_ZalgoPromise.try((function() {\n if (currentProxyWin) return promise_ZalgoPromise.all([ event.trigger(EVENT.FOCUS), currentProxyWin.focus() ]).then(src_util_noop);\n }));\n };\n var getCurrentWindowReferenceUID = function() {\n var global = lib_global_getGlobal(window);\n global.windows = global.windows || {};\n global.windows[uid] = window;\n clean.register((function() {\n delete global.windows[uid];\n }));\n return uid;\n };\n var getWindowRef = function(target, initialChildDomain, context, proxyWin) {\n if (initialChildDomain === getDomain(window)) return {\n type: \"global\",\n uid: getCurrentWindowReferenceUID()\n };\n if (target !== window) throw new Error(\"Can not construct cross-domain window reference for different target window\");\n if (props.window) {\n var actualComponentWindow = proxyWin.getWindow();\n if (!actualComponentWindow) throw new Error(\"Can not construct cross-domain window reference for lazy window prop\");\n if (getAncestor(actualComponentWindow) !== window) throw new Error(\"Can not construct cross-domain window reference for window prop with different ancestor\");\n }\n if (context === CONTEXT.POPUP) return {\n type: \"opener\"\n };\n if (context === CONTEXT.IFRAME) return {\n type: \"parent\",\n distance: getDistanceFromTop(window)\n };\n throw new Error(\"Can not construct window reference for child\");\n };\n var initChild = function(childDomain, childExports) {\n return promise_ZalgoPromise.try((function() {\n currentChildDomain = childDomain;\n childComponent = childExports;\n resolveInitPromise();\n clean.register((function() {\n return childExports.close.fireAndForget().catch(src_util_noop);\n }));\n }));\n };\n var resize = function(_ref3) {\n var width = _ref3.width, height = _ref3.height;\n return promise_ZalgoPromise.try((function() {\n event.trigger(EVENT.RESIZE, {\n width: width,\n height: height\n });\n }));\n };\n var destroy = function(err) {\n return promise_ZalgoPromise.try((function() {\n return event.trigger(EVENT.DESTROY);\n })).catch(src_util_noop).then((function() {\n return clean.all(err);\n })).then((function() {\n 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(context, _ref4) {\n var proxyWin = _ref4.proxyWin, proxyFrame = _ref4.proxyFrame, windowName = _ref4.windowName;\n return openOverride ? openOverride(context, {\n proxyWin: proxyWin,\n proxyFrame: proxyFrame,\n windowName: windowName\n }) : promise_ZalgoPromise.try((function() {\n if (context === CONTEXT.IFRAME) {\n if (!proxyFrame) throw new Error(\"Expected proxy frame to be passed\");\n return proxyFrame.get().then((function(frame) {\n return awaitFrameWindow(frame).then((function(win) {\n clean.register((function() {\n return destroyElement(frame);\n }));\n clean.register((function() {\n return cleanUpWindow(win);\n }));\n return win;\n }));\n }));\n }\n if (context === CONTEXT.POPUP) {\n var _getDimensions = getDimensions(), _getDimensions$width = _getDimensions.width, width = void 0 === _getDimensions$width ? \"300px\" : _getDimensions$width, _getDimensions$height = _getDimensions.height, height = void 0 === _getDimensions$height ? \"150px\" : _getDimensions$height;\n width = normalizeDimension(width, window.outerWidth);\n height = normalizeDimension(height, window.outerWidth);\n var win = function(url, options) {\n var _options$closeOnUnloa = (options = options || {}).closeOnUnload, closeOnUnload = void 0 === _options$closeOnUnloa ? 1 : _options$closeOnUnloa, _options$name = options.name, name = void 0 === _options$name ? \"\" : _options$name, width = options.width, height = options.height;\n var top = 0;\n var left = 0;\n width && (window.outerWidth ? left = Math.round((window.outerWidth - width) / 2) + window.screenX : window.screen.width && (left = Math.round((window.screen.width - width) / 2)));\n height && (window.outerHeight ? top = Math.round((window.outerHeight - height) / 2) + window.screenY : window.screen.height && (top = Math.round((window.screen.height - height) / 2)));\n delete options.closeOnUnload;\n delete options.name;\n width && height && (options = _extends({\n top: top,\n left: left,\n width: width,\n height: height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1\n }, options));\n var params = Object.keys(options).map((function(key) {\n if (null != options[key]) return key + \"=\" + stringify(options[key]);\n })).filter(Boolean).join(\",\");\n var win;\n try {\n win = window.open(\"\", name, params);\n } catch (err) {\n throw new dom_PopupOpenError(\"Can not open popup window - \" + (err.stack || err.message));\n }\n if (isWindowClosed(win)) {\n var err;\n throw new dom_PopupOpenError(\"Can not open popup window - blocked\");\n }\n closeOnUnload && window.addEventListener(\"unload\", (function() {\n return win.close();\n }));\n return win;\n }(0, _extends({\n name: windowName,\n width: width,\n height: height\n }, getAttributes().popup));\n clean.register((function() {\n return closeWindow(win);\n }));\n clean.register((function() {\n return cleanUpWindow(win);\n }));\n return win;\n }\n throw new Error(\"No render context available for \" + context);\n })).then((function(win) {\n proxyWin.setWindow(win, {\n send: send_send\n });\n return proxyWin.setName(windowName).then((function() {\n return proxyWin;\n }));\n }));\n };\n var watchForUnload = function() {\n return promise_ZalgoPromise.try((function() {\n var unloadWindowListener = addEventListener(window, \"unload\", once((function() {\n destroy(new Error(\"Window navigated away\"));\n })));\n var closeParentWindowListener = onCloseWindow(parentWin, destroy, 3e3);\n clean.register(closeParentWindowListener.cancel);\n clean.register(unloadWindowListener.cancel);\n if (watchForUnloadOverride) return watchForUnloadOverride();\n }));\n };\n var checkWindowClose = function(proxyWin) {\n var closed = !1;\n return proxyWin.isClosed().then((function(isClosed) {\n if (isClosed) {\n closed = !0;\n return close(new Error(\"Detected component window close\"));\n }\n return promise_ZalgoPromise.delay(200).then((function() {\n return proxyWin.isClosed();\n })).then((function(secondIsClosed) {\n if (secondIsClosed) {\n closed = !0;\n return close(new Error(\"Detected component window close\"));\n }\n }));\n })).then((function() {\n return closed;\n }));\n };\n var onError = function(err) {\n return onErrorOverride ? onErrorOverride(err) : promise_ZalgoPromise.try((function() {\n if (-1 === handledErrors.indexOf(err)) {\n handledErrors.push(err);\n initPromise.asyncReject(err);\n return event.trigger(EVENT.ERROR, err);\n }\n }));\n };\n var exportsPromise = new promise_ZalgoPromise;\n var xport = function(actualExports) {\n return promise_ZalgoPromise.try((function() {\n exportsPromise.resolve(actualExports);\n }));\n };\n initChild.onError = onError;\n var renderTemplate = function(renderer, _ref8) {\n return renderer({\n uid: uid,\n container: _ref8.container,\n context: _ref8.context,\n doc: _ref8.doc,\n frame: _ref8.frame,\n prerenderFrame: _ref8.prerenderFrame,\n focus: focus,\n close: close,\n state: state,\n props: props,\n tag: tag,\n dimensions: getDimensions(),\n event: event\n });\n };\n var prerender = function(proxyPrerenderWin, _ref9) {\n var context = _ref9.context;\n return prerenderOverride ? prerenderOverride(proxyPrerenderWin, {\n context: context\n }) : promise_ZalgoPromise.try((function() {\n if (prerenderTemplate) {\n var prerenderWindow = proxyPrerenderWin.getWindow();\n if (prerenderWindow && isSameDomain(prerenderWindow) && function(win) {\n try {\n if (!win.location.href) return !0;\n if (\"about:blank\" === win.location.href) return !0;\n } catch (err) {}\n return !1;\n }(prerenderWindow)) {\n var doc = (prerenderWindow = assertSameDomain(prerenderWindow)).document;\n var el = renderTemplate(prerenderTemplate, {\n context: context,\n doc: doc\n });\n if (el) {\n if (el.ownerDocument !== doc) throw new Error(\"Expected prerender template to have been created with document from child window\");\n !function(win, el) {\n var tag = el.tagName.toLowerCase();\n if (\"html\" !== tag) throw new Error(\"Expected element to be html, got \" + tag);\n var documentElement = win.document.documentElement;\n for (var _i6 = 0, _arrayFrom2 = arrayFrom(documentElement.children); _i6 < _arrayFrom2.length; _i6++) documentElement.removeChild(_arrayFrom2[_i6]);\n for (var _i8 = 0, _arrayFrom4 = arrayFrom(el.children); _i8 < _arrayFrom4.length; _i8++) documentElement.appendChild(_arrayFrom4[_i8]);\n }(prerenderWindow, el);\n var _autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, _autoResize$element = autoResize.element, element = void 0 === _autoResize$element ? \"body\" : _autoResize$element;\n if ((element = getElementSafe(element, doc)) && (width || height)) {\n var prerenderResizeListener = onResize(element, (function(_ref10) {\n resize({\n width: width ? _ref10.width : void 0,\n height: height ? _ref10.height : void 0\n });\n }), {\n width: width,\n height: height,\n win: prerenderWindow\n });\n event.on(EVENT.RENDERED, prerenderResizeListener.cancel);\n }\n }\n }\n }\n }));\n };\n var renderContainer = function(proxyContainer, _ref11) {\n var proxyFrame = _ref11.proxyFrame, proxyPrerenderFrame = _ref11.proxyPrerenderFrame, context = _ref11.context, rerender = _ref11.rerender;\n return renderContainerOverride ? renderContainerOverride(proxyContainer, {\n proxyFrame: proxyFrame,\n proxyPrerenderFrame: proxyPrerenderFrame,\n context: context,\n rerender: rerender\n }) : promise_ZalgoPromise.hash({\n container: proxyContainer.get(),\n frame: proxyFrame ? proxyFrame.get() : null,\n prerenderFrame: proxyPrerenderFrame ? proxyPrerenderFrame.get() : null,\n internalState: getInternalState()\n }).then((function(_ref12) {\n var container = _ref12.container, visible = _ref12.internalState.visible;\n var innerContainer = renderTemplate(containerTemplate, {\n context: context,\n container: container,\n frame: _ref12.frame,\n prerenderFrame: _ref12.prerenderFrame,\n doc: document\n });\n if (innerContainer) {\n visible || hideElement(innerContainer);\n appendChild(container, innerContainer);\n var containerWatcher = function(element, handler) {\n handler = once(handler);\n var cancelled = !1;\n var mutationObservers = [];\n var interval;\n var sacrificialFrame;\n var sacrificialFrameWin;\n var cancel = function() {\n cancelled = !0;\n for (var _i18 = 0; _i18 < mutationObservers.length; _i18++) mutationObservers[_i18].disconnect();\n interval && interval.cancel();\n sacrificialFrameWin && sacrificialFrameWin.removeEventListener(\"unload\", elementClosed);\n sacrificialFrame && destroyElement(sacrificialFrame);\n };\n var elementClosed = function() {\n if (!cancelled) {\n handler();\n cancel();\n }\n };\n if (isElementClosed(element)) {\n elementClosed();\n return {\n cancel: cancel\n };\n }\n if (window.MutationObserver) {\n var mutationElement = element.parentElement;\n for (;mutationElement; ) {\n var mutationObserver = new window.MutationObserver((function() {\n isElementClosed(element) && elementClosed();\n }));\n mutationObserver.observe(mutationElement, {\n childList: !0\n });\n mutationObservers.push(mutationObserver);\n mutationElement = mutationElement.parentElement;\n }\n }\n (sacrificialFrame = document.createElement(\"iframe\")).setAttribute(\"name\", \"__detect_close_\" + uniqueID() + \"__\");\n sacrificialFrame.style.display = \"none\";\n awaitFrameWindow(sacrificialFrame).then((function(frameWin) {\n (sacrificialFrameWin = assertSameDomain(frameWin)).addEventListener(\"unload\", elementClosed);\n }));\n element.appendChild(sacrificialFrame);\n interval = safeInterval((function() {\n isElementClosed(element) && elementClosed();\n }), 1e3);\n return {\n cancel: cancel\n };\n }(innerContainer, (function() {\n var removeError = new Error(\"Detected container element removed from DOM\");\n return promise_ZalgoPromise.delay(1).then((function() {\n if (!isElementClosed(innerContainer)) {\n clean.all(removeError);\n return rerender().then(resolveInitPromise, rejectInitPromise);\n }\n close(removeError);\n }));\n }));\n clean.register((function() {\n return containerWatcher.cancel();\n }));\n clean.register((function() {\n return destroyElement(innerContainer);\n }));\n return currentProxyContainer = getProxyObject(innerContainer);\n }\n }));\n };\n var getHelpers = function() {\n return {\n state: state,\n event: event,\n close: close,\n focus: focus,\n resize: resize,\n onError: onError,\n updateProps: updateProps,\n show: show,\n hide: hide\n };\n };\n var setProps = function(newInputProps) {\n void 0 === newInputProps && (newInputProps = {});\n var container = currentContainer;\n var helpers = getHelpers();\n extend(inputProps, newInputProps);\n !function(propsDef, existingProps, inputProps, helpers, container) {\n var state = helpers.state, close = helpers.close, focus = helpers.focus, event = helpers.event, onError = helpers.onError;\n eachProp(inputProps, propsDef, (function(key, propDef, val) {\n var valueDetermined = !1;\n var value = val;\n Object.defineProperty(existingProps, key, {\n configurable: !0,\n enumerable: !0,\n get: function() {\n if (valueDetermined) return value;\n valueDetermined = !0;\n return function() {\n if (!propDef) return value;\n var alias = propDef.alias;\n alias && !isDefined(val) && isDefined(inputProps[alias]) && (value = inputProps[alias]);\n propDef.value && (value = propDef.value({\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n !propDef.default || isDefined(value) || isDefined(inputProps[key]) || (value = propDef.default({\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n if (isDefined(value)) {\n if (propDef.type === PROP_TYPE.ARRAY ? !Array.isArray(value) : typeof value !== propDef.type) throw new TypeError(\"Prop is not of type \" + propDef.type + \": \" + key);\n } else if (!1 !== propDef.required && !isDefined(inputProps[key])) throw new Error('Expected prop \"' + key + '\" to be defined');\n isDefined(value) && propDef.decorate && (value = propDef.decorate({\n value: value,\n props: existingProps,\n state: state,\n close: close,\n focus: focus,\n event: event,\n onError: onError,\n container: container\n }));\n return value;\n }();\n }\n });\n }));\n eachProp(existingProps, propsDef, src_util_noop);\n }(propsDef, props, inputProps, helpers, container);\n };\n var updateProps = function(newProps) {\n setProps(newProps);\n return initPromise.then((function() {\n var child = childComponent;\n var proxyWin = currentProxyWin;\n if (child && proxyWin && currentChildDomain) return getPropsForChild(currentChildDomain).then((function(childProps) {\n return child.updateProps(childProps).catch((function(err) {\n return checkWindowClose(proxyWin).then((function(closed) {\n if (!closed) throw err;\n }));\n }));\n }));\n }));\n };\n var getProxyContainer = function(container) {\n return getProxyContainerOverride ? getProxyContainerOverride(container) : promise_ZalgoPromise.try((function() {\n return elementReady(container);\n })).then((function(containerElement) {\n isShadowElement(containerElement) && (containerElement = function insertShadowSlot(element) {\n var shadowHost = function(element) {\n var shadowRoot = function(element) {\n for (;element.parentNode; ) element = element.parentNode;\n if (isShadowElement(element)) return element;\n }(element);\n if (shadowRoot && shadowRoot.host) return shadowRoot.host;\n }(element);\n if (!shadowHost) throw new Error(\"Element is not in shadow dom\");\n var slotName = \"shadow-slot-\" + uniqueID();\n var slot = document.createElement(\"slot\");\n slot.setAttribute(\"name\", slotName);\n element.appendChild(slot);\n var slotProvider = document.createElement(\"div\");\n slotProvider.setAttribute(\"slot\", slotName);\n shadowHost.appendChild(slotProvider);\n return isShadowElement(shadowHost) ? insertShadowSlot(slotProvider) : slotProvider;\n }(containerElement));\n currentContainer = containerElement;\n return getProxyObject(containerElement);\n }));\n };\n return {\n init: function() {\n !function() {\n event.on(EVENT.RENDER, (function() {\n return props.onRender();\n }));\n event.on(EVENT.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(_ref14) {\n var target = _ref14.target, container = _ref14.container, context = _ref14.context, rerender = _ref14.rerender;\n return promise_ZalgoPromise.try((function() {\n var initialChildDomain = getInitialChildDomain();\n var childDomainMatch = domainMatch || getInitialChildDomain();\n !function(target, childDomainMatch, container) {\n if (target !== window) {\n if (!isSameTopWindow(window, target)) throw new Error(\"Can only renderTo an adjacent frame\");\n var origin = getDomain();\n if (!matchDomain(childDomainMatch, origin) && !isSameDomain(target)) throw new Error(\"Can not render remotely to \" + childDomainMatch.toString() + \" - can only render to \" + origin);\n if (container && \"string\" != typeof container) throw new Error(\"Container passed to renderTo must be a string selector, got \" + typeof container + \" }\");\n }\n }(target, childDomainMatch, container);\n var delegatePromise = promise_ZalgoPromise.try((function() {\n if (target !== window) return function(context, target) {\n var delegateProps = {};\n for (var _i4 = 0, _Object$keys4 = Object.keys(props); _i4 < _Object$keys4.length; _i4++) {\n var propName = _Object$keys4[_i4];\n var propDef = propsDef[propName];\n propDef && propDef.allowDelegate && (delegateProps[propName] = props[propName]);\n }\n var childOverridesPromise = send_send(target, \"zoid_delegate_\" + name, {\n uid: uid,\n overrides: {\n props: delegateProps,\n event: event,\n close: close,\n onError: onError,\n getInternalState: getInternalState,\n setInternalState: setInternalState,\n resolveInitPromise: resolveInitPromise,\n rejectInitPromise: rejectInitPromise\n }\n }).then((function(_ref13) {\n var parentComp = _ref13.data.parent;\n clean.register((function(err) {\n if (!isWindowClosed(target)) return parentComp.destroy(err);\n }));\n return parentComp.getDelegateOverrides();\n })).catch((function(err) {\n throw new Error(\"Unable to delegate rendering. Possibly the component is not loaded in the target window.\\n\\n\" + stringifyError(err));\n }));\n getProxyContainerOverride = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.getProxyContainer.apply(childOverrides, args);\n }));\n };\n renderContainerOverride = function() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.renderContainer.apply(childOverrides, args);\n }));\n };\n showOverride = function() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) args[_key3] = arguments[_key3];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.show.apply(childOverrides, args);\n }));\n };\n hideOverride = function() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.hide.apply(childOverrides, args);\n }));\n };\n watchForUnloadOverride = function() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) args[_key5] = arguments[_key5];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.watchForUnload.apply(childOverrides, args);\n }));\n };\n if (context === CONTEXT.IFRAME) {\n getProxyWindowOverride = function() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) args[_key6] = arguments[_key6];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.getProxyWindow.apply(childOverrides, args);\n }));\n };\n openFrameOverride = function() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) args[_key7] = arguments[_key7];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openFrame.apply(childOverrides, args);\n }));\n };\n openPrerenderFrameOverride = function() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) args[_key8] = arguments[_key8];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openPrerenderFrame.apply(childOverrides, args);\n }));\n };\n prerenderOverride = function() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) args[_key9] = arguments[_key9];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.prerender.apply(childOverrides, args);\n }));\n };\n openOverride = function() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) args[_key10] = arguments[_key10];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.open.apply(childOverrides, args);\n }));\n };\n openPrerenderOverride = function() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) args[_key11] = arguments[_key11];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.openPrerender.apply(childOverrides, args);\n }));\n };\n } else context === CONTEXT.POPUP && (setProxyWinOverride = function() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) args[_key12] = arguments[_key12];\n return childOverridesPromise.then((function(childOverrides) {\n return childOverrides.setProxyWin.apply(childOverrides, args);\n }));\n });\n return childOverridesPromise;\n }(context, target);\n }));\n var windowProp = props.window;\n var watchForUnloadPromise = watchForUnload();\n var buildBodyPromise = serializeProps(propsDef, props, \"post\");\n var onRenderPromise = event.trigger(EVENT.RENDER);\n var getProxyContainerPromise = getProxyContainer(container);\n var getProxyWindowPromise = getProxyWindow();\n var finalSetPropsPromise = getProxyContainerPromise.then((function() {\n return setProps();\n }));\n var buildUrlPromise = finalSetPropsPromise.then((function() {\n return serializeProps(propsDef, props, \"get\").then((function(query) {\n return function(url, options) {\n var query = options.query || {};\n var hash = options.hash || {};\n var originalUrl;\n var originalHash;\n var _url$split = url.split(\"#\");\n originalHash = _url$split[1];\n var _originalUrl$split = (originalUrl = _url$split[0]).split(\"?\");\n originalUrl = _originalUrl$split[0];\n var queryString = extendQuery(_originalUrl$split[1], query);\n var hashString = extendQuery(originalHash, hash);\n queryString && (originalUrl = originalUrl + \"?\" + queryString);\n hashString && (originalUrl = originalUrl + \"#\" + hashString);\n return originalUrl;\n }(normalizeMockUrl(getUrl()), {\n query: query\n });\n }));\n }));\n var buildWindowNamePromise = getProxyWindowPromise.then((function(proxyWin) {\n return function(_temp2) {\n var _ref6 = void 0 === _temp2 ? {} : _temp2, proxyWin = _ref6.proxyWin, initialChildDomain = _ref6.initialChildDomain, childDomainMatch = _ref6.childDomainMatch, _ref6$target = _ref6.target, target = void 0 === _ref6$target ? window : _ref6$target, context = _ref6.context;\n return function(_temp) {\n var _ref5 = void 0 === _temp ? {} : _temp, proxyWin = _ref5.proxyWin, childDomainMatch = _ref5.childDomainMatch, context = _ref5.context;\n return getPropsForChild(_ref5.initialChildDomain).then((function(childProps) {\n return {\n uid: uid,\n context: context,\n tag: tag,\n childDomainMatch: childDomainMatch,\n version: \"9_0_86\",\n props: childProps,\n exports: (win = proxyWin, {\n init: function(childExports) {\n return initChild(this.origin, childExports);\n },\n close: close,\n checkClose: function() {\n return checkWindowClose(win);\n },\n resize: resize,\n onError: onError,\n show: show,\n hide: hide,\n export: xport\n })\n };\n var win;\n }));\n }({\n proxyWin: proxyWin,\n initialChildDomain: initialChildDomain,\n childDomainMatch: childDomainMatch,\n context: context\n }).then((function(childPayload) {\n var _crossDomainSerialize = crossDomainSerialize({\n data: childPayload,\n metaData: {\n windowRef: getWindowRef(target, initialChildDomain, context, proxyWin)\n },\n sender: {\n domain: getDomain(window)\n },\n receiver: {\n win: proxyWin,\n domain: childDomainMatch\n },\n passByReference: initialChildDomain === getDomain()\n }), serializedData = _crossDomainSerialize.serializedData;\n clean.register(_crossDomainSerialize.cleanReference);\n return serializedData;\n }));\n }({\n proxyWin: (_ref7 = {\n proxyWin: proxyWin,\n initialChildDomain: initialChildDomain,\n childDomainMatch: childDomainMatch,\n target: target,\n context: context\n }).proxyWin,\n initialChildDomain: _ref7.initialChildDomain,\n childDomainMatch: _ref7.childDomainMatch,\n target: _ref7.target,\n context: _ref7.context\n }).then((function(serializedPayload) {\n return buildChildWindowName({\n name: name,\n serializedPayload: serializedPayload\n });\n }));\n var _ref7;\n }));\n var openFramePromise = buildWindowNamePromise.then((function(windowName) {\n return openFrame(context, {\n windowName: windowName\n });\n }));\n var openPrerenderFramePromise = openPrerenderFrame(context);\n var renderContainerPromise = promise_ZalgoPromise.hash({\n proxyContainer: getProxyContainerPromise,\n proxyFrame: openFramePromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then((function(_ref15) {\n return renderContainer(_ref15.proxyContainer, {\n context: context,\n proxyFrame: _ref15.proxyFrame,\n proxyPrerenderFrame: _ref15.proxyPrerenderFrame,\n rerender: rerender\n });\n })).then((function(proxyContainer) {\n return proxyContainer;\n }));\n var openPromise = promise_ZalgoPromise.hash({\n windowName: buildWindowNamePromise,\n proxyFrame: openFramePromise,\n proxyWin: getProxyWindowPromise\n }).then((function(_ref16) {\n var proxyWin = _ref16.proxyWin;\n return windowProp ? proxyWin : open(context, {\n windowName: _ref16.windowName,\n proxyWin: proxyWin,\n proxyFrame: _ref16.proxyFrame\n });\n }));\n var openPrerenderPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n proxyPrerenderFrame: openPrerenderFramePromise\n }).then((function(_ref17) {\n return openPrerender(context, _ref17.proxyWin, _ref17.proxyPrerenderFrame);\n }));\n var setStatePromise = openPromise.then((function(proxyWin) {\n currentProxyWin = proxyWin;\n return setProxyWin(proxyWin);\n }));\n var prerenderPromise = promise_ZalgoPromise.hash({\n proxyPrerenderWin: openPrerenderPromise,\n state: setStatePromise\n }).then((function(_ref18) {\n return prerender(_ref18.proxyPrerenderWin, {\n context: context\n });\n }));\n var setWindowNamePromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowName: buildWindowNamePromise\n }).then((function(_ref19) {\n if (windowProp) return _ref19.proxyWin.setName(_ref19.windowName);\n }));\n var getMethodPromise = promise_ZalgoPromise.hash({\n body: buildBodyPromise\n }).then((function(_ref20) {\n return options.method ? options.method : Object.keys(_ref20.body).length ? \"post\" : \"get\";\n }));\n var loadUrlPromise = promise_ZalgoPromise.hash({\n proxyWin: openPromise,\n windowUrl: buildUrlPromise,\n body: buildBodyPromise,\n method: getMethodPromise,\n windowName: setWindowNamePromise,\n prerender: prerenderPromise\n }).then((function(_ref21) {\n return _ref21.proxyWin.setLocation(_ref21.windowUrl, {\n method: _ref21.method,\n body: _ref21.body\n });\n }));\n var watchForClosePromise = openPromise.then((function(proxyWin) {\n !function watchForClose(proxyWin, context) {\n var cancelled = !1;\n clean.register((function() {\n cancelled = !0;\n }));\n return promise_ZalgoPromise.delay(2e3).then((function() {\n return proxyWin.isClosed();\n })).then((function(isClosed) {\n if (!cancelled) return isClosed ? close(new Error(\"Detected \" + context + \" close\")) : watchForClose(proxyWin, context);\n }));\n }(proxyWin, context);\n }));\n var onDisplayPromise = promise_ZalgoPromise.hash({\n container: renderContainerPromise,\n prerender: prerenderPromise\n }).then((function() {\n return event.trigger(EVENT.DISPLAY);\n }));\n var openBridgePromise = openPromise.then((function(proxyWin) {\n return function(proxyWin, initialChildDomain, context) {\n return promise_ZalgoPromise.try((function() {\n return proxyWin.awaitWindow();\n })).then((function(win) {\n if (src_bridge && src_bridge.needsBridge({\n win: win,\n domain: initialChildDomain\n }) && !src_bridge.hasBridge(initialChildDomain, initialChildDomain)) {\n var bridgeUrl = \"function\" == typeof options.bridgeUrl ? options.bridgeUrl({\n props: props\n }) : options.bridgeUrl;\n if (!bridgeUrl) throw new Error(\"Bridge needed to render \" + context);\n var bridgeDomain = getDomainFromUrl(bridgeUrl);\n src_bridge.linkUrl(win, initialChildDomain);\n return src_bridge.openBridge(normalizeMockUrl(bridgeUrl), bridgeDomain);\n }\n }));\n }(proxyWin, initialChildDomain, context);\n }));\n var runTimeoutPromise = loadUrlPromise.then((function() {\n return promise_ZalgoPromise.try((function() {\n var timeout = props.timeout;\n if (timeout) return initPromise.timeout(timeout, new Error(\"Loading component timed out after \" + timeout + \" milliseconds\"));\n }));\n }));\n var onRenderedPromise = initPromise.then((function() {\n return event.trigger(EVENT.RENDERED);\n }));\n return promise_ZalgoPromise.hash({\n initPromise: initPromise,\n buildUrlPromise: buildUrlPromise,\n onRenderPromise: onRenderPromise,\n getProxyContainerPromise: getProxyContainerPromise,\n openFramePromise: openFramePromise,\n openPrerenderFramePromise: openPrerenderFramePromise,\n renderContainerPromise: renderContainerPromise,\n openPromise: openPromise,\n openPrerenderPromise: openPrerenderPromise,\n setStatePromise: setStatePromise,\n prerenderPromise: prerenderPromise,\n loadUrlPromise: loadUrlPromise,\n buildWindowNamePromise: buildWindowNamePromise,\n setWindowNamePromise: setWindowNamePromise,\n watchForClosePromise: watchForClosePromise,\n onDisplayPromise: onDisplayPromise,\n openBridgePromise: openBridgePromise,\n runTimeoutPromise: runTimeoutPromise,\n onRenderedPromise: onRenderedPromise,\n delegatePromise: delegatePromise,\n watchForUnloadPromise: watchForUnloadPromise,\n finalSetPropsPromise: finalSetPropsPromise\n });\n })).catch((function(err) {\n return promise_ZalgoPromise.all([ onError(err), destroy(err) ]).then((function() {\n throw err;\n }), (function() {\n throw err;\n }));\n })).then(src_util_noop);\n },\n destroy: destroy,\n getProps: function() {\n return props;\n },\n setProps: setProps,\n export: xport,\n getHelpers: getHelpers,\n getDelegateOverrides: function() {\n return promise_ZalgoPromise.try((function() {\n return {\n getProxyContainer: getProxyContainer,\n show: show,\n hide: hide,\n renderContainer: renderContainer,\n getProxyWindow: getProxyWindow,\n watchForUnload: watchForUnload,\n openFrame: openFrame,\n openPrerenderFrame: openPrerenderFrame,\n prerender: prerender,\n open: open,\n openPrerender: openPrerender,\n setProxyWin: setProxyWin\n };\n }));\n },\n getExports: function() {\n return xports({\n getExports: function() {\n return exportsPromise;\n }\n });\n }\n };\n }\n function defaultContainerTemplate(_ref) {\n var uid = _ref.uid, frame = _ref.frame, prerenderFrame = _ref.prerenderFrame, doc = _ref.doc, props = _ref.props, event = _ref.event, dimensions = _ref.dimensions;\n var width = dimensions.width, height = dimensions.height;\n if (frame && prerenderFrame) {\n var div = doc.createElement(\"div\");\n div.setAttribute(\"id\", uid);\n var style = doc.createElement(\"style\");\n props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce);\n style.appendChild(doc.createTextNode(\"\\n #\" + uid + \" {\\n display: inline-block;\\n position: relative;\\n width: \" + width + \";\\n height: \" + height + \";\\n }\\n\\n #\" + uid + \" > iframe {\\n display: inline-block;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n transition: opacity .2s ease-in-out;\\n }\\n\\n #\" + uid + \" > iframe.zoid-invisible {\\n opacity: 0;\\n }\\n\\n #\" + uid + \" > iframe.zoid-visible {\\n opacity: 1;\\n }\\n \"));\n div.appendChild(frame);\n div.appendChild(prerenderFrame);\n div.appendChild(style);\n prerenderFrame.classList.add(\"zoid-visible\");\n frame.classList.add(\"zoid-invisible\");\n event.on(EVENT.RENDERED, (function() {\n prerenderFrame.classList.remove(\"zoid-visible\");\n prerenderFrame.classList.add(\"zoid-invisible\");\n frame.classList.remove(\"zoid-invisible\");\n frame.classList.add(\"zoid-visible\");\n setTimeout((function() {\n destroyElement(prerenderFrame);\n }), 1);\n }));\n event.on(EVENT.RESIZE, (function(_ref2) {\n var newWidth = _ref2.width, newHeight = _ref2.height;\n \"number\" == typeof newWidth && (div.style.width = toCSS(newWidth));\n \"number\" == typeof newHeight && (div.style.height = toCSS(newHeight));\n }));\n return div;\n }\n }\n function defaultPrerenderTemplate(_ref) {\n var doc = _ref.doc, props = _ref.props;\n var html = doc.createElement(\"html\");\n var body = doc.createElement(\"body\");\n var style = doc.createElement(\"style\");\n var spinner = doc.createElement(\"div\");\n spinner.classList.add(\"spinner\");\n props.cspNonce && style.setAttribute(\"nonce\", props.cspNonce);\n html.appendChild(body);\n body.appendChild(spinner);\n body.appendChild(style);\n style.appendChild(doc.createTextNode(\"\\n html, body {\\n width: 100%;\\n height: 100%;\\n }\\n\\n .spinner {\\n position: fixed;\\n max-height: 60vmin;\\n max-width: 60vmin;\\n height: 40px;\\n width: 40px;\\n top: 50%;\\n left: 50%;\\n box-sizing: border-box;\\n border: 3px solid rgba(0, 0, 0, .2);\\n border-top-color: rgba(33, 128, 192, 0.8);\\n border-radius: 100%;\\n animation: rotation .7s infinite linear;\\n }\\n\\n @keyframes rotation {\\n from {\\n transform: translateX(-50%) translateY(-50%) rotate(0deg);\\n }\\n to {\\n transform: translateX(-50%) translateY(-50%) rotate(359deg);\\n }\\n }\\n \"));\n return html;\n }\n var cleanInstances = cleanup();\n var cleanZoid = cleanup();\n function component(opts) {\n var options = function(options) {\n var tag = options.tag, url = options.url, domain = options.domain, bridgeUrl = options.bridgeUrl, _options$props = options.props, props = void 0 === _options$props ? {} : _options$props, _options$dimensions = options.dimensions, dimensions = void 0 === _options$dimensions ? {} : _options$dimensions, _options$autoResize = options.autoResize, autoResize = void 0 === _options$autoResize ? {} : _options$autoResize, _options$allowedParen = options.allowedParentDomains, allowedParentDomains = void 0 === _options$allowedParen ? \"*\" : _options$allowedParen, _options$attributes = options.attributes, attributes = void 0 === _options$attributes ? {} : _options$attributes, _options$defaultConte = options.defaultContext, defaultContext = void 0 === _options$defaultConte ? CONTEXT.IFRAME : _options$defaultConte, _options$containerTem = options.containerTemplate, containerTemplate = void 0 === _options$containerTem ? defaultContainerTemplate : _options$containerTem, _options$prerenderTem = options.prerenderTemplate, prerenderTemplate = void 0 === _options$prerenderTem ? defaultPrerenderTemplate : _options$prerenderTem, validate = options.validate, _options$eligible = options.eligible, eligible = void 0 === _options$eligible ? function() {\n return {\n eligible: !0\n };\n } : _options$eligible, _options$logger = options.logger, logger = void 0 === _options$logger ? {\n info: src_util_noop\n } : _options$logger, _options$exports = options.exports, xportsDefinition = void 0 === _options$exports ? src_util_noop : _options$exports, method = options.method, _options$children = options.children, children = void 0 === _options$children ? function() {\n return {};\n } : _options$children;\n var name = tag.replace(/-/g, \"_\");\n var propsDef = _extends({}, {\n window: {\n type: PROP_TYPE.OBJECT,\n sendToChild: !1,\n required: !1,\n allowDelegate: !0,\n validate: function(_ref2) {\n var value = _ref2.value;\n if (!isWindow(value) && !window_ProxyWindow.isProxyWindow(value)) throw new Error(\"Expected Window or ProxyWindow\");\n if (isWindow(value)) {\n if (isWindowClosed(value)) throw new Error(\"Window is closed\");\n if (!isSameDomain(value)) throw new Error(\"Window is not same domain\");\n }\n },\n decorate: function(_ref3) {\n return setup_toProxyWindow(_ref3.value);\n }\n },\n timeout: {\n type: PROP_TYPE.NUMBER,\n required: !1,\n sendToChild: !1\n },\n cspNonce: {\n type: PROP_TYPE.STRING,\n required: !1\n },\n onDisplay: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRendered: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onRender: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onClose: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onDestroy: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop,\n decorate: props_decorateOnce\n },\n onResize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop\n },\n onFocus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n allowDelegate: !0,\n default: props_defaultNoop\n },\n close: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref4) {\n return _ref4.close;\n }\n },\n focus: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref5) {\n return _ref5.focus;\n }\n },\n resize: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref6) {\n return _ref6.resize;\n }\n },\n uid: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref7) {\n return _ref7.uid;\n }\n },\n tag: {\n type: PROP_TYPE.STRING,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref8) {\n return _ref8.tag;\n }\n },\n getParent: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref9) {\n return _ref9.getParent;\n }\n },\n getParentDomain: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref10) {\n return _ref10.getParentDomain;\n }\n },\n show: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref11) {\n return _ref11.show;\n }\n },\n hide: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref12) {\n return _ref12.hide;\n }\n },\n export: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref13) {\n return _ref13.export;\n }\n },\n onError: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref14) {\n return _ref14.onError;\n }\n },\n onProps: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref15) {\n return _ref15.onProps;\n }\n },\n getSiblings: {\n type: PROP_TYPE.FUNCTION,\n required: !1,\n sendToChild: !1,\n childDecorate: function(_ref16) {\n return _ref16.getSiblings;\n }\n }\n }, props);\n if (!containerTemplate) throw new Error(\"Container template required\");\n return {\n name: name,\n tag: tag,\n url: url,\n domain: domain,\n bridgeUrl: bridgeUrl,\n method: method,\n propsDef: propsDef,\n dimensions: dimensions,\n autoResize: autoResize,\n allowedParentDomains: allowedParentDomains,\n attributes: attributes,\n defaultContext: defaultContext,\n containerTemplate: containerTemplate,\n prerenderTemplate: prerenderTemplate,\n validate: validate,\n logger: logger,\n eligible: eligible,\n children: children,\n exports: \"function\" == typeof xportsDefinition ? xportsDefinition : function(_ref) {\n var getExports = _ref.getExports;\n var result = {};\n var _loop = function(_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, tag = options.tag, defaultContext = options.defaultContext, eligible = options.eligible, children = options.children;\n var global = lib_global_getGlobal(window);\n var instances = [];\n var isChild = function() {\n if (function(name) {\n try {\n return parseWindowName(window.name).name === name;\n } catch (err) {}\n return !1;\n }(name)) {\n var _payload = getInitialParentPayload().payload;\n if (_payload.tag === tag && matchDomain(_payload.childDomainMatch, getDomain())) return !0;\n }\n return !1;\n };\n var registerChild = memoize((function() {\n if (isChild()) {\n if (window.xprops) {\n delete global.components[tag];\n throw new Error(\"Can not register \" + name + \" as child - child already registered\");\n }\n var child = function(options) {\n var tag = options.tag, propsDef = options.propsDef, autoResize = options.autoResize, allowedParentDomains = options.allowedParentDomains;\n var onPropHandlers = [];\n var _getInitialParentPayl = getInitialParentPayload(), parent = _getInitialParentPayl.parent, payload = _getInitialParentPayl.payload;\n var parentComponentWindow = parent.win, parentDomain = parent.domain;\n var props;\n var exportsPromise = new promise_ZalgoPromise;\n var version = payload.version, uid = payload.uid, parentExports = payload.exports, context = payload.context, initialProps = payload.props;\n if (\"9_0_86\" !== version) throw new Error(\"Parent window has zoid version \" + version + \", child window has version 9_0_86\");\n var show = parentExports.show, hide = parentExports.hide, close = parentExports.close, onError = parentExports.onError, checkClose = parentExports.checkClose, parentExport = parentExports.export, parentResize = parentExports.resize, parentInit = parentExports.init;\n var getParent = function() {\n return parentComponentWindow;\n };\n var getParentDomain = function() {\n return parentDomain;\n };\n var onProps = function(handler) {\n onPropHandlers.push(handler);\n return {\n cancel: function() {\n onPropHandlers.splice(onPropHandlers.indexOf(handler), 1);\n }\n };\n };\n var resize = function(_ref) {\n return parentResize.fireAndForget({\n width: _ref.width,\n height: _ref.height\n });\n };\n var xport = function(xports) {\n exportsPromise.resolve(xports);\n return parentExport(xports);\n };\n var getSiblings = function(_temp) {\n var anyParent = (void 0 === _temp ? {} : _temp).anyParent;\n var result = [];\n var currentParent = props.parent;\n void 0 === anyParent && (anyParent = !currentParent);\n if (!anyParent && !currentParent) throw new Error(\"No parent found for \" + tag + \" child\");\n for (var _i2 = 0, _getAllFramesInWindow2 = getAllFramesInWindow(window); _i2 < _getAllFramesInWindow2.length; _i2++) {\n var win = _getAllFramesInWindow2[_i2];\n if (isSameDomain(win)) {\n var xprops = assertSameDomain(win).xprops;\n if (xprops && getParent() === xprops.getParent()) {\n var winParent = xprops.parent;\n if (anyParent || !currentParent || winParent && winParent.uid === currentParent.uid) {\n var xports = tryGlobal(win, (function(global) {\n return global.exports;\n }));\n result.push({\n props: xprops,\n exports: xports\n });\n }\n }\n }\n }\n return result;\n };\n var setProps = function(newProps, origin, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var normalizedProps = function(parentComponentWindow, propsDef, props, origin, helpers, isUpdate) {\n void 0 === isUpdate && (isUpdate = !1);\n var result = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(props); _i2 < _Object$keys2.length; _i2++) {\n var key = _Object$keys2[_i2];\n var prop = propsDef[key];\n 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 _i4 = 0; _i4 < onPropHandlers.length; _i4++) (0, onPropHandlers[_i4])(props);\n };\n var updateProps = function(newProps) {\n return promise_ZalgoPromise.try((function() {\n return setProps(newProps, parentDomain, !0);\n }));\n };\n return {\n init: function() {\n return promise_ZalgoPromise.try((function() {\n isSameDomain(parentComponentWindow) && function(_ref3) {\n var componentName = _ref3.componentName, parentComponentWindow = _ref3.parentComponentWindow;\n var _crossDomainDeseriali2 = crossDomainDeserialize({\n data: parseWindowName(window.name).serializedInitialPayload,\n sender: {\n win: parentComponentWindow\n },\n basic: !0\n }), sender = _crossDomainDeseriali2.sender;\n if (\"uid\" === _crossDomainDeseriali2.reference.type || \"global\" === _crossDomainDeseriali2.metaData.windowRef.type) {\n var _crossDomainSerialize = crossDomainSerialize({\n data: _crossDomainDeseriali2.data,\n metaData: {\n windowRef: window_getWindowRef(parentComponentWindow)\n },\n sender: {\n domain: sender.domain\n },\n receiver: {\n win: window,\n domain: getDomain()\n },\n basic: !0\n });\n window.name = buildChildWindowName({\n name: componentName,\n serializedPayload: _crossDomainSerialize.serializedData\n });\n }\n }({\n componentName: options.name,\n parentComponentWindow: parentComponentWindow\n });\n lib_global_getGlobal(window).exports = options.exports({\n getExports: function() {\n return exportsPromise;\n }\n });\n !function(allowedParentDomains, domain) {\n if (!matchDomain(allowedParentDomains, domain)) throw new Error(\"Can not be rendered by domain: \" + domain);\n }(allowedParentDomains, parentDomain);\n markWindowKnown(parentComponentWindow);\n !function() {\n window.addEventListener(\"beforeunload\", (function() {\n checkClose.fireAndForget();\n }));\n window.addEventListener(\"unload\", (function() {\n checkClose.fireAndForget();\n }));\n onCloseWindow(parentComponentWindow, (function() {\n child_destroy();\n }));\n }();\n return parentInit({\n updateProps: updateProps,\n close: child_destroy\n });\n })).then((function() {\n return (_autoResize$width = autoResize.width, width = void 0 !== _autoResize$width && _autoResize$width, \n _autoResize$height = autoResize.height, height = void 0 !== _autoResize$height && _autoResize$height, \n _autoResize$element = autoResize.element, elementReady(void 0 === _autoResize$element ? \"body\" : _autoResize$element).catch(src_util_noop).then((function(element) {\n return {\n width: width,\n height: height,\n element: element\n };\n }))).then((function(_ref3) {\n var width = _ref3.width, height = _ref3.height, element = _ref3.element;\n element && (width || height) && context !== CONTEXT.POPUP && onResize(element, (function(_ref4) {\n resize({\n width: width ? _ref4.width : void 0,\n height: height ? _ref4.height : void 0\n });\n }), {\n width: width,\n height: height\n });\n }));\n var _autoResize$width, width, _autoResize$height, height, _autoResize$element;\n })).catch((function(err) {\n onError(err);\n }));\n },\n getProps: function() {\n if (props) return props;\n setProps(initialProps, parentDomain);\n return props;\n }\n };\n }(options);\n child.init();\n return child;\n }\n }));\n registerChild();\n !function() {\n var allowDelegateListener = on_on(\"zoid_allow_delegate_\" + name, (function() {\n return !0;\n }));\n var delegateListener = on_on(\"zoid_delegate_\" + name, (function(_ref2) {\n var _ref2$data = _ref2.data;\n return {\n parent: parentComponent({\n uid: _ref2$data.uid,\n options: options,\n overrides: _ref2$data.overrides,\n parentWin: _ref2.source\n })\n };\n }));\n cleanZoid.register(allowDelegateListener.cancel);\n cleanZoid.register(delegateListener.cancel);\n }();\n global.components = global.components || {};\n if (global.components[tag]) throw new Error(\"Can not register multiple components with the same tag: \" + tag);\n global.components[tag] = !0;\n return {\n init: function init(inputProps) {\n var instance;\n var uid = \"zoid-\" + tag + \"-\" + uniqueID();\n var props = inputProps || {};\n var _eligible = eligible({\n props: props\n }), eligibility = _eligible.eligible, reason = _eligible.reason;\n var onDestroy = props.onDestroy;\n props.onDestroy = function() {\n instance && eligibility && instances.splice(instances.indexOf(instance), 1);\n if (onDestroy) return onDestroy.apply(void 0, arguments);\n };\n var parent = parentComponent({\n uid: uid,\n options: options\n });\n parent.init();\n eligibility ? parent.setProps(props) : props.onDestroy && props.onDestroy();\n cleanInstances.register((function(err) {\n return parent.destroy(err || new Error(\"zoid destroyed all components\"));\n }));\n var clone = function(_temp) {\n var _ref4$decorate = (void 0 === _temp ? {} : _temp).decorate;\n return init((void 0 === _ref4$decorate ? identity : _ref4$decorate)(props));\n };\n var _render = function(target, container, context) {\n return promise_ZalgoPromise.try((function() {\n if (!eligibility) {\n var err = new Error(reason || name + \" component is not eligible\");\n return parent.destroy(err).then((function() {\n throw err;\n }));\n }\n if (!isWindow(target)) throw new Error(\"Must pass window to renderTo\");\n return function(props, context) {\n return promise_ZalgoPromise.try((function() {\n if (props.window) return setup_toProxyWindow(props.window).getType();\n if (context) {\n if (context !== CONTEXT.IFRAME && context !== CONTEXT.POPUP) throw new Error(\"Unrecognized context: \" + context);\n return context;\n }\n return defaultContext;\n }));\n }(props, context);\n })).then((function(finalContext) {\n container = function(context, container) {\n if (container) {\n if (\"string\" != typeof container && !isElement(container)) throw new TypeError(\"Expected string or element selector to be passed\");\n return container;\n }\n if (context === CONTEXT.POPUP) return \"body\";\n throw new Error(\"Expected element to be passed to render iframe\");\n }(finalContext, container);\n if (target !== window && \"string\" != typeof container) throw new Error(\"Must pass string element when rendering to another window\");\n return parent.render({\n target: target,\n container: container,\n context: finalContext,\n rerender: function() {\n var newInstance = clone();\n extend(instance, newInstance);\n return newInstance.renderTo(target, container, context);\n }\n });\n })).catch((function(err) {\n return parent.destroy(err).then((function() {\n throw err;\n }));\n }));\n };\n instance = _extends({}, parent.getExports(), parent.getHelpers(), function() {\n var childComponents = children();\n var result = {};\n var _loop2 = function(_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() {\n return eligibility;\n },\n clone: clone,\n render: function(container, context) {\n return _render(window, container, context);\n },\n renderTo: function(target, container, context) {\n return _render(target, container, context);\n }\n });\n eligibility && instances.push(instance);\n return instance;\n },\n instances: instances,\n driver: function(driverName, dep) {\n throw new Error(\"Driver support not enabled\");\n },\n isChild: isChild,\n canRenderTo: function(win) {\n return send_send(win, \"zoid_allow_delegate_\" + name).then((function(_ref3) {\n return _ref3.data;\n })).catch((function() {\n return !1;\n }));\n },\n registerChild: registerChild\n };\n }\n var component_create = function(options) {\n !function() {\n if (!global_getGlobal().initialized) {\n global_getGlobal().initialized = !0;\n on = (_ref3 = {\n on: on_on,\n send: send_send\n }).on, send = _ref3.send, (global = global_getGlobal()).receiveMessage = global.receiveMessage || function(message) {\n return receive_receiveMessage(message, {\n on: on,\n send: send\n });\n };\n !function(_ref5) {\n var on = _ref5.on, send = _ref5.send;\n globalStore().getOrSet(\"postMessageListener\", (function() {\n return addEventListener(window, \"message\", (function(event) {\n !function(event, _ref4) {\n var on = _ref4.on, send = _ref4.send;\n promise_ZalgoPromise.try((function() {\n var source = event.source || event.sourceElement;\n var origin = event.origin || event.originalEvent && event.originalEvent.origin;\n var data = event.data;\n \"null\" === origin && (origin = \"file://\");\n if (source) {\n if (!origin) throw new Error(\"Post message did not have origin domain\");\n receive_receiveMessage({\n source: source,\n origin: origin,\n data: data\n }, {\n on: on,\n send: send\n });\n }\n }));\n }(event, {\n on: on,\n send: send\n });\n }));\n }));\n }({\n on: on_on,\n send: send_send\n });\n setupBridge({\n on: on_on,\n send: send_send,\n receiveMessage: receive_receiveMessage\n });\n !function(_ref8) {\n var on = _ref8.on, send = _ref8.send;\n globalStore(\"builtinListeners\").getOrSet(\"helloListener\", (function() {\n var listener = on(\"postrobot_hello\", {\n domain: \"*\"\n }, (function(_ref3) {\n resolveHelloPromise(_ref3.source, {\n domain: _ref3.origin\n });\n return {\n instanceID: getInstanceID()\n };\n }));\n var parent = getAncestor();\n parent && sayHello(parent, {\n send: send\n }).catch((function(err) {}));\n return listener;\n }));\n }({\n on: on_on,\n send: send_send\n });\n }\n var _ref3, on, send, global;\n }();\n var comp = component(options);\n var init = function(props) {\n return comp.init(props);\n };\n init.driver = function(name, dep) {\n return comp.driver(name, dep);\n };\n init.isChild = function() {\n return comp.isChild();\n };\n init.canRenderTo = function(win) {\n return comp.canRenderTo(win);\n };\n init.instances = comp.instances;\n var child = comp.registerChild();\n child && (window.xprops = init.xprops = child.getProps());\n return init;\n };\n function destroyComponents(err) {\n src_bridge && src_bridge.destroyBridges();\n var destroyPromise = cleanInstances.all(err);\n cleanInstances = cleanup();\n return destroyPromise;\n }\n var destroyAll = destroyComponents;\n function component_destroy(err) {\n destroyAll();\n delete window.__zoid_9_0_86__;\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}));","/* @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}\n","/* eslint-disable no-restricted-properties */\nimport zoid from 'zoid';\n\n// Handle Local and Production URLs\nconst isProduction = process.env.NODE_ENV === 'production';\nconst BASE_URL = isProduction ? \"https://nextjs-zoid.vercel.app\" : \"http://localhost:3000\";\n\nconst Button = zoid.create({\n tag: 'button',\n // Dynamic URL\n url: () => {\n try {\n const scriptSrc = document.getElementById('widget-id')?.getAttribute('src')\n if(!scriptSrc) {\n throw new Error('No script source found')\n }\n return `${new URL(scriptSrc).origin}/zoid-button`\n } catch {\n return BASE_URL\n }\n },\n dimensions: {\n width: '120px',\n height: '0px'\n },\n autoResize: {\n width: false,\n height: true\n },\n props: {\n name: {\n type: 'string',\n required: false\n }\n }\n});\n\n// Attach to the global scope\nexport default Button;\n"],"names":["this","require$$1"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/apps/third-party-website/package.json b/apps/third-party-website/package.json index 688201c..39f2fa6 100644 --- a/apps/third-party-website/package.json +++ b/apps/third-party-website/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "build": "pnpm with-env next build", - "clean": "git clean -xdf .next .turbo node_modules", + "clean": "git clean -xdf .turbo .next .turbo node_modules", "dev": "pnpm with-env next dev -p 3001", "format": "prettier --check . --ignore-path ../../.gitignore", "lint": "eslint",