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
@@ -39,11 +39,11 @@
39
39
  "firedev-helpers"
40
40
  ]
41
41
  },
42
- "version": "13.1.1",
42
+ "version": "13.1.3",
43
43
  "dependencies": {
44
- "json10-writer": "~13.0.21",
45
- "morphi": "~13.0.48",
46
- "tnp-models": "~13.0.27"
44
+ "json10-writer": "~13.1.23",
45
+ "morphi": "~13.1.5",
46
+ "tnp-models": "~13.1.3"
47
47
  },
48
48
  "scripts": {
49
49
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -123,9 +123,9 @@
123
123
  "@types/vinyl": "2.0.2",
124
124
  "@types/watch": "1.0.0",
125
125
  "accepts": "1.3.4",
126
- "any-project-cli": "~0.0.11",
126
+ "any-project-cli": "~13.1.12",
127
127
  "axios": "0.17.1",
128
- "background-worker-process": "~13.0.22",
128
+ "background-worker-process": "~13.1.27",
129
129
  "bcryptjs": "2.4.3",
130
130
  "better-sqlite3": "7.6.2",
131
131
  "body-parser": "1.18.2",
@@ -165,10 +165,11 @@
165
165
  "fbgraph": "1.4.1",
166
166
  "file-loader": "1.1.5",
167
167
  "firedev": "^13",
168
- "firedev-crud": "~13.0.30",
169
- "firedev-crud-deamon": "~13.0.21",
170
- "firedev-ports": "~13.0.24",
171
- "firedev-storage": "~13.0.16",
168
+ "firedev-crud": "~13.1.31",
169
+ "firedev-crud-deamon": "~13.1.22",
170
+ "firedev-ports": "~13.1.25",
171
+ "firedev-storage": "~13.1.17",
172
+ "firedev-typeorm": "~13.1.3",
172
173
  "fkill": "6.1.0",
173
174
  "font-awesome": "4.7.0",
174
175
  "fs-extra": "8.1.0",
@@ -179,7 +180,7 @@
179
180
  "http-proxy": "1.16.2",
180
181
  "http-proxy-middleware": "0.19.1",
181
182
  "http-server": "0.11.1",
182
- "incremental-compiler": "~13.1.2",
183
+ "incremental-compiler": "~13.1.4",
183
184
  "inquirer": "7.3.3",
184
185
  "inquirer-autocomplete-prompt": "1.3.0",
185
186
  "is-elevated": "3.0.0",
@@ -188,7 +189,7 @@
188
189
  "jasmine-core": "4.0.0",
189
190
  "jscodeshift": "0.6.3",
190
191
  "json-stringify-safe": "5.0.1",
191
- "json10": "~13.0.23",
192
+ "json10": "~13.1.25",
192
193
  "json5": "2.1.3",
193
194
  "json5-writer": "0.2.0",
194
195
  "karma": "6.3.0",
@@ -200,13 +201,13 @@
200
201
  "lnk": "1.0.1",
201
202
  "lockfile": "1.0.4",
202
203
  "lodash": "4.17.4",
203
- "lodash-walk-object": "~13.0.23",
204
+ "lodash-walk-object": "~13.1.25",
204
205
  "lodash.get": ">= 4",
205
206
  "lodash.isequal": ">= 4",
206
207
  "lodash.merge": ">= 4",
207
208
  "lodash.set": ">= 4",
208
209
  "lowdb": "1.0.0",
209
- "magic-renamer": "~13.0.13",
210
+ "magic-renamer": "~13.1.14",
210
211
  "material-design-icons": "3.0.1",
211
212
  "method-override": "2.3.10",
212
213
  "minimist": "1.2.0",
@@ -214,11 +215,11 @@
214
215
  "mocha": "5.2.0",
215
216
  "moment": "2.22.2",
216
217
  "ng-packagr": "13.0.0",
217
- "ng-talkback": "~13.0.15",
218
- "ng2-logger": "~13.1.1",
219
- "ng2-rest": "~13.0.34",
220
- "ng4-icons": "~13.0.17",
221
- "ng4-modal": "~13.0.19",
218
+ "ng-talkback": "~13.1.16",
219
+ "ng2-logger": "~13.1.3",
220
+ "ng2-rest": "~13.1.3",
221
+ "ng4-icons": "~13.1.18",
222
+ "ng4-modal": "~13.1.20",
222
223
  "ngx-bootstrap": "8.0.0",
223
224
  "ngx-editor": "12.2.1",
224
225
  "ngx-moment": "6.0.2",
@@ -226,7 +227,7 @@
226
227
  "ngx-store": "3.1.1",
227
228
  "ngx-toastr": "14.2.2",
228
229
  "ngx-wig": "13.0.3",
229
- "node-cli-tester": "~13.0.15",
230
+ "node-cli-tester": "~13.1.16",
230
231
  "node-localstorage": "2.1.6",
231
232
  "node-notifier": "6.0.0",
232
233
  "nodemon": "1.14.11",
@@ -246,7 +247,7 @@
246
247
  "ps-node": "0.1.6",
247
248
  "q": "1.5.1",
248
249
  "randomcolor": "0.5.3",
249
- "record-replay-req-res-scenario": "~13.0.16",
250
+ "record-replay-req-res-scenario": "~13.1.17",
250
251
  "reflect-metadata": "0.1.10",
251
252
  "rimraf": "2.6.2",
252
253
  "rxjs": "~7.5.0",
@@ -256,38 +257,38 @@
256
257
  "socket.io": "2.4.1",
257
258
  "sort-package-json": "1.11.0",
258
259
  "sql.js": "1.8.0",
259
- "static-columns": "~13.0.24",
260
+ "static-columns": "~13.1.26",
260
261
  "string-similarity": "4.0.2",
261
262
  "sudo-block": "3.0.0",
262
263
  "systeminformation": "3.45.7",
263
264
  "task.js": "0.1.5",
264
- "tnp-cli": "~13.0.25",
265
- "tnp-config": "~13.0.35",
266
- "tnp-core": "~13.1.19",
267
- "tnp-db": "~13.0.31",
268
- "tnp-helpers": "~13.0.38",
269
- "tnp-ui": "~13.0.20",
265
+ "tnp-cli": "~13.1.29",
266
+ "tnp-config": "~13.1.39",
267
+ "tnp-core": "~13.1.23",
268
+ "tnp-db": "~13.1.2",
269
+ "tnp-helpers": "~13.1.2",
270
+ "tnp-ui": "~13.1.21",
270
271
  "ts-debug": "1.3.0",
271
272
  "ts-loader": "2.3.1",
272
273
  "ts-node": "10.7.0",
273
274
  "tslib": "~2.3.0",
274
275
  "typeorm": "~0.3.10",
275
276
  "typescript": "~4.6.2",
276
- "typescript-class-helpers": "~13.1.1",
277
+ "typescript-class-helpers": "~13.1.4",
277
278
  "typescript-formatter": "~7.2.2",
278
279
  "underscore": "1.9.1",
279
280
  "uuid": "8.3.2",
280
281
  "validator": "9.2.0",
281
- "vpn-split": "~13.0.20",
282
+ "vpn-split": "~13.1.21",
282
283
  "watch": "1.0.2",
283
284
  "zone.js": "~0.11.4"
284
285
  },
