@sd-angular/core 1.3.122 → 1.3.124

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.
@@ -0,0 +1,195 @@
1
+ /**
2
+ *
3
+ * detectIncognito v1.3.0 - (c) 2022 Joe Rutkowski <Joe@dreggle.com> (https://github.com/Joe12387/detectIncognito)
4
+ *
5
+ **/
6
+ export const detectIncognito = () => {
7
+ return new Promise((resolve, reject) => {
8
+ let browserName = 'Unknown';
9
+ function __callback(isPrivate) {
10
+ resolve({
11
+ isPrivate,
12
+ browserName,
13
+ });
14
+ }
15
+ function identifyChromium() {
16
+ const ua = navigator.userAgent;
17
+ if (ua.match(/Chrome/)) {
18
+ if (navigator.brave !== undefined) {
19
+ return 'Brave';
20
+ }
21
+ else if (ua.match(/Edg/)) {
22
+ return 'Edge';
23
+ }
24
+ else if (ua.match(/OPR/)) {
25
+ return 'Opera';
26
+ }
27
+ return 'Chrome';
28
+ }
29
+ else {
30
+ return 'Chromium';
31
+ }
32
+ }
33
+ function assertEvalToString(value) {
34
+ return value === eval.toString().length;
35
+ }
36
+ function isSafari() {
37
+ const v = navigator.vendor;
38
+ return (v !== undefined && v.indexOf('Apple') === 0 && assertEvalToString(37));
39
+ }
40
+ function isChrome() {
41
+ const v = navigator.vendor;
42
+ return (v !== undefined && v.indexOf('Google') === 0 && assertEvalToString(33));
43
+ }
44
+ function isFirefox() {
45
+ return (document.documentElement !== undefined &&
46
+ document.documentElement.style.MozAppearance !== undefined &&
47
+ assertEvalToString(37));
48
+ }
49
+ function isMSIE() {
50
+ return (navigator.msSaveBlob !== undefined && assertEvalToString(39));
51
+ }
52
+ /**
53
+ * Safari (Safari for iOS & macOS)
54
+ **/
55
+ function newSafariTest() {
56
+ // tslint:disable-next-line:variable-name
57
+ const tmp_name = String(Math.random());
58
+ try {
59
+ const db = window.indexedDB.open(tmp_name, 1);
60
+ db.onupgradeneeded = (i) => {
61
+ var _a, _b;
62
+ // @ts-ignore
63
+ const res = (_a = i.target) === null || _a === void 0 ? void 0 : _a.result;
64
+ try {
65
+ res.createObjectStore('test', {
66
+ autoIncrement: true,
67
+ }).put(new Blob);
68
+ __callback(false);
69
+ }
70
+ catch (e) {
71
+ let message = e;
72
+ if (e instanceof Error) {
73
+ message = (_b = e.message) !== null && _b !== void 0 ? _b : e;
74
+ }
75
+ if (typeof message !== 'string') {
76
+ return __callback(false);
77
+ }
78
+ const matchesExpectedError = /BlobURLs are not yet supported/.test(message);
79
+ return __callback(matchesExpectedError);
80
+ }
81
+ finally {
82
+ res.close();
83
+ window.indexedDB.deleteDatabase(tmp_name);
84
+ }
85
+ };
86
+ }
87
+ catch (e) {
88
+ return __callback(false);
89
+ }
90
+ }
91
+ function oldSafariTest() {
92
+ const openDB = window.openDatabase;
93
+ const storage = window.localStorage;
94
+ try {
95
+ openDB(null, null, null, null);
96
+ }
97
+ catch (e) {
98
+ return __callback(true);
99
+ }
100
+ try {
101
+ storage.setItem('test', '1');
102
+ storage.removeItem('test');
103
+ }
104
+ catch (e) {
105
+ return __callback(true);
106
+ }
107
+ return __callback(false);
108
+ }
109
+ function safariPrivateTest() {
110
+ if (navigator.maxTouchPoints !== undefined) {
111
+ newSafariTest();
112
+ }
113
+ else {
114
+ oldSafariTest();
115
+ }
116
+ }
117
+ /**
118
+ * Chrome
119
+ **/
120
+ function getQuotaLimit() {
121
+ const w = window;
122
+ if (w.performance !== undefined &&
123
+ w.performance.memory !== undefined &&
124
+ w.performance.memory.jsHeapSizeLimit !== undefined) {
125
+ return performance.memory.jsHeapSizeLimit;
126
+ }
127
+ return 1073741824;
128
+ }
129
+ // >= 76
130
+ function storageQuotaChromePrivateTest() {
131
+ navigator.webkitTemporaryStorage.queryUsageAndQuota((_, quota) => {
132
+ const quotaInMib = Math.round(quota / (1024 * 1024));
133
+ const quotaLimitInMib = Math.round(getQuotaLimit() / (1024 * 1024)) * 2;
134
+ __callback(quotaInMib < quotaLimitInMib);
135
+ }, (e) => {
136
+ reject(new Error('detectIncognito somehow failed to query storage quota: ' +
137
+ e.message));
138
+ });
139
+ }
140
+ // 50 to 75
141
+ function oldChromePrivateTest() {
142
+ const fs = window.webkitRequestFileSystem;
143
+ const success = () => {
144
+ __callback(false);
145
+ };
146
+ const error = () => {
147
+ __callback(true);
148
+ };
149
+ fs(0, 1, success, error);
150
+ }
151
+ function chromePrivateTest() {
152
+ if (self.Promise !== undefined && self.Promise.allSettled !== undefined) {
153
+ storageQuotaChromePrivateTest();
154
+ }
155
+ else {
156
+ oldChromePrivateTest();
157
+ }
158
+ }
159
+ /**
160
+ * Firefox
161
+ **/
162
+ function firefoxPrivateTest() {
163
+ __callback(navigator.serviceWorker === undefined);
164
+ }
165
+ /**
166
+ * MSIE
167
+ **/
168
+ function msiePrivateTest() {
169
+ __callback(window.indexedDB === undefined);
170
+ }
171
+ function main() {
172
+ if (isSafari()) {
173
+ browserName = 'Safari';
174
+ safariPrivateTest();
175
+ }
176
+ else if (isChrome()) {
177
+ browserName = identifyChromium();
178
+ chromePrivateTest();
179
+ }
180
+ else if (isFirefox()) {
181
+ browserName = 'Firefox';
182
+ firefoxPrivateTest();
183
+ }
184
+ else if (isMSIE()) {
185
+ browserName = 'Internet Explorer';
186
+ msiePrivateTest();
187
+ }
188
+ else {
189
+ reject(new Error('detectIncognito cannot determine the browser'));
190
+ }
191
+ }
192
+ main();
193
+ });
194
+ };
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0SW5jb2duaXRvLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tb24vIiwic291cmNlcyI6WyJzcmMvbGliL290aGVycy9kZXRlY3RJbmNvZ25pdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7SUFJSTtBQUNKLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBSSxHQUc3QixFQUFFO0lBQ0gsT0FBTyxJQUFJLE9BQU8sQ0FBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN0QyxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFFNUIsU0FBUyxVQUFVLENBQUMsU0FBYztZQUNoQyxPQUFPLENBQUM7Z0JBQ04sU0FBUztnQkFDVCxXQUFXO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELFNBQVMsZ0JBQWdCO1lBQ3ZCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDL0IsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0QixJQUFLLFNBQWlCLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtvQkFDMUMsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO3FCQUFNLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDMUIsT0FBTyxNQUFNLENBQUM7aUJBQ2Y7cUJBQU0sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUMxQixPQUFPLE9BQU8sQ0FBQztpQkFDaEI7Z0JBQ0QsT0FBTyxRQUFRLENBQUM7YUFDakI7aUJBQU07Z0JBQ0wsT0FBTyxVQUFVLENBQUM7YUFDbkI7UUFDSCxDQUFDO1FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFVO1lBQ3BDLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxN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O1lBQ1gsSUFBSSxRQUFRLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEdBQUcsUUFBUSxDQUFDO2dCQUN2QixpQkFBaUIsRUFBRSxDQUFDO2FBQ3JCO2lCQUFNLElBQUksUUFBUSxFQUFFLEVBQUU7Z0JBQ3JCLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNqQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ3JCO2lCQUFNLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ3RCLFdBQVcsR0FBRyxTQUFTLENBQUM7Z0JBQ3hCLGtCQUFrQixFQUFFLENBQUM7YUFDdEI7aUJBQU0sSUFBSSxNQUFNLEVBQUUsRUFBRTtnQkFDbkIsV0FBVyxHQUFHLG1CQUFtQixDQUFDO2dCQUNsQyxlQUFlLEVBQUUsQ0FBQzthQUNuQjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUFDO2FBQ25FO1FBQ0gsQ0FBQztRQUVELElBQUksRUFBRSxDQUFDO0lBQ1QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICpcclxuICogZGV0ZWN0SW5jb2duaXRvIHYxLjMuMCAtIChjKSAyMDIyIEpvZSBSdXRrb3dza2kgPEpvZUBkcmVnZ2xlLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9Kb2UxMjM4Ny9kZXRlY3RJbmNvZ25pdG8pXHJcbiAqXHJcbiAqKi9cclxuZXhwb3J0IGNvbnN0IGRldGVjdEluY29nbml0byA9ICAoKTogUHJvbWlzZTx7XHJcbiAgaXNQcml2YXRlOiBib29sZWFuO1xyXG4gIGJyb3dzZXJOYW1lOiBzdHJpbmc7XHJcbn0+ID0+IHtcclxuICByZXR1cm4gbmV3IFByb21pc2UoIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGxldCBicm93c2VyTmFtZSA9ICdVbmtub3duJztcclxuXHJcbiAgICBmdW5jdGlvbiBfX2NhbGxiYWNrKGlzUHJpdmF0ZTogYW55KTogdm9pZCB7XHJcbiAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgIGlzUHJpdmF0ZSxcclxuICAgICAgICBicm93c2VyTmFtZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaWRlbnRpZnlDaHJvbWl1bSgpOiBzdHJpbmcge1xyXG4gICAgICBjb25zdCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICAgIGlmICh1YS5tYXRjaCgvQ2hyb21lLykpIHtcclxuICAgICAgICBpZiAoKG5hdmlnYXRvciBhcyBhbnkpLmJyYXZlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAnQnJhdmUnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodWEubWF0Y2goL0VkZy8pKSB7XHJcbiAgICAgICAgICByZXR1cm4gJ0VkZ2UnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodWEubWF0Y2goL09QUi8pKSB7XHJcbiAgICAgICAgICByZXR1cm4gJ09wZXJhJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICdDaHJvbWUnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnQ2hyb21pdW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gYXNzZXJ0RXZhbFRvU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHZhbHVlID09PSBldmFsLnRvU3RyaW5nKCkubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGlzU2FmYXJpKCk6IGJvb2xlYW4ge1xyXG4gICAgICBjb25zdCB2ID0gbmF2aWdhdG9yLnZlbmRvcjtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB2ICE9PSB1bmRlZmluZWQgJiYgdi5pbmRleE9mKCdBcHBsZScpID09PSAwICYmIGFzc2VydEV2YWxUb1N0cmluZygzNylcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBpc0Nocm9tZSgpOiBib29sZWFuIHtcclxuICAgICAgY29uc3QgdiA9IG5hdmlnYXRvci52ZW5kb3I7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdiAhPT0gdW5kZWZpbmVkICYmIHYuaW5kZXhPZignR29vZ2xlJykgPT09IDAgJiYgYXNzZXJ0RXZhbFRvU3RyaW5nKDMzKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGlzRmlyZWZveCgpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIChkb2N1bWVudCBhcyBhbnkpLmRvY3VtZW50RWxlbWVudC5zdHlsZS5Nb3pBcHBlYXJhbmNlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICBhc3NlcnRFdmFsVG9TdHJpbmcoMzcpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaXNNU0lFKCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIChuYXZpZ2F0b3IgYXMgYW55KS5tc1NhdmVCbG9iICE9PSB1bmRlZmluZWQgJiYgYXNzZXJ0RXZhbFRvU3RyaW5nKDM5KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2FmYXJpIChTYWZhcmkgZm9yIGlPUyAmIG1hY09TKVxyXG4gICAgICoqL1xyXG5cclxuICAgIGZ1bmN0aW9uIG5ld1NhZmFyaVRlc3QoKTogdm9pZCB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXHJcbiAgICAgIGNvbnN0IHRtcF9uYW1lID0gU3RyaW5nKE1hdGgucmFuZG9tKCkpO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBkYiA9IHdpbmRvdy5pbmRleGVkREIub3Blbih0bXBfbmFtZSwgMSk7XHJcblxyXG4gICAgICAgIGRiLm9udXBncmFkZW5lZWRlZCA9IChpKSA9PiB7XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICBjb25zdCByZXMgPSBpLnRhcmdldD8ucmVzdWx0O1xyXG5cclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlcy5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcsIHtcclxuICAgICAgICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLFxyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuZXctcGFyZW5zXHJcbiAgICAgICAgICAgIH0pLnB1dChuZXcgQmxvYik7XHJcblxyXG4gICAgICAgICAgICBfX2NhbGxiYWNrKGZhbHNlKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBlLm1lc3NhZ2UgPz8gZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgIHJldHVybiBfX2NhbGxiYWNrKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbWF0Y2hlc0V4cGVjdGVkRXJyb3IgPSAvQmxvYlVSTHMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLy50ZXN0KG1lc3NhZ2UpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIF9fY2FsbGJhY2sobWF0Y2hlc0V4cGVjdGVkRXJyb3IpO1xyXG4gICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgcmVzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UodG1wX25hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICByZXR1cm4gX19jYWxsYmFjayhmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBvbGRTYWZhcmlUZXN0KCk6IHZvaWQge1xyXG4gICAgICBjb25zdCBvcGVuREIgPSAod2luZG93IGFzIGFueSkub3BlbkRhdGFiYXNlO1xyXG4gICAgICBjb25zdCBzdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBvcGVuREIobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICByZXR1cm4gX19jYWxsYmFjayh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHN0b3JhZ2Uuc2V0SXRlbSgndGVzdCcsICcxJyk7XHJcbiAgICAgICAgc3RvcmFnZS5yZW1vdmVJdGVtKCd0ZXN0Jyk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICByZXR1cm4gX19jYWxsYmFjayh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gX19jYWxsYmFjayhmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gc2FmYXJpUHJpdmF0ZVRlc3QoKTogdm9pZCB7XHJcbiAgICAgIGlmIChuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIG5ld1NhZmFyaVRlc3QoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvbGRTYWZhcmlUZXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENocm9tZVxyXG4gICAgICoqL1xyXG5cclxuICAgIGZ1bmN0aW9uIGdldFF1b3RhTGltaXQoKTogbnVtYmVyIHtcclxuICAgICAgY29uc3QgdyA9IHdpbmRvdyBhcyBhbnk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB3LnBlcmZvcm1hbmNlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICB3LnBlcmZvcm1hbmNlLm1lbW9yeSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgdy5wZXJmb3JtYW5jZS5tZW1vcnkuanNIZWFwU2l6ZUxpbWl0ICE9PSB1bmRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIChwZXJmb3JtYW5jZSBhcyBhbnkpLm1lbW9yeS5qc0hlYXBTaXplTGltaXQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIDEwNzM3NDE4MjQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gPj0gNzZcclxuICAgIGZ1bmN0aW9uIHN0b3JhZ2VRdW90YUNocm9tZVByaXZhdGVUZXN0KCk6IHZvaWQge1xyXG4gICAgICAobmF2aWdhdG9yIGFzIGFueSkud2Via2l0VGVtcG9yYXJ5U3RvcmFnZS5xdWVyeVVzYWdlQW5kUXVvdGEoXHJcbiAgICAgICAgKF86IG51bWJlciwgcXVvdGE6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcXVvdGFJbk1pYiA9IE1hdGgucm91bmQocXVvdGEgLyAoMTAyNCAqIDEwMjQpKTtcclxuICAgICAgICAgIGNvbnN0IHF1b3RhTGltaXRJbk1pYiA9IE1hdGgucm91bmQoZ2V0UXVvdGFMaW1pdCgpIC8gKDEwMjQgKiAxMDI0KSkgKiAyO1xyXG5cclxuICAgICAgICAgIF9fY2FsbGJhY2socXVvdGFJbk1pYiA8IHF1b3RhTGltaXRJbk1pYik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZWplY3QoXHJcbiAgICAgICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAnZGV0ZWN0SW5jb2duaXRvIHNvbWVob3cgZmFpbGVkIHRvIHF1ZXJ5IHN0b3JhZ2UgcXVvdGE6ICcgK1xyXG4gICAgICAgICAgICAgIGUubWVzc2FnZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyA1MCB0byA3NVxyXG4gICAgZnVuY3Rpb24gb2xkQ2hyb21lUHJpdmF0ZVRlc3QoKTogdm9pZCB7XHJcbiAgICAgIGNvbnN0IGZzID0gKHdpbmRvdyBhcyBhbnkpLndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtO1xyXG4gICAgICBjb25zdCBzdWNjZXNzID0gKCkgPT4ge1xyXG4gICAgICAgIF9fY2FsbGJhY2soZmFsc2UpO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBlcnJvciA9ICgpID0+IHtcclxuICAgICAgICBfX2NhbGxiYWNrKHRydWUpO1xyXG4gICAgICB9O1xyXG4gICAgICBmcygwLCAxLCBzdWNjZXNzLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gY2hyb21lUHJpdmF0ZVRlc3QoKTogdm9pZCB7XHJcbiAgICAgIGlmIChzZWxmLlByb21pc2UgIT09IHVuZGVmaW5lZCAmJiAoc2VsZi5Qcm9taXNlIGFzIGFueSkuYWxsU2V0dGxlZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgc3RvcmFnZVF1b3RhQ2hyb21lUHJpdmF0ZVRlc3QoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvbGRDaHJvbWVQcml2YXRlVGVzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlZm94XHJcbiAgICAgKiovXHJcblxyXG4gICAgZnVuY3Rpb24gZmlyZWZveFByaXZhdGVUZXN0KCk6IHZvaWQge1xyXG4gICAgICBfX2NhbGxiYWNrKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyID09PSB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTVNJRVxyXG4gICAgICoqL1xyXG5cclxuICAgIGZ1bmN0aW9uIG1zaWVQcml2YXRlVGVzdCgpOiB2b2lkIHtcclxuICAgICAgX19jYWxsYmFjayh3aW5kb3cuaW5kZXhlZERCID09PSB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIG1haW4oKTogdm9pZCB7XHJcbiAgICAgIGlmIChpc1NhZmFyaSgpKSB7XHJcbiAgICAgICAgYnJvd3Nlck5hbWUgPSAnU2FmYXJpJztcclxuICAgICAgICBzYWZhcmlQcml2YXRlVGVzdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzQ2hyb21lKCkpIHtcclxuICAgICAgICBicm93c2VyTmFtZSA9IGlkZW50aWZ5Q2hyb21pdW0oKTtcclxuICAgICAgICBjaHJvbWVQcml2YXRlVGVzdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzRmlyZWZveCgpKSB7XHJcbiAgICAgICAgYnJvd3Nlck5hbWUgPSAnRmlyZWZveCc7XHJcbiAgICAgICAgZmlyZWZveFByaXZhdGVUZXN0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNNU0lFKCkpIHtcclxuICAgICAgICBicm93c2VyTmFtZSA9ICdJbnRlcm5ldCBFeHBsb3Jlcic7XHJcbiAgICAgICAgbXNpZVByaXZhdGVUZXN0KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignZGV0ZWN0SW5jb2duaXRvIGNhbm5vdCBkZXRlcm1pbmUgdGhlIGJyb3dzZXInKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBtYWluKCk7XHJcbiAgfSk7XHJcbn07XHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
+ import { detectIncognito } from '../others/detectIncognito';
2
3
  const upload = (option) => {
3
4
  const uploadId = 'U1e09c1c0-b647-437e-995e-d7a1a1b60550';
4
5
  const promise = new Promise((resolve, reject) => {
@@ -137,14 +138,20 @@ const allWithPaging = (func, defaultPageSize) => __awaiter(void 0, void 0, void
137
138
  }
138
139
  });
139
140
  const ɵ6 = allWithPaging;
141
+ const isPrivateMode = () => __awaiter(void 0, void 0, void 0, function* () {
142
+ const check = yield detectIncognito();
143
+ return check.isPrivate;
144
+ });
145
+ const ɵ7 = isPrivateMode;
140
146
  var SdUtility = {
141
147
  upload,
142
148
  download,
143
149
  downloadBlob,
144
150
  changeAliasLowerCase,
145
151
  copyToClipboard,
146
- allWithPaging
152
+ allWithPaging,
153
+ isPrivateMode,
147
154
  };
148
155
  globalThis.SdUtility = SdUtility;
149
- export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6 };
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNyYy9saWIvdHlwaW5ncy91dGlsaXR5LmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBbUJBLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFJZixFQUFFLEVBQUU7SUFDSCxNQUFNLFFBQVEsR0FBRyx1Q0FBdUMsQ0FBQztJQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTs7UUFDM0QsTUFBTSxJQUFJLFNBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2QsT0FBTztTQUNSO1FBQ0QsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLGNBQWMsRUFBRTtZQUNsQixjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekI7UUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFRLEVB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QixlQUFlO0lBQ2YsYUFBYTtDQUNkLENBQUM7QUFLRixVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IH07XHJcbi8vIGRlY2xhcmUgdmFyIERhdGU6IERhdGVDb25zdHJ1Y3RvcjtcclxuaW50ZXJmYWNlIFNkVXRpbGl0eUNvbnRydWN0b3Ige1xyXG4gIHVwbG9hZDogKG9wdGlvbj86IHtcclxuICAgIGV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcclxuICAgIG1heFNpemVJbk1iPzogbnVtYmVyO1xyXG4gICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZztcclxuICB9KSA9PiBQcm9taXNlPEZpbGUgfCBudWxsPjtcclxuICBkb3dubG9hZDogKGZpbGVQYXRoOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB2b2lkXHJcbiAgZG93bmxvYWRCbG9iOiAoYmxvYjogQmxvYiwgZmlsZU5hbWU/OiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgY2hhbmdlQWxpYXNMb3dlckNhc2U6IChhbGlhczogc3RyaW5nKSA9PiBzdHJpbmc7XHJcbiAgY29weVRvQ2xpcGJvYXJkOiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGFsbFdpdGhQYWdpbmc6IDxUID0gYW55PihmdW5jOiAocGFnZVNpemU6IG51bWJlciwgcGFnZU51bWJlcjogbnVtYmVyKSA9PiBQcm9taXNlPHtcclxuICAgIGl0ZW1zOiBUW107XHJcbiAgICB0b3RhbDogbnVtYmVyO1xyXG4gIH0+LCBkZWZhdWx0UGFnZVNpemU/OiBudW1iZXIpID0+IFByb21pc2U8VFtdPlxyXG59XHJcblxyXG5cclxuY29uc3QgdXBsb2FkID0gKG9wdGlvbj86IHtcclxuICBleHRlbnNpb25zPzogc3RyaW5nW10sXHJcbiAgbWF4U2l6ZUluTWI/OiBudW1iZXIsXHJcbiAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZ1xyXG59KSA9PiB7XHJcbiAgY29uc3QgdXBsb2FkSWQgPSAnVTFlMDljMWMwLWI2NDctNDM3ZS05OTVlLWQ3YTFhMWI2MDU1MCc7XHJcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPEZpbGUgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKT8uWzBdO1xyXG4gICAgaWYgKCFib2R5KSB7XHJcbiAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGV4aXN0ZWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodXBsb2FkSWQpO1xyXG4gICAgaWYgKGV4aXN0ZWRFbGVtZW50KSB7XHJcbiAgICAgIGV4aXN0ZWRFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCB1cGxvYWRJZCk7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7XHJcbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZ0OiBhbnkpID0+IHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgICAgICBjb25zdCBmaWxlID0gdGFyZ2V0LmZpbGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICAgIGNvbnN0IGxhc3REb3QgPSBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICAgICAgICAgIGlmIChsYXN0RG90ID09PSAtMSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbGUga2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZ2ApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnN1YnN0cmluZyhsYXN0RG90ICsgMSk7XHJcbiAgICAgICAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uZXh0ZW5zaW9ucz8ubGVuZ3RoICYmICFvcHRpb24uZXh0ZW5zaW9ucy5zb21lKGUgPT4gZS50b1VwcGVyQ2FzZSgpID09PSBleHRlbnNpb24udG9VcHBlckNhc2UoKSkpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbGUga2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZ2ApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24ubWF4U2l6ZUluTWIgJiYgb3B0aW9uLm1heFNpemVJbk1iID4gMCAmJiBvcHRpb24ubWF4U2l6ZUluTWIgKiAxMDI0ICogMTAyNCA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgWyR7ZmlsZS5uYW1lfV0gRHVuZyBsxrDhu6NuZyB04buRaSDEkWEgJHtvcHRpb24ubWF4U2l6ZUluTWJ9IE1ic2A7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24udmFsaWRhdG9yICYmIG9wdGlvbi52YWxpZGF0b3IoZmlsZS5uYW1lKSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSk7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXNvbHZlKGZpbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGVsZW1lbnQuY2xpY2soKTtcclxuICB9KTtcclxuICByZXR1cm4gcHJvbWlzZTtcclxufVxyXG5cclxuY29uc3QgZ2VuZXJhdGVGaWxlTmFtZSA9IChmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gIGlmICghZmlsZU5hbWUpIHtcclxuICAgIHJldHVybiBgRmlsZV8ke25ldyBEYXRlKCkudG9Gb3JtYXQoJ3l5eXlfTU1fZGRfSEhfbW0nKX1gO1xyXG4gIH1cclxuICBjb25zdCBzdHJzID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcclxuICBpZiAoc3Rycy5sZW5ndGggPiAxKSB7XHJcbiAgICBjb25zdCBleHQgPSBzdHJzLnNwbGljZShzdHJzLmxlbmd0aCAtIDEsIDEpWzBdO1xyXG4gICAgcmV0dXJuIGAke3N0cnMuam9pbignLicpfV8ke25ldyBEYXRlKCkudG9Gb3JtYXQoJ3l5eXlfTU1fZGRfSEhfbW0nKX0uJHtleHR9YDtcclxuICB9XHJcbiAgcmV0dXJuIGAke2ZpbGVOYW1lfV8ke25ldyBEYXRlKCkudG9Gb3JtYXQoJ3l5eXlfTU1fZGRfSEhfbW0nKX1gO1xyXG59XHJcblxyXG5jb25zdCBkb3dubG9hZCA9IChmaWxlUGF0aDogc3RyaW5nLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgbGluay5kb3dubG9hZCA9IGdlbmVyYXRlRmlsZU5hbWUoZmlsZU5hbWUpO1xyXG4gIGxpbmsuaHJlZiA9IGZpbGVQYXRoO1xyXG4gIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgbGluay5jbGljaygpO1xyXG4gIGxpbmsucmVtb3ZlKCk7XHJcbn1cclxuXHJcbmNvbnN0IGRvd25sb2FkQmxvYiA9IChibG9iOiBCbG9iLCBmaWxlTmFtZT86IHN0cmluZykgPT4ge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7IC8vIGZlYXR1cmUgZGV0ZWN0aW9uXHJcbiAgICAgIGxpbmsuZG93bmxvYWQgPSBnZW5lcmF0ZUZpbGVOYW1lKGZpbGVOYW1lKTtcclxuICAgICAgbGluay5ocmVmID0gdXJsO1xyXG4gICAgICBsaW5rLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICBsaW5rLnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoJ0Jsb2JUb1NhdmVBcyBlcnJvcicsIGUpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgY2hhbmdlQWxpYXNMb3dlckNhc2UgPSAoYWxpYXM6IHN0cmluZykgPT4ge1xyXG4gIGxldCBzdHIgPSBhbGlhcz8udG9TdHJpbmcoKSA/PyAnJztcclxuICBzdHIgPSBzdHIudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/DoHzDoXzhuqF84bqjfMOjfMOifOG6p3zhuqV84bqtfOG6qXzhuqt8xIN84bqxfOG6r3zhurd84bqzfOG6tS9nLCAnYScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/DqHzDqXzhurl84bq7fOG6vXzDqnzhu4F84bq/fOG7h3zhu4N84buFL2csICdlJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8OsfMOtfOG7i3zhu4l8xKkvZywgJ2knKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw7J8w7N84buNfOG7j3zDtXzDtHzhu5N84buRfOG7mXzhu5V84buXfMahfOG7nXzhu5t84bujfOG7n3zhu6EvZywgJ28nKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw7l8w7p84bulfOG7p3zFqXzGsHzhu6t84bupfOG7sXzhu6184buvL2csICd1Jyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL+G7s3zDvXzhu7V84bu3fOG7uS9nLCAneScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/EkS9nLCAnZCcpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC8hfEB8JXxcXF58XFwqfFxcKHxcXCl8XFwrfFxcPXxcXDx8XFw+fFxcP3xcXC98LHxcXC58XFw6fFxcO3xcXCd8XFxcInxcXCZ8XFwjfFxcW3xcXF18fnxcXCR8X3xgfC18e3x9fFxcfHxcXFxcL2csICcgJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoLyArIC9nLCAnICcpO1xyXG4gIHN0ciA9IHN0ci50cmltKCk7XHJcbiAgcmV0dXJuIHN0cjtcclxufVxyXG5cclxuY29uc3QgY29weVRvQ2xpcGJvYXJkID0gKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xyXG59XHJcblxyXG5jb25zdCBhbGxXaXRoUGFnaW5nID0gYXN5bmMgPFQgPSBhbnk+KGZ1bmM6IChwYWdlU2l6ZTogbnVtYmVyLCBwYWdlTnVtYmVyOiBudW1iZXIpID0+IFByb21pc2U8eyBpdGVtczogVFtdLCB0b3RhbDogbnVtYmVyIH0+LCBkZWZhdWx0UGFnZVNpemU/OiBudW1iZXIpOiBQcm9taXNlPFRbXT4gPT4ge1xyXG4gIGxldCBwYWdlU2l6ZSA9IGRlZmF1bHRQYWdlU2l6ZSB8fCAxMDAwO1xyXG4gIGxldCBwYWdlTnVtYmVyID0gMDtcclxuICBsZXQgY291bnQgPSAwO1xyXG4gIGxldCBpdGVtczogVFtdID0gW107XHJcbiAgd2hpbGUgKHRydWUpIHtcclxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZ1bmMocGFnZVNpemUsIHBhZ2VOdW1iZXIpO1xyXG4gICAgaWYgKEFycmF5KHJlcz8uaXRlbXMpICYmIHJlcz8udG90YWwgPiAwKSB7XHJcbiAgICAgIGl0ZW1zID0gWy4uLml0ZW1zLCAuLi5yZXMuaXRlbXNdO1xyXG4gICAgICBjb3VudCArPSByZXMuaXRlbXMubGVuZ3RoO1xyXG4gICAgICBwYWdlTnVtYmVyKys7XHJcbiAgICAgIGlmIChjb3VudCA+PSByZXMudG90YWwgfHwgIXJlcy5pdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52YXIgU2RVdGlsaXR5OiBTZFV0aWxpdHlDb250cnVjdG9yID0ge1xyXG4gIHVwbG9hZCxcclxuICBkb3dubG9hZCxcclxuICBkb3dubG9hZEJsb2IsXHJcbiAgY2hhbmdlQWxpYXNMb3dlckNhc2UsXHJcbiAgY29weVRvQ2xpcGJvYXJkLFxyXG4gIGFsbFdpdGhQYWdpbmdcclxufTtcclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICB2YXIgU2RVdGlsaXR5OiBTZFV0aWxpdHlDb250cnVjdG9yO1xyXG59XHJcbmdsb2JhbFRoaXMuU2RVdGlsaXR5ID0gU2RVdGlsaXR5OyJdfQ==
156
+ export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7 };
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1vbi8iLCJzb3VyY2VzIjpbInNyYy9saWIvdHlwaW5ncy91dGlsaXR5LmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBc0I1RCxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BSWYsRUFBRSxFQUFFO0lBQ0gsTUFBTSxRQUFRLEdBQUcsdUNBQXVDLENBQUM7SUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O1FBQzNELE1BQU0sSUFBSSxTQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsMENBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNkLE9BQU87U0FDUjtRQUNELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixP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LEVBQUU7SUFDakQsTUFBTSxLQUFLLEdBQUcsTUFBTSxlQUFlLEVBQUUsQ0FBQztJQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUM7QUFDekIsQ0FBQyxDQUFBLENBQUE7O0FBRUQsSUFBSSxTQUFTLEdBQXdCO0lBQ25DLE1BQU07SUFDTixRQUFRO0lBQ1IsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixlQUFlO0lBQ2YsYUFBYTtJQUNiLGFBQWE7Q0FDZCxDQUFDO0FBS0YsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXRlY3RJbmNvZ25pdG8gfSBmcm9tICcuLi9vdGhlcnMvZGV0ZWN0SW5jb2duaXRvJztcclxuXHJcbmV4cG9ydCB7IH07XHJcbi8vIGRlY2xhcmUgdmFyIERhdGU6IERhdGVDb25zdHJ1Y3RvcjtcclxuaW50ZXJmYWNlIFNkVXRpbGl0eUNvbnRydWN0b3Ige1xyXG4gIHVwbG9hZDogKG9wdGlvbj86IHtcclxuICAgIGV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcclxuICAgIG1heFNpemVJbk1iPzogbnVtYmVyO1xyXG4gICAgdmFsaWRhdG9yPzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHN0cmluZztcclxuICB9KSA9PiBQcm9taXNlPEZpbGUgfCBudWxsPjtcclxuICBkb3dubG9hZDogKGZpbGVQYXRoOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGRvd25sb2FkQmxvYjogKGJsb2I6IEJsb2IsIGZpbGVOYW1lPzogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIGNoYW5nZUFsaWFzTG93ZXJDYXNlOiAoYWxpYXM6IHN0cmluZykgPT4gc3RyaW5nO1xyXG4gIGNvcHlUb0NsaXBib2FyZDogKHRleHQ6IHN0cmluZykgPT4gdm9pZDtcclxuICBhbGxXaXRoUGFnaW5nOiA8VCA9IGFueT4oZnVuYzogKHBhZ2VTaXplOiBudW1iZXIsIHBhZ2VOdW1iZXI6IG51bWJlcikgPT4gUHJvbWlzZTx7XHJcbiAgICBpdGVtczogVFtdO1xyXG4gICAgdG90YWw6IG51bWJlcjtcclxuICB9PiwgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyKSA9PiBQcm9taXNlPFRbXT47XHJcbiAgaXNQcml2YXRlTW9kZTogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcclxufVxyXG5cclxuXHJcbmNvbnN0IHVwbG9hZCA9IChvcHRpb24/OiB7XHJcbiAgZXh0ZW5zaW9ucz86IHN0cmluZ1tdLFxyXG4gIG1heFNpemVJbk1iPzogbnVtYmVyLFxyXG4gIHZhbGlkYXRvcj86IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmdcclxufSkgPT4ge1xyXG4gIGNvbnN0IHVwbG9hZElkID0gJ1UxZTA5YzFjMC1iNjQ3LTQzN2UtOTk1ZS1kN2ExYTFiNjA1NTAnO1xyXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxGaWxlIHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5Jyk/LlswXTtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBleGlzdGVkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHVwbG9hZElkKTtcclxuICAgIGlmIChleGlzdGVkRWxlbWVudCkge1xyXG4gICAgICBleGlzdGVkRWxlbWVudC5yZW1vdmUoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgdXBsb2FkSWQpO1xyXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpO1xyXG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2dDogYW55KSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBEYXRhVHJhbnNmZXI7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IHRhcmdldC5maWxlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICBjb25zdCBsYXN0RG90ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICAgICAgICBpZiAobGFzdERvdCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmdgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGUubmFtZS5zdWJzdHJpbmcobGFzdERvdCArIDEpO1xyXG4gICAgICAgICAgaWYgKG9wdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9uLmV4dGVuc2lvbnM/Lmxlbmd0aCAmJiAhb3B0aW9uLmV4dGVuc2lvbnMuc29tZShlID0+IGUudG9VcHBlckNhc2UoKSA9PT0gZXh0ZW5zaW9uLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIGtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmdgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob3B0aW9uLm1heFNpemVJbk1iICYmIG9wdGlvbi5tYXhTaXplSW5NYiA+IDAgJiYgb3B0aW9uLm1heFNpemVJbk1iICogMTAyNCAqIDEwMjQgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFske2ZpbGUubmFtZX1dIER1bmcgbMaw4bujbmcgdOG7kWkgxJFhICR7b3B0aW9uLm1heFNpemVJbk1ifSBNYnNgO1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAob3B0aW9uLnZhbGlkYXRvciAmJiBvcHRpb24udmFsaWRhdG9yKGZpbGUubmFtZSkpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gb3B0aW9uLnZhbGlkYXRvcihmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZShmaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBlbGVtZW50LmNsaWNrKCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHByb21pc2U7XHJcbn1cclxuXHJcbmNvbnN0IGdlbmVyYXRlRmlsZU5hbWUgPSAoZmlsZU5hbWU/OiBzdHJpbmcpID0+IHtcclxuICBpZiAoIWZpbGVOYW1lKSB7XHJcbiAgICByZXR1cm4gYEZpbGVfJHtuZXcgRGF0ZSgpLnRvRm9ybWF0KCd5eXl5X01NX2RkX0hIX21tJyl9YDtcclxuICB9XHJcbiAgY29uc3Qgc3RycyA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XHJcbiAgaWYgKHN0cnMubGVuZ3RoID4gMSkge1xyXG4gICAgY29uc3QgZXh0ID0gc3Rycy5zcGxpY2Uoc3Rycy5sZW5ndGggLSAxLCAxKVswXTtcclxuICAgIHJldHVybiBgJHtzdHJzLmpvaW4oJy4nKX1fJHtuZXcgRGF0ZSgpLnRvRm9ybWF0KCd5eXl5X01NX2RkX0hIX21tJyl9LiR7ZXh0fWA7XHJcbiAgfVxyXG4gIHJldHVybiBgJHtmaWxlTmFtZX1fJHtuZXcgRGF0ZSgpLnRvRm9ybWF0KCd5eXl5X01NX2RkX0hIX21tJyl9YDtcclxufVxyXG5cclxuY29uc3QgZG93bmxvYWQgPSAoZmlsZVBhdGg6IHN0cmluZywgZmlsZU5hbWU/OiBzdHJpbmcpID0+IHtcclxuICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gIGxpbmsuZG93bmxvYWQgPSBnZW5lcmF0ZUZpbGVOYW1lKGZpbGVOYW1lKTtcclxuICBsaW5rLmhyZWYgPSBmaWxlUGF0aDtcclxuICBsaW5rLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gIGxpbmsuY2xpY2soKTtcclxuICBsaW5rLnJlbW92ZSgpO1xyXG59XHJcblxyXG5jb25zdCBkb3dubG9hZEJsb2IgPSAoYmxvYjogQmxvYiwgZmlsZU5hbWU/OiBzdHJpbmcpID0+IHtcclxuICB0cnkge1xyXG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgaWYgKGxpbmsuZG93bmxvYWQgIT09IHVuZGVmaW5lZCkgeyAvLyBmZWF0dXJlIGRldGVjdGlvblxyXG4gICAgICBsaW5rLmRvd25sb2FkID0gZ2VuZXJhdGVGaWxlTmFtZShmaWxlTmFtZSk7XHJcbiAgICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgICAgbGluay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgICAgbGluay5yZW1vdmUoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdCbG9iVG9TYXZlQXMgZXJyb3InLCBlKTtcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZUFsaWFzTG93ZXJDYXNlID0gKGFsaWFzOiBzdHJpbmcpID0+IHtcclxuICBsZXQgc3RyID0gYWxpYXM/LnRvU3RyaW5nKCkgPz8gJyc7XHJcbiAgc3RyID0gc3RyLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw6B8w6F84bqhfOG6o3zDo3zDonzhuqd84bqlfOG6rXzhuql84bqrfMSDfOG6sXzhuq984bq3fOG6s3zhurUvZywgJ2EnKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvw6h8w6l84bq5fOG6u3zhur18w6p84buBfOG6v3zhu4d84buDfOG7hS9nLCAnZScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/DrHzDrXzhu4t84buJfMSpL2csICdpJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8OyfMOzfOG7jXzhu498w7V8w7R84buTfOG7kXzhu5l84buVfOG7l3zGoXzhu5184bubfOG7o3zhu5984buhL2csICdvJyk7XHJcbiAgc3RyID0gc3RyLnJlcGxhY2UoL8O5fMO6fOG7pXzhu6d8xal8xrB84burfOG7qXzhu7F84butfOG7ry9nLCAndScpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC/hu7N8w7184bu1fOG7t3zhu7kvZywgJ3knKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvxJEvZywgJ2QnKTtcclxuICBzdHIgPSBzdHIucmVwbGFjZSgvIXxAfCV8XFxefFxcKnxcXCh8XFwpfFxcK3xcXD18XFw8fFxcPnxcXD98XFwvfCx8XFwufFxcOnxcXDt8XFwnfFxcXCJ8XFwmfFxcI3xcXFt8XFxdfH58XFwkfF98YHwtfHt8fXxcXHx8XFxcXC9nLCAnICcpO1xyXG4gIHN0ciA9IHN0ci5yZXBsYWNlKC8gKyAvZywgJyAnKTtcclxuICBzdHIgPSBzdHIudHJpbSgpO1xyXG4gIHJldHVybiBzdHI7XHJcbn1cclxuXHJcbmNvbnN0IGNvcHlUb0NsaXBib2FyZCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcclxufVxyXG5cclxuY29uc3QgYWxsV2l0aFBhZ2luZyA9IGFzeW5jIDxUID0gYW55PihmdW5jOiAocGFnZVNpemU6IG51bWJlciwgcGFnZU51bWJlcjogbnVtYmVyKSA9PiBQcm9taXNlPHsgaXRlbXM6IFRbXSwgdG90YWw6IG51bWJlciB9PiwgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyKTogUHJvbWlzZTxUW10+ID0+IHtcclxuICBsZXQgcGFnZVNpemUgPSBkZWZhdWx0UGFnZVNpemUgfHwgMTAwMDtcclxuICBsZXQgcGFnZU51bWJlciA9IDA7XHJcbiAgbGV0IGNvdW50ID0gMDtcclxuICBsZXQgaXRlbXM6IFRbXSA9IFtdO1xyXG4gIHdoaWxlICh0cnVlKSB7XHJcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmdW5jKHBhZ2VTaXplLCBwYWdlTnVtYmVyKTtcclxuICAgIGlmIChBcnJheShyZXM/Lml0ZW1zKSAmJiByZXM/LnRvdGFsID4gMCkge1xyXG4gICAgICBpdGVtcyA9IFsuLi5pdGVtcywgLi4ucmVzLml0ZW1zXTtcclxuICAgICAgY291bnQgKz0gcmVzLml0ZW1zLmxlbmd0aDtcclxuICAgICAgcGFnZU51bWJlcisrO1xyXG4gICAgICBpZiAoY291bnQgPj0gcmVzLnRvdGFsIHx8ICFyZXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uc3QgaXNQcml2YXRlTW9kZSA9IGFzeW5jICgpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcclxuICBjb25zdCBjaGVjayA9IGF3YWl0IGRldGVjdEluY29nbml0bygpO1xyXG4gIHJldHVybiBjaGVjay5pc1ByaXZhdGU7XHJcbn1cclxuXHJcbnZhciBTZFV0aWxpdHk6IFNkVXRpbGl0eUNvbnRydWN0b3IgPSB7XHJcbiAgdXBsb2FkLFxyXG4gIGRvd25sb2FkLFxyXG4gIGRvd25sb2FkQmxvYixcclxuICBjaGFuZ2VBbGlhc0xvd2VyQ2FzZSxcclxuICBjb3B5VG9DbGlwYm9hcmQsXHJcbiAgYWxsV2l0aFBhZ2luZyxcclxuICBpc1ByaXZhdGVNb2RlLFxyXG59O1xyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIHZhciBTZFV0aWxpdHk6IFNkVXRpbGl0eUNvbnRydWN0b3I7XHJcbn1cclxuZ2xvYmFsVGhpcy5TZFV0aWxpdHkgPSBTZFV0aWxpdHk7XHJcbiJdfQ==
@@ -153,6 +153,8 @@ class SdChart {
153
153
  case 'barline':
154
154
  this.renderBarLineChart(this.pChartOption);
155
155
  break;
156
+ case 'doughnut':
157
+ this.renderDoughnutChart(this.pChartOption);
156
158
  default:
157
159
  break;
158
160
  }
