tnp-helpers 13.1.1 → 13.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/app.d.ts +1 -1
  2. package/app.js +6 -6
  3. package/browser/README.md +24 -24
  4. package/browser/esm2020/lib/base-component.mjs +47 -47
  5. package/browser/esm2020/lib/base-formly-component.mjs +125 -125
  6. package/browser/esm2020/lib/condition-wait.mjs +53 -53
  7. package/browser/esm2020/lib/constants.mjs +6 -6
  8. package/browser/esm2020/lib/dual-component-ctrl.mjs +120 -120
  9. package/browser/esm2020/lib/helpers-array-obj.mjs +80 -80
  10. package/browser/esm2020/lib/helpers-environment.mjs +30 -30
  11. package/browser/esm2020/lib/helpers-numbers.mjs +5 -5
  12. package/browser/esm2020/lib/helpers-strings-regexes.mjs +48 -48
  13. package/browser/esm2020/lib/helpers-strings.mjs +257 -257
  14. package/browser/esm2020/lib/helpers.mjs +276 -276
  15. package/browser/esm2020/lib/index.mjs +14 -14
  16. package/browser/esm2020/lib/long-press.directive.mjs +111 -111
  17. package/browser/esm2020/lib/project.mjs +413 -413
  18. package/browser/esm2020/lib/resize-service.mjs +19 -19
  19. package/browser/esm2020/public-api.mjs +1 -1
  20. package/browser/esm2020/tnp-helpers.mjs +4 -4
  21. package/browser/fesm2015/tnp-helpers.mjs +1535 -1535
  22. package/browser/fesm2020/tnp-helpers.mjs +1527 -1527
  23. package/browser/lib/base-component.d.ts +17 -17
  24. package/browser/lib/base-formly-component.d.ts +31 -31
  25. package/browser/lib/condition-wait.d.ts +8 -8
  26. package/browser/lib/constants.d.ts +6 -6
  27. package/browser/lib/dual-component-ctrl.d.ts +25 -25
  28. package/browser/lib/helpers-array-obj.d.ts +15 -15
  29. package/browser/lib/helpers-environment.d.ts +5 -5
  30. package/browser/lib/helpers-numbers.d.ts +3 -3
  31. package/browser/lib/helpers-strings-regexes.d.ts +28 -28
  32. package/browser/lib/helpers-strings.d.ts +50 -50
  33. package/browser/lib/helpers.d.ts +28 -28
  34. package/browser/lib/index.d.ts +9 -9
  35. package/browser/lib/long-press.directive.d.ts +25 -25
  36. package/browser/lib/project.d.ts +91 -91
  37. package/browser/lib/resize-service.d.ts +9 -9
  38. package/browser/public-api.d.ts +1 -1
  39. package/browser/tnp-helpers.d.ts +5 -5
  40. package/client/README.md +24 -24
  41. package/client/esm2020/lib/base-component.mjs +47 -47
  42. package/client/esm2020/lib/base-formly-component.mjs +125 -125
  43. package/client/esm2020/lib/condition-wait.mjs +53 -53
  44. package/client/esm2020/lib/constants.mjs +6 -6
  45. package/client/esm2020/lib/dual-component-ctrl.mjs +120 -120
  46. package/client/esm2020/lib/helpers-array-obj.mjs +80 -80
  47. package/client/esm2020/lib/helpers-environment.mjs +30 -30
  48. package/client/esm2020/lib/helpers-numbers.mjs +5 -5
  49. package/client/esm2020/lib/helpers-strings-regexes.mjs +48 -48
  50. package/client/esm2020/lib/helpers-strings.mjs +257 -257
  51. package/client/esm2020/lib/helpers.mjs +276 -276
  52. package/client/esm2020/lib/index.mjs +14 -14
  53. package/client/esm2020/lib/long-press.directive.mjs +111 -111
  54. package/client/esm2020/lib/project.mjs +413 -413
  55. package/client/esm2020/lib/resize-service.mjs +19 -19
  56. package/client/esm2020/public-api.mjs +1 -1
  57. package/client/esm2020/tnp-helpers.mjs +4 -4
  58. package/client/fesm2015/tnp-helpers.mjs +1535 -1535
  59. package/client/fesm2020/tnp-helpers.mjs +1527 -1527
  60. package/client/lib/base-component.d.ts +17 -17
  61. package/client/lib/base-formly-component.d.ts +31 -31
  62. package/client/lib/condition-wait.d.ts +8 -8
  63. package/client/lib/constants.d.ts +6 -6
  64. package/client/lib/dual-component-ctrl.d.ts +25 -25
  65. package/client/lib/helpers-array-obj.d.ts +15 -15
  66. package/client/lib/helpers-environment.d.ts +5 -5
  67. package/client/lib/helpers-numbers.d.ts +3 -3
  68. package/client/lib/helpers-strings-regexes.d.ts +28 -28
  69. package/client/lib/helpers-strings.d.ts +50 -50
  70. package/client/lib/helpers.d.ts +28 -28
  71. package/client/lib/index.d.ts +9 -9
  72. package/client/lib/long-press.directive.d.ts +25 -25
  73. package/client/lib/project.d.ts +91 -91
  74. package/client/lib/resize-service.d.ts +9 -9
  75. package/client/public-api.d.ts +1 -1
  76. package/client/tnp-helpers.d.ts +5 -5
  77. package/index.d.ts +1 -1
  78. package/index.js +5 -5
  79. package/lib/angular.helper.d.ts +22 -22
  80. package/lib/angular.helper.js +50 -50
  81. package/lib/base-component.d.ts +1 -1
  82. package/lib/base-component.js +6 -6
  83. package/lib/base-formly-component.d.ts +1 -1
  84. package/lib/base-formly-component.js +6 -6
  85. package/lib/condition-wait.d.ts +8 -8
  86. package/lib/condition-wait.js +94 -94
  87. package/lib/constants.d.ts +6 -6
  88. package/lib/constants.js +10 -10
  89. package/lib/dual-component-ctrl.d.ts +1 -1
  90. package/lib/dual-component-ctrl.js +6 -6
  91. package/lib/git-project.d.ts +44 -44
  92. package/lib/git-project.js +195 -195
  93. package/lib/helpers-array-obj.d.ts +15 -15
  94. package/lib/helpers-array-obj.js +88 -88
  95. package/lib/helpers-cli-tool.backend.d.ts +45 -45
  96. package/lib/helpers-cli-tool.backend.js +293 -293
  97. package/lib/helpers-dependencies.backend.d.ts +11 -11
  98. package/lib/helpers-dependencies.backend.js +105 -105
  99. package/lib/helpers-environment.d.ts +5 -5
  100. package/lib/helpers-environment.js +35 -35
  101. package/lib/helpers-file-folders.backend.d.ts +84 -84
  102. package/lib/helpers-file-folders.backend.js +736 -736
  103. package/lib/helpers-git.backend.d.ts +35 -35
  104. package/lib/helpers-git.backend.js +541 -545
  105. package/lib/helpers-git.backend.js.map +1 -1
  106. package/lib/helpers-json5.backend.d.ts +16 -16
  107. package/lib/helpers-json5.backend.js +70 -70
  108. package/lib/helpers-morphi-framework.backend.d.ts +4 -4
  109. package/lib/helpers-morphi-framework.backend.js +49 -49
  110. package/lib/helpers-network.backend.d.ts +8 -8
  111. package/lib/helpers-network.backend.js +48 -48
  112. package/lib/helpers-npm.backend.d.ts +3 -3
  113. package/lib/helpers-npm.backend.js +17 -17
  114. package/lib/helpers-numbers.d.ts +3 -3
  115. package/lib/helpers-numbers.js +11 -11
  116. package/lib/helpers-path.backend.d.ts +7 -7
  117. package/lib/helpers-path.backend.js +36 -36
  118. package/lib/helpers-process.backend.d.ts +57 -57
  119. package/lib/helpers-process.backend.js +529 -529
  120. package/lib/helpers-process.backend.js.map +1 -1
  121. package/lib/helpers-strings-regexes.d.ts +28 -28
  122. package/lib/helpers-strings-regexes.js +60 -60
  123. package/lib/helpers-strings.d.ts +50 -50
  124. package/lib/helpers-strings.js +265 -265
  125. package/lib/helpers-system-terminal.backend.d.ts +5 -5
  126. package/lib/helpers-system-terminal.backend.js +53 -53
  127. package/lib/helpers.d.ts +67 -67
  128. package/lib/helpers.js +391 -391
  129. package/lib/index.d.ts +6 -6
  130. package/lib/index.js +19 -19
  131. package/lib/long-press.directive.d.ts +22 -22
  132. package/lib/long-press.directive.js +141 -141
  133. package/lib/merge-helpers.backend.d.ts +23 -23
  134. package/lib/merge-helpers.backend.js +108 -108
  135. package/lib/project.d.ts +94 -94
  136. package/lib/project.js +422 -422
  137. package/lib/resize-service.d.ts +6 -6
  138. package/lib/resize-service.js +24 -24
  139. package/lib/ts-code/index.d.ts +1 -1
  140. package/lib/ts-code/index.js +7 -7
  141. package/lib/ts-code/ts-code-extractor.d.ts +14 -14
  142. package/lib/ts-code/ts-code-extractor.js +46 -46
  143. package/lib/ts-code/ts-code-modifier.backend.d.ts +12 -12
  144. package/lib/ts-code/ts-code-modifier.backend.js +70 -70
  145. package/package.json +5 -5
  146. package/package.json_devDependencies.json +222 -222
  147. package/package.json_tnp.json5 +41 -41
  148. package/tmp-environment.json +36 -35
  149. package/websql/README.md +24 -24
  150. package/websql/esm2020/lib/base-component.mjs +47 -47
  151. package/websql/esm2020/lib/base-formly-component.mjs +125 -125
  152. package/websql/esm2020/lib/condition-wait.mjs +53 -53
  153. package/websql/esm2020/lib/constants.mjs +6 -6
  154. package/websql/esm2020/lib/dual-component-ctrl.mjs +120 -120
  155. package/websql/esm2020/lib/helpers-array-obj.mjs +80 -80
  156. package/websql/esm2020/lib/helpers-environment.mjs +30 -30
  157. package/websql/esm2020/lib/helpers-numbers.mjs +5 -5
  158. package/websql/esm2020/lib/helpers-strings-regexes.mjs +48 -48
  159. package/websql/esm2020/lib/helpers-strings.mjs +257 -257
  160. package/websql/esm2020/lib/helpers.mjs +276 -276
  161. package/websql/esm2020/lib/index.mjs +14 -14
  162. package/websql/esm2020/lib/long-press.directive.mjs +111 -111
  163. package/websql/esm2020/lib/project.mjs +413 -413
  164. package/websql/esm2020/lib/resize-service.mjs +19 -19
  165. package/websql/esm2020/public-api.mjs +1 -1
  166. package/websql/esm2020/tnp-helpers.mjs +4 -4
  167. package/websql/fesm2015/tnp-helpers.mjs +1535 -1535
  168. package/websql/fesm2020/tnp-helpers.mjs +1527 -1527
  169. package/websql/lib/base-component.d.ts +17 -17
  170. package/websql/lib/base-formly-component.d.ts +31 -31
  171. package/websql/lib/condition-wait.d.ts +8 -8
  172. package/websql/lib/constants.d.ts +6 -6
  173. package/websql/lib/dual-component-ctrl.d.ts +25 -25
  174. package/websql/lib/helpers-array-obj.d.ts +15 -15
  175. package/websql/lib/helpers-environment.d.ts +5 -5
  176. package/websql/lib/helpers-numbers.d.ts +3 -3
  177. package/websql/lib/helpers-strings-regexes.d.ts +28 -28
  178. package/websql/lib/helpers-strings.d.ts +50 -50
  179. package/websql/lib/helpers.d.ts +28 -28
  180. package/websql/lib/index.d.ts +9 -9
  181. package/websql/lib/long-press.directive.d.ts +25 -25
  182. package/websql/lib/project.d.ts +91 -91
  183. package/websql/lib/resize-service.d.ts +9 -9
  184. package/websql/public-api.d.ts +1 -1
  185. package/websql/tnp-helpers.d.ts +5 -5