285
- "lastBuildTagHash": "a7bfed5ae65999180b85f9f60748b78079d80062"
286
+ "lastBuildTagHash": "9ce4f3dcf6fb0e8fd2f3d7a2a73d461a5bf6445e"
286
287
  },
287
288
  "build": {
288
- "number": 429,
289
- "date": "2022-11-14T11:43:33.000Z",
290
- "hash": "6fd2316dc0bb6e75c87421486435c17759722f77",
289
+ "number": 435,
290
+ "date": "2022-11-23T06:25:07.000Z",
291
+ "hash": "71d48f8d541063a1e09f2c24ab9298d4ce271215",
291
292
  "options": {}
292
293
  },
293
294
  "currentProjectName": "tnp-helpers",
@@ -295,7 +296,7 @@
295
296
  "currentProjectLaunchConfiguration": "{\"version\":\"0.2.0\",\"configurations\":[{\"type\":\"node\",\"request\":\"launch\",\"name\":\"Launch Server standalone\",\"program\":\"${workspaceFolder}/run.js\",\"args\":[\"--ENVoverride=%7B%0A%20%20%20%20%22clientProjectName%22%3A%20%22tnp-helpers%22%0A%7D\"],\"runtimeArgs\":[\"--nolazy\",\"-r\",\"ts-node/register\",\"--experimental-worker\"]},{\"name\":\"Debugger with ng serve\",\"type\":\"chrome\",\"request\":\"launch\",\"preLaunchTask\":\"Ng Serve\",\"postDebugTask\":\"terminateall\",\"sourceMaps\":true,\"webRoot\":\"${workspaceFolder}\",\"sourceMapPathOverrides\":{\"webpack:/*\":\"${webRoot}/*\",\"/./*\":\"${webRoot}/*\",\"/tmp-src/*\":\"${webRoot}/*\",\"/*\":\"*\",\"/./~/*\":\"${webRoot}/node_modules/*\"}},{\"type\":\"node\",\"request\":\"attach\",\"name\":\"Attach to global cli tool\",\"port\":9229,\"skipFiles\":[\"<node_internals>/**\"]}],\"compounds\":[{\"name\":\"Debug backend/frontend\",\"configurations\":[\"Launch Server standalone\",\"Debugger with ng serve\"]}]}",
