UNPKG

2.16 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.IframeManager = void 0;
4var IframeManager = /** @class */ (function () {
5 function IframeManager() {
6 var _this = this;
7 this.listener = function (event) {
8 var data = event.data;
9 var message = data.message;
10 var _data = data.data;
11 var stack = _this.event.get(message);
12 if (!stack) {
13 return;
14 }
15 stack.forEach(function (func) {
16 func(_data);
17 });
18 };
19 console.log('init iframe manager');
20 this.event = new Map();
21 if (typeof window == 'undefined') {
22 console.log('window is undefined');
23 return;
24 }
25 window.addEventListener('message', this.listener);
26 }
27 IframeManager.prototype.subscribe = function (eventName, func) {
28 if (!this.event.has(eventName)) {
29 this.event.set(eventName, new Set([func]));
30 return;
31 }
32 var stack = this.event.get(eventName) || new Set();
33 if (stack.has(func)) {
34 console.error('has same function');
35 return;
36 }
37 stack.add(func);
38 this.event.set(eventName, stack);
39 };
40 IframeManager.prototype.unSubscribe = function (eventName, func) {
41 if (!this.event.has(eventName)) {
42 console.error('there are no subscribe');
43 return;
44 }
45 var stack = this.event.get(eventName) || new Set();
46 stack.delete(func);
47 this.event.set(eventName, stack);
48 };
49 IframeManager.prototype.unSubscribeAll = function () {
50 this.event = new Map();
51 };
52 IframeManager.prototype.triggerEvent = function (_a) {
53 var _b;
54 var iframeRef = _a.iframeRef, eventName = _a.eventName, data = _a.data;
55 (_b = iframeRef === null || iframeRef === void 0 ? void 0 : iframeRef.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage({
56 msg: eventName,
57 data: data
58 }, '*');
59 };
60 return IframeManager;
61}());
62exports.IframeManager = IframeManager;