@@ -1,91 +1,91 @@
1
- import { ConfigModels } from 'tnp-config/browser';
2
- import { Models } from 'tnp-models/browser';
3
- export declare type EmptyProjectStructure = {
4
- includeContent?: boolean;
5
- relativePath: string;
6
- relativeLinkFrom?: string;
7
- };
8
- export declare class Project<T extends Project<any> = any> {
9
- protected cache: {};
10
- /**
11
- * Do use this variable for comparatios
12
- * ONLY FOR VIEWING
13
- */
14
- readonly _type: ConfigModels.LibType;
15
- browser: Pick<Project<any>, 'location' | 'name'>;
16
- location: string;
17
- name: string;
18
- genericName: string;
19
- isWorkspace: boolean;
20
- isVscodeExtension: boolean;
21
- isDocker: boolean;
22
- isSite: boolean;
23
- isSiteInStrictMode?: boolean;
24
- isSiteInDependencyMode?: boolean;
25
- isCoreProject: boolean;
26
- isCommandLineToolOnly: boolean;
27
- isGenerated: boolean;
28
- isGeneratedForRelease: boolean;
29
- isWorkspaceChildProject: boolean;
30
- isBasedOnOtherProject: boolean;
31
- isForRecreation: boolean;
32
- isContainer: boolean;
33
- isSmartContainer: boolean;
34
- isSmartContainerChild: boolean;
35
- isContainerWithLinkedProjects: boolean;
36
- isContainerChild: boolean;
37
- isContainerCoreProject: boolean;
38
- isStandaloneProject: boolean;
39
- isMonorepo: boolean;
40
- isUnknowNpmProject: boolean;
41
- isNaviCli: boolean;
42
- useFramework: boolean;
43
- defaultPort?: number;
44
- version: string;
45
- lastNpmVersion?: string;
46
- _routerTargetHttp?: string;
47
- customizableFilesAndFolders: string[];
48
- type: ConfigModels.LibType;
49
- backupName: string;
50
- resources: string[];
51
- env: Models.env.EnvConfig;
52
- allowedEnvironments: ConfigModels.EnvironmentName[];
53
- children: T[];
54
- grandpa: T;
55
- distribution: T;
56
- childrenThatAreLibs?: T[];
57
- childrenThatAreClients?: T[];
58
- childrenThatAreThirdPartyInNodeModules?: T[];
59
- parent: T;
60
- preview: T;
61
- baseline: T;
62
- static projects: Project<any>[];
63
- /**
64
- * To speed up checking folder I am keeping pathes for alterdy checked folder
65
- * This may break things that are creating new projects
66
- */
67
- static emptyLocations: string[];
68
- static typeFrom(location: string): ConfigModels.LibType;
69
- static unload(project: Project): void;
70
- static From<T = Project<any>>(location: string): T;
71
- static nearestTo<T = Project>(absoluteLocation: string, options?: {
72
- type?: ConfigModels.LibType;
73
- findGitRoot?: boolean;
74
- onlyOutSideNodeModules?: boolean;
75
- }): T;
76
- static allProjectFrom<T = Project>(absoluteLocation: string, stopOnCwd?: string): any;
77
- static DefaultPortByType(type: ConfigModels.LibType): number;
78
- static get isBundleMode(): boolean;
79
- static get Current(): Project<any>;
80
- static get Tnp(): Project<any>;
81
- static by<T = Project>(libraryType: ConfigModels.NewFactoryType, version: ConfigModels.FrameworkVersion): T;
82
- defineProperty<T>(variableName: keyof T, classFn: Function): any;
83
- setType(this: Project, type: ConfigModels.LibType): void;
84
- typeIs(this: Project, ...types: ConfigModels.LibType[]): boolean;
85
- typeIsNot(this: Project, ...types: ConfigModels.LibType[]): boolean;
86
- forEmptyStructure(): EmptyProjectStructure[];
87
- }
88
- export declare type ProjectBuild = {
89
- project: Project;
90
- appBuild: boolean;
91
- };
1
+ import { ConfigModels } from 'tnp-config/browser';
2
+ import { Models } from 'tnp-models/browser';
3
+ export declare type EmptyProjectStructure = {
4
+ includeContent?: boolean;
5
+ relativePath: string;
6
+ relativeLinkFrom?: string;
7
+ };
8
+ export declare class Project<T extends Project<any> = any> {
9
+ protected cache: {};
10
+ /**
11
+ * Do use this variable for comparatios
12
+ * ONLY FOR VIEWING
13
+ */
14
+ readonly _type: ConfigModels.LibType;
15
+ browser: Pick<Project<any>, 'location' | 'name'>;
16
+ location: string;
17
+ name: string;
18
+ genericName: string;
19
+ isWorkspace: boolean;
20
+ isVscodeExtension: boolean;
21
+ isDocker: boolean;
22
+ isSite: boolean;
23
+ isSiteInStrictMode?: boolean;
24
+ isSiteInDependencyMode?: boolean;
25
+ isCoreProject: boolean;
26
+ isCommandLineToolOnly: boolean;
27
+ isGenerated: boolean;
28
+ isGeneratedForRelease: boolean;
29
+ isWorkspaceChildProject: boolean;
30
+ isBasedOnOtherProject: boolean;
31
+ isForRecreation: boolean;
32
+ isContainer: boolean;
33
+ isSmartContainer: boolean;
34
+ isSmartContainerChild: boolean;
35
+ isContainerWithLinkedProjects: boolean;
36
+ isContainerChild: boolean;
37
+ isContainerCoreProject: boolean;
38
+ isStandaloneProject: boolean;
39
+ isMonorepo: boolean;
40
+ isUnknowNpmProject: boolean;
41
+ isNaviCli: boolean;
42
+ useFramework: boolean;
43
+ defaultPort?: number;
44
+ version: string;
45
+ lastNpmVersion?: string;
46
+ _routerTargetHttp?: string;
47
+ customizableFilesAndFolders: string[];
48
+ type: ConfigModels.LibType;
49
+ backupName: string;
50
+ resources: string[];
51
+ env: Models.env.EnvConfig;
52
+ allowedEnvironments: ConfigModels.EnvironmentName[];
53
+ children: T[];
54
+ grandpa: T;
55
+ distribution: T;
56
+ childrenThatAreLibs?: T[];
57
+ childrenThatAreClients?: T[];
58
+ childrenThatAreThirdPartyInNodeModules?: T[];
59
+ parent: T;
60
+ preview: T;
61
+ baseline: T;
62
+ static projects: Project<any>[];
63
+ /**
64
+ * To speed up checking folder I am keeping pathes for alterdy checked folder
65
+ * This may break things that are creating new projects
66
+ */
67
+ static emptyLocations: string[];
68
+ static typeFrom(location: string): ConfigModels.LibType;
69
+ static unload(project: Project): void;
70
+ static From<T = Project<any>>(location: string): T;
71
+ static nearestTo<T = Project>(absoluteLocation: string, options?: {
72
+ type?: ConfigModels.LibType;
73
+ findGitRoot?: boolean;
74
+ onlyOutSideNodeModules?: boolean;
75
+ }): T;
76
+ static allProjectFrom<T = Project>(absoluteLocation: string, stopOnCwd?: string): any;
77
+ static DefaultPortByType(type: ConfigModels.LibType): number;
78
+ static get isBundleMode(): boolean;
79
+ static get Current(): Project<any>;
80
+ static get Tnp(): Project<any>;
81
+ static by<T = Project>(libraryType: ConfigModels.NewFactoryType, version: ConfigModels.FrameworkVersion): T;
82
+ defineProperty<T>(variableName: keyof T, classFn: Function): any;
83
+ setType(this: Project, type: ConfigModels.LibType): void;
84
+ typeIs(this: Project, ...types: ConfigModels.LibType[]): boolean;
85
+ typeIsNot(this: Project, ...types: ConfigModels.LibType[]): boolean;
86
+ forEmptyStructure(): EmptyProjectStructure[];
87
+ }
88
+ export declare type ProjectBuild = {
89
+ project: Project;
90
+ appBuild: boolean;
91
+ };
@@ -1,9 +1,9 @@
1
- import * as i0 from "@angular/core";
2
- export declare class ResizeService {
3
- private resizeDetector;
4
- constructor();
5
- addResizeEventListener(element: HTMLElement, handler: Function): void;
6
- removeResizeEventListener(element: HTMLElement): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<ResizeService, never>;
8
- static ɵprov: i0.ɵɵInjectableDeclaration<ResizeService>;
9
- }
1
+ import * as i0 from "@angular/core";
2
+ export declare class ResizeService {
3
+ private resizeDetector;
4
+ constructor();
5
+ addResizeEventListener(element: HTMLElement, handler: Function): void;
6
+ removeResizeEventListener(element: HTMLElement): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResizeService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<ResizeService>;
9
+ }
@@ -1 +1 @@
1
- export * from './lib';
1
+ export * from './lib';
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="tnp-helpers" />
5
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="tnp-helpers" />
5
+ 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,48 +1,48 @@
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.11", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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.11", 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
- }
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
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPeEQsTUFBTSxPQUFnQixhQUFhO0lBSm5DO1FBTUUsYUFBYTtRQUNKLFVBQUssR0FBUSxFQUFFLENBQUM7UUFFekIsYUFBUSxHQUFtQixFQUFFLENBQUM7S0FRL0I7SUFOQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7MkdBVm1CLGFBQWE7K0ZBQWIsYUFBYSwyRkFGdkIsYUFBYTs0RkFFSCxhQUFhO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs4QkFJVSxLQUFLO3NCQUFiLEtBQUs7O0FBWVIsTUFBTSxrQ0FBa0MsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUVuRCxNQUFNLE9BQWdCLHNCQUF1QixTQUFRLGFBQWE7SUFFaEUsWUFDVSxRQUFnQjtRQUV4QixLQUFLLEVBQUUsQ0FBQztRQUZBLGFBQVEsR0FBUixRQUFRLENBQVE7UUFHeEIsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFHUyxrQ0FBa0M7UUFDMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNTLHlCQUF5QjtRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEQsSUFBSSxLQUFLLFlBQVksYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxJQUFJLENBQUMsa0NBQWtDLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNsRDthQUNGO1FBQ0gsQ0FBQyxDQUFRLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBAYnJvd3NlclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbkRlc3Ryb3ksIE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmFzZS1jb21wb25lbnQtbWV0YScsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQElucHV0KCkgbW9kZWw6IGFueSA9IHt9O1xuXG4gIGhhbmRsZXJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlcnMuZm9yRWFjaChoID0+IGgudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5oYW5kbGVycy5sZW5ndGggPSAwO1xuICB9XG5cblxufVxuXG5jb25zdCBpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoID0gU3ltYm9sKClcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnRGb3JSb3V0ZXIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9fcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdID0gZmFsc2U7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoKCkge1xuICAgIHJldHVybiAhIXRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF07XG4gIH1cbiAgcHJvdGVjdGVkIHJlbG9hZE5nT25pbml0T25VcmxDaGFuZ2UoKSB7XG4gICAgdGhpcy5oYW5kbGVycy5wdXNoKHRoaXMuX19yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIHRoaXNbJ25nT25Jbml0J10pIHtcbiAgICAgICAgdGhpc1tpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoXSA9IHRydWU7XG4gICAgICAgIHRoaXNbJ25nT25Jbml0J10oKTtcbiAgICAgICAgaWYgKHRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF0pIHtcbiAgICAgICAgICB0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSBhcyBhbnkpO1xuICB9XG5cbn1cbi8vI2VuZHJlZ2lvblxuIl19
@@ -1,126 +1,126 @@
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
- // @Input() formControl: FormControl; // TODO QUICK_FIX
18
- this.handlers = [];
19
- this.__field = {
20
- templateOptions: {}
21
- };
22
- }
23
- // @ts-ignore
24
- get mode() {
25
- return this.ctrl.mode;
26
- }
27
- // @ts-ignore
28
- set mode(v) {
29
- this.ctrl.mode = v;
30
- }
31
- // @ts-ignore
32
- set model(v) {
33
- this.ctrl.model = v;
34
- }
35
- get model() {
36
- return this.ctrl.model;
37
- }
38
- // @ts-ignore
39
- set key(value) {
40
- if (this.ctrl && this.ctrl.isFormlyMode) {
41
- return;
42
- }
43
- this.path = value;
44
- }
45
- get key() {
46
- if (this.ctrl && this.ctrl.isFormlyMode) {
47
- return this.field.key;
48
- }
49
- return this.path;
50
- }
51
- ngOnDestroy() {
52
- this.handlers.forEach(h => h.unsubscribe());
53
- this.handlers.length = 0;
54
- }
55
- ngAfterViewInit() {
56
- }
57
- // _model: any;
58
- ngOnInit() {
59
- // console.log('model', this.model)
60
- // console.log('ket', this.key)
61
- const isFormlyMode = !!this.field;
62
- log.i(`isFormlyMode: ${isFormlyMode}`);
63
- if (!isFormlyMode) {
64
- const that = this;
65
- Object.defineProperty(this, 'field', {
66
- get: function () {
67
- return that.__field;
68
- },
69
- set: function (v) {
70
- that.__field = v;
71
- }
72
- });
73
- }
74
- const existed = this.ctrl;
75
- this.ctrl = new this.DualComponentController(this, isFormlyMode);
76
- // @ts-ignore
77
- Object.keys(existed).forEach(key => {
78
- this.ctrl[key] = existed[key];
79
- });
80
- // if (!this.formControl) {
81
- // this.formControl = new FormControl({})
82
- // Object.defineProperty(this, 'field', {
83
- // get: () => {
84
- // return {
85
- // formControl: this.formControl
86
- // } as FormlyFieldConfig
87
- // }
88
- // })
89
- // // this.formControl = new FormControl({})
90
- // }
91
- // @ts-ignore
92
- this.change.next(this.ctrl.value);
93
- }
94
- }
95
- BaseFormlyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseFormlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
96
- BaseFormlyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseFormlyComponent, decorators: [{
98
- type: Component,
99
- args: [{
100
- selector: 'app-base-formly-component-meta',
101
- template: `<div></div>`
102
- }]
103
- }], propDecorators: { pizda: [{
104
- type: Input
105
- }], mode: [{
106
- type: Input
107
- }], disabled: [{
108
- type: Input
109
- }], required: [{
110
- type: Input
111
- }], label: [{
112
- type: Input
113
- }], placeholder: [{
114
- type: Input
115
- }], defaultValue: [{
116
- type: Input
117
- }], model: [{
118
- type: Input
119
- }], path: [{
120
- type: Input
121
- }], change: [{
122
- type: Output
123
- }], key: [{
124
- type: Input
125
- }] } });
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
+ // @Input() formControl: FormControl; // TODO QUICK_FIX
18
+ this.handlers = [];
19
+ this.__field = {
20
+ templateOptions: {}
21
+ };
22
+ }
23
+ // @ts-ignore
24
+ get mode() {
25
+ return this.ctrl.mode;
26
+ }
27
+ // @ts-ignore
28
+ set mode(v) {
29
+ this.ctrl.mode = v;
30
+ }
31
+ // @ts-ignore
32
+ set model(v) {
33
+ this.ctrl.model = v;
34
+ }
35
+ get model() {
36
+ return this.ctrl.model;
37
+ }
38
+ // @ts-ignore
39
+ set key(value) {
40
+ if (this.ctrl && this.ctrl.isFormlyMode) {
41
+ return;
42
+ }
43
+ this.path = value;
44
+ }
45
+ get key() {
46
+ if (this.ctrl && this.ctrl.isFormlyMode) {
47
+ return this.field.key;
48
+ }
49
+ return this.path;
50
+ }
51
+ ngOnDestroy() {
52
+ this.handlers.forEach(h => h.unsubscribe());
53
+ this.handlers.length = 0;
54
+ }
55
+ ngAfterViewInit() {
56
+ }
57
+ // _model: any;
58
+ ngOnInit() {
59
+ // console.log('model', this.model)
60
+ // console.log('ket', this.key)
61
+ const isFormlyMode = !!this.field;
62
+ log.i(`isFormlyMode: ${isFormlyMode}`);
63
+ if (!isFormlyMode) {
64
+ const that = this;
65
+ Object.defineProperty(this, 'field', {
66
+ get: function () {
67
+ return that.__field;
68
+ },
69
+ set: function (v) {
70
+ that.__field = v;
71
+ }
72
+ });
73
+ }
74
+ const existed = this.ctrl;
75
+ this.ctrl = new this.DualComponentController(this, isFormlyMode);
76
+ // @ts-ignore
77
+ Object.keys(existed).forEach(key => {
78
+ this.ctrl[key] = existed[key];
79
+ });
80
+ // if (!this.formControl) {
81
+ // this.formControl = new FormControl({})
82
+ // Object.defineProperty(this, 'field', {
83
+ // get: () => {
84
+ // return {
85
+ // formControl: this.formControl
86
+ // } as FormlyFieldConfig
87
+ // }
88
+ // })
89
+ // // this.formControl = new FormControl({})
90
+ // }
91
+ // @ts-ignore
92
+ this.change.next(this.ctrl.value);
93
+ }
94
+ }
95
+ BaseFormlyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseFormlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
96
+ 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 });
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BaseFormlyComponent, decorators: [{
98
+ type: Component,
99
+ args: [{
100
+ selector: 'app-base-formly-component-meta',
101
+ template: `<div></div>`
102
+ }]
103
+ }], propDecorators: { pizda: [{
104
+ type: Input
105
+ }], mode: [{
106
+ type: Input
107
+ }], disabled: [{
108
+ type: Input
109
+ }], required: [{
110
+ type: Input
111
+ }], label: [{
112
+ type: Input
113
+ }], placeholder: [{
114
+ type: Input
115
+ }], defaultValue: [{
116
+ type: Input
117
+ }], model: [{
118
+ type: Input
119
+ }], path: [{
120
+ type: Input
121
+ }], change: [{
122
+ type: Output
123
+ }], key: [{
124
+ type: Input
125
+ }] } });
126
126
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtbHktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UtZm9ybWx5LWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBSSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sR0FBa0IsTUFBTSxlQUFlLENBQUMsQ0FBQSxLQUFLO0FBSXhGLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQU9oRSxNQUFNLE9BQWdCLG1CQUNwQixTQUFRLFNBQVM7SUFMbkI7O1FBUVksNEJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDckQsU0FBSSxHQUFNLEVBQVMsQ0FBQztRQTBCakIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFpQnRDLGFBQWE7UUFDYix1REFBdUQ7UUFDN0MsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFZaEMsWUFBTyxHQUFHO1lBQ2hCLGVBQWUsRUFBRSxFQUVoQjtTQUNtQixDQUFDO0tBeUN4QjtJQW5HQyxhQUFhO0lBQ2IsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtJQUNiLElBQWEsSUFBSSxDQUFDLENB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QUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHTyxLQUFLO3NCQUFqQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU07Z0JBSU0sR0FBRztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIEBicm93c2VyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuaW1wb3J0IHsgICBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsvKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgICBGb3JtQ29udHJvbCwgICBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7LyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci9icm93c2VyJztcbmltcG9ydCB7IER1YWxDb21wb25lbnRDb250cm9sbGVyIH0gZnJvbSAnLi9kdWFsLWNvbXBvbmVudC1jdHJsJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKCdiYXNlIGZvcm1seSBjb21wb25lbnQnLCBMZXZlbC5fX05PVEhJTkcpXG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJhc2UtZm9ybWx5LWNvbXBvbmVudC1tZXRhJyxcbiAgdGVtcGxhdGU6IGA8ZGl2PjwvZGl2PmBcbn0pIC8vIEB0cy1pZ25vcmVcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRm9ybWx5Q29tcG9uZW50PFQgZXh0ZW5kcyBEdWFsQ29tcG9uZW50Q29udHJvbGxlciA9IER1YWxDb21wb25lbnRDb250cm9sbGVyPlxuICBleHRlbmRzIEZpZWxkVHlwZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgUGFydGlhbDxEdWFsQ29tcG9uZW50Q29udHJvbGxlcjxUPj4sIEFmdGVyVmlld0luaXQge1xuXG4gIHByb3RlY3RlZCBEdWFsQ29tcG9uZW50Q29udHJvbGxlciA9IER1YWxDb21wb25lbnRDb250cm9sbGVyO1xuICBwdWJsaWMgY3RybDogVCA9IHt9IGFzIGFueTtcbiAgQElucHV0KCkgcGl6ZGE6IGFueTtcblxuICAvLyBAdHMtaWdub3JlXG4gIGdldCBtb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmN0cmwubW9kZTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQElucHV0KCkgc2V0IG1vZGUodikge1xuICAgIHRoaXMuY3RybC5tb2RlID0gdjtcbiAgfVxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZTogVDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2KSB7XG4gICAgdGhpcy5jdHJsLm1vZGVsID0gdjtcbiAgfVxuICBnZXQgbW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3RybC5tb2RlbDtcbiAgfVxuICBASW5wdXQoKSBwYXRoOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIHNldCBrZXkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmN0cmwgJiYgdGhpcy5jdHJsLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBhdGggPSB2YWx1ZTtcbiAgfVxuICBnZXQga2V5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3RybCAmJiB0aGlzLmN0cmwuaXNGb3JtbHlNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZC5rZXkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICAvLyBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7IC8vIFRPRE8gUVVJQ0tfRklYXG4gIHByb3RlY3RlZCBoYW5kbGVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXJzLmZvckVhY2goaCA9PiBoLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuaGFuZGxlcnMubGVuZ3RoID0gMDtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuXG4gIH1cblxuICBwcml2YXRlIF9fZmllbGQgPSB7XG4gICAgdGVtcGxhdGVPcHRpb25zOiB7XG5cbiAgICB9XG4gIH0gYXMgRm9ybWx5RmllbGRDb25maWc7XG4gIC8vIF9tb2RlbDogYW55O1xuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnbW9kZWwnLCB0aGlzLm1vZGVsKVxuICAgIC8vIGNvbnNvbGUubG9nKCdrZXQnLCB0aGlzLmtleSlcbiAgICBjb25zdCBpc0Zvcm1seU1vZGUgPSAhIXRoaXMuZmllbGQ7XG4gICAgbG9nLmkoYGlzRm9ybWx5TW9kZTogJHtpc0Zvcm1seU1vZGV9YCk7XG4gICAgaWYgKCFpc0Zvcm1seU1vZGUpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdmaWVsZCcsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoYXQuX19maWVsZDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodikge1xuICAgICAgICAgIHRoYXQuX19maWVsZCA9IHY7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RlZCA9IHRoaXMuY3RybDtcbiAgICB0aGlzLmN0cmwgPSBuZXcgKHRoaXMuRHVhbENvbXBvbmVudENvbnRyb2xsZXIgYXMgYW55KSh0aGlzLCBpc0Zvcm1seU1vZGUpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBPYmplY3Qua2V5cyhleGlzdGVkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmN0cmxba2V5XSA9IGV4aXN0ZWRba2V5XTtcbiAgICB9KTtcblxuICAgIC8vIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xuICAgIC8vICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7fSlcbiAgICAvLyAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZmllbGQnLCB7XG4gICAgLy8gICAgIGdldDogKCkgPT4ge1xuICAgIC8vICAgICAgIHJldHVybiB7XG4gICAgLy8gICAgICAgICBmb3JtQ29udHJvbDogdGhpcy5mb3JtQ29udHJvbFxuICAgIC8vICAgICAgIH0gYXMgRm9ybWx5RmllbGRDb25maWdcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfSlcbiAgICAvLyAgIC8vICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7fSlcbiAgICAvLyB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMuY2hhbmdlLm5leHQodGhpcy5jdHJsLnZhbHVlKTtcbiAgfVxuXG59XG4vLyNlbmRyZWdpb25cbiJdfQ==