blob: 2c08b54c7c237a2155660284e47b252682173189 [file] [log] [blame]
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