296
297
  "currentProjectTasksConfiguration": "{\"version\":\"2.0.0\",\"tasks\":[{\"label\":\"terminateall\",\"command\":\"echo ${input:terminate}\",\"type\":\"shell\",\"problemMatcher\":[]},{\"label\":\"Ng Serve\",\"type\":\"shell\",\"command\":\"tnp build\",\"isBackground\":true,\"presentation\":{\"reveal\":\"always\"},\"group\":{\"kind\":\"build\",\"isDefault\":true},\"problemMatcher\":{\"owner\":\"typescript\",\"source\":\"ts\",\"applyTo\":\"closedDocuments\",\"fileLocation\":[\"relative\",\"${cwd}\"],\"pattern\":\"$tsc\",\"background\":{\"activeOnStart\":true,\"beginsPattern\":{\"regexp\":\"(.*?)\"},\"endsPattern\":{\"regexp\":\"Compiled |Failed to compile.\"}}}}],\"inputs\":[{\"id\":\"terminate\",\"type\":\"command\",\"command\":\"workbench.action.tasks.terminate\",\"args\":\"terminateAll\"}]}",
297
298
  "currentProjectType": "isomorphic-lib",
298
- "currentFrameworkVersion": "13.0.104",
299
+ "currentFrameworkVersion": "13.1.105",
299
300
  "currentProjectIsStrictSite": false,
300
301
  "currentProjectIsDependencySite": false,