@@ -208,6 +210,56 @@ class SdChart {
208
210
  this.chart = new Chart(this.ctx, configuration);
209
211
  this.isLoading = false;
210
212
  }
213
+ renderDoughnutChart(option) {
214
+ var _a, _b, _c;
215
+ const configuration = {
216
+ type: 'doughnut',
217
+ options: {
218
+ responsive: true,
219
+ maintainAspectRatio: false,
220
+ title: {
221
+ display: true,
222
+ text: option.title
223
+ },
224
+ legend: {
225
+ display: !option.hideLegend
226
+ },
227
+ tooltips: {
228
+ callbacks: {
229
+ label: (tooltipItem, data) => {
230
+ var _a, _b, _c;
231
+ const datasetLabel = (_a = data === null || data === void 0 ? void 0 : data.datasets[tooltipItem.datasetIndex]) === null || _a === void 0 ? void 0 : _a.label;
232
+ const label = data === null || data === void 0 ? void 0 : data.labels[tooltipItem.index];
233
+ const value = (_b = data === null || data === void 0 ? void 0 : data.datasets[tooltipItem.datasetIndex]) === null || _b === void 0 ? void 0 : _b.data[tooltipItem.index];
234
+ return ((_c = option.tooltips) === null || _c === void 0 ? void 0 : _c.label({
235
+ datasetLabel,
236
+ label,
237
+ value
238
+ })) || `${datasetLabel ? `[${datasetLabel}] ` : ''}${label} : ${Number.toVNCurrency(value)}`;
239
+ }
240
+ }
241
+ }
242
+ },
243
+ data: {
244
+ labels: ((_a = option.datasets) === null || _a === void 0 ? void 0 : _a.map(e => e.label)) || [],
245
+ datasets: [{
246
+ data: ((_b = option.datasets) === null || _b === void 0 ? void 0 : _b.map(e => e.value)) || [],
247
+ backgroundColor: ((_c = option.datasets) === null || _c === void 0 ? void 0 : _c.map((e, idx) => {
248
+ var _a, _b, _c;
249
+ return e.backgroundColor
250
+ || ((_c = (_b = (_a = this.chartConfiguration) === null || _a === void 0 ? void 0 : _a.defaultColors) === null || _b === void 0 ? void 0 : _b[idx]) === null || _c === void 0 ? void 0 : _c.backgroundColor)
251
+ || this.dynamicColor;
252
+ })) || []
253
+ }]
254
+ }
255
+ };
256
+ if (option.hover === 'ShowAll') {
257
+ configuration.options.tooltips = Object.assign(Object.assign({}, configuration.options.tooltips), { mode: 'index', intersect: false });
258
+ configuration.options.hover = Object.assign(Object.assign({}, configuration.options.hover), { mode: 'index', intersect: false });
259
+ }
260
+ this.chart = new Chart(this.ctx, configuration);
261
+ this.isLoading = false;
262
+ }
211
263
  renderBarChart(option) {
212
264
  var _a, _b;
213
265
  const labelWidth = (_a = option.labelWidth) !== null && _a !== void 0 ? _a : 50;
@@ -690,7 +742,7 @@ class SdChart {
690
742
  SdChart.decorators = [
691
743
  { type: Component, args: [{
692
744
  selector: 'sd-chart',
693
- template: "<div *ngIf=\"visible\" class=\"c-chart-wrapper mt-2\" >\r\n <div class=\"c-chart-area-wrapper\" #chartWrapper>\r\n <div class=\"c-chart-area-wrapper-extend\" [ngStyle]=\"{'height':height}\" #chartAreaWrapperExtend [ngClass]=\"{'c-loading': isLoading}\">\r\n <i [ngClass]=\"{'d-none': !isLoading}\" class=\"fa fa-5x fa-spinner fa-pulse c-loading-icon\"></i>\r\n <canvas #chart [ngClass]=\"{'c-loading-margin': isLoading}\"></canvas>\r\n </div>\r\n </div>\r\n</div>\r\n",
745
+ template: "<div *ngIf=\"visible\" class=\"c-chart-wrapper mt-2\" >\r\n <div class=\"c-chart-area-wrapper\" #chartWrapper>\r\n <div class=\"c-chart-area-wrapper-extend position-relative\" [ngStyle]=\"{'height':height}\" #chartAreaWrapperExtend [ngClass]=\"{'c-loading': isLoading}\">\r\n <i [ngClass]=\"{'d-none': !isLoading}\" class=\"fa fa-5x fa-spinner fa-pulse c-loading-icon\"></i>\r\n <canvas #chart [ngClass]=\"{'c-loading-margin': isLoading}\"></canvas>\r\n </div>\r\n </div>\r\n</div>\r\n",
694
746
  styles: [".c-container{background:#f5f6f7;border-radius:5px}.c-flex{border-radius:8px;display:flex;margin:15px}.c-chart-container{background:#fff;border-radius:5px;border-radius:8px;box-shadow:0 0 13px 0 rgba(82,63,105,.1);margin:15px;padding:15px}.c-btn-dashboard{align-self:center;height:60%;vertical-align:middle}.c-chart-wrapper{position:relative}.c-chart-wrapper>canvas{left:0;pointer-events:none;position:absolute;top:0}.c-chart-area-wrapper{overflow-x:auto;position:relative;width:100%}.c-chart-area-wrapper-extend{position:relative}.c-loading{opacity:.4}.c-loading-icon{left:calc(50% - 2.5rem);position:-webkit-sticky;position:sticky;top:calc(50% - 2.5rem)}.c-loading-margin{margin-top:-6rem}::-webkit-scrollbar{height:7px;width:7px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#555}"]
695
747
  },] }
696
748
  ];