tnp-helpers 13.1.14 → 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.
Files changed (169) hide show
  1. package/app.js +3 -3
  2. package/browser/README.md +24 -24
  3. package/browser/esm2020/lib/base-component.mjs +49 -49
  4. package/browser/esm2020/lib/base-formly-component.mjs +112 -112
  5. package/browser/esm2020/lib/condition-wait.mjs +45 -45
  6. package/browser/esm2020/lib/constants.mjs +7 -7
  7. package/browser/esm2020/lib/dual-component-ctrl.mjs +118 -118
  8. package/browser/esm2020/lib/firedev-models.mjs +3 -3
  9. package/browser/esm2020/lib/helpers-array-obj.mjs +82 -82
  10. package/browser/esm2020/lib/helpers-browser.mjs +47 -0
  11. package/browser/esm2020/lib/helpers-environment.mjs +32 -32
  12. package/browser/esm2020/lib/helpers-numbers.mjs +7 -7
  13. package/browser/esm2020/lib/helpers-strings-regexes.mjs +50 -50
  14. package/browser/esm2020/lib/helpers-strings.mjs +252 -252
  15. package/browser/esm2020/lib/helpers.mjs +282 -280
  16. package/browser/esm2020/lib/index.mjs +14 -14
  17. package/browser/esm2020/lib/long-press.directive.mjs +112 -112
  18. package/browser/esm2020/lib/project.mjs +429 -429
  19. package/browser/esm2020/lib/resize-service.mjs +21 -21
  20. package/browser/esm2020/public-api.mjs +1 -1
  21. package/browser/esm2020/tnp-helpers.mjs +4 -4
  22. package/browser/fesm2015/tnp-helpers.mjs +1592 -1542
  23. package/browser/fesm2020/tnp-helpers.mjs +1582 -1534
  24. package/browser/lib/base-component.d.ts +16 -16
  25. package/browser/lib/base-formly-component.d.ts +30 -30
  26. package/browser/lib/condition-wait.d.ts +7 -7
  27. package/browser/lib/constants.d.ts +5 -5
  28. package/browser/lib/dual-component-ctrl.d.ts +24 -24
  29. package/browser/lib/firedev-models.d.ts +12 -12
  30. package/browser/lib/helpers-array-obj.d.ts +14 -14
  31. package/browser/lib/helpers-browser.d.ts +12 -0
  32. package/browser/lib/helpers-environment.d.ts +4 -4
  33. package/browser/lib/helpers-numbers.d.ts +2 -2
  34. package/browser/lib/helpers-strings-regexes.d.ts +27 -27
  35. package/browser/lib/helpers-strings.d.ts +49 -49
  36. package/browser/lib/helpers.d.ts +29 -27
  37. package/browser/lib/index.d.ts +10 -10
  38. package/browser/lib/long-press.directive.d.ts +24 -24
  39. package/browser/lib/project.d.ts +94 -94
  40. package/browser/lib/resize-service.d.ts +8 -8
  41. package/browser/tnp-helpers.d.ts +4 -4
  42. package/client/README.md +24 -24
  43. package/client/esm2020/lib/base-component.mjs +49 -49
  44. package/client/esm2020/lib/base-formly-component.mjs +112 -112
  45. package/client/esm2020/lib/condition-wait.mjs +45 -45
  46. package/client/esm2020/lib/constants.mjs +7 -7
  47. package/client/esm2020/lib/dual-component-ctrl.mjs +118 -118
  48. package/client/esm2020/lib/firedev-models.mjs +3 -3
  49. package/client/esm2020/lib/helpers-array-obj.mjs +82 -82
  50. package/client/esm2020/lib/helpers-browser.mjs +47 -0
  51. package/client/esm2020/lib/helpers-environment.mjs +32 -32
  52. package/client/esm2020/lib/helpers-numbers.mjs +7 -7
  53. package/client/esm2020/lib/helpers-strings-regexes.mjs +50 -50
  54. package/client/esm2020/lib/helpers-strings.mjs +252 -252
  55. package/client/esm2020/lib/helpers.mjs +282 -280
  56. package/client/esm2020/lib/index.mjs +14 -14
  57. package/client/esm2020/lib/long-press.directive.mjs +112 -112
  58. package/client/esm2020/lib/project.mjs +429 -429
  59. package/client/esm2020/lib/resize-service.mjs +21 -21
  60. package/client/esm2020/public-api.mjs +1 -1
  61. package/client/esm2020/tnp-helpers.mjs +4 -4
  62. package/client/fesm2015/tnp-helpers.mjs +1592 -1542
  63. package/client/fesm2020/tnp-helpers.mjs +1582 -1534
  64. package/client/lib/base-component.d.ts +16 -16
  65. package/client/lib/base-formly-component.d.ts +30 -30
  66. package/client/lib/condition-wait.d.ts +7 -7
  67. package/client/lib/constants.d.ts +5 -5
  68. package/client/lib/dual-component-ctrl.d.ts +24 -24
  69. package/client/lib/firedev-models.d.ts +12 -12
  70. package/client/lib/helpers-array-obj.d.ts +14 -14
  71. package/client/lib/helpers-browser.d.ts +12 -0
  72. package/client/lib/helpers-environment.d.ts +4 -4
  73. package/client/lib/helpers-numbers.d.ts +2 -2
  74. package/client/lib/helpers-strings-regexes.d.ts +27 -27
  75. package/client/lib/helpers-strings.d.ts +49 -49
  76. package/client/lib/helpers.d.ts +29 -27
  77. package/client/lib/index.d.ts +10 -10
  78. package/client/lib/long-press.directive.d.ts +24 -24
  79. package/client/lib/project.d.ts +94 -94
  80. package/client/lib/resize-service.d.ts +8 -8
  81. package/client/tnp-helpers.d.ts +4 -4
  82. package/index.d.ts +1 -1
  83. package/lib/angular.helper.d.ts +22 -22
  84. package/lib/base-component.d.ts +13 -13
  85. package/lib/base-component.js +3 -3
  86. package/lib/base-formly-component.d.ts +27 -27
  87. package/lib/base-formly-component.js +3 -3
  88. package/lib/condition-wait.d.ts +8 -8
  89. package/lib/constants.d.ts +6 -6
  90. package/lib/dual-component-ctrl.d.ts +24 -24
  91. package/lib/dual-component-ctrl.js +3 -3
  92. package/lib/firedev-models.d.ts +13 -13
  93. package/lib/git-project.d.ts +45 -46
  94. package/lib/helpers-array-obj.d.ts +15 -15
  95. package/lib/helpers-browser.d.ts +11 -0
  96. package/lib/helpers-browser.js +70 -0
  97. package/lib/helpers-cli-tool.backend.d.ts +55 -55
  98. package/lib/helpers-dependencies.backend.d.ts +11 -11
  99. package/lib/helpers-environment.d.ts +5 -5
  100. package/lib/helpers-file-folders.backend.d.ts +83 -83
  101. package/lib/helpers-file-folders.backend.js +6 -3
  102. package/lib/helpers-git.backend.d.ts +43 -43
  103. package/lib/helpers-git.backend.js +1 -1
  104. package/lib/helpers-json5.backend.d.ts +16 -16
  105. package/lib/helpers-morphi-framework.backend.d.ts +4 -4
  106. package/lib/helpers-network.backend.d.ts +8 -8
  107. package/lib/helpers-npm.backend.d.ts +3 -3
  108. package/lib/helpers-numbers.d.ts +3 -3
  109. package/lib/helpers-path.backend.d.ts +7 -7
  110. package/lib/helpers-process.backend.d.ts +54 -55
  111. package/lib/helpers-process.backend.js +0 -3
  112. package/lib/helpers-strings-regexes.d.ts +28 -28
  113. package/lib/helpers-strings.d.ts +50 -50
  114. package/lib/helpers-system-terminal.backend.d.ts +5 -5
  115. package/lib/helpers-vscode.backend.d.ts +5 -5
  116. package/lib/helpers.d.ts +71 -69
  117. package/lib/helpers.js +2 -0
  118. package/lib/index.d.ts +11 -11
  119. package/lib/long-press.directive.d.ts +22 -22
  120. package/lib/merge-helpers.backend.d.ts +23 -23
  121. package/lib/project.d.ts +97 -97
  122. package/lib/resize-service.d.ts +6 -6
  123. package/lib/ts-code/index.d.ts +1 -1
  124. package/lib/ts-code/ts-code-extractor.d.ts +14 -14
  125. package/lib/ts-code/ts-code-modifier.backend.d.ts +12 -12
  126. package/package.json +3 -3
  127. package/package.json_devDependencies.json +222 -222
  128. package/package.json_tnp.json5 +44 -44
  129. package/tmp-environment.json +10 -9
  130. package/websql/README.md +24 -24
  131. package/websql/esm2020/lib/base-component.mjs +49 -49
  132. package/websql/esm2020/lib/base-formly-component.mjs +112 -112
  133. package/websql/esm2020/lib/condition-wait.mjs +45 -45
  134. package/websql/esm2020/lib/constants.mjs +7 -7
  135. package/websql/esm2020/lib/dual-component-ctrl.mjs +118 -118
  136. package/websql/esm2020/lib/firedev-models.mjs +3 -3
  137. package/websql/esm2020/lib/helpers-array-obj.mjs +82 -82
  138. package/websql/esm2020/lib/helpers-browser.mjs +47 -0
  139. package/websql/esm2020/lib/helpers-environment.mjs +32 -32
  140. package/websql/esm2020/lib/helpers-numbers.mjs +7 -7
  141. package/websql/esm2020/lib/helpers-strings-regexes.mjs +50 -50
  142. package/websql/esm2020/lib/helpers-strings.mjs +252 -252
  143. package/websql/esm2020/lib/helpers.mjs +282 -280
  144. package/websql/esm2020/lib/index.mjs +14 -14
  145. package/websql/esm2020/lib/long-press.directive.mjs +112 -112
  146. package/websql/esm2020/lib/project.mjs +429 -429
  147. package/websql/esm2020/lib/resize-service.mjs +21 -21
  148. package/websql/esm2020/public-api.mjs +1 -1
  149. package/websql/esm2020/tnp-helpers.mjs +4 -4
  150. package/websql/fesm2015/tnp-helpers.mjs +1592 -1542
  151. package/websql/fesm2020/tnp-helpers.mjs +1582 -1534
  152. package/websql/lib/base-component.d.ts +16 -16
  153. package/websql/lib/base-formly-component.d.ts +30 -30
  154. package/websql/lib/condition-wait.d.ts +7 -7
  155. package/websql/lib/constants.d.ts +5 -5
  156. package/websql/lib/dual-component-ctrl.d.ts +24 -24
  157. package/websql/lib/firedev-models.d.ts +12 -12
  158. package/websql/lib/helpers-array-obj.d.ts +14 -14
  159. package/websql/lib/helpers-browser.d.ts +12 -0
  160. package/websql/lib/helpers-environment.d.ts +4 -4
  161. package/websql/lib/helpers-numbers.d.ts +2 -2
  162. package/websql/lib/helpers-strings-regexes.d.ts +27 -27
  163. package/websql/lib/helpers-strings.d.ts +49 -49
  164. package/websql/lib/helpers.d.ts +29 -27
  165. package/websql/lib/index.d.ts +10 -10
  166. package/websql/lib/long-press.directive.d.ts +24 -24
  167. package/websql/lib/project.d.ts +94 -94
  168. package/websql/lib/resize-service.d.ts +8 -8
  169. package/websql/tnp-helpers.d.ts +4 -4
