window["MyLib"] = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 2); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var base_pubsub_1 = __webpack_require__(1); var PluginPubSub = /** @class */ (function (_super) { __extends(PluginPubSub, _super); function PluginPubSub(pluginId, parentUrl, eventsToWait) { var _this = _super.call(this, pluginId) || this; _this.register('sdc-hub', window.parent, parentUrl); _this.subscribe(eventsToWait); return _this; } PluginPubSub.prototype.subscribe = function (eventsToWait) { var registerData = { pluginId: this.clientId, eventsToWait: eventsToWait || [] }; this.notify('PLUGIN_REGISTER', registerData); }; PluginPubSub.prototype.unsubscribe = function () { var unregisterData = { pluginId: this.clientId }; this.notify('PLUGIN_UNREGISTER', unregisterData); }; return PluginPubSub; }(base_pubsub_1.BasePubSub)); exports.default = PluginPubSub; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var BasePubSub = /** @class */ (function () { function BasePubSub(pluginId) { this.subscribers = new Map(); this.eventsCallbacks = []; this.eventsToWait = new Map(); this.clientId = pluginId; this.onMessage = this .onMessage .bind(this); window.addEventListener('message', this.onMessage); } BasePubSub.prototype.onMessage = function (event) { if (this.subscribers.has(event.data.originId)) { this .eventsCallbacks .forEach(function (callback) { callback(event.data, event); }); } }; BasePubSub.prototype.register = function (subscriberId, subscriberWindow, subscriberUrl) { var subscriber = { window: subscriberWindow, locationUrl: subscriberUrl || subscriberWindow.location.href }; this .subscribers .set(subscriberId, subscriber); }; BasePubSub.prototype.unregister = function (subscriberId) { this .subscribers .delete(subscriberId); }; BasePubSub.prototype.on = function (callback) { var functionExists = this .eventsCallbacks .find(function (func) { return callback.toString() === func.toString(); }); if (!functionExists) { this .eventsCallbacks .push(callback); } }; BasePubSub.prototype.off = function (callback) { var index = this .eventsCallbacks .indexOf(callback); this .eventsCallbacks .splice(index, 1); }; BasePubSub.prototype.notify = function (eventType, eventData) { var eventObj = { type: eventType, data: eventData, originId: this.clientId }; this .subscribers .forEach(function (subscriber, subscriberId) { subscriber .window .postMessage(eventObj, subscriber.locationUrl); }); return { subscribe: function (callbackFn) { var _this = this; if (this.subscribers.size !== 0) { var subscribersToNotify_1 = Array.from(this.subscribers.keys()); var checkNotifyComplete_1 = function (subscriberId) { var index = subscribersToNotify_1.indexOf(subscriberId); subscribersToNotify_1.splice(index, 1); if (subscribersToNotify_1.length === 0) { callbackFn(); } }; this .subscribers .forEach(function (subscriber, subscriberId) { if (_this.eventsToWait.has(subscriberId) && _this.eventsToWait.get(subscriberId).indexOf(eventType) !== -1) { var actionCompletedFunction_1 = function (eventData, subId) { if (subId === void 0) { subId = subscriberId; } if (eventData.type === 'ACTION_COMPLETED') { checkNotifyComplete_1(subId); } _this.off(actionCompletedFunction_1); }; _this.on(actionCompletedFunction_1); } else { checkNotifyComplete_1(subscriberId); } }); } else { callbackFn(); } }.bind(this) }; }; return BasePubSub; }()); exports.BasePubSub = BasePubSub; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(0); /***/ }) /******/ ]); //# sourceMappingURL=my-lib.js.map