@sumboard/sdk 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
export class Sumboard {
|
|
2
2
|
constructor() {
|
|
3
|
+
this._destroyed = false;
|
|
3
4
|
this._listener = this._receiveMessage.bind(this);
|
|
4
5
|
this.init = (config) => {
|
|
6
|
+
this._destroyed = false;
|
|
5
7
|
this._config = config;
|
|
6
8
|
window.addEventListener('message', this._listener, false);
|
|
7
9
|
return this._mountIframe();
|
|
8
10
|
};
|
|
9
11
|
this.changeFilters = (filters) => {
|
|
10
|
-
this._iframe
|
|
12
|
+
this._iframe?.contentWindow?.postMessage({ type: "CHANGE_FILTERS", filters }, '*');
|
|
11
13
|
};
|
|
12
14
|
this._mountIframe = () => {
|
|
13
|
-
return new Promise((resolve) => {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
14
16
|
const iframe = document.createElement('iframe');
|
|
15
|
-
iframe.onload = () =>
|
|
17
|
+
iframe.onload = () => {
|
|
18
|
+
if (this._destroyed)
|
|
19
|
+
return reject(new Error('Sumboard destroyed before iframe finished loading'));
|
|
20
|
+
return resolve();
|
|
21
|
+
};
|
|
16
22
|
iframe.src = this._generateIframeSrc();
|
|
17
23
|
iframe.width = '100%';
|
|
18
24
|
iframe.height = '100%';
|
|
@@ -22,6 +28,8 @@ export class Sumboard {
|
|
|
22
28
|
const wrapper = document.getElementById('sumboard');
|
|
23
29
|
if (!wrapper)
|
|
24
30
|
throw new Error('not found HTMLElement with id "sumboard"');
|
|
31
|
+
if (this._destroyed)
|
|
32
|
+
return reject(new Error('Sumboard destroyed before iframe mount'));
|
|
25
33
|
wrapper.appendChild(iframe);
|
|
26
34
|
});
|
|
27
35
|
};
|
|
@@ -33,16 +41,25 @@ export class Sumboard {
|
|
|
33
41
|
};
|
|
34
42
|
}
|
|
35
43
|
destroy() {
|
|
44
|
+
this._destroyed = true;
|
|
36
45
|
window.removeEventListener('message', this._listener, false);
|
|
46
|
+
if (this._iframe?.parentNode)
|
|
47
|
+
this._iframe.parentNode.removeChild(this._iframe);
|
|
48
|
+
if (this._iframe?.onload)
|
|
49
|
+
this._iframe.onload = null;
|
|
37
50
|
}
|
|
38
51
|
_receiveMessage({ data }) {
|
|
52
|
+
if (this._destroyed)
|
|
53
|
+
return;
|
|
39
54
|
switch (data.type) {
|
|
40
55
|
case "BOOTSTRAP_DONE":
|
|
41
56
|
return this._initDashboard();
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
59
|
_initDashboard() {
|
|
45
|
-
|
|
60
|
+
if (this._destroyed)
|
|
61
|
+
return;
|
|
62
|
+
this._iframe?.contentWindow?.postMessage({ type: "INIT_IFRAME", config: this._config }, '*');
|
|
46
63
|
}
|
|
47
64
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL3Nkay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLFFBQVE7SUFBckI7UUFHVSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFFdEYsU0FBSSxHQUFHLENBQUMsTUFBYyxFQUFpQixFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBSXRCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUzRCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUM7UUFJRixrQkFBYSxHQUFHLENBQUMsT0FBbUIsRUFBUSxFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksa0JBQXFCLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDO1FBVU0saUJBQVksR0FBRyxHQUFrQixFQUFFO1lBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWhELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVO3dCQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUMsQ0FBQztvQkFFbkcsT0FBTyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDO2dCQUVGLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBRXZDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUN0QixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBRTlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUV0QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUVwRCxJQUFJLENBQUMsT0FBTztvQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7Z0JBRTFFLElBQUksSUFBSSxDQUFDLFVBQVU7b0JBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO2dCQUV4RixPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBdUJNLHVCQUFrQixHQUFHLEdBQVcsRUFBRTtZQUN4QyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM1QixPQUFPLHNDQUFzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3BFO1lBRUQsT0FBTyxpQ0FBaUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRSxDQUFDLENBQUM7SUFDSixDQUFDO0lBakVDLE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFOUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVU7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hGLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZELENBQUM7SUFpQ08sZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFxQjtRQUNqRCxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUU1QixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakI7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBSU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUU1QixJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRSxJQUFJLGVBQWtCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRyxDQUFDO0NBV0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJzTWFwIH0gZnJvbSAnQHN1bWJvYXJkL3R5cGVzJztcblxuaW1wb3J0IHsgQ29uZmlnLCBFdmVudCwgTWVzc2FnZSB9IGZyb20gJy4vc2tkLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFN1bWJvYXJkIHtcbiAgcHJpdmF0ZSBfaWZyYW1lPzogSFRNTElGcmFtZUVsZW1lbnQ7XG4gIHByaXZhdGUgX2NvbmZpZyE6IENvbmZpZztcbiAgcHJpdmF0ZSBfZGVzdHJveWVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbGlzdGVuZXIgPSB0aGlzLl9yZWNlaXZlTWVzc2FnZS5iaW5kPFdpbmRvd0V2ZW50SGFuZGxlcnNbJ29ubWVzc2FnZSddPih0aGlzKTtcblxuICBpbml0ID0gKGNvbmZpZzogQ29uZmlnKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdGhpcy5fZGVzdHJveWVkID0gZmFsc2U7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIC8qKlxuICAgICAqIGxpc3RlbmVyIG1lc3NhZ2VzIGZyb20gaWZyYW1lXG4gICAgICovXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLl9saXN0ZW5lciEsIGZhbHNlKTtcblxuICAgIHJldHVybiB0aGlzLl9tb3VudElmcmFtZSgpO1xuICB9O1xuICAvKipcbiAgICogdW5kZWZpbmVkIGlzIGZvciBmaWx0ZXIgdGhhdCB5b3Ugd2FudCB0byByZW1vdmVcbiAgICovXG4gIGNoYW5nZUZpbHRlcnMgPSAoZmlsdGVyczogRmlsdGVyc01hcCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lmcmFtZT8uY29udGVudFdpbmRvdz8ucG9zdE1lc3NhZ2UoeyB0eXBlOiBFdmVudC5DaGFuZ2VGaWx0ZXJzLCBmaWx0ZXJzIH0sICcqJyk7XG4gIH07XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95ZWQgPSB0cnVlO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5fbGlzdGVuZXIhLCBmYWxzZSk7XG5cbiAgICBpZiAodGhpcy5faWZyYW1lPy5wYXJlbnROb2RlKSB0aGlzLl9pZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9pZnJhbWUpO1xuICAgIGlmICh0aGlzLl9pZnJhbWU/Lm9ubG9hZCkgdGhpcy5faWZyYW1lLm9ubG9hZCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9tb3VudElmcmFtZSA9ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG5cbiAgICAgIGlmcmFtZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHJldHVybiByZWplY3QobmV3IEVycm9yKCdTdW1ib2FyZCBkZXN0cm95ZWQgYmVmb3JlIGlmcmFtZSBmaW5pc2hlZCBsb2FkaW5nJykpO1xuXG4gICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBpZnJhbWUuc3JjID0gdGhpcy5fZ2VuZXJhdGVJZnJhbWVTcmMoKTtcblxuICAgICAgaWZyYW1lLndpZHRoID0gJzEwMCUnO1xuICAgICAgaWZyYW1lLmhlaWdodCA9ICcxMDAlJztcbiAgICAgIGlmcmFtZS5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7XG4gICAgICBpZnJhbWUuc3R5bGUub3V0bGluZSA9ICdub25lJztcblxuICAgICAgdGhpcy5faWZyYW1lID0gaWZyYW1lO1xuXG4gICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1bWJvYXJkJyk7XG5cbiAgICAgIGlmICghd3JhcHBlcikgdGhyb3cgbmV3IEVycm9yKCdub3QgZm91bmQgSFRNTEVsZW1lbnQgd2l0aCBpZCBcInN1bWJvYXJkXCInKTtcblxuICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoJ1N1bWJvYXJkIGRlc3Ryb3llZCBiZWZvcmUgaWZyYW1lIG1vdW50JykpO1xuXG4gICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgfSk7XG4gIH07XG4gIC8qKlxuICAgKiByZWNlaXZlIG1lc3NhZ2UgZnJvbSBpZnJhbWVcbiAgICovXG4gIHByaXZhdGUgX3JlY2VpdmVNZXNzYWdlKHsgZGF0YSB9OiB7IGRhdGE6IE1lc3NhZ2UgfSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHJldHVybjtcblxuICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICBjYXNlIEV2ZW50LkJvb3RzdHJhcERvbmU6XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0RGFzaGJvYXJkKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBpbml0IGRhc2hib2FyZCB3aGVuIHN1bWJvYXJkIGlzIHJlYWR5XG4gICAqL1xuICBwcml2YXRlIF9pbml0RGFzaGJvYXJkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHJldHVybjtcblxuICAgIHRoaXMuX2lmcmFtZT8uY29udGVudFdpbmRvdz8ucG9zdE1lc3NhZ2UoeyB0eXBlOiBFdmVudC5Jbml0SUZyYW1lLCBjb25maWc6IHRoaXMuX2NvbmZpZyB9LCAnKicpO1xuICB9XG4gIC8qKlxuICAgKiBnZW5lcmF0ZSBpZnJhbWUgc3JjIGZyb20gY29uZmlnXG4gICAqL1xuICBwcml2YXRlIF9nZW5lcmF0ZUlmcmFtZVNyYyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgIGlmICgncGFnZUlkJyBpbiB0aGlzLl9jb25maWcpIHtcbiAgICAgIHJldHVybiBgaHR0cHM6Ly9hcHAuc3VtYm9hcmQuaW8vZW1iZWQtcGFnZS8ke3RoaXMuX2NvbmZpZy5wYWdlSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYGh0dHBzOi8vYXBwLnN1bWJvYXJkLmlvL2VtYmVkLyR7dGhpcy5fY29uZmlnLmRhc2hib2FyZElkfWA7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
class Sumboard {
|
|
2
2
|
constructor() {
|
|
3
|
+
this._destroyed = false;
|
|
3
4
|
this._listener = this._receiveMessage.bind(this);
|
|
4
5
|
this.init = (config) => {
|
|
6
|
+
this._destroyed = false;
|
|
5
7
|
this._config = config;
|
|
6
8
|
window.addEventListener('message', this._listener, false);
|
|
7
9
|
return this._mountIframe();
|
|
8
10
|
};
|
|
9
11
|
this.changeFilters = (filters) => {
|
|
10
|
-
this._iframe
|
|
12
|
+
this._iframe?.contentWindow?.postMessage({ type: "CHANGE_FILTERS", filters }, '*');
|
|
11
13
|
};
|
|
12
14
|
this._mountIframe = () => {
|
|
13
|
-
return new Promise((resolve) => {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
14
16
|
const iframe = document.createElement('iframe');
|
|
15
|
-
iframe.onload = () =>
|
|
17
|
+
iframe.onload = () => {
|
|
18
|
+
if (this._destroyed)
|
|
19
|
+
return reject(new Error('Sumboard destroyed before iframe finished loading'));
|
|
20
|
+
return resolve();
|
|
21
|
+
};
|
|
16
22
|
iframe.src = this._generateIframeSrc();
|
|
17
23
|
iframe.width = '100%';
|
|
18
24
|
iframe.height = '100%';
|
|
@@ -22,6 +28,8 @@ class Sumboard {
|
|
|
22
28
|
const wrapper = document.getElementById('sumboard');
|
|
23
29
|
if (!wrapper)
|
|
24
30
|
throw new Error('not found HTMLElement with id "sumboard"');
|
|
31
|
+
if (this._destroyed)
|
|
32
|
+
return reject(new Error('Sumboard destroyed before iframe mount'));
|
|
25
33
|
wrapper.appendChild(iframe);
|
|
26
34
|
});
|
|
27
35
|
};
|
|
@@ -33,16 +41,25 @@ class Sumboard {
|
|
|
33
41
|
};
|
|
34
42
|
}
|
|
35
43
|
destroy() {
|
|
44
|
+
this._destroyed = true;
|
|
36
45
|
window.removeEventListener('message', this._listener, false);
|
|
46
|
+
if (this._iframe?.parentNode)
|
|
47
|
+
this._iframe.parentNode.removeChild(this._iframe);
|
|
48
|
+
if (this._iframe?.onload)
|
|
49
|
+
this._iframe.onload = null;
|
|
37
50
|
}
|
|
38
51
|
_receiveMessage({ data }) {
|
|
52
|
+
if (this._destroyed)
|
|
53
|
+
return;
|
|
39
54
|
switch (data.type) {
|
|
40
55
|
case "BOOTSTRAP_DONE":
|
|
41
56
|
return this._initDashboard();
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
59
|
_initDashboard() {
|
|
45
|
-
|
|
60
|
+
if (this._destroyed)
|
|
61
|
+
return;
|
|
62
|
+
this._iframe?.contentWindow?.postMessage({ type: "INIT_IFRAME", config: this._config }, '*');
|
|
46
63
|
}
|
|
47
64
|
}
|
|
48
65
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sumboard-sdk.mjs","sources":["../../../projects/sdk/src/lib/sdk.module.ts"],"sourcesContent":["import { FiltersMap } from '@sumboard/types';\n\nimport { Config, Event, Message } from './skd.types';\n\nexport class Sumboard {\n private _iframe
|
|
1
|
+
{"version":3,"file":"sumboard-sdk.mjs","sources":["../../../projects/sdk/src/lib/sdk.module.ts"],"sourcesContent":["import { FiltersMap } from '@sumboard/types';\n\nimport { Config, Event, Message } from './skd.types';\n\nexport class Sumboard {\n private _iframe?: HTMLIFrameElement;\n private _config!: Config;\n private _destroyed = false;\n\n private _listener = this._receiveMessage.bind<WindowEventHandlers['onmessage']>(this);\n\n init = (config: Config): Promise<void> => {\n this._destroyed = false;\n this._config = config;\n /**\n * listener messages from iframe\n */\n window.addEventListener('message', this._listener!, false);\n\n return this._mountIframe();\n };\n /**\n * undefined is for filter that you want to remove\n */\n changeFilters = (filters: FiltersMap): void => {\n this._iframe?.contentWindow?.postMessage({ type: Event.ChangeFilters, filters }, '*');\n };\n\n destroy(): void {\n this._destroyed = true;\n window.removeEventListener('message', this._listener!, false);\n\n if (this._iframe?.parentNode) this._iframe.parentNode.removeChild(this._iframe);\n if (this._iframe?.onload) this._iframe.onload = null;\n }\n\n private _mountIframe = (): Promise<void> => {\n return new Promise((resolve, reject) => {\n const iframe = document.createElement('iframe');\n\n iframe.onload = () => {\n if (this._destroyed) return reject(new Error('Sumboard destroyed before iframe finished loading'));\n\n return resolve();\n };\n\n iframe.src = this._generateIframeSrc();\n\n iframe.width = '100%';\n iframe.height = '100%';\n iframe.style.border = 'none';\n iframe.style.outline = 'none';\n\n this._iframe = iframe;\n\n const wrapper = document.getElementById('sumboard');\n\n if (!wrapper) throw new Error('not found HTMLElement with id \"sumboard\"');\n\n if (this._destroyed) return reject(new Error('Sumboard destroyed before iframe mount'));\n\n wrapper.appendChild(iframe);\n });\n };\n /**\n * receive message from iframe\n */\n private _receiveMessage({ data }: { data: Message }): void {\n if (this._destroyed) return;\n\n switch (data.type) {\n case Event.BootstrapDone:\n return this._initDashboard();\n }\n }\n /**\n * init dashboard when sumboard is ready\n */\n private _initDashboard(): void {\n if (this._destroyed) return;\n\n this._iframe?.contentWindow?.postMessage({ type: Event.InitIFrame, config: this._config }, '*');\n }\n /**\n * generate iframe src from config\n */\n private _generateIframeSrc = (): string => {\n if ('pageId' in this._config) {\n return `https://app.sumboard.io/embed-page/${this._config.pageId}`;\n }\n\n return `https://app.sumboard.io/embed/${this._config.dashboardId}`;\n };\n}\n"],"names":[],"mappings":"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"}
|
package/lib/sdk.module.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { FiltersMap } from '@sumboard/types';
|
|
2
2
|
import { Config } from './skd.types';
|
|
3
3
|
export declare class Sumboard {
|
|
4
|
-
private _iframe
|
|
4
|
+
private _iframe?;
|
|
5
5
|
private _config;
|
|
6
|
+
private _destroyed;
|
|
6
7
|
private _listener;
|
|
7
8
|
init: (config: Config) => Promise<void>;
|
|
8
9
|
changeFilters: (filters: FiltersMap) => void;
|