301
302
  "currentProjectIsStatic": false,
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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7O0FBT3hELE1BQU0sT0FBZ0IsYUFBYTtJQUpuQztRQU1FLGFBQWE7UUFDSixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO0tBUS9CO0lBTkMsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzJHQVZtQixhQUFhOytGQUFiLGFBQWEsMkZBRnZCLGFBQWE7NEZBRUgsYUFBYTtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OEJBSVUsS0FBSztzQkFBYixLQUFLOztBQVlSLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxFQUFFLENBQUE7QUFFbkQsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxhQUFhO0lBRWhFLFlBQ1UsUUFBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFGQSxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBR3hCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBR1Msa0NBQWtDO1FBQzFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDUyx5QkFBeUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hELElBQUksS0FBSyxZQUFZLGFBQWEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLElBQUksSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDbEQ7YUFDRjtRQUNILENBQUMsQ0FBUSxDQUFDLENBQUM7SUFDYixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gQGJyb3dzZXJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25EZXN0cm95LCBPbkluaXQsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJhc2UtY29tcG9uZW50LW1ldGEnLFxuICB0ZW1wbGF0ZTogJzxkaXY+PC9kaXY+J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIG1vZGVsOiBhbnkgPSB7fTtcblxuICBoYW5kbGVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXJzLmZvckVhY2goaCA9PiBoLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuaGFuZGxlcnMubGVuZ3RoID0gMDtcbiAgfVxuXG5cbn1cblxuY29uc3QgaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaCA9IFN5bWJvbCgpXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50Rm9yUm91dGVyIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfX3JvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpc1tpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoXSA9IGZhbHNlO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gISF0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdO1xuICB9XG4gIHByb3RlY3RlZCByZWxvYWROZ09uaW5pdE9uVXJsQ2hhbmdlKCkge1xuICAgIHRoaXMuaGFuZGxlcnMucHVzaCh0aGlzLl9fcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiB0aGlzWyduZ09uSW5pdCddKSB7XG4gICAgICAgIHRoaXNbaXNDYWxsZWROZ0luaXRBZnRlckludGVybmFsUmVmcmVzaF0gPSB0cnVlO1xuICAgICAgICB0aGlzWyduZ09uSW5pdCddKCk7XG4gICAgICAgIGlmICh0aGlzW2lzQ2FsbGVkTmdJbml0QWZ0ZXJJbnRlcm5hbFJlZnJlc2hdKSB7XG4gICAgICAgICAgdGhpc1tpc0NhbGxlZE5nSW5pdEFmdGVySW50ZXJuYWxSZWZyZXNoXSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkgYXMgYW55KTtcbiAgfVxuXG59XG4vLyNlbmRyZWdpb25cbiJdfQ==
@@ -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/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
- // @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/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
+ // @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtbHktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlLWZvcm1seS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUksU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEdBQWtCLE1BQU0sZUFBZSxDQUFDLENBQUEsS0FBSztBQUl4RixLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7QUFPaEUsTUFBTSxPQUFnQixtQkFDcEIsU0FBUSxTQUFTO0lBTG5COztRQVFZLDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3JELFNBQUksR0FBTSxFQUFTLENBQUM7UUEwQmpCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBaUJ0QyxhQUFhO1FBQ2IsdURBQXVEO1FBQzdDLGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBWWhDLFlBQU8sR0FBRztZQUNoQixlQUFlLEVBQUUsRUFFaEI7U0FDbUIsQ0FBQztLQXlDeEI7SUFuR0MsYUFBYTtJQUNiLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELGFBQWE7SUFDYixJQUFhLElBQUks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Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR08sS0FBSztzQkFBakIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUlNLEdBQUc7c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBAYnJvd3NlclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7ICAgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEFmdGVyVmlld0luaXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7LyogKi9cbi8qICovXG5cbmltcG9ydCB7ICAgRm9ybUNvbnRyb2wsICAgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnOy8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvd2Vic3FsJztcbmltcG9ydCB7IER1YWxDb21wb25lbnRDb250cm9sbGVyIH0gZnJvbSAnLi9kdWFsLWNvbXBvbmVudC1jdHJsJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKCdiYXNlIGZvcm1seSBjb21wb25lbnQnLCBMZXZlbC5fX05PVEhJTkcpXG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJhc2UtZm9ybWx5LWNvbXBvbmVudC1tZXRhJyxcbiAgdGVtcGxhdGU6IGA8ZGl2PjwvZGl2PmBcbn0pIC8vIEB0cy1pZ25vcmVcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRm9ybWx5Q29tcG9uZW50PFQgZXh0ZW5kcyBEdWFsQ29tcG9uZW50Q29udHJvbGxlciA9IER1YWxDb21wb25lbnRDb250cm9sbGVyPlxuICBleHRlbmRzIEZpZWxkVHlwZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgUGFydGlhbDxEdWFsQ29tcG9uZW50Q29udHJvbGxlcjxUPj4sIEFmdGVyVmlld0luaXQge1xuXG4gIHByb3RlY3RlZCBEdWFsQ29tcG9uZW50Q29udHJvbGxlciA9IER1YWxDb21wb25lbnRDb250cm9sbGVyO1xuICBwdWJsaWMgY3RybDogVCA9IHt9IGFzIGFueTtcbiAgQElucHV0KCkgcGl6ZGE6IGFueTtcblxuICAvLyBAdHMtaWdub3JlXG4gIGdldCBtb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmN0cmwubW9kZTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgQElucHV0KCkgc2V0IG1vZGUodikge1xuICAgIHRoaXMuY3RybC5tb2RlID0gdjtcbiAgfVxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZTogVDtcblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2KSB7XG4gICAgdGhpcy5jdHJsLm1vZGVsID0gdjtcbiAgfVxuICBnZXQgbW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3RybC5tb2RlbDtcbiAgfVxuICBASW5wdXQoKSBwYXRoOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuICAvLyBAdHMtaWdub3JlXG4gIEBJbnB1dCgpIHNldCBrZXkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmN0cmwgJiYgdGhpcy5jdHJsLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBhdGggPSB2YWx1ZTtcbiAgfVxuICBnZXQga2V5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3RybCAmJiB0aGlzLmN0cmwuaXNGb3JtbHlNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZC5rZXkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXRoO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICAvLyBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7IC8vIFRPRE8gUVVJQ0tfRklYXG4gIHByb3RlY3RlZCBoYW5kbGVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXJzLmZvckVhY2goaCA9PiBoLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuaGFuZGxlcnMubGVuZ3RoID0gMDtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuXG4gIH1cblxuICBwcml2YXRlIF9fZmllbGQgPSB7XG4gICAgdGVtcGxhdGVPcHRpb25zOiB7XG5cbiAgICB9XG4gIH0gYXMgRm9ybWx5RmllbGRDb25maWc7XG4gIC8vIF9tb2RlbDogYW55O1xuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnbW9kZWwnLCB0aGlzLm1vZGVsKVxuICAgIC8vIGNvbnNvbGUubG9nKCdrZXQnLCB0aGlzLmtleSlcbiAgICBjb25zdCBpc0Zvcm1seU1vZGUgPSAhIXRoaXMuZmllbGQ7XG4gICAgbG9nLmkoYGlzRm9ybWx5TW9kZTogJHtpc0Zvcm1seU1vZGV9YCk7XG4gICAgaWYgKCFpc0Zvcm1seU1vZGUpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdmaWVsZCcsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoYXQuX19maWVsZDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodikge1xuICAgICAgICAgIHRoYXQuX19maWVsZCA9IHY7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RlZCA9IHRoaXMuY3RybDtcbiAgICB0aGlzLmN0cmwgPSBuZXcgKHRoaXMuRHVhbENvbXBvbmVudENvbnRyb2xsZXIgYXMgYW55KSh0aGlzLCBpc0Zvcm1seU1vZGUpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBPYmplY3Qua2V5cyhleGlzdGVkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmN0cmxba2V5XSA9IGV4aXN0ZWRba2V5XTtcbiAgICB9KTtcblxuICAgIC8vIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xuICAgIC8vICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7fSlcbiAgICAvLyAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZmllbGQnLCB7XG4gICAgLy8gICAgIGdldDogKCkgPT4ge1xuICAgIC8vICAgICAgIHJldHVybiB7XG4gICAgLy8gICAgICAgICBmb3JtQ29udHJvbDogdGhpcy5mb3JtQ29udHJvbFxuICAgIC8vICAgICAgIH0gYXMgRm9ybWx5RmllbGRDb25maWdcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfSlcbiAgICAvLyAgIC8vICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7fSlcbiAgICAvLyB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMuY2hhbmdlLm5leHQodGhpcy5jdHJsLnZhbHVlKTtcbiAgfVxuXG59XG4vLyNlbmRyZWdpb25cbiJdfQ==