tnp-helpers 13.1.36 → 13.1.37
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2020/lib/angular.helper.mjs +87 -87
- package/browser/esm2020/lib/base-component.mjs +49 -49
- package/browser/esm2020/lib/base-formly-component.mjs +112 -112
- package/browser/esm2020/lib/condition-wait.mjs +45 -45
- package/browser/esm2020/lib/constants.mjs +8 -8
- package/browser/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/browser/esm2020/lib/firedev-models.mjs +3 -3
- package/browser/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/browser/esm2020/lib/helpers-browser.mjs +46 -46
- package/browser/esm2020/lib/helpers-console-gui.mjs +9 -9
- package/browser/esm2020/lib/helpers-environment.mjs +32 -32
- package/browser/esm2020/lib/helpers-numbers.mjs +7 -7
- package/browser/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/browser/esm2020/lib/helpers-strings.mjs +252 -252
- package/browser/esm2020/lib/helpers.mjs +285 -285
- package/browser/esm2020/lib/index.mjs +15 -15
- package/browser/esm2020/lib/long-press.directive.mjs +112 -112
- package/browser/esm2020/lib/project.mjs +429 -429
- package/browser/esm2020/lib/resize-service.mjs +21 -21
- package/browser/esm2020/public-api.mjs +1 -1
- package/browser/esm2020/tnp-helpers.mjs +4 -4
- package/browser/fesm2015/tnp-helpers.mjs +1686 -1686
- package/browser/fesm2020/tnp-helpers.mjs +1676 -1676
- package/browser/lib/angular.helper.d.ts +35 -35
- package/browser/lib/base-component.d.ts +16 -16
- package/browser/lib/base-formly-component.d.ts +30 -30
- package/browser/lib/condition-wait.d.ts +7 -7
- package/browser/lib/constants.d.ts +6 -6
- package/browser/lib/dual-component-ctrl.d.ts +24 -24
- package/browser/lib/firedev-models.d.ts +12 -12
- package/browser/lib/helpers-array-obj.d.ts +14 -14
- package/browser/lib/helpers-browser.d.ts +10 -10
- package/browser/lib/helpers-console-gui.d.ts +5 -5
- package/browser/lib/helpers-environment.d.ts +4 -4
- package/browser/lib/helpers-numbers.d.ts +2 -2
- package/browser/lib/helpers-strings-regexes.d.ts +27 -27
- package/browser/lib/helpers-strings.d.ts +49 -49
- package/browser/lib/helpers.d.ts +33 -33
- package/browser/lib/index.d.ts +11 -11
- package/browser/lib/long-press.directive.d.ts +24 -24
- package/browser/lib/project.d.ts +93 -93
- package/browser/lib/resize-service.d.ts +8 -8
- package/browser/tnp-helpers.d.ts +4 -4
- package/client/README.md +24 -24
- package/client/esm2020/lib/angular.helper.mjs +87 -87
- package/client/esm2020/lib/base-component.mjs +49 -49
- package/client/esm2020/lib/base-formly-component.mjs +112 -112
- package/client/esm2020/lib/condition-wait.mjs +45 -45
- package/client/esm2020/lib/constants.mjs +8 -8
- package/client/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/client/esm2020/lib/firedev-models.mjs +3 -3
- package/client/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/client/esm2020/lib/helpers-browser.mjs +46 -46
- package/client/esm2020/lib/helpers-console-gui.mjs +9 -9
- package/client/esm2020/lib/helpers-environment.mjs +32 -32
- package/client/esm2020/lib/helpers-numbers.mjs +7 -7
- package/client/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/client/esm2020/lib/helpers-strings.mjs +252 -252
- package/client/esm2020/lib/helpers.mjs +285 -285
- package/client/esm2020/lib/index.mjs +15 -15
- package/client/esm2020/lib/long-press.directive.mjs +112 -112
- package/client/esm2020/lib/project.mjs +429 -429
- package/client/esm2020/lib/resize-service.mjs +21 -21
- package/client/esm2020/public-api.mjs +1 -1
- package/client/esm2020/tnp-helpers.mjs +4 -4
- package/client/fesm2015/tnp-helpers.mjs +1686 -1686
- package/client/fesm2020/tnp-helpers.mjs +1676 -1676
- package/client/lib/angular.helper.d.ts +35 -35
- package/client/lib/base-component.d.ts +16 -16
- package/client/lib/base-formly-component.d.ts +30 -30
- package/client/lib/condition-wait.d.ts +7 -7
- package/client/lib/constants.d.ts +6 -6
- package/client/lib/dual-component-ctrl.d.ts +24 -24
- package/client/lib/firedev-models.d.ts +12 -12
- package/client/lib/helpers-array-obj.d.ts +14 -14
- package/client/lib/helpers-browser.d.ts +10 -10
- package/client/lib/helpers-console-gui.d.ts +5 -5
- package/client/lib/helpers-environment.d.ts +4 -4
- package/client/lib/helpers-numbers.d.ts +2 -2
- package/client/lib/helpers-strings-regexes.d.ts +27 -27
- package/client/lib/helpers-strings.d.ts +49 -49
- package/client/lib/helpers.d.ts +33 -33
- package/client/lib/index.d.ts +11 -11
- package/client/lib/long-press.directive.d.ts +24 -24
- package/client/lib/project.d.ts +93 -93
- package/client/lib/resize-service.d.ts +8 -8
- package/client/package.json +6 -6
- package/client/tnp-helpers.d.ts +4 -4
- package/index.d.ts +1 -1
- package/lib/angular.helper.d.ts +35 -35
- package/lib/angular.helper.js +3 -3
- package/lib/base-component.d.ts +13 -13
- package/lib/base-component.js +3 -3
- package/lib/base-formly-component.d.ts +27 -27
- package/lib/base-formly-component.js +3 -3
- package/lib/condition-wait.d.ts +8 -8
- package/lib/constants.d.ts +7 -7
- package/lib/dual-component-ctrl.d.ts +24 -24
- package/lib/dual-component-ctrl.js +3 -3
- package/lib/firedev-models.d.ts +13 -13
- package/lib/git-project.d.ts +52 -52
- package/lib/helpers-array-obj.d.ts +15 -15
- package/lib/helpers-browser.d.ts +11 -11
- package/lib/helpers-cli-tool.backend.d.ts +55 -55
- package/lib/helpers-console-gui.d.ts +17 -17
- package/lib/helpers-dependencies.backend.d.ts +11 -11
- package/lib/helpers-environment.d.ts +5 -5
- package/lib/helpers-file-folders.backend.d.ts +85 -85
- package/lib/helpers-git.backend.d.ts +50 -50
- package/lib/helpers-git.backend.js +16 -4
- package/lib/helpers-git.backend.js.map +1 -1
- package/lib/helpers-json5.backend.d.ts +16 -16
- package/lib/helpers-morphi-framework.backend.d.ts +4 -4
- package/lib/helpers-network.backend.d.ts +8 -8
- package/lib/helpers-npm.backend.d.ts +3 -3
- package/lib/helpers-numbers.d.ts +3 -3
- package/lib/helpers-path.backend.d.ts +7 -7
- package/lib/helpers-process.backend.d.ts +58 -58
- package/lib/helpers-strings-regexes.d.ts +28 -28
- package/lib/helpers-strings.d.ts +50 -50
- package/lib/helpers-system-terminal.backend.d.ts +5 -5
- package/lib/helpers-vscode.backend.d.ts +5 -5
- package/lib/helpers.d.ts +74 -74
- package/lib/index.d.ts +12 -12
- package/lib/long-press.directive.d.ts +22 -22
- package/lib/merge-helpers.backend.d.ts +23 -23
- package/lib/project.d.ts +96 -96
- package/lib/resize-service.d.ts +6 -6
- package/lib/ts-code/index.d.ts +1 -1
- package/lib/ts-code/ts-code-extractor.d.ts +14 -14
- package/lib/ts-code/ts-code-modifier.backend.d.ts +12 -12
- package/package.json +3 -3
- package/package.json_devDependencies.json +222 -222
- package/package.json_tnp.json5 +46 -46
- package/tmp-environment.json +10 -10
- package/websql/README.md +24 -24
- package/websql/esm2020/lib/angular.helper.mjs +87 -87
- package/websql/esm2020/lib/base-component.mjs +49 -49
- package/websql/esm2020/lib/base-formly-component.mjs +112 -112
- package/websql/esm2020/lib/condition-wait.mjs +45 -45
- package/websql/esm2020/lib/constants.mjs +8 -8
- package/websql/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/websql/esm2020/lib/firedev-models.mjs +3 -3
- package/websql/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/websql/esm2020/lib/helpers-browser.mjs +46 -46
- package/websql/esm2020/lib/helpers-console-gui.mjs +9 -9
- package/websql/esm2020/lib/helpers-environment.mjs +32 -32
- package/websql/esm2020/lib/helpers-numbers.mjs +7 -7
- package/websql/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/websql/esm2020/lib/helpers-strings.mjs +252 -252
- package/websql/esm2020/lib/helpers.mjs +285 -285
- package/websql/esm2020/lib/index.mjs +15 -15
- package/websql/esm2020/lib/long-press.directive.mjs +112 -112
- package/websql/esm2020/lib/project.mjs +429 -429
- package/websql/esm2020/lib/resize-service.mjs +21 -21
- package/websql/esm2020/public-api.mjs +1 -1
- package/websql/esm2020/tnp-helpers.mjs +4 -4
- package/websql/fesm2015/tnp-helpers.mjs +1686 -1686
- package/websql/fesm2020/tnp-helpers.mjs +1676 -1676
- package/websql/lib/angular.helper.d.ts +35 -35
- package/websql/lib/base-component.d.ts +16 -16
- package/websql/lib/base-formly-component.d.ts +30 -30
- package/websql/lib/condition-wait.d.ts +7 -7
- package/websql/lib/constants.d.ts +6 -6
- package/websql/lib/dual-component-ctrl.d.ts +24 -24
- package/websql/lib/firedev-models.d.ts +12 -12
- package/websql/lib/helpers-array-obj.d.ts +14 -14
- package/websql/lib/helpers-browser.d.ts +10 -10
- package/websql/lib/helpers-console-gui.d.ts +5 -5
- package/websql/lib/helpers-environment.d.ts +4 -4
- package/websql/lib/helpers-numbers.d.ts +2 -2
- package/websql/lib/helpers-strings-regexes.d.ts +27 -27
- package/websql/lib/helpers-strings.d.ts +49 -49
- package/websql/lib/helpers.d.ts +33 -33
- package/websql/lib/index.d.ts +11 -11
- package/websql/lib/long-press.directive.d.ts +24 -24
- package/websql/lib/project.d.ts +93 -93
- package/websql/lib/resize-service.d.ts +8 -8
- package/websql/tnp-helpers.d.ts +4 -4
package/websql/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# MyLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import { Subject } from "rxjs";
|
|
2
|
-
const componentContextSymbol = Symbol();
|
|
3
|
-
const componentsDestroy$Subjects = {};
|
|
4
|
-
export class SerializedSubject {
|
|
5
|
-
constructor(id) {
|
|
6
|
-
this.id = id;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export var NgHelpers;
|
|
10
|
-
(function (NgHelpers) {
|
|
11
|
-
function subjectId(destroySubject) {
|
|
12
|
-
const id = Math.random().toString(36).substring(2);
|
|
13
|
-
if (!destroySubject[componentContextSymbol]) {
|
|
14
|
-
destroySubject[componentContextSymbol] = new SerializedSubject(id);
|
|
15
|
-
componentsDestroy$Subjects[id] = destroySubject;
|
|
16
|
-
}
|
|
17
|
-
return destroySubject[componentContextSymbol];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
|
|
21
|
-
*/
|
|
22
|
-
function serialize(destroy$) {
|
|
23
|
-
return subjectId(destroy$);
|
|
24
|
-
}
|
|
25
|
-
NgHelpers.serialize = serialize;
|
|
26
|
-
/**
|
|
27
|
-
* if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
|
|
28
|
-
*/
|
|
29
|
-
function deserialize(destroy$) {
|
|
30
|
-
if (destroy$?.id) {
|
|
31
|
-
const realDestroySubject = componentsDestroy$Subjects[destroy$.id];
|
|
32
|
-
return realDestroySubject;
|
|
33
|
-
}
|
|
34
|
-
return new Subject();
|
|
35
|
-
}
|
|
36
|
-
NgHelpers.deserialize = deserialize;
|
|
37
|
-
function unsubscribe(destroy$) {
|
|
38
|
-
const destroySubject = subjectId(destroy$);
|
|
39
|
-
if (destroySubject?.id) {
|
|
40
|
-
delete componentsDestroy$Subjects[destroySubject.id];
|
|
41
|
-
delete destroySubject[componentContextSymbol];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
NgHelpers.unsubscribe = unsubscribe;
|
|
45
|
-
/**
|
|
46
|
-
get properties from scss file
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
import styles from './tasks-ngrx-data.component.scss';
|
|
50
|
-
|
|
51
|
-
export class ExampleComponent {
|
|
52
|
-
sassFile = sassFile(styles);
|
|
53
|
-
|
|
54
|
-
async ngOnInit() {
|
|
55
|
-
this.tasksService.getAll();
|
|
56
|
-
console.log(this.sassFile.stringValue('--max-container-size'))
|
|
57
|
-
console.log(this.sassFile.numberValue('--max-container-size'))
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
*/
|
|
61
|
-
function sassFile(styles) {
|
|
62
|
-
const lines = (styles.split('\n'));
|
|
63
|
-
return {
|
|
64
|
-
stringValue: (name) => {
|
|
65
|
-
for (let index = 0; index < lines.length; index++) {
|
|
66
|
-
const l = lines[index];
|
|
67
|
-
const [varName, value] = l.trim().split(':');
|
|
68
|
-
if (varName === name) {
|
|
69
|
-
return value.replace(';', '');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
numberValue: (name) => {
|
|
74
|
-
for (let index = 0; index < lines.length; index++) {
|
|
75
|
-
const l = lines[index];
|
|
76
|
-
const [varName, value] = l.trim().split(':');
|
|
77
|
-
if (varName === name) {
|
|
78
|
-
return Number(value.replace('px', '').replace(';', ''));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
NgHelpers.sassFile = sassFile;
|
|
85
|
-
})(NgHelpers || (NgHelpers = {}));
|
|
86
|
-
;
|
|
87
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/angular.helper.ts
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
const componentContextSymbol = Symbol();
|
|
3
|
+
const componentsDestroy$Subjects = {};
|
|
4
|
+
export class SerializedSubject {
|
|
5
|
+
constructor(id) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export var NgHelpers;
|
|
10
|
+
(function (NgHelpers) {
|
|
11
|
+
function subjectId(destroySubject) {
|
|
12
|
+
const id = Math.random().toString(36).substring(2);
|
|
13
|
+
if (!destroySubject[componentContextSymbol]) {
|
|
14
|
+
destroySubject[componentContextSymbol] = new SerializedSubject(id);
|
|
15
|
+
componentsDestroy$Subjects[id] = destroySubject;
|
|
16
|
+
}
|
|
17
|
+
return destroySubject[componentContextSymbol];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
|
|
21
|
+
*/
|
|
22
|
+
function serialize(destroy$) {
|
|
23
|
+
return subjectId(destroy$);
|
|
24
|
+
}
|
|
25
|
+
NgHelpers.serialize = serialize;
|
|
26
|
+
/**
|
|
27
|
+
* if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();
|
|
28
|
+
*/
|
|
29
|
+
function deserialize(destroy$) {
|
|
30
|
+
if (destroy$?.id) {
|
|
31
|
+
const realDestroySubject = componentsDestroy$Subjects[destroy$.id];
|
|
32
|
+
return realDestroySubject;
|
|
33
|
+
}
|
|
34
|
+
return new Subject();
|
|
35
|
+
}
|
|
36
|
+
NgHelpers.deserialize = deserialize;
|
|
37
|
+
function unsubscribe(destroy$) {
|
|
38
|
+
const destroySubject = subjectId(destroy$);
|
|
39
|
+
if (destroySubject?.id) {
|
|
40
|
+
delete componentsDestroy$Subjects[destroySubject.id];
|
|
41
|
+
delete destroySubject[componentContextSymbol];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
NgHelpers.unsubscribe = unsubscribe;
|
|
45
|
+
/**
|
|
46
|
+
get properties from scss file
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
import styles from './tasks-ngrx-data.component.scss';
|
|
50
|
+
|
|
51
|
+
export class ExampleComponent {
|
|
52
|
+
sassFile = sassFile(styles);
|
|
53
|
+
|
|
54
|
+
async ngOnInit() {
|
|
55
|
+
this.tasksService.getAll();
|
|
56
|
+
console.log(this.sassFile.stringValue('--max-container-size'))
|
|
57
|
+
console.log(this.sassFile.numberValue('--max-container-size'))
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
*/
|
|
61
|
+
function sassFile(styles) {
|
|
62
|
+
const lines = (styles.split('\n'));
|
|
63
|
+
return {
|
|
64
|
+
stringValue: (name) => {
|
|
65
|
+
for (let index = 0; index < lines.length; index++) {
|
|
66
|
+
const l = lines[index];
|
|
67
|
+
const [varName, value] = l.trim().split(':');
|
|
68
|
+
if (varName === name) {
|
|
69
|
+
return value.replace(';', '');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
numberValue: (name) => {
|
|
74
|
+
for (let index = 0; index < lines.length; index++) {
|
|
75
|
+
const l = lines[index];
|
|
76
|
+
const [varName, value] = l.trim().split(':');
|
|
77
|
+
if (varName === name) {
|
|
78
|
+
return Number(value.replace('px', '').replace(';', ''));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
NgHelpers.sassFile = sassFile;
|
|
85
|
+
})(NgHelpers || (NgHelpers = {}));
|
|
86
|
+
;
|
|
87
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/angular.helper.ts
|
|
88
88
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2FuZ3VsYXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUN4QyxNQUFNLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQ1MsRUFBVTtRQUFWLE9BQUUsR0FBRixFQUFFLENBQVE7SUFDZixDQUFDO0NBQ047QUFFRCxNQUFNLEtBQVcsU0FBUyxDQThFekI7QUE5RUQsV0FBaUIsU0FBUztJQUV4QixTQUFTLFNBQVMsQ0FBQyxjQUE0QjtRQUM3QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEVBQUU7WUFDM0MsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUM7U0FDakQ7UUFDRCxPQUFPLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILFNBQWdCLFNBQVMsQ0FBQyxRQUFzQjtRQUM5QyxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRmUsbUJBQVMsWUFFeEIsQ0FBQTtJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsV0FBVyxDQUFDLFFBQWdDO1FBQzFELElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRSxPQUFPLGtCQUFrQixDQUFDO1NBQzNCO1FBQ0QsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFOZSxxQkFBVyxjQU0xQixDQUFBO0lBRUQsU0FBZ0IsV0FBVyxDQUFDLFFBQXNCO1FBQ2hELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLGNBQWMsRUFBRSxFQUFFLEVBQUU7WUFDdEIsT0FBTywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckQsT0FBTyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFOZSxxQkFBVyxjQU0xQixDQUFBO0lBSUQ7Ozs7Ozs7Ozs7Ozs7OztTQWVLO0lBQ0wsU0FBZ0IsUUFBUSxDQUFDLE1BQWM7UUFDckMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTztZQUNMLFdBQVcsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUM1QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDakQsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QixNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzdDLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTt3QkFDcEIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDL0I7aUJBQ0Y7WUFDSCxDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsSUFBWSxFQUFVLEVBQUU7Z0JBQ3BDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUNqRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO3dCQUNwQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ3pEO2lCQUNGO1lBQ0gsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBdEJlLGtCQUFRLFdBc0J2QixDQUFBO0FBQ0gsQ0FBQyxFQTlFZ0IsU0FBUyxLQUFULFNBQVMsUUE4RXpCO0FBSUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw4REFBOEQiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5jb25zdCBjb21wb25lbnRDb250ZXh0U3ltYm9sID0gU3ltYm9sKCk7XG5jb25zdCBjb21wb25lbnRzRGVzdHJveSRTdWJqZWN0cyA9IHt9O1xuXG5leHBvcnQgY2xhc3MgU2VyaWFsaXplZFN1YmplY3Q8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWQ6IHN0cmluZ1xuICApIHsgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIE5nSGVscGVycyB7XG5cbiAgZnVuY3Rpb24gc3ViamVjdElkKGRlc3Ryb3lTdWJqZWN0OiBTdWJqZWN0PGFueT4pOiBTZXJpYWxpemVkU3ViamVjdDxhbnk+IHtcbiAgICBjb25zdCBpZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbiAgICBpZiAoIWRlc3Ryb3lTdWJqZWN0W2NvbXBvbmVudENvbnRleHRTeW1ib2xdKSB7XG4gICAgICBkZXN0cm95U3ViamVjdFtjb21wb25lbnRDb250ZXh0U3ltYm9sXSA9IG5ldyBTZXJpYWxpemVkU3ViamVjdChpZCk7XG4gICAgICBjb21wb25lbnRzRGVzdHJveSRTdWJqZWN0c1tpZF0gPSBkZXN0cm95U3ViamVjdDtcbiAgICB9XG4gICAgcmV0dXJuIGRlc3Ryb3lTdWJqZWN0W2NvbXBvbmVudENvbnRleHRTeW1ib2xdO1xuICB9XG5cbiAgLyoqXG4gICAqIGlmIHlvdSBhcmUgdXNpbmcgdGhpcy4uIHBsZWFzZSBjYWxsIEhlbHBlcnMubmcudW5zdWJzY3JpYmUodGhpcy4kZGVzdHJveSkgaW4gbmdPbkRlc3Ryb3koKTtcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUoZGVzdHJveSQ6IFN1YmplY3Q8YW55Pik6IFNlcmlhbGl6ZWRTdWJqZWN0PGFueT4ge1xuICAgIHJldHVybiBzdWJqZWN0SWQoZGVzdHJveSQpO1xuICB9XG5cbiAgLyoqXG4gICAqIGlmIHlvdSBhcmUgdXNpbmcgdGhpcy4uIHBsZWFzZSBjYWxsIEhlbHBlcnMubmcudW5zdWJzY3JpYmUodGhpcy4kZGVzdHJveSkgaW4gbmdPbkRlc3Ryb3koKTtcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZShkZXN0cm95JDogU2VyaWFsaXplZFN1YmplY3Q8YW55Pik6IFN1YmplY3Q8YW55PiB7XG4gICAgaWYgKGRlc3Ryb3kkPy5pZCkge1xuICAgICAgY29uc3QgcmVhbERlc3Ryb3lTdWJqZWN0ID0gY29tcG9uZW50c0Rlc3Ryb3kkU3ViamVjdHNbZGVzdHJveSQuaWRdO1xuICAgICAgcmV0dXJuIHJlYWxEZXN0cm95U3ViamVjdDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBTdWJqZWN0KCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gdW5zdWJzY3JpYmUoZGVzdHJveSQ6IFN1YmplY3Q8YW55Pikge1xuICAgIGNvbnN0IGRlc3Ryb3lTdWJqZWN0ID0gc3ViamVjdElkKGRlc3Ryb3kkKTtcbiAgICBpZiAoZGVzdHJveVN1YmplY3Q/LmlkKSB7XG4gICAgICBkZWxldGUgY29tcG9uZW50c0Rlc3Ryb3kkU3ViamVjdHNbZGVzdHJveVN1YmplY3QuaWRdO1xuICAgICAgZGVsZXRlIGRlc3Ryb3lTdWJqZWN0W2NvbXBvbmVudENvbnRleHRTeW1ib2xdO1xuICAgIH1cbiAgfVxuXG5cblxuICAvKipcbiAgZ2V0IHByb3BlcnRpZXMgZnJvbSBzY3NzIGZpbGVcblxuXG4gIGltcG9ydCBzdHlsZXMgZnJvbSAnLi90YXNrcy1uZ3J4LWRhdGEuY29tcG9uZW50LnNjc3MnO1xuXG4gIGV4cG9ydCBjbGFzcyBFeGFtcGxlQ29tcG9uZW50IHtcbiAgICBzYXNzRmlsZSA9IHNhc3NGaWxlKHN0eWxlcyk7XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgIHRoaXMudGFza3NTZXJ2aWNlLmdldEFsbCgpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5zYXNzRmlsZS5zdHJpbmdWYWx1ZSgnLS1tYXgtY29udGFpbmVyLXNpemUnKSlcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2Fzc0ZpbGUubnVtYmVyVmFsdWUoJy0tbWF4LWNvbnRhaW5lci1zaXplJykpXG4gICAgfVxuICB9XG4gICAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzYXNzRmlsZShzdHlsZXM6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmVzID0gKHN0eWxlcy5zcGxpdCgnXFxuJykpO1xuICAgIHJldHVybiB7XG4gICAgICBzdHJpbmdWYWx1ZTogKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGluZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgY29uc3QgbCA9IGxpbmVzW2luZGV4XTtcbiAgICAgICAgICBjb25zdCBbdmFyTmFtZSwgdmFsdWVdID0gbC50cmltKCkuc3BsaXQoJzonKTtcbiAgICAgICAgICBpZiAodmFyTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoJzsnLCAnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbnVtYmVyVmFsdWU6IChuYW1lOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGluZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgY29uc3QgbCA9IGxpbmVzW2luZGV4XTtcbiAgICAgICAgICBjb25zdCBbdmFyTmFtZSwgdmFsdWVdID0gbC50cmltKCkuc3BsaXQoJzonKTtcbiAgICAgICAgICBpZiAodmFyTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZS5yZXBsYWNlKCdweCcsICcnKS5yZXBsYWNlKCc7JywgJycpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYW5ndWxhci5oZWxwZXIudHMiXX0=
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { NavigationEnd } from '@angular/router';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class BaseComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
// @ts-ignore
|
|
7
|
-
this.model = {};
|
|
8
|
-
this.handlers = [];
|
|
9
|
-
}
|
|
10
|
-
ngOnDestroy() {
|
|
11
|
-
this.handlers.forEach(h => h.unsubscribe());
|
|
12
|
-
this.handlers.length = 0;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BaseComponent, selector: "app-base-component-meta", inputs: { model: "model" }, ngImport: i0, template: '<div></div>', isInline: true });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseComponent, decorators: [{
|
|
18
|
-
type: Component,
|
|
19
|
-
args: [{
|
|
20
|
-
selector: 'app-base-component-meta',
|
|
21
|
-
template: '<div></div>'
|
|
22
|
-
}]
|
|
23
|
-
}], propDecorators: { model: [{
|
|
24
|
-
type: Input
|
|
25
|
-
}] } });
|
|
26
|
-
const isCalledNgInitAfterInternalRefresh = Symbol();
|
|
27
|
-
export class BaseComponentForRouter extends BaseComponent {
|
|
28
|
-
constructor(__router) {
|
|
29
|
-
super();
|
|
30
|
-
this.__router = __router;
|
|
31
|
-
this[isCalledNgInitAfterInternalRefresh] = false;
|
|
32
|
-
}
|
|
33
|
-
isCalledNgInitAfterInternalRefresh() {
|
|
34
|
-
return !!this[isCalledNgInitAfterInternalRefresh];
|
|
35
|
-
}
|
|
36
|
-
reloadNgOninitOnUrlChange() {
|
|
37
|
-
this.handlers.push(this.__router.events.subscribe(event => {
|
|
38
|
-
if (event instanceof NavigationEnd && this['ngOnInit']) {
|
|
39
|
-
this[isCalledNgInitAfterInternalRefresh] = true;
|
|
40
|
-
this['ngOnInit']();
|
|
41
|
-
if (this[isCalledNgInitAfterInternalRefresh]) {
|
|
42
|
-
this[isCalledNgInitAfterInternalRefresh] = false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
;
|
|
49
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/base-component.ts
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class BaseComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
this.model = {};
|
|
8
|
+
this.handlers = [];
|
|
9
|
+
}
|
|
10
|
+
ngOnDestroy() {
|
|
11
|
+
this.handlers.forEach(h => h.unsubscribe());
|
|
12
|
+
this.handlers.length = 0;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BaseComponent, selector: "app-base-component-meta", inputs: { model: "model" }, ngImport: i0, template: '<div></div>', isInline: true });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{
|
|
20
|
+
selector: 'app-base-component-meta',
|
|
21
|
+
template: '<div></div>'
|
|
22
|
+
}]
|
|
23
|
+
}], propDecorators: { model: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}] } });
|
|
26
|
+
const isCalledNgInitAfterInternalRefresh = Symbol();
|
|
27
|
+
export class BaseComponentForRouter extends BaseComponent {
|
|
28
|
+
constructor(__router) {
|
|
29
|
+
super();
|
|
30
|
+
this.__router = __router;
|
|
31
|
+
this[isCalledNgInitAfterInternalRefresh] = false;
|
|
32
|
+
}
|
|
33
|
+
isCalledNgInitAfterInternalRefresh() {
|
|
34
|
+
return !!this[isCalledNgInitAfterInternalRefresh];
|
|
35
|
+
}
|
|
36
|
+
reloadNgOninitOnUrlChange() {
|
|
37
|
+
this.handlers.push(this.__router.events.subscribe(event => {
|
|
38
|
+
if (event instanceof NavigationEnd && this['ngOnInit']) {
|
|
39
|
+
this[isCalledNgInitAfterInternalRefresh] = true;
|
|
40
|
+
this['ngOnInit']();
|
|
41
|
+
if (this[isCalledNgInitAfterInternalRefresh]) {
|
|
42
|
+
this[isCalledNgInitAfterInternalRefresh] = false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
;
|
|
49
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/base-component.ts
|
|
50
50
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7O0FBT3hELE1BQU0sT0FBZ0IsYUFBYTtJQUpuQztRQU1FLGFBQWE7UUFDSixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO0tBUS9CO0lBTkMsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzJHQVZtQixhQUFhOytGQUFiLGFBQWEsMkZBRnZCLGFBQWE7NEZBRUgsYUFBYTtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OEJBSVUsS0FBSztzQkFBYixLQUFLOztBQVlSLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxFQUFFLENBQUE7QUFFbkQsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxhQUFhO0lBRWhFLFlBQ1UsUUFBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFGQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBR3hCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBR1Msa0NBQWtDO1FBQzFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDUyx5QkFBeUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hELElBQUksS0FBSyxZQUFZLGFBQWEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLElBQUksSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDbEQ7YUFDRjtRQUNILENBQUMsQ0FBUSxDQUFDLENBQUM7SUFDYixDQUFDO0NBRUY7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhEQUE4RCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbkRlc3Ryb3ksIE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmFzZS1jb21wb25lbnQtbWV0YScsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQElucHV0KCkgbW9kZWw6IGFueSA9IHt9O1xuXG4gIGhhbmRsZXJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlcnMuZm9yRWFjaChoID0+IGgudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5oYW5kbGVycy5sZW5ndGggPSAwO1xuICB9XG5cblxufVxuXG5jb25zdCBpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoID0gU3ltYm9sKClcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnRGb3JSb3V0ZXIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9fcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdID0gZmFsc2U7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoKCkge1xuICAgIHJldHVybiAhIXRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF07XG4gIH1cbiAgcHJvdGVjdGVkIHJlbG9hZE5nT25pbml0T25VcmxDaGFuZ2UoKSB7XG4gICAgdGhpcy5oYW5kbGVycy5wdXNoKHRoaXMuX19yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIHRoaXNbJ25nT25Jbml0J10pIHtcbiAgICAgICAgdGhpc1tpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoXSA9IHRydWU7XG4gICAgICAgIHRoaXNbJ25nT25Jbml0J10oKTtcbiAgICAgICAgaWYgKHRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF0pIHtcbiAgICAgICAgICB0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSBhcyBhbnkpO1xuICB9XG5cbn1cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UtY29tcG9uZW50LnRzIl19
|
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
import { FieldType } from '@ngx-formly/core';
|
|
2
|
-
import { Component, Input, Output, } from '@angular/core'; /* */
|
|
3
|
-
/* */
|
|
4
|
-
/* */
|
|
5
|
-
import { Log, Level } from 'ng2-logger/websql';
|
|
6
|
-
import { DualComponentController } from './dual-component-ctrl';
|
|
7
|
-
import { EventEmitter } from '@angular/core';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
const log = Log.create('base formly component', Level.__NOTHING);
|
|
10
|
-
export class BaseFormlyComponent extends FieldType {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(...arguments);
|
|
13
|
-
this.DualComponentController = DualComponentController;
|
|
14
|
-
this.ctrl = {};
|
|
15
|
-
this.change = new EventEmitter();
|
|
16
|
-
// @ts-ignore
|
|
17
|
-
this.handlers = [];
|
|
18
|
-
this.__field = {
|
|
19
|
-
templateOptions: {}
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
get mode() {
|
|
24
|
-
return this.ctrl.mode;
|
|
25
|
-
}
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
set mode(v) {
|
|
28
|
-
this.ctrl.mode = v;
|
|
29
|
-
}
|
|
30
|
-
// @ts-ignore
|
|
31
|
-
set model(v) {
|
|
32
|
-
this.ctrl.model = v;
|
|
33
|
-
}
|
|
34
|
-
get model() {
|
|
35
|
-
return this.ctrl.model;
|
|
36
|
-
}
|
|
37
|
-
// @ts-ignore
|
|
38
|
-
set key(value) {
|
|
39
|
-
if (this.ctrl && this.ctrl.isFormlyMode) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.path = value;
|
|
43
|
-
}
|
|
44
|
-
get key() {
|
|
45
|
-
if (this.ctrl && this.ctrl.isFormlyMode) {
|
|
46
|
-
return this.field.key;
|
|
47
|
-
}
|
|
48
|
-
return this.path;
|
|
49
|
-
}
|
|
50
|
-
ngOnDestroy() {
|
|
51
|
-
this.handlers.forEach(h => h.unsubscribe());
|
|
52
|
-
this.handlers.length = 0;
|
|
53
|
-
}
|
|
54
|
-
ngAfterViewInit() {
|
|
55
|
-
}
|
|
56
|
-
ngOnInit() {
|
|
57
|
-
const isFormlyMode = !!this.field;
|
|
58
|
-
log.i(`isFormlyMode: ${isFormlyMode}`);
|
|
59
|
-
if (!isFormlyMode) {
|
|
60
|
-
const that = this;
|
|
61
|
-
Object.defineProperty(this, 'field', {
|
|
62
|
-
get: function () {
|
|
63
|
-
return that.__field;
|
|
64
|
-
},
|
|
65
|
-
set: function (v) {
|
|
66
|
-
that.__field = v;
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
const existed = this.ctrl;
|
|
71
|
-
this.ctrl = new this.DualComponentController(this, isFormlyMode);
|
|
72
|
-
// @ts-ignore
|
|
73
|
-
Object.keys(existed).forEach(key => {
|
|
74
|
-
this.ctrl[key] = existed[key];
|
|
75
|
-
});
|
|
76
|
-
// @ts-ignore
|
|
77
|
-
this.change.next(this.ctrl.value);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
BaseFormlyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseFormlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
BaseFormlyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BaseFormlyComponent, selector: "app-base-formly-component-meta", inputs: { pizda: "pizda", mode: "mode", disabled: "disabled", required: "required", label: "label", placeholder: "placeholder", defaultValue: "defaultValue", model: "model", path: "path", key: "key" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true });
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseFormlyComponent, decorators: [{
|
|
83
|
-
type: Component,
|
|
84
|
-
args: [{
|
|
85
|
-
selector: 'app-base-formly-component-meta',
|
|
86
|
-
template: `<div></div>`
|
|
87
|
-
}]
|
|
88
|
-
}], propDecorators: { pizda: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], mode: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], disabled: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], required: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], label: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], placeholder: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], defaultValue: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], model: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], path: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], change: [{
|
|
107
|
-
type: Output
|
|
108
|
-
}], key: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}] } });
|
|
111
|
-
;
|
|
112
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/base-formly-component.ts
|
|
1
|
+
import { FieldType } from '@ngx-formly/core';
|
|
2
|
+
import { Component, Input, Output, } from '@angular/core'; /* */
|
|
3
|
+
/* */
|
|
4
|
+
/* */
|
|
5
|
+
import { Log, Level } from 'ng2-logger/websql';
|
|
6
|
+
import { DualComponentController } from './dual-component-ctrl';
|
|
7
|
+
import { EventEmitter } from '@angular/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const log = Log.create('base formly component', Level.__NOTHING);
|
|
10
|
+
export class BaseFormlyComponent extends FieldType {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.DualComponentController = DualComponentController;
|
|
14
|
+
this.ctrl = {};
|
|
15
|
+
this.change = new EventEmitter();
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
this.handlers = [];
|
|
18
|
+
this.__field = {
|
|
19
|
+
templateOptions: {}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
get mode() {
|
|
24
|
+
return this.ctrl.mode;
|
|
25
|
+
}
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
set mode(v) {
|
|
28
|
+
this.ctrl.mode = v;
|
|
29
|
+
}
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
set model(v) {
|
|
32
|
+
this.ctrl.model = v;
|
|
33
|
+
}
|
|
34
|
+
get model() {
|
|
35
|
+
return this.ctrl.model;
|
|
36
|
+
}
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
set key(value) {
|
|
39
|
+
if (this.ctrl && this.ctrl.isFormlyMode) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.path = value;
|
|
43
|
+
}
|
|
44
|
+
get key() {
|
|
45
|
+
if (this.ctrl && this.ctrl.isFormlyMode) {
|
|
46
|
+
return this.field.key;
|
|
47
|
+
}
|
|
48
|
+
return this.path;
|
|
49
|
+
}
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
this.handlers.forEach(h => h.unsubscribe());
|
|
52
|
+
this.handlers.length = 0;
|
|
53
|
+
}
|
|
54
|
+
ngAfterViewInit() {
|
|
55
|
+
}
|
|
56
|
+
ngOnInit() {
|
|
57
|
+
const isFormlyMode = !!this.field;
|
|
58
|
+
log.i(`isFormlyMode: ${isFormlyMode}`);
|
|
59
|
+
if (!isFormlyMode) {
|
|
60
|
+
const that = this;
|
|
61
|
+
Object.defineProperty(this, 'field', {
|
|
62
|
+
get: function () {
|
|
63
|
+
return that.__field;
|
|
64
|
+
},
|
|
65
|
+
set: function (v) {
|
|
66
|
+
that.__field = v;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const existed = this.ctrl;
|
|
71
|
+
this.ctrl = new this.DualComponentController(this, isFormlyMode);
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
Object.keys(existed).forEach(key => {
|
|
74
|
+
this.ctrl[key] = existed[key];
|
|
75
|
+
});
|
|
76
|
+
// @ts-ignore
|
|
77
|
+
this.change.next(this.ctrl.value);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
BaseFormlyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseFormlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
BaseFormlyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BaseFormlyComponent, selector: "app-base-formly-component-meta", inputs: { pizda: "pizda", mode: "mode", disabled: "disabled", required: "required", label: "label", placeholder: "placeholder", defaultValue: "defaultValue", model: "model", path: "path", key: "key" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseFormlyComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{
|
|
85
|
+
selector: 'app-base-formly-component-meta',
|
|
86
|
+
template: `<div></div>`
|
|
87
|
+
}]
|
|
88
|
+
}], propDecorators: { pizda: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], mode: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], disabled: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], required: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], label: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], placeholder: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], defaultValue: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], model: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], path: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], change: [{
|
|
107
|
+
type: Output
|
|
108
|
+
}], key: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}] } });
|
|
111
|
+
;
|
|
112
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/base-formly-component.ts
|
|
113
113
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtbHktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlLWZvcm1seS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUksU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEdBQWtCLE1BQU0sZUFBZSxDQUFDLENBQUEsS0FBSztBQUl4RixLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7QUFPaEUsTUFBTSxPQUFnQixtQkFDcEIsU0FBUSxTQUFTO0lBTG5COztRQVFZLDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3JELFNBQUksR0FBTSxFQUFTLENBQUM7UUEwQmpCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBaUJ0QyxhQUFhO1FBRUgsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFZaEMsWUFBTyxHQUFHO1lBQ2hCLGVBQWUsRUFBRSxFQUVoQjtTQUNtQixDQUFDO0tBeUN4QjtJQW5HQyxhQUFhO0lBQ2IsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtJQUNiLElBQWEsSUFBSSxDQUFDLENBQUM7UUFD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QUlNLEdBQUc7c0JBQWYsS0FBSzs7QUEyRVAsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5pbXBvcnQgeyAgIENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnOy8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyAgIEZvcm1Db250cm9sLCAgIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsvKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL3dlYnNxbCc7XG5pbXBvcnQgeyBEdWFsQ29tcG9uZW50Q29udHJvbGxlciB9IGZyb20gJy4vZHVhbC1jb21wb25lbnQtY3RybCc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgnYmFzZSBmb3JtbHkgY29tcG9uZW50JywgTGV2ZWwuX19OT1RISU5HKVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iYXNlLWZvcm1seS1jb21wb25lbnQtbWV0YScsXG4gIHRlbXBsYXRlOiBgPGRpdj48L2Rpdj5gXG59KSAvLyBAdHMtaWdub3JlXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZvcm1seUNvbXBvbmVudDxUIGV4dGVuZHMgRHVhbENvbXBvbmVudENvbnRyb2xsZXIgPSBEdWFsQ29tcG9uZW50Q29udHJvbGxlcj5cbiAgZXh0ZW5kcyBGaWVsZFR5cGVcbiAgaW1wbGVtZW50cyBPbkluaXQsIFBhcnRpYWw8RHVhbENvbXBvbmVudENvbnRyb2xsZXI8VD4+LCBBZnRlclZpZXdJbml0IHtcblxuICBwcm90ZWN0ZWQgRHVhbENvbXBvbmVudENvbnRyb2xsZXIgPSBEdWFsQ29tcG9uZW50Q29udHJvbGxlcjtcbiAgcHVibGljIGN0cmw6IFQgPSB7fSBhcyBhbnk7XG4gIEBJbnB1dCgpIHBpemRhOiBhbnk7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jdHJsLm1vZGU7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIHNldCBtb2RlKHYpIHtcbiAgICB0aGlzLmN0cmwubW9kZSA9IHY7XG4gIH1cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IFQ7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBASW5wdXQoKSBzZXQgbW9kZWwodikge1xuICAgIHRoaXMuY3RybC5tb2RlbCA9IHY7XG4gIH1cbiAgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLmN0cmwubW9kZWw7XG4gIH1cbiAgQElucHV0KCkgcGF0aDogc3RyaW5nO1xuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBASW5wdXQoKSBzZXQga2V5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jdHJsICYmIHRoaXMuY3RybC5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYXRoID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGtleSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmN0cmwgJiYgdGhpcy5jdHJsLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmllbGQua2V5IGFzIGFueTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGF0aDtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcblxuICBwcm90ZWN0ZWQgaGFuZGxlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVycy5mb3JFYWNoKGggPT4gaC51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7XG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblxuICB9XG5cbiAgcHJpdmF0ZSBfX2ZpZWxkID0ge1xuICAgIHRlbXBsYXRlT3B0aW9uczoge1xuXG4gICAgfVxuICB9IGFzIEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIG5nT25Jbml0KCkge1xuXG5cbiAgICBjb25zdCBpc0Zvcm1seU1vZGUgPSAhIXRoaXMuZmllbGQ7XG4gICAgbG9nLmkoYGlzRm9ybWx5TW9kZTogJHtpc0Zvcm1seU1vZGV9YCk7XG4gICAgaWYgKCFpc0Zvcm1seU1vZGUpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdmaWVsZCcsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoYXQuX19maWVsZDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodikge1xuICAgICAgICAgIHRoYXQuX19maWVsZCA9IHY7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RlZCA9IHRoaXMuY3RybDtcbiAgICB0aGlzLmN0cmwgPSBuZXcgKHRoaXMuRHVhbENvbXBvbmVudENvbnRyb2xsZXIgYXMgYW55KSh0aGlzLCBpc0Zvcm1seU1vZGUpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBPYmplY3Qua2V5cyhleGlzdGVkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmN0cmxba2V5XSA9IGV4aXN0ZWRba2V5XTtcbiAgICB9KTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5jaGFuZ2UubmV4dCh0aGlzLmN0cmwudmFsdWUpO1xuICB9XG5cbn1cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UtZm9ybWx5LWNvbXBvbmVudC50cyJdfQ==
|