tnp-helpers 13.1.13 → 13.1.15
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.
- package/app.js +3 -3
- package/browser/esm2020/lib/helpers-browser.mjs +47 -0
- package/browser/esm2020/lib/helpers-numbers.mjs +1 -1
- package/browser/esm2020/lib/helpers.mjs +4 -2
- package/browser/fesm2015/tnp-helpers.mjs +51 -1
- package/browser/fesm2020/tnp-helpers.mjs +49 -1
- package/browser/lib/helpers-browser.d.ts +12 -0
- package/browser/lib/helpers.d.ts +2 -0
- package/client/esm2020/lib/helpers-browser.mjs +47 -0
- package/client/esm2020/lib/helpers-numbers.mjs +1 -1
- package/client/esm2020/lib/helpers.mjs +4 -2
- package/client/fesm2015/tnp-helpers.mjs +51 -1
- package/client/fesm2020/tnp-helpers.mjs +49 -1
- package/client/lib/helpers-browser.d.ts +12 -0
- package/client/lib/helpers.d.ts +2 -0
- package/lib/base-component.js +3 -3
- package/lib/base-formly-component.js +3 -3
- package/lib/dual-component-ctrl.js +3 -3
- package/lib/git-project.d.ts +1 -2
- package/lib/helpers-browser.d.ts +11 -0
- package/lib/helpers-browser.js +70 -0
- package/lib/helpers-file-folders.backend.d.ts +1 -1
- package/lib/helpers-file-folders.backend.js +6 -3
- package/lib/helpers-git.backend.js +1 -1
- package/lib/helpers-process.backend.d.ts +4 -3
- package/lib/helpers-process.backend.js +30 -3
- package/lib/helpers.d.ts +3 -1
- package/lib/helpers.js +2 -0
- package/package.json +3 -3
- package/tmp-environment.json +11 -10
- package/websql/esm2020/lib/helpers-browser.mjs +47 -0
- package/websql/esm2020/lib/helpers-numbers.mjs +1 -1
- package/websql/esm2020/lib/helpers.mjs +4 -2
- package/websql/fesm2015/tnp-helpers.mjs +51 -1
- package/websql/fesm2020/tnp-helpers.mjs +49 -1
- package/websql/lib/helpers-browser.d.ts +12 -0
- package/websql/lib/helpers.d.ts +2 -0
package/client/lib/helpers.d.ts
CHANGED
|
@@ -6,11 +6,13 @@ import { HelpersStrings } from './helpers-strings';
|
|
|
6
6
|
import { conditionWait } from './condition-wait';
|
|
7
7
|
import { CoreHelpers } from 'tnp-core/browser';
|
|
8
8
|
import { HelpersNumber } from './helpers-numbers';
|
|
9
|
+
import { HelpersBrowaser } from './helpers-browser';
|
|
9
10
|
export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void;
|
|
10
11
|
export declare class HelpersTnp extends CoreHelpers {
|
|
11
12
|
arrays: HelpersArrayObj;
|
|
12
13
|
strings: HelpersStrings;
|
|
13
14
|
numbers: HelpersNumber;
|
|
15
|
+
browser: HelpersBrowaser;
|
|
14
16
|
private static _instance;
|
|
15
17
|
static get Instance(): HelpersTnp & CoreHelpers;
|
|
16
18
|
private constructor();
|
package/lib/base-component.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
5
|
-
exports.
|
|
3
|
+
exports.dummy1677313558161 = void 0;
|
|
4
|
+
function dummy1677313558161() { }
|
|
5
|
+
exports.dummy1677313558161 = dummy1677313558161;
|
|
6
6
|
//# sourceMappingURL=base-component.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
5
|
-
exports.
|
|
3
|
+
exports.dummy1677313558163 = void 0;
|
|
4
|
+
function dummy1677313558163() { }
|
|
5
|
+
exports.dummy1677313558163 = dummy1677313558163;
|
|
6
6
|
//# sourceMappingURL=base-formly-component.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
function
|
|
5
|
-
exports.
|
|
3
|
+
exports.dummy1677313558169 = void 0;
|
|
4
|
+
function dummy1677313558169() { }
|
|
5
|
+
exports.dummy1677313558169 = dummy1677313558169;
|
|
6
6
|
//# sourceMappingURL=dual-component-ctrl.js.map
|
package/lib/git-project.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { child_process } from 'tnp-core';
|
|
2
1
|
import { Project } from './project';
|
|
3
2
|
import { RunOptions, ExecuteOptions } from 'tnp-core';
|
|
4
3
|
export declare abstract class ProjectGit {
|
|
@@ -8,7 +7,7 @@ export declare abstract class ProjectGit {
|
|
|
8
7
|
}): Promise<unknown>;
|
|
9
8
|
run(this: Project, command: string, options?: RunOptions): {
|
|
10
9
|
sync(): string;
|
|
11
|
-
async(detach?: boolean):
|
|
10
|
+
async(detach?: boolean, mockFun?: (stdoutCallback: (dataForStdout: any) => any, stdErrcCallback: (dataForStder: any) => any, shouldProcesBeDead?: () => boolean) => number | Promise<number>): any;
|
|
12
11
|
asyncAsPromise(): any;
|
|
13
12
|
unitlOutputContains(stdoutMsg: string | string[], stderMsg?: string | string[]): Promise<any>;
|
|
14
13
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class HelpersBrowaser {
|
|
2
|
+
private static callbacks;
|
|
3
|
+
static onInit(callback: (ins: HelpersBrowaser) => any): void;
|
|
4
|
+
get win(): Window & typeof globalThis;
|
|
5
|
+
private get tabIdSessionStorage();
|
|
6
|
+
readonly tabId: number;
|
|
7
|
+
private static inst;
|
|
8
|
+
init: void;
|
|
9
|
+
private constructor();
|
|
10
|
+
static get instance(): HelpersBrowaser;
|
|
11
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// session tab it
|
|
3
|
+
// realtime session
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.HelpersBrowaser = void 0;
|
|
6
|
+
var key = Symbol('[firedev-helpers] helper browser key');
|
|
7
|
+
var HelpersBrowaser = /** @class */ (function () {
|
|
8
|
+
function HelpersBrowaser(win) {
|
|
9
|
+
/* */
|
|
10
|
+
/* */
|
|
11
|
+
/* */
|
|
12
|
+
/* */
|
|
13
|
+
/* */
|
|
14
|
+
/* */
|
|
15
|
+
/* */
|
|
16
|
+
/* */
|
|
17
|
+
/* */
|
|
18
|
+
/* */
|
|
19
|
+
/* */
|
|
20
|
+
/* */
|
|
21
|
+
/* */
|
|
22
|
+
/* */
|
|
23
|
+
/* */
|
|
24
|
+
/* */
|
|
25
|
+
/* */
|
|
26
|
+
/* */
|
|
27
|
+
/* */
|
|
28
|
+
/* */
|
|
29
|
+
/* */
|
|
30
|
+
/* */
|
|
31
|
+
var _this = this;
|
|
32
|
+
this.init = (function () {
|
|
33
|
+
var win = _this.win;
|
|
34
|
+
if (!win[key]) {
|
|
35
|
+
win[key] = new HelpersBrowaser(win);
|
|
36
|
+
}
|
|
37
|
+
HelpersBrowaser.inst = win[key];
|
|
38
|
+
})();
|
|
39
|
+
}
|
|
40
|
+
HelpersBrowaser.onInit = function (callback) {
|
|
41
|
+
this.callbacks.push(callback);
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(HelpersBrowaser.prototype, "win", {
|
|
44
|
+
get: function () {
|
|
45
|
+
var win = window;
|
|
46
|
+
return win;
|
|
47
|
+
},
|
|
48
|
+
enumerable: false,
|
|
49
|
+
configurable: true
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(HelpersBrowaser.prototype, "tabIdSessionStorage", {
|
|
52
|
+
get: function () {
|
|
53
|
+
var _a;
|
|
54
|
+
return Number((_a = this.win.sessionStorage) === null || _a === void 0 ? void 0 : _a.tabId) || 0;
|
|
55
|
+
},
|
|
56
|
+
enumerable: false,
|
|
57
|
+
configurable: true
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(HelpersBrowaser, "instance", {
|
|
60
|
+
get: function () {
|
|
61
|
+
return HelpersBrowaser.inst;
|
|
62
|
+
},
|
|
63
|
+
enumerable: false,
|
|
64
|
+
configurable: true
|
|
65
|
+
});
|
|
66
|
+
HelpersBrowaser.callbacks = [];
|
|
67
|
+
return HelpersBrowaser;
|
|
68
|
+
}());
|
|
69
|
+
exports.HelpersBrowaser = HelpersBrowaser;
|
|
70
|
+
//# sourceMappingURL=helpers-browser.js.map
|
|
@@ -34,7 +34,7 @@ export declare class HelpersFileFolders {
|
|
|
34
34
|
removeFolderIfExists(absoluteFolderPath: string, options?: {
|
|
35
35
|
modifiedFiles?: Models.other.ModifiedFiles;
|
|
36
36
|
}): void;
|
|
37
|
-
tryRemoveDir(dirpath: string, contentOnly?: boolean): void;
|
|
37
|
+
tryRemoveDir(dirpath: string, contentOnly?: boolean, omitWarningNotExisted?: boolean): void;
|
|
38
38
|
move(from: string, to: string): void;
|
|
39
39
|
findChildren<T>(location: any, createFn: (childLocation: string) => T): T[];
|
|
40
40
|
findChildrenNavi<T>(location: any, createFn: (childLocation: string) => T): T[];
|
|
@@ -266,7 +266,7 @@ var HelpersFileFolders = /** @class */ (function () {
|
|
|
266
266
|
index_1.Helpers.log("[helpers] Remove folder: ".concat(absoluteFolderPath));
|
|
267
267
|
if (process.platform === 'win32') {
|
|
268
268
|
// rimraf.sync(absoluteFolderPath);
|
|
269
|
-
this.tryRemoveDir(absoluteFolderPath);
|
|
269
|
+
this.tryRemoveDir(absoluteFolderPath, false, true);
|
|
270
270
|
return;
|
|
271
271
|
}
|
|
272
272
|
var modifiedFiles = (options || { modifiedFiles: { modifiedFiles: [] } }).modifiedFiles;
|
|
@@ -288,10 +288,13 @@ var HelpersFileFolders = /** @class */ (function () {
|
|
|
288
288
|
// fs.rmdirSync(pathToFolder);
|
|
289
289
|
// }
|
|
290
290
|
// };
|
|
291
|
-
HelpersFileFolders.prototype.tryRemoveDir = function (dirpath, contentOnly) {
|
|
291
|
+
HelpersFileFolders.prototype.tryRemoveDir = function (dirpath, contentOnly, omitWarningNotExisted) {
|
|
292
292
|
if (contentOnly === void 0) { contentOnly = false; }
|
|
293
|
+
if (omitWarningNotExisted === void 0) { omitWarningNotExisted = false; }
|
|
293
294
|
if (!tnp_core_1.fse.existsSync(dirpath)) {
|
|
294
|
-
|
|
295
|
+
if (!omitWarningNotExisted) {
|
|
296
|
+
index_1.Helpers.warn("[firedev-helper][tryRemoveDir] Folder ".concat(tnp_core_1.path.basename(dirpath), " doesn't exist."));
|
|
297
|
+
}
|
|
295
298
|
return;
|
|
296
299
|
}
|
|
297
300
|
index_1.Helpers.log("[firedev-helpers][tryRemoveDir]: ".concat(dirpath));
|
|
@@ -271,7 +271,7 @@ var HelpersGit = /** @class */ (function () {
|
|
|
271
271
|
}
|
|
272
272
|
catch (error) {
|
|
273
273
|
index_1.Helpers.log(error);
|
|
274
|
-
index_1.Helpers.
|
|
274
|
+
index_1.Helpers.log("[firedev-helpers][git][commit] not able to commit what is with command: ".concat(cmdddd));
|
|
275
275
|
}
|
|
276
276
|
};
|
|
277
277
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { child_process } from 'tnp-core';
|
|
2
3
|
import { Models } from 'tnp-models';
|
|
3
4
|
import { Level } from 'ng2-logger';
|
|
@@ -34,7 +35,6 @@ export declare class HelpersProcess {
|
|
|
34
35
|
sleep(seconds?: number): string;
|
|
35
36
|
actionWrapper(fn: () => void, taskName?: string): Promise<void>;
|
|
36
37
|
terminalLine(): string;
|
|
37
|
-
killProcess(byPid: number): void;
|
|
38
38
|
killProcessByPort(portOrPortsToKill: number | number[]): Promise<void>;
|
|
39
39
|
clearConsole(): void;
|
|
40
40
|
formatPath(pathToFileOrFolder: string): string;
|
|
@@ -43,11 +43,12 @@ export declare class HelpersProcess {
|
|
|
43
43
|
/**
|
|
44
44
|
* @deprecated
|
|
45
45
|
*/
|
|
46
|
-
run(command: string, folderPath: string, options: Models.system.WatchOptions):
|
|
46
|
+
run(command: string, folderPath: string, options: Models.system.WatchOptions): any;
|
|
47
47
|
/**
|
|
48
48
|
* @deprecated
|
|
49
49
|
*/
|
|
50
|
-
call(fn: Function | string, params: string, folderPath: string, options: Models.system.WatchOptions):
|
|
50
|
+
call(fn: Function | string, params: string, folderPath: string, options: Models.system.WatchOptions): any;
|
|
51
51
|
};
|
|
52
52
|
getStringFrom(command: string, descriptionOfCommand?: string): string;
|
|
53
|
+
waitForMessegeInStdout(proc: child_process.ChildProcess, message: string): Promise<unknown>;
|
|
53
54
|
}
|
|
@@ -312,9 +312,6 @@ var HelpersProcess = /** @class */ (function () {
|
|
|
312
312
|
HelpersProcess.prototype.terminalLine = function () {
|
|
313
313
|
return tnp_core_1._.times(process.stdout.columns, function () { return '-'; }).join('');
|
|
314
314
|
};
|
|
315
|
-
HelpersProcess.prototype.killProcess = function (byPid) {
|
|
316
|
-
index_1.Helpers.run("kill -9 ".concat(byPid)).sync();
|
|
317
|
-
};
|
|
318
315
|
HelpersProcess.prototype.killProcessByPort = function (portOrPortsToKill) {
|
|
319
316
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
320
317
|
var index, port, org, e_1;
|
|
@@ -437,6 +434,36 @@ var HelpersProcess = /** @class */ (function () {
|
|
|
437
434
|
return void 0;
|
|
438
435
|
}
|
|
439
436
|
};
|
|
437
|
+
HelpersProcess.prototype.waitForMessegeInStdout = function (proc, message) {
|
|
438
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
439
|
+
return tslib_1.__generator(this, function (_a) {
|
|
440
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
441
|
+
var resolved = false;
|
|
442
|
+
proc.stdout.on('data', function (data) {
|
|
443
|
+
// console.log(`
|
|
444
|
+
// [waitForMessegeInStdout] data: ${data}
|
|
445
|
+
// [waitForMessegeInStdout] data typeof: ${typeof data}
|
|
446
|
+
// `);
|
|
447
|
+
if (tnp_core_1._.isObject(data) && tnp_core_1._.isFunction(data.toString)) {
|
|
448
|
+
data = data.toString();
|
|
449
|
+
}
|
|
450
|
+
if (tnp_core_1._.isString(data) && data.search(message) !== -1) {
|
|
451
|
+
resolved = true;
|
|
452
|
+
resolve(void 0);
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
proc.once('exit', function () {
|
|
456
|
+
// console.log(`
|
|
457
|
+
// [waitForMessegeInStdout] exit: ${code}
|
|
458
|
+
// `);
|
|
459
|
+
if (!resolved) {
|
|
460
|
+
reject();
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
})];
|
|
464
|
+
});
|
|
465
|
+
});
|
|
466
|
+
};
|
|
440
467
|
return HelpersProcess;
|
|
441
468
|
}());
|
|
442
469
|
exports.HelpersProcess = HelpersProcess;
|
package/lib/helpers.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { HelpersVscode } from './helpers-vscode.backend';
|
|
|
22
22
|
import { ConfigModels } from 'tnp-config';
|
|
23
23
|
import { CoreHelpers } from 'tnp-core';
|
|
24
24
|
import { HelpersNumber } from './helpers-numbers';
|
|
25
|
+
import { HelpersBrowaser } from './helpers-browser';
|
|
25
26
|
export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void;
|
|
26
27
|
export declare class HelpersTnp extends CoreHelpers {
|
|
27
28
|
tsCodeModifier: TsCodeModifer;
|
|
@@ -39,6 +40,7 @@ export declare class HelpersTnp extends CoreHelpers {
|
|
|
39
40
|
arrays: HelpersArrayObj;
|
|
40
41
|
strings: HelpersStrings;
|
|
41
42
|
numbers: HelpersNumber;
|
|
43
|
+
browser: HelpersBrowaser;
|
|
42
44
|
private static _instance;
|
|
43
45
|
static get Instance(): HelpersTnp & CoreHelpers;
|
|
44
46
|
private constructor();
|
|
@@ -66,4 +68,4 @@ export declare class HelpersTnp extends CoreHelpers {
|
|
|
66
68
|
applyMixins: typeof applyMixins;
|
|
67
69
|
}
|
|
68
70
|
export interface HelpersTnp extends HelpersStringsRegexes, HelpersEnvironment, HelpersProcess, HelpersFileFolders {
|
|
69
|
-
}
|
|
71
|
+
}
|
package/lib/helpers.js
CHANGED
|
@@ -35,6 +35,8 @@ var typescript_class_helpers_1 = require("typescript-class-helpers");
|
|
|
35
35
|
var morphi_1 = require("morphi");
|
|
36
36
|
var tnp_core_4 = require("tnp-core");
|
|
37
37
|
var helpers_numbers_1 = require("./helpers-numbers");
|
|
38
|
+
/* */
|
|
39
|
+
/* */
|
|
38
40
|
function applyMixins(derivedCtor, baseCtors) {
|
|
39
41
|
baseCtors.forEach(function (baseCtor) {
|
|
40
42
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach(function (name) {
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "13.1.
|
|
2
|
+
"version": "13.1.15",
|
|
3
3
|
"dependencies": {
|
|
4
4
|
"json10-writer": "~13.1.28",
|
|
5
|
-
"morphi": "~13.1.
|
|
5
|
+
"morphi": "~13.1.33",
|
|
6
6
|
"tnp-models": "~13.1.9"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"homepage": "https://github.com/darekf77/tnp-helpers#readme",
|
|
16
16
|
"name": "tnp-helpers",
|
|
17
17
|
"devDependencies": {},
|
|
18
|
-
"lastBuildTagHash": "
|
|
18
|
+
"lastBuildTagHash": "2c756e7c4cdb90b17bcf88d4dddbd7954792994a"
|
|
19
19
|
}
|
package/tmp-environment.json
CHANGED
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"firedev-helpers"
|
|
43
43
|
]
|
|
44
44
|
},
|
|
45
|
-
"version": "13.1.
|
|
45
|
+
"version": "13.1.15",
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"json10-writer": "~13.1.28",
|
|
48
|
-
"morphi": "~13.1.
|
|
48
|
+
"morphi": "~13.1.33",
|
|
49
49
|
"tnp-models": "~13.1.9"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
@@ -173,6 +173,7 @@
|
|
|
173
173
|
"firedev-ports": "~13.1.31",
|
|
174
174
|
"firedev-storage": "~13.1.23",
|
|
175
175
|
"firedev-typeorm": "~13.1.11",
|
|
176
|
+
"firedev-ui": "13.0.1",
|
|
176
177
|
"fkill": "6.1.0",
|
|
177
178
|
"font-awesome": "4.7.0",
|
|
178
179
|
"fs-extra": "8.1.0",
|
|
@@ -187,7 +188,7 @@
|
|
|
187
188
|
"inquirer": "7.3.3",
|
|
188
189
|
"inquirer-autocomplete-prompt": "1.3.0",
|
|
189
190
|
"is-elevated": "3.0.0",
|
|
190
|
-
"isomorphic-region-loader": "~1.
|
|
191
|
+
"isomorphic-region-loader": "~13.1.24",
|
|
191
192
|
"istanbul-instrumenter-loader": "2.0.0",
|
|
192
193
|
"jasmine-core": "4.0.0",
|
|
193
194
|
"jscodeshift": "0.6.3",
|
|
@@ -266,10 +267,10 @@
|
|
|
266
267
|
"systeminformation": "3.45.7",
|
|
267
268
|
"task.js": "0.1.5",
|
|
268
269
|
"tnp-cli": "~13.1.41",
|
|
269
|
-
"tnp-config": "~13.1.
|
|
270
|
-
"tnp-core": "~13.1.
|
|
270
|
+
"tnp-config": "~13.1.55",
|
|
271
|
+
"tnp-core": "~13.1.61",
|
|
271
272
|
"tnp-db": "~13.1.7",
|
|
272
|
-
"tnp-helpers": "~13.1.
|
|
273
|
+
"tnp-helpers": "~13.1.14",
|
|
273
274
|
"tnp-ui": "~13.1.27",
|
|
274
275
|
"ts-debug": "1.3.0",
|
|
275
276
|
"ts-loader": "2.3.1",
|
|
@@ -286,12 +287,12 @@
|
|
|
286
287
|
"watch": "1.0.2",
|
|
287
288
|
"zone.js": "~0.11.4"
|
|
288
289
|
},
|
|
289
|
-
"lastBuildTagHash": "
|
|
290
|
+
"lastBuildTagHash": "2c756e7c4cdb90b17bcf88d4dddbd7954792994a"
|
|
290
291
|
},
|
|
291
292
|
"build": {
|
|
292
|
-
"number":
|
|
293
|
-
"date": "2023-
|
|
294
|
-
"hash": "
|
|
293
|
+
"number": 486,
|
|
294
|
+
"date": "2023-02-25T08:25:53.000Z",
|
|
295
|
+
"hash": "0e4528d07cc3086f41f6b121088fed64b5f07b06",
|
|
295
296
|
"options": {}
|
|
296
297
|
},
|
|
297
298
|
"currentProjectName": "tnp-helpers",
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const key = Symbol('[firedev-helpers] helper browser key');
|
|
2
|
+
export class HelpersBrowaser {
|
|
3
|
+
constructor(win) {
|
|
4
|
+
this.init = (() => {
|
|
5
|
+
const win = this.win;
|
|
6
|
+
if (!win[key]) {
|
|
7
|
+
win[key] = new HelpersBrowaser(win);
|
|
8
|
+
}
|
|
9
|
+
HelpersBrowaser.inst = win[key];
|
|
10
|
+
})();
|
|
11
|
+
win.addEventListener("beforeunload", (e) => {
|
|
12
|
+
win.sessionStorage.tabId = this.tabId;
|
|
13
|
+
return null;
|
|
14
|
+
});
|
|
15
|
+
setTimeout(() => {
|
|
16
|
+
if (win.sessionStorage?.tabId) {
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
this.tabId = Number(win.sessionStorage.tabId);
|
|
19
|
+
win.sessionStorage.removeItem("tabId");
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();
|
|
24
|
+
}
|
|
25
|
+
HelpersBrowaser.callbacks.forEach((c) => {
|
|
26
|
+
c(this);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static onInit(callback) {
|
|
31
|
+
this.callbacks.push(callback);
|
|
32
|
+
}
|
|
33
|
+
get win() {
|
|
34
|
+
let win = window;
|
|
35
|
+
return win;
|
|
36
|
+
}
|
|
37
|
+
get tabIdSessionStorage() {
|
|
38
|
+
return Number(this.win.sessionStorage?.tabId) || 0;
|
|
39
|
+
}
|
|
40
|
+
static get instance() {
|
|
41
|
+
return HelpersBrowaser.inst;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
HelpersBrowaser.callbacks = [];
|
|
45
|
+
;
|
|
46
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7QUFFMUQsTUFBTSxPQUFPLGVBQWU7SUE0QjFCLFlBQW9CLEdBQVc7UUFUL0IsU0FBSSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUVyQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztZQUNELGVBQWUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFJSCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUVkLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUU7Z0JBQzdCLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDeEM7aUJBQ0k7Z0JBQ0gsYUFBYTtnQkFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzNFO1lBQ0QsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUdKLENBQUM7SUFqREQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUF1QztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQVksbUJBQW1CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBeUNELE1BQU0sS0FBSyxRQUFRO1FBQ2pCLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDOztBQXZEYyx5QkFBUyxHQUFHLEVBQUUsQ0FBQztBQWdFL0IsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5jb25zdCBrZXkgPSBTeW1ib2woJ1tmaXJlZGV2LWhlbHBlcnNdIGhlbHBlciBicm93c2VyIGtleScpXG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQnJvd2FzZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhbGxiYWNrcyA9IFtdO1xuICBzdGF0aWMgb25Jbml0KGNhbGxiYWNrOiAoaW5zOiBIZWxwZXJzQnJvd2FzZXIpID0+IGFueSkge1xuICAgIHRoaXMuY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgZ2V0IHdpbigpIHtcbiAgICBsZXQgd2luID0gd2luZG93O1xuICAgIHJldHVybiB3aW47XG4gIH1cblxuICBwcml2YXRlIGdldCB0YWJJZFNlc3Npb25TdG9yYWdlKCkge1xuICAgIHJldHVybiBOdW1iZXIodGhpcy53aW4uc2Vzc2lvblN0b3JhZ2U/LnRhYklkKSB8fCAwO1xuICB9XG5cbiAgcmVhZG9ubHkgdGFiSWQ6IG51bWJlcjtcblxuICBwcml2YXRlIHN0YXRpYyBpbnN0OiBIZWxwZXJzQnJvd2FzZXI7XG4gIGluaXQgPSAoKCkgPT4ge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMud2luO1xuXG4gICAgaWYgKCF3aW5ba2V5XSkge1xuICAgICAgd2luW2tleV0gPSBuZXcgSGVscGVyc0Jyb3dhc2VyKHdpbik7XG4gICAgfVxuICAgIEhlbHBlcnNCcm93YXNlci5pbnN0ID0gd2luW2tleV07XG4gIH0pKCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih3aW46IFdpbmRvdykge1xuXG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgKGUpID0+IHtcbiAgICAgIHdpbi5zZXNzaW9uU3RvcmFnZS50YWJJZCA9IHRoaXMudGFiSWQ7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuXG4gICAgICBpZiAod2luLnNlc3Npb25TdG9yYWdlPy50YWJJZCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMudGFiSWQgPSBOdW1iZXIod2luLnNlc3Npb25TdG9yYWdlLnRhYklkKTtcbiAgICAgICAgd2luLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJ0YWJJZFwiKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMudGFiSWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICBIZWxwZXJzQnJvd2FzZXIuY2FsbGJhY2tzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgYyh0aGlzKTtcbiAgICAgIH0pO1xuICAgIH0pXG5cblxuICB9XG5cblxuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiBIZWxwZXJzQnJvd2FzZXIuaW5zdDtcbiAgfVxuXG59XG5cblxuXG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtYnJvd3Nlci50cyJdfQ==
|
|
@@ -5,4 +5,4 @@ export class HelpersNumber {
|
|
|
5
5
|
}
|
|
6
6
|
;
|
|
7
7
|
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1udW1iZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLW51bWJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDRSxrQkFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFHOUUsQ0FBQztDQUFBO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjbGFzcyBIZWxwZXJzTnVtYmVyIHtcbiAgcmFuZG9tSW50ZWdlciA9IChtYXgsIG1pbikgPT4gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikpICsgbWluO1xuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzLW51bWJlcnMudHMiXX0=
|
|
@@ -9,6 +9,7 @@ import { CLASS } from 'typescript-class-helpers/websql';
|
|
|
9
9
|
import { Morphi } from 'morphi/websql';
|
|
10
10
|
import { CoreHelpers } from 'tnp-core/websql';
|
|
11
11
|
import { HelpersNumber } from './helpers-numbers';
|
|
12
|
+
import { HelpersBrowaser } from './helpers-browser';
|
|
12
13
|
export function applyMixins(derivedCtor, baseCtors) {
|
|
13
14
|
baseCtors.forEach(baseCtor => {
|
|
14
15
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
@@ -32,11 +33,12 @@ export class HelpersTnp extends CoreHelpers {
|
|
|
32
33
|
/* */
|
|
33
34
|
/* */
|
|
34
35
|
/* */
|
|
35
|
-
arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber()) {
|
|
36
|
+
arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance) {
|
|
36
37
|
super();
|
|
37
38
|
this.arrays = arrays;
|
|
38
39
|
this.strings = strings;
|
|
39
40
|
this.numbers = numbers;
|
|
41
|
+
this.browser = browser;
|
|
40
42
|
this.conditionWait = conditionWait;
|
|
41
43
|
/* */
|
|
42
44
|
/* */
|
|
@@ -277,4 +279,4 @@ applyMixins(HelpersTnp, [
|
|
|
277
279
|
]);
|
|
278
280
|
;
|
|
279
281
|
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers.ts
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUF1QmpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQWdCLEVBQUUsU0FBZ0I7SUFDNUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzQixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEgsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxhQUFhO0FBQ2IsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBVXpDO0lBQ0YsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUVNLFNBQVMsSUFBSSxlQUFlLEVBQUUsRUFDOUIsVUFBVSxJQUFJLGNBQWMsRUFBRSxFQUM5QixVQUFVLElBQUksYUFBYSxFQUFFO1FBR3BDLEtBQUssRUFBRSxDQUFDO1FBTEQsV0FBTSxHQUFOLE1BQU0sQ0FBd0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUE0SHRDLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBc0RoQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBR0wsS0FBSztRQUNMLEtBQUs7UUFFSSxnQkFBVyxHQUFHLFdBQVcsQ0FBQztJQS9QakMsQ0FBQztJQTVCTSxNQUFNLEtBQUssUUFBUTtRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtZQUN6QixVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7U0FDekM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQXlCRCxPQUFPLENBQUMsQ0FBVyxFQUFFLElBQVk7UUFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUgsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUdMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFHSCxLQUFLLENBQUMsVUFBVTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUVILEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFHTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUtILEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsV0FBbUIsRUFDbkIsaUJBQTJCLEVBQzNCLEdBQUcsaUJBQXdCO1FBQzNCLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDdEIsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxZQUFZO1FBQ1osSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUE7UUFDNUIsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1NBQzFFO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsV0FBbUIsRUFDbkIsaUJBQTZCO1FBQzdCLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDdEIsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFZO1FBQ1osSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUE7UUFDNUIsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFJRCxnQkFBZ0IsQ0FBQyxXQUE2QixFQUFFLGtCQUFrQixHQUFHLElBQUk7UUFDdkUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBRTNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RCxJQUFJLE1BQU0sRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTthQUNoQjtpQkFBTTtnQkFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUNsRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDbEIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFtQixFQUFFLFNBQWtCLEtBQUs7UUFDaEUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNO1FBQ3ZCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLE1BQU0sRUFBRTtnQkFDeEIsVUFBVSxHQUFHLElBQUksQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBRUQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBVztRQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBVyxDQUFRLENBQUM7WUFDL0IsSUFBSSxLQUFLLEtBQUssTUFBTTtnQkFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3BDLElBQUksS0FBSyxLQUFLLE9BQU87Z0JBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FvRkY7QUFhRCxXQUFXLENBQUMsVUFBVSxFQUFFO0lBQ3RCLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDcEIsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0NBRUosQ0FBQyxDQUFDO0FBRUYsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNBcnJheU9iaiB9IGZyb20gJy4vaGVscGVycy1hcnJheS1vYmonO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3NSZWdleGVzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcyc7XG5pbXBvcnQgeyBIZWxwZXJzRW52aXJvbm1lbnQgfSBmcm9tICcuL2hlbHBlcnMtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3MgfSBmcm9tICcuL2hlbHBlcnMtc3RyaW5ncyc7XG5pbXBvcnQgeyBjb25kaXRpb25XYWl0IH0gZnJvbSAnLi9jb25kaXRpb24td2FpdCc7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBjb25maWcsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3dlYnNxbCc7XG5pbXBvcnQgeyBNb3JwaGkgfSBmcm9tICdtb3JwaGkvd2Vic3FsJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNOdW1iZXIgfSBmcm9tICcuL2hlbHBlcnMtbnVtYmVycyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5TWl4aW5zKGRlcml2ZWRDdG9yOiBhbnksIGJhc2VDdG9yczogYW55W10pIHtcbiAgYmFzZUN0b3JzLmZvckVhY2goYmFzZUN0b3IgPT4ge1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJhc2VDdG9yLnByb3RvdHlwZSkuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZXJpdmVkQ3Rvci5wcm90b3R5cGUsIG5hbWUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZUN0b3IucHJvdG90eXBlLCBuYW1lKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vLyBAdHMtaWdub3JlXG5leHBvcnQgY2xhc3MgSGVscGVyc1RucCBleHRlbmRzIENvcmVIZWxwZXJzIHtcblxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEhlbHBlcnNUbnAgJiBDb3JlSGVscGVycztcbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKSB7XG4gICAgaWYgKCFIZWxwZXJzVG5wLl9pbnN0YW5jZSkge1xuICAgICAgSGVscGVyc1RucC5faW5zdGFuY2UgPSBuZXcgSGVscGVyc1RucCgpO1xuICAgIH1cbiAgICByZXR1cm4gSGVscGVyc1RucC5faW5zdGFuY2U7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcHVibGljIGFycmF5cyA9IG5ldyBIZWxwZXJzQXJyYXlPYmooKSxcbiAgICBwdWJsaWMgc3RyaW5ncyA9IG5ldyBIZWxwZXJzU3RyaW5ncygpLFxuICAgIHB1YmxpYyBudW1iZXJzID0gbmV3IEhlbHBlcnNOdW1iZXIoKSxcblxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQ0xJV1JBUChmOiBGdW5jdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgQ0xBU1Muc2V0TmFtZShmLCBuYW1lKTtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgYXN5bmMgaXNFbGV2YXRlZCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4gIGFzeW5jIG1lc3VyZUV4ZWN0aW9uSW5NcyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiBGdW5jdGlvbixcbiAgICAuLi5mdW5jdGlvbkFyZ3VtZW50czogYW55W10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKClcbiAgICBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKGZ1bmN0aW9uVG9FeGVjdXRlLCAuLi5mdW5jdGlvbkFyZ3VtZW50cyk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmluZm8oYEV4ZWN1dGlvbiB0aW1lOiAke2VuZC50b1N0cmluZygpfW1zIGZvciBcIiR7ZGVzY3JpcHRpb259XCJgKTtcbiAgICB9XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG4gIG1lc3VyZUV4ZWN0aW9uSW5Nc1N5bmMoXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBmdW5jdGlvblRvRXhlY3V0ZTogKCkgPT4gdm9pZCk6IG51bWJlciB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlKCk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmxvZyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuICBcbiAgICByZXR1cm4gZW5kO1xuICB9XG5cbiAgY29uZGl0aW9uV2FpdCA9IGNvbmRpdGlvbldhaXQ7XG5cbiAgd2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbjogKGFueSkgPT4gYm9vbGVhbiwgaG93T2ZmdGVuQ2hlY2tJbk1zID0gMTAwMCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoY29uZGl0aW9uRm4pO1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXNvbHZlKHZvaWQgMClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIEhlbHBlcnMud2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbiwgaG93T2ZmdGVuQ2hlY2tJbk1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUodm9pZCAwKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9LCBob3dPZmZ0ZW5DaGVja0luTXMpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRCcm93c2VyVmVyUGF0aChtb2R1bGVOYW1lPzogc3RyaW5nLCB3ZWJzcWw6IGJvb2xlYW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZ2V0TWV0aG9kTmFtZShvYmosIG1ldGhvZCk6IHN0cmluZyB7XG4gICAgdmFyIG1ldGhvZE5hbWUgPSBudWxsO1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChvYmpbcHJvcF0gPT09IG1ldGhvZCkge1xuICAgICAgICBtZXRob2ROYW1lID0gcHJvcDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChtZXRob2ROYW1lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbWV0aG9kTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIHJldHVybiBIZWxwZXJzLmdldE1ldGhvZE5hbWUocHJvdG8sIG1ldGhvZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZml4V2VicGFja0VudihlbnY6IE9iamVjdCkge1xuICAgIF8uZm9ySW4oZW52LCAodiwgaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHYgYXMgYW55O1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScpIGVudltrXSA9IHRydWU7XG4gICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIGVudltrXSA9IGZhbHNlO1xuICAgIH0pXG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuICBcbiAgcHVibGljIGFwcGx5TWl4aW5zID0gYXBwbHlNaXhpbnM7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBpbnRlcmZhY2UgSGVscGVyc1RucCBleHRlbmRzXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbnsgfVxuXG5hcHBseU1peGlucyhIZWxwZXJzVG5wLCBbXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50LFxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbl0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMudHMiXX0=
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUF1QmpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFnQixFQUFFLFNBQWdCO0lBQzVELFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFF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REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNBcnJheU9iaiB9IGZyb20gJy4vaGVscGVycy1hcnJheS1vYmonO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3NSZWdleGVzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcyc7XG5pbXBvcnQgeyBIZWxwZXJzRW52aXJvbm1lbnQgfSBmcm9tICcuL2hlbHBlcnMtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3MgfSBmcm9tICcuL2hlbHBlcnMtc3RyaW5ncyc7XG5pbXBvcnQgeyBjb25kaXRpb25XYWl0IH0gZnJvbSAnLi9jb25kaXRpb24td2FpdCc7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBjb25maWcsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3dlYnNxbCc7XG5pbXBvcnQgeyBNb3JwaGkgfSBmcm9tICdtb3JwaGkvd2Vic3FsJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNOdW1iZXIgfSBmcm9tICcuL2hlbHBlcnMtbnVtYmVycyc7XG5cbmltcG9ydCB7IEhlbHBlcnNCcm93YXNlciB9IGZyb20gJy4vaGVscGVycy1icm93c2VyJztcblxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlNaXhpbnMoZGVyaXZlZEN0b3I6IGFueSwgYmFzZUN0b3JzOiBhbnlbXSkge1xuICBiYXNlQ3RvcnMuZm9yRWFjaChiYXNlQ3RvciA9PiB7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYmFzZUN0b3IucHJvdG90eXBlKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRlcml2ZWRDdG9yLnByb3RvdHlwZSwgbmFtZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlQ3Rvci5wcm90b3R5cGUsIG5hbWUpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjbGFzcyBIZWxwZXJzVG5wIGV4dGVuZHMgQ29yZUhlbHBlcnMge1xuXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogSGVscGVyc1RucCAmIENvcmVIZWxwZXJzO1xuICBwdWJsaWMgc3RhdGljIGdldCBJbnN0YW5jZSgpIHtcbiAgICBpZiAoIUhlbHBlcnNUbnAuX2luc3RhbmNlKSB7XG4gICAgICBIZWxwZXJzVG5wLl9pbnN0YW5jZSA9IG5ldyBIZWxwZXJzVG5wKCk7XG4gICAgfVxuICAgIHJldHVybiBIZWxwZXJzVG5wLl9pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICBwdWJsaWMgYXJyYXlzID0gbmV3IEhlbHBlcnNBcnJheU9iaigpLFxuICAgIHB1YmxpYyBzdHJpbmdzID0gbmV3IEhlbHBlcnNTdHJpbmdzKCksXG4gICAgcHVibGljIG51bWJlcnMgPSBuZXcgSGVscGVyc051bWJlcigpLFxuXG4gICAgcHVibGljIGJyb3dzZXIgPSBIZWxwZXJzQnJvd2FzZXIuaW5zdGFuY2UsXG5cblxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQ0xJV1JBUChmOiBGdW5jdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgQ0xBU1Muc2V0TmFtZShmLCBuYW1lKTtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgYXN5bmMgaXNFbGV2YXRlZCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4gIGFzeW5jIG1lc3VyZUV4ZWN0aW9uSW5NcyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiBGdW5jdGlvbixcbiAgICAuLi5mdW5jdGlvbkFyZ3VtZW50czogYW55W10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKClcbiAgICBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKGZ1bmN0aW9uVG9FeGVjdXRlLCAuLi5mdW5jdGlvbkFyZ3VtZW50cyk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmluZm8oYEV4ZWN1dGlvbiB0aW1lOiAke2VuZC50b1N0cmluZygpfW1zIGZvciBcIiR7ZGVzY3JpcHRpb259XCJgKTtcbiAgICB9XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG4gIG1lc3VyZUV4ZWN0aW9uSW5Nc1N5bmMoXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBmdW5jdGlvblRvRXhlY3V0ZTogKCkgPT4gdm9pZCk6IG51bWJlciB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlKCk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydFxuICAgIGlmIChNb3JwaGkuSXNCcm93c2VyKSB7XG4gICAgICBIZWxwZXJzLmxvZyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuICBcbiAgICByZXR1cm4gZW5kO1xuICB9XG5cbiAgY29uZGl0aW9uV2FpdCA9IGNvbmRpdGlvbldhaXQ7XG5cbiAgd2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbjogKGFueSkgPT4gYm9vbGVhbiwgaG93T2ZmdGVuQ2hlY2tJbk1zID0gMTAwMCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoY29uZGl0aW9uRm4pO1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXNvbHZlKHZvaWQgMClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIEhlbHBlcnMud2FpdEZvckNvbmRpdGlvbihjb25kaXRpb25GbiwgaG93T2ZmdGVuQ2hlY2tJbk1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUodm9pZCAwKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9LCBob3dPZmZ0ZW5DaGVja0luTXMpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRCcm93c2VyVmVyUGF0aChtb2R1bGVOYW1lPzogc3RyaW5nLCB3ZWJzcWw6IGJvb2xlYW4gPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZ2V0TWV0aG9kTmFtZShvYmosIG1ldGhvZCk6IHN0cmluZyB7XG4gICAgdmFyIG1ldGhvZE5hbWUgPSBudWxsO1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChvYmpbcHJvcF0gPT09IG1ldGhvZCkge1xuICAgICAgICBtZXRob2ROYW1lID0gcHJvcDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChtZXRob2ROYW1lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbWV0aG9kTmFtZTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8pIHtcbiAgICAgIHJldHVybiBIZWxwZXJzLmdldE1ldGhvZE5hbWUocHJvdG8sIG1ldGhvZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZml4V2VicGFja0VudihlbnY6IE9iamVjdCkge1xuICAgIF8uZm9ySW4oZW52LCAodiwgaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHYgYXMgYW55O1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScpIGVudltrXSA9IHRydWU7XG4gICAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIGVudltrXSA9IGZhbHNlO1xuICAgIH0pXG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuICBcbiAgcHVibGljIGFwcGx5TWl4aW5zID0gYXBwbHlNaXhpbnM7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBpbnRlcmZhY2UgSGVscGVyc1RucCBleHRlbmRzXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbnsgfVxuXG5hcHBseU1peGlucyhIZWxwZXJzVG5wLCBbXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyxcbiAgSGVscGVyc0Vudmlyb25tZW50LFxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbl0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMudHMiXX0=
|
|
@@ -477,6 +477,55 @@ class HelpersNumber {
|
|
|
477
477
|
;
|
|
478
478
|
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
|
|
479
479
|
|
|
480
|
+
const key = Symbol('[firedev-helpers] helper browser key');
|
|
481
|
+
class HelpersBrowaser {
|
|
482
|
+
constructor(win) {
|
|
483
|
+
this.init = (() => {
|
|
484
|
+
const win = this.win;
|
|
485
|
+
if (!win[key]) {
|
|
486
|
+
win[key] = new HelpersBrowaser(win);
|
|
487
|
+
}
|
|
488
|
+
HelpersBrowaser.inst = win[key];
|
|
489
|
+
})();
|
|
490
|
+
win.addEventListener("beforeunload", (e) => {
|
|
491
|
+
win.sessionStorage.tabId = this.tabId;
|
|
492
|
+
return null;
|
|
493
|
+
});
|
|
494
|
+
setTimeout(() => {
|
|
495
|
+
var _a;
|
|
496
|
+
if ((_a = win.sessionStorage) === null || _a === void 0 ? void 0 : _a.tabId) {
|
|
497
|
+
// @ts-ignore
|
|
498
|
+
this.tabId = Number(win.sessionStorage.tabId);
|
|
499
|
+
win.sessionStorage.removeItem("tabId");
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
// @ts-ignore
|
|
503
|
+
this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();
|
|
504
|
+
}
|
|
505
|
+
HelpersBrowaser.callbacks.forEach((c) => {
|
|
506
|
+
c(this);
|
|
507
|
+
});
|
|
508
|
+
});
|
|
509
|
+
}
|
|
510
|
+
static onInit(callback) {
|
|
511
|
+
this.callbacks.push(callback);
|
|
512
|
+
}
|
|
513
|
+
get win() {
|
|
514
|
+
let win = window;
|
|
515
|
+
return win;
|
|
516
|
+
}
|
|
517
|
+
get tabIdSessionStorage() {
|
|
518
|
+
var _a;
|
|
519
|
+
return Number((_a = this.win.sessionStorage) === null || _a === void 0 ? void 0 : _a.tabId) || 0;
|
|
520
|
+
}
|
|
521
|
+
static get instance() {
|
|
522
|
+
return HelpersBrowaser.inst;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
HelpersBrowaser.callbacks = [];
|
|
526
|
+
;
|
|
527
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
|
|
528
|
+
|
|
480
529
|
function applyMixins(derivedCtor, baseCtors) {
|
|
481
530
|
baseCtors.forEach(baseCtor => {
|
|
482
531
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
@@ -500,11 +549,12 @@ class HelpersTnp extends CoreHelpers {
|
|
|
500
549
|
/* */
|
|
501
550
|
/* */
|
|
502
551
|
/* */
|
|
503
|
-
arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber()) {
|
|
552
|
+
arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), browser = HelpersBrowaser.instance) {
|
|
504
553
|
super();
|
|
505
554
|
this.arrays = arrays;
|
|
506
555
|
this.strings = strings;
|
|
507
556
|
this.numbers = numbers;
|
|
557
|
+
this.browser = browser;
|
|
508
558
|
this.conditionWait = conditionWait;
|
|
509
559
|
/* */
|
|
510
560
|
/* */
|