@@ -1,96 +1,96 @@
1
1
  // @ts-nocheck
2
- import { ConfigModels } from 'tnp-config/browser';
3
- import { Models } from 'tnp-models/browser';
4
- export declare type EmptyProjectStructure = {
5
- includeContent?: boolean;
6
- relativePath: string;
7
- relativeLinkFrom?: string;
8
- };
9
- export declare class Project<T extends Project<any> = any> {
10
- protected cache: {};
11
- /**
12
- * Do use this variable for comparatios
13
- * ONLY FOR VIEWING
14
- */
15
- readonly _type: ConfigModels.LibType;
16
- browser: Pick<Project<any>, 'location' | 'name'>;
17
- location: string;
18
- name: string;
19
- genericName: string;
20
- isWorkspace: boolean;
21
- isVscodeExtension: boolean;
22
- isDocker: boolean;
23
- isSite: boolean;
24
- isSiteInStrictMode?: boolean;
25
- isSiteInDependencyMode?: boolean;
26
- isCoreProject: boolean;
27
- isCommandLineToolOnly: boolean;
28
- isGenerated: boolean;
29
- isGeneratedForRelease: boolean;
30
- isWorkspaceChildProject: boolean;
31
- isBasedOnOtherProject: boolean;
32
- isForRecreation: boolean;
33
- isContainer: boolean;
34
- isSmartContainer: boolean;
35
- isSmartContainerChild: boolean;
36
- isContainerWithLinkedProjects: boolean;
37
- isContainerChild: boolean;
38
- isContainerCoreProject: boolean;
39
- isStandaloneProject: boolean;
40
- isMonorepo: boolean;
41
- isUnknowNpmProject: boolean;
42
- isNaviCli: boolean;
43
- useFramework: boolean;
44
- defaultPort?: number;
45
- version: string;
46
- lastNpmVersion?: string;
47
- _routerTargetHttp?: string;
48
- customizableFilesAndFolders: string[];
49
- type: ConfigModels.LibType;
50
- backupName: string;
51
- resources: string[];
52
- env: Models.env.EnvConfig;
53
- allowedEnvironments: ConfigModels.EnvironmentName[];
54
- children: T[];
55
- smartContainerBuildTarget: T;
56
- grandpa: T;
57
- distribution: T;
58
- childrenThatAreLibs?: T[];
59
- childrenThatAreClients?: T[];
60
- childrenThatAreThirdPartyInNodeModules?: T[];
61
- parent: T;
62
- preview: T;
63
- baseline: T;
64
- static projects: Project<any>[];
65
- /**
66
- * To speed up checking folder I am keeping pathes for alterdy checked folder
67
- * This may break things that are creating new projects
68
- */
69
- static emptyLocations: string[];
70
- static typeFrom(location: string): ConfigModels.LibType;
71
- static unload(project: Project): void;
72
- static From<T = Project<any>>(locationOfProj: string | string[]): T;
73
- static nearestTo<T = Project>(absoluteLocation: string, options?: {
74
- type?: ConfigModels.LibType;
75
- findGitRoot?: boolean;
76
- onlyOutSideNodeModules?: boolean;
77
- }): T;
78
- static allProjectFrom<T = Project>(absoluteLocation: string, stopOnCwd?: string): any;
79
- static DefaultPortByType(type: ConfigModels.LibType): number;
80
- static get isBundleMode(): boolean;
81
- static get Current(): Project<any>;
82
- /**
83
- * @deprecated
84
- */
85
- static get Tnp(): Project<any>;
86
- static by<T = Project>(libraryType: ConfigModels.NewFactoryType, version: ConfigModels.FrameworkVersion): T;
87
- defineProperty<T>(variableName: keyof T, classFn: Function): any;
88
- setType(this: Project, type: ConfigModels.LibType): void;
89
- typeIs(this: Project, ...types: ConfigModels.LibType[]): boolean;
90
- typeIsNot(this: Project, ...types: ConfigModels.LibType[]): boolean;
91
- forEmptyStructure(): EmptyProjectStructure[];
92
- }
93
- export declare type ProjectBuild = {
94
- project: Project;
95
- appBuild: boolean;
2
+ import { ConfigModels } from 'tnp-config/browser';
3
+ import { Models } from 'tnp-models/browser';
4
+ export declare type EmptyProjectStructure = {
5
+ includeContent?: boolean;
6
+ relativePath: string;
7
+ relativeLinkFrom?: string;
8
+ };
9
+ export declare class Project<T extends Project<any> = any> {
10
+ protected cache: {};
11
+ /**
12
+ * Do use this variable for comparatios
13
+ * ONLY FOR VIEWING
14
+ */
15
+ readonly _type: ConfigModels.LibType;
16
+ browser: Pick<Project<any>, 'location' | 'name'>;
17
+ location: string;
18
+ name: string;
19
+ genericName: string;
20
+ isWorkspace: boolean;
21
+ isVscodeExtension: boolean;
22
+ isDocker: boolean;
23
+ isSite: boolean;
24
+ isSiteInStrictMode?: boolean;
25
+ isSiteInDependencyMode?: boolean;
26
+ isCoreProject: boolean;
27
+ isCommandLineToolOnly: boolean;
28
+ isGenerated: boolean;
29
+ isGeneratedForRelease: boolean;
30
+ isWorkspaceChildProject: boolean;
31
+ isBasedOnOtherProject: boolean;
32
+ isForRecreation: boolean;
33
+ isContainer: boolean;
34
+ isSmartContainer: boolean;
35
+ isSmartContainerChild: boolean;
36
+ isContainerWithLinkedProjects: boolean;
37
+ isContainerChild: boolean;
38
+ isContainerCoreProject: boolean;
39
+ isStandaloneProject: boolean;
40
+ isMonorepo: boolean;
41
+ isUnknowNpmProject: boolean;
42
+ isNaviCli: boolean;
43
+ useFramework: boolean;
44
+ defaultPort?: number;
45
+ version: string;
46
+ lastNpmVersion?: string;
47
+ _routerTargetHttp?: string;
48
+ customizableFilesAndFolders: string[];
49
+ type: ConfigModels.LibType;
50
+ backupName: string;
51
+ resources: string[];
52
+ env: Models.env.EnvConfig;
53
+ allowedEnvironments: ConfigModels.EnvironmentName[];
54
+ children: T[];
55
+ smartContainerBuildTarget: T;
56
+ grandpa: T;
57
+ distribution: T;
58
+ childrenThatAreLibs?: T[];
59
+ childrenThatAreClients?: T[];
60
+ childrenThatAreThirdPartyInNodeModules?: T[];
61
+ parent: T;
62
+ preview: T;
63
+ baseline: T;
64
+ static projects: Project<any>[];
65
+ /**
66
+ * To speed up checking folder I am keeping pathes for alterdy checked folder
67
+ * This may break things that are creating new projects
68
+ */
69
+ static emptyLocations: string[];
70
+ static typeFrom(location: string): ConfigModels.LibType;
71
+ static unload(project: Project): void;
72
+ static From<T = Project<any>>(locationOfProj: string | string[]): T;
73
+ static nearestTo<T = Project>(absoluteLocation: string, options?: {
74
+ type?: ConfigModels.LibType;
75
+ findGitRoot?: boolean;
76
+ onlyOutSideNodeModules?: boolean;
77
+ }): T;
78
+ static allProjectFrom<T = Project>(absoluteLocation: string, stopOnCwd?: string): any;
79
+ static DefaultPortByType(type: ConfigModels.LibType): number;
80
+ static get isBundleMode(): boolean;
81
+ static get Current(): Project<any>;
82
+ /**
83
+ * @deprecated
84
+ */
85
+ static get Tnp(): Project<any>;
86
+ static by<T = Project>(libraryType: ConfigModels.NewFactoryType, version: ConfigModels.FrameworkVersion): T;
87
+ defineProperty<T>(variableName: keyof T, classFn: Function): any;
88
+ setType(this: Project, type: ConfigModels.LibType): void;
89
+ typeIs(this: Project, ...types: ConfigModels.LibType[]): boolean;
90
+ typeIsNot(this: Project, ...types: ConfigModels.LibType[]): boolean;
91
+ forEmptyStructure(): EmptyProjectStructure[];
92
+ }
93
+ export declare type ProjectBuild = {
94
+ project: Project;
95
+ appBuild: boolean;
96
96
  };
@@ -1,10 +1,10 @@
1
1
  // @ts-nocheck
2
- import * as i0 from "@angular/core";
3
- export declare class ResizeService {
4
- private resizeDetector;
5
- constructor();
6
- addResizeEventListener(element: HTMLElement, handler: Function): void;
7
- removeResizeEventListener(element: HTMLElement): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<ResizeService, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<ResizeService>;
2
+ import * as i0 from "@angular/core";
3
+ export declare class ResizeService {
4
+ private resizeDetector;
5
+ constructor();
6
+ addResizeEventListener(element: HTMLElement, handler: Function): void;
7
+ removeResizeEventListener(element: HTMLElement): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResizeService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<ResizeService>;
10
10
  }
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
- /**
3
- * Generated bundle index. Do not edit.
4
- */
5
- /// <amd-module name="tnp-helpers" />
2
+ /**
3
+ * Generated bundle index. Do not edit.
4
+ */
5
+ /// <amd-module name="tnp-helpers" />
6
6
  export * from './public-api';
package/client/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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPeEQsTUFBTSxPQUFnQixhQUFhO0lBSm5DO1FBTUUsYUFBYTtRQUNKLFVBQUssR0FBUSxFQUFFLENBQUM7UUFFekIsYUFBUSxHQUFtQixFQUFFLENBQUM7S0FRL0I7SUFOQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7MkdBVm1CLGFBQWE7K0ZBQWIsYUFBYSwyRkFGdkIsYUFBYTs0RkFFSCxhQUFhO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs4QkFJVSxLQUFLO3NCQUFiLEtBQUs7O0FBWVIsTUFBTSxrQ0FBa0MsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUVuRCxNQUFNLE9BQWdCLHNCQUF1QixTQUFRLGFBQWE7SUFFaEUsWUFDVSxRQUFnQjtRQUV4QixLQUFLLEVBQUUsQ0FBQztRQUZBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFHeEIsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFHUyxrQ0FBa0M7UUFDMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNTLHlCQUF5QjtRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEQsSUFBSSxLQUFLLFlBQVksYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxJQUFJLENBQUMsa0NBQWtDLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNsRDthQUNGO1FBQ0gsQ0FBQyxDQUFRLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FFRjtBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9uRGVzdHJveSwgT25Jbml0LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iYXNlLWNvbXBvbmVudC1tZXRhJyxcbiAgdGVtcGxhdGU6ICc8ZGl2PjwvZGl2Pidcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBASW5wdXQoKSBtb2RlbDogYW55ID0ge307XG5cbiAgaGFuZGxlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVycy5mb3JFYWNoKGggPT4gaC51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7XG4gIH1cblxuXG59XG5cbmNvbnN0IGlzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2ggPSBTeW1ib2woKVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudEZvclJvdXRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX19yb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF0gPSBmYWxzZTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGlzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2goKSB7XG4gICAgcmV0dXJuICEhdGhpc1tpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoXTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVsb2FkTmdPbmluaXRPblVybENoYW5nZSgpIHtcbiAgICB0aGlzLmhhbmRsZXJzLnB1c2godGhpcy5fX3JvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgdGhpc1snbmdPbkluaXQnXSkge1xuICAgICAgICB0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdID0gdHJ1ZTtcbiAgICAgICAgdGhpc1snbmdPbkluaXQnXSgpO1xuICAgICAgICBpZiAodGhpc1tpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoXSkge1xuICAgICAgICAgIHRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF0gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pIGFzIGFueSk7XG4gIH1cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS1jb21wb25lbnQudHMiXX0=
@@ -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/browser';
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/browser';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtbHktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UtZm9ybWx5LWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBSSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sR0FBa0IsTUFBTSxlQUFlLENBQUMsQ0FBQSxLQUFLO0FBSXhGLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQU9oRSxNQUFNLE9BQWdCLG1CQUNwQixTQUFRLFNBQVM7SUFMbkI7O1FBUVksNEJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDckQsU0FBSSxHQUFNLEVBQVMsQ0FBQztRQTBCakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFpQnRDLGFBQWE7UUFFSCxhQUFRLEdBQW1CLEVBQUUsQ0FBQztRQVloQyxZQUFPLEdBQUc7WUFDaEIsZUFBZSxFQUFFLEVBRWhCO1NBQ21CLENBQUM7S0F5Q3hCO0lBbkdDLGFBQWE7SUFDYixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxhQUFhO0lBQ2IsSUFBYSxJQUFJLENBQUMsQ0FBQztRQUNqQixJQUFJ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RztzQkFBZixLQUFLOztBQTJFUCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFFQUFxRSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7ICAgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEFmdGVyVmlld0luaXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7LyogKi9cbi8qICovXG5cbmltcG9ydCB7ICAgRm9ybUNvbnRyb2wsICAgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnOy8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvYnJvd3Nlcic7XG5pbXBvcnQgeyBEdWFsQ29tcG9uZW50Q29udHJvbGxlciB9IGZyb20gJy4vZHVhbC1jb21wb25lbnQtY3RybCc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgnYmFzZSBmb3JtbHkgY29tcG9uZW50JywgTGV2ZWwuX19OT1RISU5HKVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iYXNlLWZvcm1seS1jb21wb25lbnQtbWV0YScsXG4gIHRlbXBsYXRlOiBgPGRpdj48L2Rpdj5gXG59KSAvLyBAdHMtaWdub3JlXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZvcm1seUNvbXBvbmVudDxUIGV4dGVuZHMgRHVhbENvbXBvbmVudENvbnRyb2xsZXIgPSBEdWFsQ29tcG9uZW50Q29udHJvbGxlcj5cbiAgZXh0ZW5kcyBGaWVsZFR5cGVcbiAgaW1wbGVtZW50cyBPbkluaXQsIFBhcnRpYWw8RHVhbENvbXBvbmVudENvbnRyb2xsZXI8VD4+LCBBZnRlclZpZXdJbml0IHtcblxuICBwcm90ZWN0ZWQgRHVhbENvbXBvbmVudENvbnRyb2xsZXIgPSBEdWFsQ29tcG9uZW50Q29udHJvbGxlcjtcbiAgcHVibGljIGN0cmw6IFQgPSB7fSBhcyBhbnk7XG4gIEBJbnB1dCgpIHBpemRhOiBhbnk7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jdHJsLm1vZGU7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIHNldCBtb2RlKHYpIHtcbiAgICB0aGlzLmN0cmwubW9kZSA9IHY7XG4gIH1cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IFQ7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBASW5wdXQoKSBzZXQgbW9kZWwodikge1xuICAgIHRoaXMuY3RybC5tb2RlbCA9IHY7XG4gIH1cbiAgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLmN0cmwubW9kZWw7XG4gIH1cbiAgQElucHV0KCkgcGF0aDogc3RyaW5nO1xuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBASW5wdXQoKSBzZXQga2V5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jdHJsICYmIHRoaXMuY3RybC5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYXRoID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGtleSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmN0cmwgJiYgdGhpcy5jdHJsLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmllbGQua2V5IGFzIGFueTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGF0aDtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcblxuICBwcm90ZWN0ZWQgaGFuZGxlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVycy5mb3JFYWNoKGggPT4gaC51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLmhhbmRsZXJzLmxlbmd0aCA9IDA7XG5cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblxuICB9XG5cbiAgcHJpdmF0ZSBfX2ZpZWxkID0ge1xuICAgIHRlbXBsYXRlT3B0aW9uczoge1xuXG4gICAgfVxuICB9IGFzIEZvcm1seUZpZWxkQ29uZmlnO1xuXG4gIG5nT25Jbml0KCkge1xuXG5cbiAgICBjb25zdCBpc0Zvcm1seU1vZGUgPSAhIXRoaXMuZmllbGQ7XG4gICAgbG9nLmkoYGlzRm9ybWx5TW9kZTogJHtpc0Zvcm1seU1vZGV9YCk7XG4gICAgaWYgKCFpc0Zvcm1seU1vZGUpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdmaWVsZCcsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoYXQuX19maWVsZDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodikge1xuICAgICAgICAgIHRoYXQuX19maWVsZCA9IHY7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RlZCA9IHRoaXMuY3RybDtcbiAgICB0aGlzLmN0cmwgPSBuZXcgKHRoaXMuRHVhbENvbXBvbmVudENvbnRyb2xsZXIgYXMgYW55KSh0aGlzLCBpc0Zvcm1seU1vZGUpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBPYmplY3Qua2V5cyhleGlzdGVkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmN0cmxba2V5XSA9IGV4aXN0ZWRba2V5XTtcbiAgICB9KTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5jaGFuZ2UubmV4dCh0aGlzLmN0cmwudmFsdWUpO1xuICB9XG5cbn1cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UtZm9ybWx5LWNvbXBvbmVudC50cyJdfQ==