!function(root, factory) {
"object" == typeof exports && "object" == typeof module ? module.exports = factory() : "function" == typeof define && define.amd ? define("xcomponent", [], factory) : "object" == typeof exports ? exports.xcomponent = factory() : root.xcomponent = factory();
}(this, function() {
return function(modules) {
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;
}
var installedModules = {};
__webpack_require__.m = modules;
__webpack_require__.c = installedModules;
__webpack_require__.d = function(exports, name, getter) {
__webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
configurable: !1,
enumerable: !0,
get: getter
});
};
__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 Object.prototype.hasOwnProperty.call(object, property);
};
__webpack_require__.p = "";
return __webpack_require__(__webpack_require__.s = 36);
}([ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
function getActualDomain(win) {
var location = win.location;
if (!location) throw new Error("Can not read window location");
var protocol = location.protocol;
if (!protocol) throw new Error("Can not read window protocol");
if (protocol === CONSTANTS.FILE_PROTOCOL) return "file://";
var host = location.host;
if (!host) throw new Error("Can not read window host");
return protocol + "//" + host;
}
function getDomain(win) {
win = win || window;
var domain = getActualDomain(win);
return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;
}
function isBlankDomain(win) {
try {
if (!win.location.href) return !0;
if ("about:blank" === win.location.href) return !0;
} catch (err) {}
return !1;
}
function isActuallySameDomain(win) {
try {
var desc = Object.getOwnPropertyDescriptor(win, "location");
if (desc && !1 === desc.enumerable) return !1;
} catch (err) {}
try {
if (isBlankDomain(win)) return !0;
if (getActualDomain(win) === getActualDomain(window)) return !0;
} catch (err) {}
return !1;
}
function isSameDomain(win) {
if (!isActuallySameDomain(win)) return !1;
try {
if (isBlankDomain(win)) return !0;
if (getDomain(window) === getDomain(win)) return !0;
} catch (err) {}
return !1;
}
function getParent(win) {
if (win) try {
if (win.parent && win.parent !== win) return win.parent;
} catch (err) {
return;
}
}
function getOpener(win) {
if (win && !getParent(win)) try {
return win.opener;
} catch (err) {
return;
}
}
function getParents(win) {
var result = [];
try {
for (;win.parent !== win; ) {
result.push(win.parent);
win = win.parent;
}
} catch (err) {}
return result;
}
function isAncestorParent(parent, child) {
if (!parent || !child) return !1;
var childParent = getParent(child);
return childParent ? childParent === parent : -1 !== getParents(child).indexOf(parent);
}
function getFrames(win) {
var result = [], frames = void 0;
try {
frames = win.frames;
} catch (err) {
frames = win;
}
var len = void 0;
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) {
for (var result = [], _iterator = getFrames(win), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator](); ;) {
var _ref;
if (_isArray) {
if (_i2 >= _iterator.length) break;
_ref = _iterator[_i2++];
} else {
_i2 = _iterator.next();
if (_i2.done) break;
_ref = _i2.value;
}
var frame = _ref;
result.push(frame);
for (var _iterator2 = getAllChildFrames(frame), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator](); ;) {
var _ref2;
if (_isArray2) {
if (_i3 >= _iterator2.length) break;
_ref2 = _iterator2[_i3++];
} else {
_i3 = _iterator2.next();
if (_i3.done) break;
_ref2 = _i3.value;
}
var childFrame = _ref2;
result.push(childFrame);
}
}
return result;
}
function getTop(win) {
if (win) {
try {
if (win.top) return win.top;
} catch (err) {}
if (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 _iterator3 = getAllChildFrames(win), _isArray3 = Array.isArray(_iterator3), _i4 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator](); ;) {
var _ref3;
if (_isArray3) {
if (_i4 >= _iterator3.length) break;
_ref3 = _iterator3[_i4++];
} else {
_i4 = _iterator3.next();
if (_i4.done) break;
_ref3 = _i4.value;
}
var frame = _ref3;
try {
if (frame.top) return frame.top;
} catch (err) {}
if (getParent(frame) === frame) return frame;
}
}
}
function getAllFramesInWindow(win) {
var top = getTop(win);
return getAllChildFrames(top).concat(top);
}
function isTop(win) {
return win === getTop(win);
}
function isFrameWindowClosed(frame) {
if (!frame.contentWindow) return !0;
if (!frame.parentNode) return !0;
var doc = frame.ownerDocument;
return !(!doc || !doc.body || doc.body.contains(frame));
}
function safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) try {
if (collection[i] === item) return i;
} catch (err) {}
return -1;
}
function isWindowClosed(win) {
var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
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) {}
try {
Object(__WEBPACK_IMPORTED_MODULE_0__util__.b)(win === win);
} catch (err) {
return !0;
}
var iframeIndex = safeIndexOf(iframeWindows, win);
if (-1 !== iframeIndex) {
var frame = iframeFrames[iframeIndex];
if (frame && isFrameWindowClosed(frame)) return !0;
}
return !1;
}
function cleanIframes() {
for (var i = 0; i < iframeFrames.length; i++) if (isFrameWindowClosed(iframeFrames[i])) {
iframeFrames.splice(i, 1);
iframeWindows.splice(i, 1);
}
for (var _i5 = 0; _i5 < iframeWindows.length; _i5++) if (isWindowClosed(iframeWindows[_i5])) {
iframeFrames.splice(_i5, 1);
iframeWindows.splice(_i5, 1);
}
}
function linkFrameWindow(frame) {
cleanIframes();
if (frame && frame.contentWindow) try {
iframeWindows.push(frame.contentWindow);
iframeFrames.push(frame);
} catch (err) {}
}
function getFrameByName(win, name) {
for (var winFrames = getFrames(win), _iterator4 = winFrames, _isArray4 = Array.isArray(_iterator4), _i6 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator](); ;) {
var _ref4;
if (_isArray4) {
if (_i6 >= _iterator4.length) break;
_ref4 = _iterator4[_i6++];
} else {
_i6 = _iterator4.next();
if (_i6.done) break;
_ref4 = _i6.value;
}
var childFrame = _ref4;
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 findChildFrameByName(win, name) {
var frame = getFrameByName(win, name);
if (frame) return frame;
for (var _iterator5 = getFrames(win), _isArray5 = Array.isArray(_iterator5), _i7 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator](); ;) {
var _ref5;
if (_isArray5) {
if (_i7 >= _iterator5.length) break;
_ref5 = _iterator5[_i7++];
} else {
_i7 = _iterator5.next();
if (_i7.done) break;
_ref5 = _i7.value;
}
var childFrame = _ref5, namedFrame = findChildFrameByName(childFrame, name);
if (namedFrame) return namedFrame;
}
}
function findFrameByName(win, name) {
var frame = void 0;
frame = getFrameByName(win, name);
return frame || findChildFrameByName(getTop(win) || win, name);
}
function getAncestor(win) {
win = win || window;
var opener = getOpener(win);
if (opener) return opener;
var parent = getParent(win);
return parent || void 0;
}
function isAncestor(parent, child) {
var actualParent = getAncestor(child);
if (actualParent) return actualParent === parent;
if (child === parent) return !1;
if (getTop(child) === child) return !1;
for (var _iterator7 = getFrames(parent), _isArray7 = Array.isArray(_iterator7), _i9 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator](); ;) {
var _ref7;
if (_isArray7) {
if (_i9 >= _iterator7.length) break;
_ref7 = _iterator7[_i9++];
} else {
_i9 = _iterator7.next();
if (_i9.done) break;
_ref7 = _i9.value;
}
if (_ref7 === child) return !0;
}
return !1;
}
function isPopup() {
return Boolean(getOpener(window));
}
function isIframe() {
return Boolean(getParent(window));
}
function anyMatch(collection1, collection2) {
for (var _iterator8 = collection1, _isArray8 = Array.isArray(_iterator8), _i10 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator](); ;) {
var _ref8;
if (_isArray8) {
if (_i10 >= _iterator8.length) break;
_ref8 = _iterator8[_i10++];
} else {
_i10 = _iterator8.next();
if (_i10.done) break;
_ref8 = _i10.value;
}
for (var item1 = _ref8, _iterator9 = collection2, _isArray9 = Array.isArray(_iterator9), _i11 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator](); ;) {
var _ref9;
if (_isArray9) {
if (_i11 >= _iterator9.length) break;
_ref9 = _iterator9[_i11++];
} else {
_i11 = _iterator9.next();
if (_i11.done) break;
_ref9 = _i11.value;
}
if (item1 === _ref9) return !0;
}
}
return !1;
}
function getDistanceFromTop() {
for (var win = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window, distance = 0, parent = win; parent; ) {
parent = getParent(parent);
parent && (distance += 1);
}
return distance;
}
function getNthParent(win) {
for (var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, parent = win, i = 0; i < n; i++) {
if (!parent) return;
parent = getParent(parent);
}
return parent;
}
function getNthParentFromTop(win) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
return getNthParent(win, getDistanceFromTop(win) - n);
}
function isSameTopWindow(win1, win2) {
var top1 = getTop(win1) || win1, top2 = getTop(win2) || win2;
try {
if (top1 && top2) return top1 === top2;
} catch (err) {}
var allFrames1 = getAllFramesInWindow(win1), allFrames2 = getAllFramesInWindow(win2);
if (anyMatch(allFrames1, allFrames2)) return !0;
var opener1 = getOpener(top1), 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 === CONSTANTS.WILDCARD || origin === pattern;
if (Object(__WEBPACK_IMPORTED_MODULE_0__util__.a)(origin)) return !1;
if (Array.isArray(origin)) return !1;
}
return Object(__WEBPACK_IMPORTED_MODULE_0__util__.a)(pattern) ? Object(__WEBPACK_IMPORTED_MODULE_0__util__.a)(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !Object(__WEBPACK_IMPORTED_MODULE_0__util__.a)(origin) && pattern.some(function(subpattern) {
return matchDomain(subpattern, origin);
}));
}
function getDomainFromUrl(url) {
var domain = void 0;
if (!url.match(/^(https?|mock|file):\/\//)) return getDomain();
domain = url;
domain = domain.split("/").slice(0, 3).join("/");
return domain;
}
function onCloseWindow(win, callback) {
var delay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1e3, maxtime = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1 / 0, timeout = void 0;
!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]" === Object.prototype.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 {
Object(__WEBPACK_IMPORTED_MODULE_0__util__.b)(obj === obj);
} catch (err) {
return !0;
}
try {
Object(__WEBPACK_IMPORTED_MODULE_0__util__.b)(obj && obj.__cross_domain_utils_window_check__);
} catch (err) {
return !0;
}
return !1;
}
__webpack_exports__.b = getActualDomain;
__webpack_exports__.f = getDomain;
__webpack_exports__.l = isActuallySameDomain;
__webpack_exports__.p = isSameDomain;
__webpack_exports__.j = getParent;
__webpack_exports__.i = getOpener;
__webpack_exports__.k = getTop;
__webpack_exports__.c = getAllFramesInWindow;
__webpack_exports__.r = isTop;
__webpack_exports__.t = isWindowClosed;
__webpack_exports__.u = linkFrameWindow;
__webpack_exports__.a = findFrameByName;
__webpack_exports__.d = getAncestor;
__webpack_exports__.m = isAncestor;
__webpack_exports__.o = isPopup;
__webpack_exports__.n = isIframe;
__webpack_exports__.e = getDistanceFromTop;
__webpack_exports__.h = getNthParentFromTop;
__webpack_exports__.q = isSameTopWindow;
__webpack_exports__.v = matchDomain;
__webpack_exports__.g = getDomainFromUrl;
__webpack_exports__.w = onCloseWindow;
__webpack_exports__.s = isWindow;
var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(42), CONSTANTS = {
MOCK_PROTOCOL: "mock:",
FILE_PROTOCOL: "file:",
WILDCARD: "*"
}, IE_WIN_ACCESS_ERROR = "Call was rejected by callee.\r\n", iframeWindows = [], iframeFrames = [];
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var __WEBPACK_IMPORTED_MODULE_0__promise__ = __webpack_require__(37);
__webpack_require__.d(__webpack_exports__, "a", function() {
return __WEBPACK_IMPORTED_MODULE_0__promise__.a;
});
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
}
function _possibleConstructorReturn(self, call) {
if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !call || "object" != typeof call && "function" != typeof call ? self : call;
}
function _inherits(subClass, superClass) {
if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: !1,
writable: !0,
configurable: !0
}
});
superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);
}
__webpack_require__.d(__webpack_exports__, "a", function() {
return Component;
});
var _class, __WEBPACK_IMPORTED_MODULE_0_post_robot_src__ = __webpack_require__(6), __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__ = __webpack_require__(1), __WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__ = __webpack_require__(0), __WEBPACK_IMPORTED_MODULE_3__base__ = __webpack_require__(17), __WEBPACK_IMPORTED_MODULE_4__child__ = __webpack_require__(25), __WEBPACK_IMPORTED_MODULE_5__parent__ = __webpack_require__(10), __WEBPACK_IMPORTED_MODULE_6__delegate__ = __webpack_require__(68), __WEBPACK_IMPORTED_MODULE_7__props__ = __webpack_require__(12), __WEBPACK_IMPORTED_MODULE_8__window__ = __webpack_require__(21), __WEBPACK_IMPORTED_MODULE_9__constants__ = __webpack_require__(5), __WEBPACK_IMPORTED_MODULE_10__validate__ = __webpack_require__(69), __WEBPACK_IMPORTED_MODULE_11__templates__ = __webpack_require__(70), __WEBPACK_IMPORTED_MODULE_12__drivers__ = __webpack_require__(73), __WEBPACK_IMPORTED_MODULE_13__lib__ = __webpack_require__(3), _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
return typeof obj;
} : function(obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
}, Component = (_class = function(_BaseComponent) {
function Component(options) {
_classCallCheck(this, Component);
var _this = _possibleConstructorReturn(this, _BaseComponent.call(this));
Object(__WEBPACK_IMPORTED_MODULE_10__validate__.a)(options);
_this.addProp(options, "tag");
_this.addProp(options, "defaultLogLevel", "info");
_this.addProp(options, "allowedParentDomains", __WEBPACK_IMPORTED_MODULE_9__constants__.WILDCARD);
Object(__WEBPACK_IMPORTED_MODULE_13__lib__.Q)(_this.defaultLogLevel);
if (Component.components[_this.tag]) throw new Error("Can not register multiple components with the same tag");
_this.addProp(options, "name", _this.tag.replace(/-/g, "_"));
_this.builtinProps = Object(__WEBPACK_IMPORTED_MODULE_7__props__.a)();
_this.props = options.props || {};
options.props || (_this.looseProps = !0);
_this.addProp(options, "dimensions");
_this.addProp(options, "scrolling");
_this.addProp(options, "version", "latest");
_this.addProp(options, "defaultEnv");
_this.addProp(options, "buildUrl");
_this.addProp(options, "url");
_this.addProp(options, "domain");
_this.addProp(options, "bridgeUrl");
_this.addProp(options, "bridgeDomain");
_this.addProp(options, "contexts", {
iframe: !0,
popup: !1
});
_this.addProp(options, "defaultContext");
_this.addProp(options, "autoResize", !1);
_this.addProp(options, "containerTemplate", __WEBPACK_IMPORTED_MODULE_11__templates__.a);
_this.addProp(options, "prerenderTemplate", __WEBPACK_IMPORTED_MODULE_11__templates__.b);
_this.addProp(options, "validate");
Component.components[_this.tag] = _this;
_this.registerDrivers();
_this.registerChild();
_this.listenDelegate();
return _this;
}
_inherits(Component, _BaseComponent);
Component.prototype.getPropNames = function() {
for (var props = Object.keys(this.props), _iterator = Object.keys(this.builtinProps), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator](); ;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var key = _ref;
-1 === props.indexOf(key) && props.push(key);
}
return props;
};
Component.prototype.getProp = function(name) {
return this.props[name] || this.builtinProps[name];
};
Component.prototype.registerDrivers = function() {
this.driverCache = {};
for (var _iterator2 = Object.keys(__WEBPACK_IMPORTED_MODULE_12__drivers__), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator](); ;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var driverName = _ref2;
if (0 !== driverName.indexOf("_")) {
var driver = __WEBPACK_IMPORTED_MODULE_12__drivers__[driverName], glob = driver.global();
glob && this.driver(driverName, glob);
}
}
};
Component.prototype.driver = function(name, dep) {
if (!__WEBPACK_IMPORTED_MODULE_12__drivers__[name]) throw new Error("Could not find driver for framework: " + name);
this.driverCache[name] || (this.driverCache[name] = __WEBPACK_IMPORTED_MODULE_12__drivers__[name].register(this, dep));
return this.driverCache[name];
};
Component.prototype.registerChild = function() {
if (Object(__WEBPACK_IMPORTED_MODULE_8__window__.f)()) {
if (Object(__WEBPACK_IMPORTED_MODULE_8__window__.b)().tag === this.tag) {
window.xchild = new __WEBPACK_IMPORTED_MODULE_4__child__.a(this);
window.xprops = window.xchild.props;
}
}
};
Component.prototype.listenDelegate = function() {
var _this2 = this;
Object(__WEBPACK_IMPORTED_MODULE_0_post_robot_src__.on)(__WEBPACK_IMPORTED_MODULE_9__constants__.POST_MESSAGE.DELEGATE + "_" + this.name, function(_ref3) {
var source = _ref3.source, origin = _ref3.origin, data = _ref3.data, domain = _this2.getDomain(null, data.env || _this2.defaultEnv);
if (!domain) throw new Error("Could not determine domain to allow remote render");
if (!Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.v)(domain, origin)) throw new Error("Can not render from " + origin + " - expected " + domain.toString());
var delegate = _this2.delegate(source, data.options);
return {
overrides: delegate.getOverrides(data.context),
destroy: function() {
return delegate.destroy();
}
};
});
};
Component.prototype.getValidDomain = function(url) {
if (url) {
var domain = Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.g)(url);
if ("string" == typeof this.domain && domain === this.domain) return domain;
if (this.domain && "object" === _typeof(this.domain)) for (var _iterator3 = Object.keys(this.domain), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator](); ;) {
var _ref4;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref4 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref4 = _i3.value;
}
var env = _ref4;
if ("test" !== env && domain === this.domain[env]) return domain;
}
}
};
Component.prototype.getDomain = function(url, env) {
var domain = this.getForEnv(this.domain, env);
if (domain) return domain;
domain = this.getValidDomain(url);
if (domain) return domain;
var envUrl = this.getForEnv(this.url, env);
return envUrl ? Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.g)(envUrl) : url ? Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.g)(url) : void 0;
};
Component.prototype.getBridgeUrl = function(env) {
return this.getForEnv(this.bridgeUrl, env);
};
Component.prototype.getForEnv = function(item, env) {
if (item) {
if ("string" == typeof item || item instanceof RegExp) return item;
env || (env = this.defaultEnv);
if (env) return env && "object" === (void 0 === item ? "undefined" : _typeof(item)) && item[env] ? item[env] : void 0;
}
};
Component.prototype.getBridgeDomain = function(env) {
var bridgeDomain = this.getForEnv(this.bridgeDomain, env);
if (bridgeDomain) return bridgeDomain;
var bridgeUrl = this.getBridgeUrl(env);
return bridgeUrl ? Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.g)(bridgeUrl) : void 0;
};
Component.prototype.getUrl = function(env, props) {
var url = this.getForEnv(this.url, env);
return url || (this.buildUrl ? this.buildUrl(props) : void 0);
};
Component.prototype.isXComponent = function() {
return Object(__WEBPACK_IMPORTED_MODULE_8__window__.f)();
};
Component.prototype.isChild = function() {
return Object(__WEBPACK_IMPORTED_MODULE_8__window__.f)() && Object(__WEBPACK_IMPORTED_MODULE_8__window__.b)().tag === this.tag;
};
Component.prototype.createError = function(message, tag) {
return new Error("[" + (tag || this.tag) + "] " + message);
};
Component.prototype.init = function(props, context, element) {
context = this.getRenderContext(element);
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(this, context, {
props: props
});
};
Component.prototype.delegate = function(source, options) {
return new __WEBPACK_IMPORTED_MODULE_6__delegate__.a(this, source, options);
};
Component.prototype.validateRenderContext = function(context) {
if (!this.contexts[context]) throw new Error("[" + this.tag + "] Can not render to " + context);
};
Component.prototype.getRenderContext = function(element) {
if (element) {
this.validateRenderContext(__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME);
return __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME;
}
if (this.defaultContext) return this.defaultContext;
if (this.contexts[__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME]) return __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME;
if (this.contexts[__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.POPUP]) return __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.POPUP;
throw new Error("[" + this.tag + "] No context options available for render");
};
Component.prototype.render = function(props, element) {
var _this3 = this;
return __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__.a.try(function() {
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(_this3, _this3.getRenderContext(element), {
props: props
}).render(element || document.body);
});
};
Component.prototype.renderIframe = function(props) {
var _this4 = this, element = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : document.body;
return __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__.a.try(function() {
if (!element) throw new Error("Expected element to be passed");
_this4.validateRenderContext(__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME);
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(_this4, __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME, {
props: props
}).render(element);
});
};
Component.prototype.renderPopup = function(props) {
var _this5 = this;
return __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__.a.try(function() {
_this5.validateRenderContext(__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.POPUP);
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(_this5, __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.POPUP, {
props: props
}).render();
});
};
Component.prototype.renderTo = function(win, props, element) {
var _this6 = this;
return __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__.a.try(function() {
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(_this6, _this6.getRenderContext(element), {
props: props
}).renderTo(win, element);
});
};
Component.prototype.renderIframeTo = function(win, props, element) {
var _this7 = this;
return __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__.a.try(function() {
_this7.validateRenderContext(__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME);
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(_this7, __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.IFRAME, {
props: props
}).renderTo(win, element);
});
};
Component.prototype.renderPopupTo = function(win, props) {
var _this8 = this;
return __WEBPACK_IMPORTED_MODULE_1_zalgo_promise_src__.a.try(function() {
_this8.validateRenderContext(__WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.POPUP);
return new __WEBPACK_IMPORTED_MODULE_5__parent__.a(_this8, __WEBPACK_IMPORTED_MODULE_9__constants__.CONTEXT_TYPES.POPUP, {
props: props
}).renderTo(win);
});
};
Component.prototype.prerender = function(props, element) {
var instance = new __WEBPACK_IMPORTED_MODULE_5__parent__.a(this, this.getRenderContext(element), {
props: props
});
instance.prefetch();
return {
render: function(innerProps, innerElement) {
innerProps && instance.updateProps(innerProps);
return instance.render(innerElement);
},
renderTo: function(win, innerProps, innerElement) {
innerProps && instance.updateProps(innerProps);
return instance.renderTo(win, innerElement);
},
get html() {
return instance.html;
},
set html(value) {
instance.html = value;
}
};
};
Component.prototype.log = function(event) {
var payload = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
Object(__WEBPACK_IMPORTED_MODULE_13__lib__.C)(this.name, event, payload);
};
Component.prototype.logWarning = function(event, payload) {
Object(__WEBPACK_IMPORTED_MODULE_13__lib__._0)(this.name, event, payload);
};
Component.prototype.logError = function(event, payload) {
Object(__WEBPACK_IMPORTED_MODULE_13__lib__.r)(this.name, event, payload);
};
Component.getByTag = function(tag) {
return Component.components[tag];
};
return Component;
}(__WEBPACK_IMPORTED_MODULE_3__base__.a), function(target, property, decorators, descriptor, context) {
var desc = {};
Object.keys(descriptor).forEach(function(key) {
desc[key] = descriptor[key];
});
desc.enumerable = !!desc.enumerable;
desc.configurable = !!desc.configurable;
("value" in desc || desc.initializer) && (desc.writable = !0);
desc = decorators.slice().reverse().reduce(function(desc, decorator) {
return decorator(target, property, desc) || desc;
}, desc);
if (context && void 0 !== desc.initializer) {
desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
desc.initializer = void 0;
}
if (void 0 === desc.initializer) {
Object.defineProperty(target, property, desc);
desc = null;
}
return desc;
}(_class.prototype, "getPropNames", [ __WEBPACK_IMPORTED_MODULE_13__lib__.G ], Object.getOwnPropertyDescriptor(_class.prototype, "getPropNames"), _class.prototype),
_class);
Component.components = {};
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var __WEBPACK_IMPORTED_MODULE_0__dom__ = __webpack_require__(56);
__webpack_require__.d(__webpack_exports__, "a", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.a;
});
__webpack_require__.d(__webpack_exports__, "b", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.b;
});
__webpack_require__.d(__webpack_exports__, "c", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.c;
});
__webpack_require__.d(__webpack_exports__, "d", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.d;
});
__webpack_require__.d(__webpack_exports__, "e", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.e;
});
__webpack_require__.d(__webpack_exports__, "f", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.f;
});
__webpack_require__.d(__webpack_exports__, "l", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.g;
});
__webpack_require__.d(__webpack_exports__, "m", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.h;
});
__webpack_require__.d(__webpack_exports__, "n", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.i;
});
__webpack_require__.d(__webpack_exports__, "p", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.j;
});
__webpack_require__.d(__webpack_exports__, "q", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.k;
});
__webpack_require__.d(__webpack_exports__, "u", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.l;
});
__webpack_require__.d(__webpack_exports__, "w", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.m;
});
__webpack_require__.d(__webpack_exports__, "x", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.n;
});
__webpack_require__.d(__webpack_exports__, "A", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.o;
});
__webpack_require__.d(__webpack_exports__, "B", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.p;
});
__webpack_require__.d(__webpack_exports__, "F", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.q;
});
__webpack_require__.d(__webpack_exports__, "J", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.r;
});
__webpack_require__.d(__webpack_exports__, "L", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.s;
});
__webpack_require__.d(__webpack_exports__, "N", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.t;
});
__webpack_require__.d(__webpack_exports__, "R", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.u;
});
__webpack_require__.d(__webpack_exports__, "S", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.v;
});
__webpack_require__.d(__webpack_exports__, "T", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.w;
});
__webpack_require__.d(__webpack_exports__, "X", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.x;
});
__webpack_require__.d(__webpack_exports__, "_1", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.y;
});
__webpack_require__.d(__webpack_exports__, "_2", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.z;
});
__webpack_require__.d(__webpack_exports__, "_3", function() {
return __WEBPACK_IMPORTED_MODULE_0__dom__.A;
});
var __WEBPACK_IMPORTED_MODULE_1__fn__ = __webpack_require__(31);
__webpack_require__.d(__webpack_exports__, "k", function() {
return __WEBPACK_IMPORTED_MODULE_1__fn__.b;
});
__webpack_require__.d(__webpack_exports__, "G", function() {
return __WEBPACK_IMPORTED_MODULE_1__fn__.c;
});
__webpack_require__.d(__webpack_exports__, "I", function() {
return __WEBPACK_IMPORTED_MODULE_1__fn__.d;
});
__webpack_require__.d(__webpack_exports__, "K", function() {
return __WEBPACK_IMPORTED_MODULE_1__fn__.e;
});
__webpack_require__.d(__webpack_exports__, "P", function() {
return __WEBPACK_IMPORTED_MODULE_1__fn__.f;
});
var __WEBPACK_IMPORTED_MODULE_2__promise__ = __webpack_require__(57);
__webpack_require__.d(__webpack_exports__, "h", function() {
return __WEBPACK_IMPORTED_MODULE_2__promise__.a;
});
__webpack_require__.d(__webpack_exports__, "j", function() {
return __WEBPACK_IMPORTED_MODULE_2__promise__.b;
});
__webpack_require__.d(__webpack_exports__, "M", function() {
return __WEBPACK_IMPORTED_MODULE_2__promise__.c;
});
var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(23);
__webpack_require__.d(__webpack_exports__, "g", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.b;
});
__webpack_require__.d(__webpack_exports__, "i", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.c;
});
__webpack_require__.d(__webpack_exports__, "o", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.d;
});
__webpack_require__.d(__webpack_exports__, "s", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.e;
});
__webpack_require__.d(__webpack_exports__, "t", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.f;
});
__webpack_require__.d(__webpack_exports__, "v", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.g;
});
__webpack_require__.d(__webpack_exports__, "O", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.i;
});
__webpack_require__.d(__webpack_exports__, "U", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.k;
});
__webpack_require__.d(__webpack_exports__, "V", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.l;
});
__webpack_require__.d(__webpack_exports__, "Y", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.m;
});
__webpack_require__.d(__webpack_exports__, "Z", function() {
return __WEBPACK_IMPORTED_MODULE_3__util__.o;
});
var __WEBPACK_IMPORTED_MODULE_4__css__ = __webpack_require__(58);
__webpack_require__.d(__webpack_exports__, "D", function() {
return __WEBPACK_IMPORTED_MODULE_4__css__.a;
});
__webpack_require__.d(__webpack_exports__, "E", function() {
return __WEBPACK_IMPORTED_MODULE_4__css__.b;
});
__webpack_require__.d(__webpack_exports__, "W", function() {
return __WEBPACK_IMPORTED_MODULE_4__css__.c;
});
var __WEBPACK_IMPORTED_MODULE_5__decorators__ = __webpack_require__(59);
__webpack_require__.d(__webpack_exports__, "H", function() {
return __WEBPACK_IMPORTED_MODULE_5__decorators__.a;
});
var __WEBPACK_IMPORTED_MODULE_6__logger__ = __webpack_require__(60);
__webpack_require__.d(__webpack_exports__, "r", function() {
return __WEBPACK_IMPORTED_MODULE_6__logger__.a;
});
__webpack_require__.d(__webpack_exports__, "C", function() {
return __WEBPACK_IMPORTED_MODULE_6__logger__.b;
});
__webpack_require__.d(__webpack_exports__, "Q", function() {
return __WEBPACK_IMPORTED_MODULE_6__logger__.c;
});
__webpack_require__.d(__webpack_exports__, "_0", function() {
return __WEBPACK_IMPORTED_MODULE_6__logger__.d;
});
var __WEBPACK_IMPORTED_MODULE_7__global__ = __webpack_require__(63);
__webpack_require__.d(__webpack_exports__, "y", function() {
return __WEBPACK_IMPORTED_MODULE_7__global__.a;
});
__webpack_require__.d(__webpack_exports__, "z", function() {
return __WEBPACK_IMPORTED_MODULE_7__global__.b;
});
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var __WEBPACK_IMPORTED_MODULE_0__config__ = __webpack_require__(45);
__webpack_require__.d(__webpack_exports__, "a", function() {
return __WEBPACK_IMPORTED_MODULE_0__config__.a;
});
var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(28);
__webpack_require__.d(__webpack_exports__, "b", function() {
return __WEBPACK_IMPORTED_MODULE_1__constants__.a;
});
__webpack_require__.d(__webpack_exports__, "c", function() {
return __WEBPACK_IMPORTED_MODULE_1__constants__.b;
});
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", {
value: !0
});
__webpack_require__.d(__webpack_exports__, "XCOMPONENT", function() {
return XCOMPONENT;
});
__webpack_require__.d(__webpack_exports__, "__XCOMPONENT__", function() {
return __XCOMPONENT__;
});
__webpack_require__.d(__webpack_exports__, "POST_MESSAGE", function() {
return POST_MESSAGE;
});
__webpack_require__.d(__webpack_exports__, "PROP_TYPES", function() {
return PROP_TYPES;
});
__webpack_require__.d(__webpack_exports__, "INITIAL_PROPS", function() {
return INITIAL_PROPS;
});
__webpack_require__.d(__webpack_exports__, "WINDOW_REFERENCES", function() {
return WINDOW_REFERENCES;
});
__webpack_require__.d(__webpack_exports__, "PROP_TYPES_LIST", function() {
return PROP_TYPES_LIST;
});
__webpack_require__.d(__webpack_exports__, "CONTEXT_TYPES", function() {
return CONTEXT_TYPES;
});
__webpack_require__.d(__webpack_exports__, "CLASS_NAMES", function() {
return CLASS_NAMES;
});
__webpack_require__.d(__webpack_exports__, "EVENTS", function() {
return EVENTS;
});
__webpack_require__.d(__webpack_exports__, "ATTRIBUTES", function() {
return ATTRIBUTES;
});
__webpack_require__.d(__webpack_exports__, "ANIMATION_NAMES", function() {
return ANIMATION_NAMES;
});
__webpack_require__.d(__webpack_exports__, "EVENT_NAMES", function() {
return EVENT_NAMES;
});
__webpack_require__.d(__webpack_exports__, "CLOSE_REASONS", function() {
return CLOSE_REASONS;
});
__webpack_require__.d(__webpack_exports__, "CONTEXT_TYPES_LIST", function() {
return CONTEXT_TYPES_LIST;
});
__webpack_require__.d(__webpack_exports__, "DELEGATE", function() {
return DELEGATE;
});
__webpack_require__.d(__webpack_exports__, "WILDCARD", function() {
return WILDCARD;
});
__webpack_require__.d(__webpack_exports__, "DEFAULT_DIMENSIONS", function() {
return DEFAULT_DIMENSIONS;
});
var __WEBPACK_IMPORTED_MODULE_0__lib__ = __webpack_require__(3), XCOMPONENT = "xcomponent", __XCOMPONENT__ = "__" + XCOMPONENT + "__", POST_MESSAGE = {
INIT: XCOMPONENT + "_init",
PROPS: XCOMPONENT + "_props",
PROP_CALLBACK: XCOMPONENT + "_prop_callback",
CLOSE: XCOMPONENT + "_close",
CHECK_CLOSE: XCOMPONENT + "_check_close",
REDIRECT: XCOMPONENT + "_redirect",
RESIZE: XCOMPONENT + "_resize",
ONRESIZE: XCOMPONENT + "_onresize",
DELEGATE: XCOMPONENT + "_delegate",
ERROR: XCOMPONENT + "_error",
HIDE: XCOMPONENT + "_hide",
SHOW: XCOMPONENT + "_show"
}, PROP_TYPES = {
STRING: "string",
OBJECT: "object",
FUNCTION: "function",
BOOLEAN: "boolean",
NUMBER: "number"
}, INITIAL_PROPS = {
RAW: "raw",
UID: "uid"
}, WINDOW_REFERENCES = {
OPENER: "opener",
TOP: "top",
PARENT: "parent",
GLOBAL: "global"
}, PROP_TYPES_LIST = Object(__WEBPACK_IMPORTED_MODULE_0__lib__.Z)(PROP_TYPES), CONTEXT_TYPES = {
IFRAME: "iframe",
POPUP: "popup"
}, CLASS_NAMES = {
XCOMPONENT: "" + XCOMPONENT,
OUTLET: XCOMPONENT + "-outlet",
COMPONENT_FRAME: XCOMPONENT + "-component-frame",
PRERENDER_FRAME: XCOMPONENT + "-prerender-frame",
VISIBLE: XCOMPONENT + "-visible",
INVISIBLE: XCOMPONENT + "-invisible"
}, EVENTS = {
CLOSE: XCOMPONENT + "-close"
}, ATTRIBUTES = {
IFRAME_PLACEHOLDER: "data-xcomponent-" + XCOMPONENT + "-placeholder"
}, ANIMATION_NAMES = {
SHOW_CONTAINER: XCOMPONENT + "-show-container",
SHOW_COMPONENT: XCOMPONENT + "-show-component",
HIDE_CONTAINER: XCOMPONENT + "-hide-container",
HIDE_COMPONENT: XCOMPONENT + "-hide-component"
}, EVENT_NAMES = {
CLICK: "click"
}, CLOSE_REASONS = {
PARENT_CALL: "parent_call",
CHILD_CALL: "child_call",
CLOSE_DETECTED: "close_detected",
USER_CLOSED: "user_closed",
PARENT_CLOSE_DETECTED: "parent_close_detected"
}, CONTEXT_TYPES_LIST = Object(__WEBPACK_IMPORTED_MODULE_0__lib__.Z)(CONTEXT_TYPES), DELEGATE = {
CALL_ORIGINAL: "call_original",
CALL_DELEGATE: "call_delegate"
}, WILDCARD = "*", DEFAULT_DIMENSIONS = {
WIDTH: 300,
HEIGHT: 150
};
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", {
value: !0
});
var __WEBPACK_IMPORTED_MODULE_0__interface__ = __webpack_require__(15);
__webpack_require__.d(__webpack_exports__, "cleanUpWindow", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.cleanUpWindow;
});
__webpack_require__.d(__webpack_exports__, "init", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.init;
});
__webpack_require__.d(__webpack_exports__, "bridge", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.bridge;
});
__webpack_require__.d(__webpack_exports__, "Promise", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.Promise;
});
__webpack_require__.d(__webpack_exports__, "parent", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.parent;
});
__webpack_require__.d(__webpack_exports__, "send", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.send;
});
__webpack_require__.d(__webpack_exports__, "request", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.request;
});
__webpack_require__.d(__webpack_exports__, "sendToParent", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.sendToParent;
});
__webpack_require__.d(__webpack_exports__, "client", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.client;
});
__webpack_require__.d(__webpack_exports__, "on", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.on;
});
__webpack_require__.d(__webpack_exports__, "listen", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.listen;
});
__webpack_require__.d(__webpack_exports__, "once", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.once;
});
__webpack_require__.d(__webpack_exports__, "listener", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.listener;
});
__webpack_require__.d(__webpack_exports__, "CONFIG", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.CONFIG;
});
__webpack_require__.d(__webpack_exports__, "CONSTANTS", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.CONSTANTS;
});
__webpack_require__.d(__webpack_exports__, "disable", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.disable;
});
__webpack_exports__.default = __WEBPACK_IMPORTED_MODULE_0__interface__;
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(16);
__webpack_require__.d(__webpack_exports__, "a", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.a;
});
__webpack_require__.d(__webpack_exports__, "c", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.b;
});
__webpack_require__.d(__webpack_exports__, "e", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.c;
});
__webpack_require__.d(__webpack_exports__, "f", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.d;
});
__webpack_require__.d(__webpack_exports__, "g", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.e;
});
__webpack_require__.d(__webpack_exports__, "j", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.f;
});
__webpack_require__.d(__webpack_exports__, "l", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.g;
});
__webpack_require__.d(__webpack_exports__, "m", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.i;
});
__webpack_require__.d(__webpack_exports__, "o", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.j;
});
__webpack_require__.d(__webpack_exports__, "p", function() {
return __WEBPACK_IMPORTED_MODULE_0__util__.k;
});
var __WEBPACK_IMPORTED_MODULE_1__log__ = __webpack_require__(22);
__webpack_require__.d(__webpack_exports__, "i", function() {
return __WEBPACK_IMPORTED_MODULE_1__log__.a;
});
var __WEBPACK_IMPORTED_MODULE_2__serialize__ = __webpack_require__(46);
__webpack_require__.d(__webpack_exports__, "b", function() {
return __WEBPACK_IMPORTED_MODULE_2__serialize__.a;
});
__webpack_require__.d(__webpack_exports__, "h", function() {
return __WEBPACK_IMPORTED_MODULE_2__serialize__.b;
});
__webpack_require__.d(__webpack_exports__, "n", function() {
return __WEBPACK_IMPORTED_MODULE_2__serialize__.c;
});
var __WEBPACK_IMPORTED_MODULE_3__ready__ = __webpack_require__(47);
__webpack_require__.d(__webpack_exports__, "d", function() {
return __WEBPACK_IMPORTED_MODULE_3__ready__.a;
});
__webpack_require__.d(__webpack_exports__, "k", function() {
return __WEBPACK_IMPORTED_MODULE_3__ready__.b;
});
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var __WEBPACK_IMPORTED_MODULE_0__interface__ = __webpack_require__(27);
__webpack_require__.d(__webpack_exports__, "a", function() {
return __WEBPACK_IMPORTED_MODULE_0__interface__.WeakMap;
});
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.d(__webpack_exports__, "a", function() {
return global;
});
var __WEBPACK_IMPORTED_MODULE_0__conf__ = __webpack_require__(4), global = window[__WEBPACK_IMPORTED_MODULE_0__conf__.b.WINDOW_PROPS.POSTROBOT] = window[__WEBPACK_IMPORTED_MODULE_0__conf__.b.WINDOW_PROPS.POSTROBOT] || {};
global.registerSelf = function() {};
}, function(module, __webpack_exports__, __webpack_require__) {
"use strict";
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
}
function _possibleConstructorReturn(self, call) {
if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !call || "object" != typeof call && "function" != typeof call ? self : call;
}
function _inherits(subClass, superClass) {
if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: !1,
writable: !0,
configurable: !0
}
});
superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);
}
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
var desc = {};
Object.keys(descriptor).forEach(function(key) {
desc[key] = descriptor[key];
});
desc.enumerable = !!desc.enumerable;
desc.configurable = !!desc.configurable;
("value" in desc || desc.initializer) && (desc.writable = !0);
desc = decorators.slice().reverse().reduce(function(desc, decorator) {
return decorator(target, property, desc) || desc;
}, desc);
if (context && void 0 !== desc.initializer) {
desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
desc.initializer = void 0;
}
if (void 0 === desc.initializer) {
Object.defineProperty(target, property, desc);
desc = null;
}
return desc;
}
__webpack_require__.d(__webpack_exports__, "a", function() {
return ParentComponent;
});
var _class, __WEBPACK_IMPORTED_MODULE_0_beaver_logger_client__ = __webpack_require__(24), __WEBPACK_IMPORTED_MODULE_1_post_robot_src__ = __webpack_require__(6), __WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__ = __webpack_require__(0), __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__ = __webpack_require__(1), __WEBPACK_IMPORTED_MODULE_4__base__ = __webpack_require__(17), __WEBPACK_IMPORTED_MODULE_5__window__ = __webpack_require__(21), __WEBPACK_IMPORTED_MODULE_6__lib__ = __webpack_require__(3), __WEBPACK_IMPORTED_MODULE_7__constants__ = __webpack_require__(5), __WEBPACK_IMPORTED_MODULE_8__drivers__ = __webpack_require__(34), __WEBPACK_IMPORTED_MODULE_9__validate__ = __webpack_require__(67), __WEBPACK_IMPORTED_MODULE_10__props__ = __webpack_require__(35), __WEBPACK_IMPORTED_MODULE_11__error__ = __webpack_require__(13), _extends = (__webpack_require__(2),
__webpack_require__(12), __webpack_require__(25), Object.assign || function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
}
return target;
}), _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
return typeof obj;
} : function(obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
}, _createClass = function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || !1;
descriptor.configurable = !0;
"value" in descriptor && (descriptor.writable = !0);
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function(Constructor, protoProps, staticProps) {
protoProps && defineProperties(Constructor.prototype, protoProps);
staticProps && defineProperties(Constructor, staticProps);
return Constructor;
};
}();
__WEBPACK_IMPORTED_MODULE_6__lib__.y.props = __WEBPACK_IMPORTED_MODULE_6__lib__.y.props || {};
__WEBPACK_IMPORTED_MODULE_6__lib__.y.windows = __WEBPACK_IMPORTED_MODULE_6__lib__.y.windows || {};
var ParentComponent = (_class = function(_BaseComponent) {
function ParentComponent(component, context, _ref) {
var props = _ref.props;
_classCallCheck(this, ParentComponent);
var _this = _possibleConstructorReturn(this, _BaseComponent.call(this));
_this.component = component;
_this.validateParentDomain();
_this.context = context;
_this.setProps(props);
_this.props.logLevel && Object(__WEBPACK_IMPORTED_MODULE_6__lib__.Q)(_this.props.logLevel);
_this.childWindowName = _this.buildChildWindowName({
renderTo: window
});
_this.registerActiveComponent();
_this.component.log("construct_parent");
_this.watchForUnload();
_this.onInit = new __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a();
_this.clean.register(function() {
_this.onInit = new __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a();
});
_this.onInit.catch(function(err) {
return _this.error(err);
});
return _this;
}
_inherits(ParentComponent, _BaseComponent);
ParentComponent.prototype.render = function(element) {
var _this2 = this, loadUrl = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
return this.tryInit(function() {
_this2.component.log("render_" + _this2.context, {
context: _this2.context,
element: element,
loadUrl: Object(__WEBPACK_IMPORTED_MODULE_6__lib__.U)(loadUrl)
});
var tasks = {};
tasks.onRender = _this2.props.onRender();
tasks.getDomain = _this2.getDomain();
tasks.elementReady = __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.try(function() {
if (element) return _this2.elementReady(element);
});
tasks.openContainer = tasks.elementReady.then(function() {
return _this2.openContainer(element);
});
tasks.showContainer = tasks.openContainer.then(function() {
return _this2.showContainer();
});
tasks.openPrerender = tasks.openContainer.then(function() {
return _this2.openPrerender();
});
tasks.switchPrerender = __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.all([ tasks.openPrerender, _this2.onInit ]).then(function() {
return _this2.switchPrerender();
});
tasks.open = _this2.driver.openOnClick ? _this2.open() : tasks.openContainer.then(function() {
return _this2.open();
});
tasks.listen = __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.all([ tasks.getDomain, tasks.open ]).then(function(_ref2) {
var domain = _ref2[0];
_this2.listen(_this2.window, domain);
});
tasks.watchForClose = tasks.open.then(function() {
return _this2.watchForClose();
});
tasks.linkDomain = __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.all([ tasks.getDomain, tasks.open ]).then(function(_ref3) {
var domain = _ref3[0];
if (__WEBPACK_IMPORTED_MODULE_1_post_robot_src__.bridge && "string" == typeof domain) return __WEBPACK_IMPORTED_MODULE_1_post_robot_src__.bridge.linkUrl(_this2.window, domain);
});
if (!_this2.html) {
tasks.createPrerenderTemplate = tasks.openPrerender.then(function() {
return _this2.createPrerenderTemplate();
});
tasks.showComponent = tasks.createPrerenderTemplate.then(function() {
return _this2.showComponent();
});
}
tasks.openBridge = tasks.open.then(function() {
return _this2.openBridge();
});
if (_this2.html) tasks.loadHTML = tasks.open.then(function() {
return _this2.loadHTML();
}); else if (loadUrl) {
tasks.buildUrl = _this2.buildUrl();
tasks.loadUrl = __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.all([ tasks.buildUrl, tasks.open, tasks.linkDomain, tasks.listen, tasks.open, tasks.openBridge, tasks.createPrerenderTemplate ]).then(function(_ref4) {
var url = _ref4[0];
return _this2.loadUrl(url);
});
tasks.runTimeout = tasks.loadUrl.then(function() {
return _this2.runTimeout();
});
}
return __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.hash(tasks);
}).then(function() {
return _this2.props.onEnter();
});
};
ParentComponent.prototype.getOutlet = function() {
this.outlet = document.createElement("div");
Object(__WEBPACK_IMPORTED_MODULE_6__lib__.a)(this.outlet, __WEBPACK_IMPORTED_MODULE_7__constants__.CLASS_NAMES.OUTLET);
return this.outlet;
};
ParentComponent.prototype.validateParentDomain = function() {
var domain = Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.f)();
if (!Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.v)(this.component.allowedParentDomains, domain)) throw new __WEBPACK_IMPORTED_MODULE_11__error__.c("Can not be rendered by domain: " + domain);
};
ParentComponent.prototype.renderTo = function(win, element) {
var _this3 = this;
return this.tryInit(function() {
if (win === window) return _this3.render(element);
if (!Object(__WEBPACK_IMPORTED_MODULE_2_cross_domain_utils_src__.q)(window, win)) throw new Error("Can only renderTo an adjacent frame");
if (element && "string" != typeof element) throw new Error("Element passed to renderTo must be a string selector, got " + (void 0 === element ? "undefined" : _typeof(element)) + " " + element);
_this3.checkAllowRenderTo(win);
_this3.component.log("render_" + _this3.context + "_to_win", {
element: Object(__WEBPACK_IMPORTED_MODULE_6__lib__.U)(element),
context: _this3.context
});
_this3.childWindowName = _this3.buildChildWindowName({
renderTo: win
});
_this3.delegate(win);
return _this3.render(element);
});
};
ParentComponent.prototype.prefetch = function() {
var _this4 = this;
return __WEBPACK_IMPORTED_MODULE_3_zalgo_promise_src__.a.try(function() {
_this4.html = _this4.buildUrl().then(function(url) {
return Object(__WEBPACK_IMPORTED_MODULE_6__lib__.L)(url).then(function(html) {
return '\n \n\n ' + html + "\n\n