tnp-helpers 0.0.73 → 13.0.5

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 (304) hide show
  1. package/app.js +2 -1
  2. package/browser/README.md +24 -0
  3. package/browser/esm2020/lib/base-component.mjs +48 -0
  4. package/browser/esm2020/lib/base-formly-component.mjs +124 -0
  5. package/browser/esm2020/lib/condition-wait.mjs +54 -0
  6. package/browser/esm2020/lib/constants.mjs +2 -0
  7. package/browser/esm2020/lib/dual-component-ctrl.mjs +117 -0
  8. package/browser/esm2020/lib/helpers-array-obj.mjs +81 -0
  9. package/browser/esm2020/lib/helpers-environment.mjs +21 -0
  10. package/browser/esm2020/lib/helpers-strings-regexes.mjs +49 -0
  11. package/browser/esm2020/lib/helpers-strings.mjs +61 -0
  12. package/browser/esm2020/lib/helpers.mjs +106 -0
  13. package/browser/esm2020/lib/index.mjs +11 -0
  14. package/browser/esm2020/lib/long-press.directive.mjs +106 -0
  15. package/browser/esm2020/lib/project.mjs +90 -0
  16. package/browser/esm2020/lib/resize-service.mjs +20 -0
  17. package/browser/esm2020/public-api.mjs +2 -0
  18. package/browser/esm2020/tnp-helpers.mjs +5 -0
  19. package/browser/fesm2015/tnp-helpers.mjs +870 -0
  20. package/browser/fesm2015/tnp-helpers.mjs.map +1 -0
  21. package/browser/fesm2020/tnp-helpers.mjs +861 -0
  22. package/browser/fesm2020/tnp-helpers.mjs.map +1 -0
  23. package/browser/{base-component.d.ts → lib/base-component.d.ts} +3 -0
  24. package/browser/{base-formly-component.d.ts → lib/base-formly-component.d.ts} +4 -3
  25. package/browser/{condition-wait.d.ts → lib/condition-wait.d.ts} +0 -0
  26. package/browser/{constants.d.ts → lib/constants.d.ts} +0 -0
  27. package/browser/{dual-component-ctrl.d.ts → lib/dual-component-ctrl.d.ts} +1 -2
  28. package/{helpers-array-obj.d.ts → browser/lib/helpers-array-obj.d.ts} +1 -0
  29. package/browser/{helpers-environment.d.ts → lib/helpers-environment.d.ts} +0 -0
  30. package/browser/{helpers-strings-regexes.d.ts → lib/helpers-strings-regexes.d.ts} +0 -0
  31. package/browser/{helpers-strings.d.ts → lib/helpers-strings.d.ts} +0 -0
  32. package/browser/{helpers.d.ts → lib/helpers.d.ts} +2 -4
  33. package/{client → browser/lib}/index.d.ts +1 -1
  34. package/{client → browser/lib}/long-press.directive.d.ts +3 -0
  35. package/browser/{project.d.ts → lib/project.d.ts} +0 -0
  36. package/{client → browser/lib}/resize-service.d.ts +3 -0
  37. package/browser/package.json +31 -0
  38. package/browser/public-api.d.ts +1 -0
  39. package/browser/tnp-helpers.d.ts +5 -0
  40. package/client/README.md +24 -0
  41. package/client/esm2020/lib/base-component.mjs +48 -0
  42. package/client/esm2020/lib/base-formly-component.mjs +124 -0
  43. package/client/esm2020/lib/condition-wait.mjs +54 -0
  44. package/client/esm2020/lib/constants.mjs +2 -0
  45. package/client/esm2020/lib/dual-component-ctrl.mjs +117 -0
  46. package/client/esm2020/lib/helpers-array-obj.mjs +81 -0
  47. package/client/esm2020/lib/helpers-environment.mjs +21 -0
  48. package/client/esm2020/lib/helpers-strings-regexes.mjs +49 -0
  49. package/client/esm2020/lib/helpers-strings.mjs +61 -0
  50. package/client/esm2020/lib/helpers.mjs +106 -0
  51. package/client/esm2020/lib/index.mjs +11 -0
  52. package/client/esm2020/lib/long-press.directive.mjs +106 -0
  53. package/client/esm2020/lib/project.mjs +90 -0
  54. package/client/esm2020/lib/resize-service.mjs +20 -0
  55. package/client/esm2020/public-api.mjs +2 -0
  56. package/client/esm2020/tnp-helpers.mjs +5 -0
  57. package/client/fesm2015/tnp-helpers.mjs +870 -0
  58. package/client/fesm2015/tnp-helpers.mjs.map +1 -0
  59. package/client/fesm2020/tnp-helpers.mjs +861 -0
  60. package/client/fesm2020/tnp-helpers.mjs.map +1 -0
  61. package/client/{base-component.d.ts → lib/base-component.d.ts} +3 -0
  62. package/{base-formly-component.d.ts → client/lib/base-formly-component.d.ts} +4 -3
  63. package/client/{condition-wait.d.ts → lib/condition-wait.d.ts} +0 -0
  64. package/client/{constants.d.ts → lib/constants.d.ts} +0 -0
  65. package/client/{dual-component-ctrl.d.ts → lib/dual-component-ctrl.d.ts} +1 -2
  66. package/client/{helpers-array-obj.d.ts → lib/helpers-array-obj.d.ts} +1 -0
  67. package/client/{helpers-environment.d.ts → lib/helpers-environment.d.ts} +0 -0
  68. package/client/{helpers-strings-regexes.d.ts → lib/helpers-strings-regexes.d.ts} +0 -0
  69. package/client/{helpers-strings.d.ts → lib/helpers-strings.d.ts} +0 -0
  70. package/client/{helpers.d.ts → lib/helpers.d.ts} +2 -4
  71. package/{browser → client/lib}/index.d.ts +1 -1
  72. package/{browser → client/lib}/long-press.directive.d.ts +3 -0
  73. package/client/{project.d.ts → lib/project.d.ts} +0 -0
  74. package/{resize-service.d.ts → client/lib/resize-service.d.ts} +3 -0
  75. package/client/package.json +25 -19
  76. package/client/public-api.d.ts +1 -0
  77. package/client/tnp-helpers.d.ts +5 -0
  78. package/index.d.ts +1 -11
  79. package/index.js +3 -21
  80. package/index.js.map +1 -1
  81. package/{base-component.d.ts → lib/base-component.d.ts} +0 -0
  82. package/{base-component.js → lib/base-component.js} +8 -7
  83. package/lib/base-component.js.map +1 -0
  84. package/{client → lib}/base-formly-component.d.ts +1 -3
  85. package/{base-formly-component.js → lib/base-formly-component.js} +46 -47
  86. package/lib/base-formly-component.js.map +1 -0
  87. package/{condition-wait.d.ts → lib/condition-wait.d.ts} +0 -0
  88. package/{condition-wait.js → lib/condition-wait.js} +10 -9
  89. package/lib/condition-wait.js.map +1 -0
  90. package/{constants.d.ts → lib/constants.d.ts} +0 -0
  91. package/{constants.js → lib/constants.js} +2 -1
  92. package/lib/constants.js.map +1 -0
  93. package/{dual-component-ctrl.d.ts → lib/dual-component-ctrl.d.ts} +1 -2
  94. package/{dual-component-ctrl.js → lib/dual-component-ctrl.js} +3 -1
  95. package/lib/dual-component-ctrl.js.map +1 -0
  96. package/{git-project.d.ts → lib/git-project.d.ts} +4 -3
  97. package/{git-project.js → lib/git-project.js} +20 -11
  98. package/lib/git-project.js.map +1 -0
  99. package/{browser → lib}/helpers-array-obj.d.ts +1 -0
  100. package/{helpers-array-obj.js → lib/helpers-array-obj.js} +8 -1
  101. package/lib/helpers-array-obj.js.map +1 -0
  102. package/{helpers-cli-tool.backend.d.ts → lib/helpers-cli-tool.backend.d.ts} +0 -0
  103. package/{helpers-cli-tool.backend.js → lib/helpers-cli-tool.backend.js} +5 -4
  104. package/lib/helpers-cli-tool.backend.js.map +1 -0
  105. package/{helpers-dependencies.backend.d.ts → lib/helpers-dependencies.backend.d.ts} +0 -0
  106. package/{helpers-dependencies.backend.js → lib/helpers-dependencies.backend.js} +6 -5
  107. package/lib/helpers-dependencies.backend.js.map +1 -0
  108. package/{helpers-environment.d.ts → lib/helpers-environment.d.ts} +0 -0
  109. package/{helpers-environment.js → lib/helpers-environment.js} +2 -1
  110. package/lib/helpers-environment.js.map +1 -0
  111. package/{helpers-file-folders.backend.d.ts → lib/helpers-file-folders.backend.d.ts} +1 -0
  112. package/{helpers-file-folders.backend.js → lib/helpers-file-folders.backend.js} +66 -47
  113. package/lib/helpers-file-folders.backend.js.map +1 -0
  114. package/{helpers-git.backend.d.ts → lib/helpers-git.backend.d.ts} +3 -1
  115. package/{helpers-git.backend.js → lib/helpers-git.backend.js} +83 -55
  116. package/lib/helpers-git.backend.js.map +1 -0
  117. package/{helpers-json5.backend.d.ts → lib/helpers-json5.backend.d.ts} +0 -0
  118. package/{helpers-json5.backend.js → lib/helpers-json5.backend.js} +3 -2
  119. package/lib/helpers-json5.backend.js.map +1 -0
  120. package/{helpers-morphi-framework.backend.d.ts → lib/helpers-morphi-framework.backend.d.ts} +0 -0
  121. package/{helpers-morphi-framework.backend.js → lib/helpers-morphi-framework.backend.js} +4 -3
  122. package/lib/helpers-morphi-framework.backend.js.map +1 -0
  123. package/{helpers-network.backend.d.ts → lib/helpers-network.backend.d.ts} +0 -0
  124. package/{helpers-network.backend.js → lib/helpers-network.backend.js} +2 -1
  125. package/lib/helpers-network.backend.js.map +1 -0
  126. package/{helpers-npm.backend.d.ts → lib/helpers-npm.backend.d.ts} +0 -0
  127. package/{helpers-npm.backend.js → lib/helpers-npm.backend.js} +2 -1
  128. package/lib/helpers-npm.backend.js.map +1 -0
  129. package/{helpers-path.backend.d.ts → lib/helpers-path.backend.d.ts} +0 -0
  130. package/{helpers-path.backend.js → lib/helpers-path.backend.js} +4 -3
  131. package/lib/helpers-path.backend.js.map +1 -0
  132. package/{helpers-process.backend.d.ts → lib/helpers-process.backend.d.ts} +2 -2
  133. package/{helpers-process.backend.js → lib/helpers-process.backend.js} +54 -53
  134. package/lib/helpers-process.backend.js.map +1 -0
  135. package/{helpers-strings-regexes.d.ts → lib/helpers-strings-regexes.d.ts} +0 -0
  136. package/{helpers-strings-regexes.js → lib/helpers-strings-regexes.js} +2 -1
  137. package/lib/helpers-strings-regexes.js.map +1 -0
  138. package/{helpers-strings.d.ts → lib/helpers-strings.d.ts} +0 -0
  139. package/{helpers-strings.js → lib/helpers-strings.js} +2 -1
  140. package/lib/helpers-strings.js.map +1 -0
  141. package/{helpers-system-terminal.backend.d.ts → lib/helpers-system-terminal.backend.d.ts} +1 -1
  142. package/{helpers-system-terminal.backend.js → lib/helpers-system-terminal.backend.js} +9 -8
  143. package/lib/helpers-system-terminal.backend.js.map +1 -0
  144. package/{helpers.d.ts → lib/helpers.d.ts} +6 -6
  145. package/{helpers.js → lib/helpers.js} +34 -30
  146. package/lib/helpers.js.map +1 -0
  147. package/{client/index.js → lib/index.d.ts} +3 -3
  148. package/lib/index.js +25 -0
  149. package/lib/index.js.map +1 -0
  150. package/{long-press.directive.d.ts → lib/long-press.directive.d.ts} +0 -0
  151. package/{long-press.directive.js → lib/long-press.directive.js} +40 -39
  152. package/lib/long-press.directive.js.map +1 -0
  153. package/{merge-helpers.backend.d.ts → lib/merge-helpers.backend.d.ts} +0 -0
  154. package/{merge-helpers.backend.js → lib/merge-helpers.backend.js} +7 -6
  155. package/lib/merge-helpers.backend.js.map +1 -0
  156. package/{project.d.ts → lib/project.d.ts} +0 -0
  157. package/{project.js → lib/project.js} +23 -21
  158. package/lib/project.js.map +1 -0
  159. package/{browser → lib}/resize-service.d.ts +0 -0
  160. package/{resize-service.js → lib/resize-service.js} +5 -4
  161. package/lib/resize-service.js.map +1 -0
  162. package/{ts-code-modifier → lib/ts-code}/index.d.ts +0 -0
  163. package/{ts-code-modifier → lib/ts-code}/index.js +3 -2
  164. package/lib/ts-code/index.js.map +1 -0
  165. package/lib/ts-code/ts-code-extractor.d.ts +14 -0
  166. package/lib/ts-code/ts-code-extractor.js +47 -0
  167. package/lib/ts-code/ts-code-extractor.js.map +1 -0
  168. package/{ts-code-modifier → lib/ts-code}/ts-code-modifier.backend.d.ts +0 -0
  169. package/{ts-code-modifier → lib/ts-code}/ts-code-modifier.backend.js +3 -2
  170. package/lib/ts-code/ts-code-modifier.backend.js.map +1 -0
  171. package/package.json +10 -18
  172. package/package.json_devDependencies.json +40 -40
  173. package/{package.json_tnp.json → package.json_tnp.json5} +12 -8
  174. package/tmp-environment.json +85 -122
  175. package/base-component.js.map +0 -1
  176. package/base-formly-component.js.map +0 -1
  177. package/browser/base-component.js +0 -48
  178. package/browser/base-component.js.map +0 -1
  179. package/browser/base-formly-component.js +0 -149
  180. package/browser/base-formly-component.js.map +0 -1
  181. package/browser/condition-wait.js +0 -57
  182. package/browser/condition-wait.js.map +0 -1
  183. package/browser/constants.js +0 -2
  184. package/browser/constants.js.map +0 -1
  185. package/browser/dual-component-ctrl.js +0 -118
  186. package/browser/dual-component-ctrl.js.map +0 -1
  187. package/browser/es5/base-component.js +0 -89
  188. package/browser/es5/base-formly-component.js +0 -158
  189. package/browser/es5/condition-wait.js +0 -135
  190. package/browser/es5/constants.js +0 -7
  191. package/browser/es5/dual-component-ctrl.js +0 -164
  192. package/browser/es5/git-project.js +0 -18
  193. package/browser/es5/helpers-array-obj.js +0 -129
  194. package/browser/es5/helpers-environment.js +0 -46
  195. package/browser/es5/helpers-messages.js +0 -105
  196. package/browser/es5/helpers-strings-regexes.js +0 -74
  197. package/browser/es5/helpers-strings.js +0 -96
  198. package/browser/es5/helpers.js +0 -217
  199. package/browser/es5/index.js +0 -86
  200. package/browser/es5/long-press.directive.js +0 -133
  201. package/browser/es5/project.js +0 -146
  202. package/browser/es5/resize-service.js +0 -45
  203. package/browser/git-project.d.ts +0 -2
  204. package/browser/git-project.js +0 -6
  205. package/browser/git-project.js.map +0 -1
  206. package/browser/helpers-array-obj.js +0 -75
  207. package/browser/helpers-array-obj.js.map +0 -1
  208. package/browser/helpers-environment.js +0 -21
  209. package/browser/helpers-environment.js.map +0 -1
  210. package/browser/helpers-messages.d.ts +0 -7
  211. package/browser/helpers-messages.js +0 -68
  212. package/browser/helpers-messages.js.map +0 -1
  213. package/browser/helpers-strings-regexes.js +0 -49
  214. package/browser/helpers-strings-regexes.js.map +0 -1
  215. package/browser/helpers-strings.js +0 -61
  216. package/browser/helpers-strings.js.map +0 -1
  217. package/browser/helpers.js +0 -113
  218. package/browser/helpers.js.map +0 -1
  219. package/browser/index.js +0 -11
  220. package/browser/index.js.map +0 -1
  221. package/browser/long-press.directive.js +0 -125
  222. package/browser/long-press.directive.js.map +0 -1
  223. package/browser/project.js +0 -90
  224. package/browser/project.js.map +0 -1
  225. package/browser/resize-service.js +0 -20
  226. package/browser/resize-service.js.map +0 -1
  227. package/client/base-component.js +0 -48
  228. package/client/base-component.js.map +0 -1
  229. package/client/base-formly-component.js +0 -149
  230. package/client/base-formly-component.js.map +0 -1
  231. package/client/condition-wait.js +0 -57
  232. package/client/condition-wait.js.map +0 -1
  233. package/client/constants.js +0 -2
  234. package/client/constants.js.map +0 -1
  235. package/client/dual-component-ctrl.js +0 -118
  236. package/client/dual-component-ctrl.js.map +0 -1
  237. package/client/es5/base-component.js +0 -89
  238. package/client/es5/base-formly-component.js +0 -158
  239. package/client/es5/condition-wait.js +0 -135
  240. package/client/es5/constants.js +0 -7
  241. package/client/es5/dual-component-ctrl.js +0 -164
  242. package/client/es5/git-project.js +0 -18
  243. package/client/es5/helpers-array-obj.js +0 -129
  244. package/client/es5/helpers-environment.js +0 -46
  245. package/client/es5/helpers-messages.js +0 -105
  246. package/client/es5/helpers-strings-regexes.js +0 -74
  247. package/client/es5/helpers-strings.js +0 -96
  248. package/client/es5/helpers.js +0 -217
  249. package/client/es5/index.js +0 -86
  250. package/client/es5/long-press.directive.js +0 -133
  251. package/client/es5/project.js +0 -146
  252. package/client/es5/resize-service.js +0 -45
  253. package/client/git-project.d.ts +0 -2
  254. package/client/git-project.js +0 -6
  255. package/client/git-project.js.map +0 -1
  256. package/client/helpers-array-obj.js +0 -75
  257. package/client/helpers-array-obj.js.map +0 -1
  258. package/client/helpers-environment.js +0 -21
  259. package/client/helpers-environment.js.map +0 -1
  260. package/client/helpers-messages.d.ts +0 -7
  261. package/client/helpers-messages.js +0 -68
  262. package/client/helpers-messages.js.map +0 -1
  263. package/client/helpers-strings-regexes.js +0 -49
  264. package/client/helpers-strings-regexes.js.map +0 -1
  265. package/client/helpers-strings.js +0 -61
  266. package/client/helpers-strings.js.map +0 -1
  267. package/client/helpers.js +0 -113
  268. package/client/helpers.js.map +0 -1
  269. package/client/index.js.map +0 -1
  270. package/client/long-press.directive.js +0 -125
  271. package/client/long-press.directive.js.map +0 -1
  272. package/client/project.js +0 -90
  273. package/client/project.js.map +0 -1
  274. package/client/resize-service.js +0 -20
  275. package/client/resize-service.js.map +0 -1
  276. package/condition-wait.js.map +0 -1
  277. package/constants.js.map +0 -1
  278. package/dual-component-ctrl.js.map +0 -1
  279. package/git-project.js.map +0 -1
  280. package/helpers-array-obj.js.map +0 -1
  281. package/helpers-cli-tool.backend.js.map +0 -1
  282. package/helpers-dependencies.backend.js.map +0 -1
  283. package/helpers-environment.js.map +0 -1
  284. package/helpers-file-folders.backend.js.map +0 -1
  285. package/helpers-git.backend.js.map +0 -1
  286. package/helpers-json5.backend.js.map +0 -1
  287. package/helpers-messages.d.ts +0 -7
  288. package/helpers-messages.js +0 -237
  289. package/helpers-messages.js.map +0 -1
  290. package/helpers-morphi-framework.backend.js.map +0 -1
  291. package/helpers-network.backend.js.map +0 -1
  292. package/helpers-npm.backend.js.map +0 -1
  293. package/helpers-path.backend.js.map +0 -1
  294. package/helpers-process.backend.js.map +0 -1
  295. package/helpers-strings-regexes.js.map +0 -1
  296. package/helpers-strings.js.map +0 -1
  297. package/helpers-system-terminal.backend.js.map +0 -1
  298. package/helpers.js.map +0 -1
  299. package/long-press.directive.js.map +0 -1
  300. package/merge-helpers.backend.js.map +0 -1
  301. package/project.js.map +0 -1
  302. package/resize-service.js.map +0 -1
  303. package/ts-code-modifier/index.js.map +0 -1
  304. package/ts-code-modifier/ts-code-modifier.backend.js.map +0 -1
@@ -0,0 +1,117 @@
1
+ import { _ } from 'tnp-core/browser';
2
+ import { CLASS } from 'typescript-class-helpers/browser';
3
+ import { Log } from 'ng2-logger/browser';
4
+ const log = Log.create(`DualComponentController`);
5
+ export class DualComponentController {
6
+ constructor(cmp, isFormlyMode = false) {
7
+ this.cmp = cmp;
8
+ this.isFormlyMode = isFormlyMode;
9
+ }
10
+ getValTemplateOptions(propertyName) {
11
+ if (this.isFormlyMode) {
12
+ const res = this.cmp.field?.templateOptions[propertyName];
13
+ if (res === void 0 && this.cmp[propertyName]) {
14
+ return this.cmp[propertyName];
15
+ }
16
+ return res;
17
+ }
18
+ return this.cmp[propertyName];
19
+ }
20
+ getValContext(propertyName) {
21
+ if (this.isFormlyMode) {
22
+ const res = this.cmp?.field[propertyName];
23
+ if (res === void 0 && this.cmp[propertyName]) {
24
+ return this.cmp[propertyName];
25
+ }
26
+ return res;
27
+ }
28
+ return this.cmp[propertyName];
29
+ }
30
+ get disabled() {
31
+ return this.getValTemplateOptions('disabled');
32
+ }
33
+ get required() {
34
+ return this.getValTemplateOptions('required');
35
+ }
36
+ get type() {
37
+ if (!this.isFormlyMode) {
38
+ return CLASS.getNameFromObject(this.cmp);
39
+ }
40
+ return this.getValContext('type');
41
+ }
42
+ get label() {
43
+ return this.getValTemplateOptions('label');
44
+ }
45
+ get placeholder() {
46
+ return this.getValTemplateOptions('placeholder');
47
+ }
48
+ get defaultValue() {
49
+ return this.getValContext('defaultValue');
50
+ }
51
+ get formControl() {
52
+ return this.getValContext('formControl');
53
+ }
54
+ get key() {
55
+ return this.getValContext('key');
56
+ }
57
+ get path() {
58
+ return this.getValContext('path');
59
+ }
60
+ get model() {
61
+ if (this.isFormlyMode) {
62
+ return this.getValContext('model');
63
+ }
64
+ else {
65
+ return this.__model;
66
+ }
67
+ }
68
+ set model(v) {
69
+ if (this.isFormlyMode) {
70
+ log.w(`[DualComponentController] You can't set model in formly component mode`);
71
+ }
72
+ else {
73
+ this.__model = v;
74
+ }
75
+ }
76
+ get mode() {
77
+ if (this.isFormlyMode) {
78
+ return this.getValContext('mode');
79
+ }
80
+ else {
81
+ return this.__mode;
82
+ }
83
+ }
84
+ set mode(v) {
85
+ if (this.isFormlyMode) {
86
+ // this.cmp.field.mode =
87
+ // log.w(`[DualComponentController] You can't set mode in formly component mode`);
88
+ }
89
+ else {
90
+ this.__mode = v;
91
+ }
92
+ }
93
+ get value() {
94
+ if (this.isFormlyMode) {
95
+ return this.cmp.field.formControl.value;
96
+ }
97
+ if (_.isString(this.path)) {
98
+ return _.get(this.cmp.model, this.path);
99
+ }
100
+ return this.cmp.model;
101
+ }
102
+ set value(v) {
103
+ if (this.isFormlyMode) {
104
+ this.cmp.field.formControl.setValue(v);
105
+ // @ts-ignore
106
+ this.cmp.change.next(v);
107
+ return;
108
+ }
109
+ if (_.isString(this.path)) {
110
+ _.set(this.cmp.model, this.path, v);
111
+ }
112
+ else {
113
+ this.cmp.model = v;
114
+ }
115
+ }
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1jb21wb25lbnQtY3RybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9kdWFsLWNvbXBvbmVudC1jdHJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLekQsT0FBTyxFQUFFLEdBQUcsRUFBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUVsRCxNQUFNLE9BQWdCLHVCQUF1QjtJQUUzQyxZQUFzQixHQUF3QixFQUFTLGVBQWUsS0FBSztRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRTNFLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxZQUFvQjtRQUNsRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ3pELElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQjtZQUNELE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxZQUFvQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxH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QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsYUFBYTtZQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IEJhc2VGb3JtbHlDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtZm9ybWx5LWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7ICAgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEFmdGVyVmlld0luaXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7ICAgRm9ybUNvbnRyb2wsICAgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5cbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL2Jyb3dzZXInO1xuY29uc3QgbG9nID0gTG9nLmNyZWF0ZShgRHVhbENvbXBvbmVudENvbnRyb2xsZXJgKTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER1YWxDb21wb25lbnRDb250cm9sbGVyPFQgPSBhbnk+IHtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY21wOiBCYXNlRm9ybWx5Q29tcG9uZW50LCBwdWJsaWMgaXNGb3JtbHlNb2RlID0gZmFsc2UpIHtcblxuICB9XG5cbiAgcHJvdGVjdGVkIGdldFZhbFRlbXBsYXRlT3B0aW9ucyhwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgY29uc3QgcmVzID0gdGhpcy5jbXAuZmllbGQ/LnRlbXBsYXRlT3B0aW9uc1twcm9wZXJ0eU5hbWVdXG4gICAgICBpZiAocmVzID09PSB2b2lkIDAgJiYgdGhpcy5jbXBbcHJvcGVydHlOYW1lXSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jbXBbcHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VmFsQ29udGV4dChwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgY29uc3QgcmVzID0gdGhpcy5jbXA/LmZpZWxkW3Byb3BlcnR5TmFtZV1cbiAgICAgIGlmIChyZXMgPT09IHZvaWQgMCAmJiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNtcFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY21wW3Byb3BlcnR5TmFtZV1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxUZW1wbGF0ZU9wdGlvbnMoJ2Rpc2FibGVkJykgYXMgYm9vbGVhbjtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxUZW1wbGF0ZU9wdGlvbnMoJ3JlcXVpcmVkJykgYXMgYm9vbGVhbjtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIGlmICghdGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHJldHVybiBDTEFTUy5nZXROYW1lRnJvbU9iamVjdCh0aGlzLmNtcClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgndHlwZScpIGFzIGJvb2xlYW47XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsVGVtcGxhdGVPcHRpb25zKCdsYWJlbCcpIGFzIHN0cmluZztcbiAgfVxuXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxUZW1wbGF0ZU9wdGlvbnMoJ3BsYWNlaG9sZGVyJykgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRWYWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCdkZWZhdWx0VmFsdWUnKSBhcyBhbnk7XG4gIH1cblxuICBnZXQgZm9ybUNvbnRyb2woKTogYW55IHsvLyBGb3JtQ29udHJvbCB7IC8vIFRPRE8gUVVJQ0tfRklYXG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgnZm9ybUNvbnRyb2wnKSBhcyBhbnk7XG4gIH1cblxuICBnZXQga2V5KCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ2tleScpIGFzIHN0cmluZztcbiAgfVxuXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbENvbnRleHQoJ3BhdGgnKSBhcyBzdHJpbmc7XG4gIH1cblxuICBfX21vZGVsOiBhbnk7XG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsQ29udGV4dCgnbW9kZWwnKSBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9fbW9kZWw7XG4gICAgfVxuICB9XG5cbiAgc2V0IG1vZGVsKHYpIHtcbiAgICBpZiAodGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIGxvZy53KGBbRHVhbENvbXBvbmVudENvbnRyb2xsZXJdIFlvdSBjYW4ndCBzZXQgbW9kZWwgaW4gZm9ybWx5IGNvbXBvbmVudCBtb2RlYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19tb2RlbCA9IHY7XG4gICAgfVxuICB9XG5cbiAgX19tb2RlOiBhbnk7XG4gIGdldCBtb2RlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtbHlNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRWYWxDb250ZXh0KCdtb2RlJykgYXMgc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fX21vZGU7XG4gICAgfVxuICB9XG5cbiAgc2V0IG1vZGUodikge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgLy8gdGhpcy5jbXAuZmllbGQubW9kZSA9XG4gICAgICAvLyBsb2cudyhgW0R1YWxDb21wb25lbnRDb250cm9sbGVyXSBZb3UgY2FuJ3Qgc2V0IG1vZGUgaW4gZm9ybWx5IGNvbXBvbmVudCBtb2RlYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19tb2RlID0gdjtcbiAgICB9XG4gIH1cblxuXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICBpZiAodGhpcy5pc0Zvcm1seU1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNtcC5maWVsZC5mb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGhpcy5wYXRoKSkge1xuICAgICAgcmV0dXJuIF8uZ2V0KHRoaXMuY21wLm1vZGVsLCB0aGlzLnBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jbXAubW9kZWw7XG4gIH1cblxuICBzZXQgdmFsdWUodikge1xuICAgIGlmICh0aGlzLmlzRm9ybWx5TW9kZSkge1xuICAgICAgdGhpcy5jbXAuZmllbGQuZm9ybUNvbnRyb2wuc2V0VmFsdWUodik7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmNtcC5jaGFuZ2UubmV4dCh2KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGhpcy5wYXRoKSkge1xuICAgICAgXy5zZXQodGhpcy5jbXAubW9kZWwsIHRoaXMucGF0aCwgdik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY21wLm1vZGVsID0gdjtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
@@ -0,0 +1,81 @@
1
+ import { _ } from 'tnp-core/browser';
2
+ import * as fuzzy from 'fuzzy';
3
+ import { Helpers } from './index';
4
+ export class HelpersArrayObj {
5
+ from(s) {
6
+ if (_.isArray(s)) {
7
+ return s;
8
+ }
9
+ if (_.isString(s)) {
10
+ return s.split(' ');
11
+ }
12
+ }
13
+ second(arr) {
14
+ if (!Array.isArray(arr) || arr.length < 2) {
15
+ return void 0;
16
+ }
17
+ return arr[1];
18
+ }
19
+ arrayMoveElementBefore(arr, a, b, prop) {
20
+ let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
21
+ _.pullAt(arr, indexA);
22
+ let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);
23
+ if (indexB === 0) {
24
+ arr.unshift(a);
25
+ }
26
+ else {
27
+ arr.splice(indexB - 1, 0, a);
28
+ }
29
+ return arr;
30
+ }
31
+ arrayMoveElementAfterB(arr, a, b, prop) {
32
+ let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
33
+ _.pullAt(arr, indexA);
34
+ let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);
35
+ if (indexB === arr.length - 1) {
36
+ arr.push(a);
37
+ }
38
+ else {
39
+ arr.splice(indexB + 1, 0, a);
40
+ }
41
+ return arr;
42
+ }
43
+ uniqArray(array, uniqueProperty) {
44
+ var seen = {};
45
+ return array
46
+ .filter(f => !!f)
47
+ .filter(function (item) {
48
+ return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item) ? false
49
+ : (seen[uniqueProperty ? item[uniqueProperty] : item] = true);
50
+ });
51
+ }
52
+ sortKeys(obj) {
53
+ if (_.isArray(obj)) {
54
+ return obj.map(Helpers.arrays.sortKeys);
55
+ }
56
+ if (_.isObject(obj)) {
57
+ return _.fromPairs(_.keys(obj).sort().map(key => [key, Helpers.arrays.sortKeys(obj[key])]));
58
+ }
59
+ return obj;
60
+ }
61
+ ;
62
+ /**
63
+ * Fuzzy search
64
+ */
65
+ fuzzy(query, list, valueFn) {
66
+ const resultsFuzzy = fuzzy.filter(query, list.map(k => valueFn ? valueFn(k) : k));
67
+ const resultsFuzzyKebab = fuzzy.filter(_.kebabCase(query), list.map(k => _.kebabCase((valueFn ? valueFn(k) : k))));
68
+ const matches = resultsFuzzy.map((el) => el.string);
69
+ const matchesKebab = resultsFuzzyKebab.map((el) => el.string);
70
+ const results = (resultsFuzzy.length === 0) ? [] : list.filter(k => {
71
+ return matches.includes((valueFn ? valueFn(k) : k));
72
+ });
73
+ if (matches.length === 0 && matchesKebab.length > 0) {
74
+ const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k)) === _.first(matchesKebab));
75
+ results.push(m);
76
+ matches.push((valueFn ? valueFn(m) : m));
77
+ }
78
+ return { matches, results };
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1hcnJheS1vYmoudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsTUFBTSxPQUFPLGVBQWU7SUFFMUIsSUFBSSxDQUFDLENBQW9CO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUNwQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRztRQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELE9BQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxzQkFBc0IsQ0FBVSxHQUFVLEVBQUUsQ0FBTSxFQUFFLENBQU0sRUFBRSxJQUFjO1FBQ3hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFD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Q0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25HLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0ICogYXMgZnV6enkgZnJvbSAnZnV6enknO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgY2xhc3MgSGVscGVyc0FycmF5T2JqIHtcblxuICBmcm9tKHM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChfLmlzQXJyYXkocykpIHtcbiAgICAgIHJldHVybiBzO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzKSkge1xuICAgICAgcmV0dXJuIHMuc3BsaXQoJyAnKVxuICAgIH1cbiAgfVxuXG4gIHNlY29uZChhcnIpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSB8fCBhcnIubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuICBhcnJbMV07XG4gIH1cblxuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHVuaXFBcnJheTxUID0gYW55PihhcnJheTogYW55W10sIHVuaXF1ZVByb3BlcnR5PzogKGtleW9mIFQpKSB7XG4gICAgdmFyIHNlZW4gPSB7fTtcbiAgICByZXR1cm4gYXJyYXlcbiAgICAgIC5maWx0ZXIoZiA9PiAhIWYpXG4gICAgICAuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBzZWVuLmhhc093blByb3BlcnR5KHVuaXF1ZVByb3BlcnR5ID8gaXRlbVt1bmlxdWVQcm9wZXJ0eV0gOiBpdGVtKSA/IGZhbHNlXG4gICAgICAgICAgOiAoc2Vlblt1bmlxdWVQcm9wZXJ0eSA/IGl0ZW1bdW5pcXVlUHJvcGVydHldIDogaXRlbV0gPSB0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc29ydEtleXMob2JqKSB7XG4gICAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcChIZWxwZXJzLmFycmF5cy5zb3J0S2V5cyk7XG4gICAgfVxuICAgIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIHJldHVybiBfLmZyb21QYWlycyhfLmtleXMob2JqKS5zb3J0KCkubWFwKGtleSA9PiBba2V5LCBIZWxwZXJzLmFycmF5cy5zb3J0S2V5cyhvYmpba2V5XSldKSk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1enp5IHNlYXJjaFxuICAgKi9cbiAgZnV6enk8VCA9IGFueT4ocXVlcnk6IHN0cmluZywgbGlzdDogVFtdLCB2YWx1ZUZuPzogKG1vZGVsRnJvbUxpc3Q6IFQpID0+IHN0cmluZykge1xuICAgIGNvbnN0IHJlc3VsdHNGdXp6eSA9IGZ1enp5LmZpbHRlcihcbiAgICAgIHF1ZXJ5LFxuICAgICAgbGlzdC5tYXAoayA9PiB2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspLFxuICAgIClcbiAgICBjb25zdCByZXN1bHRzRnV6enlLZWJhYiA9IGZ1enp5LmZpbHRlcihcbiAgICAgIF8ua2ViYWJDYXNlKHF1ZXJ5KSxcbiAgICAgIGxpc3QubWFwKGsgPT4gXy5rZWJhYkNhc2UoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KSksXG4gICAgKVxuICAgIGNvbnN0IG1hdGNoZXMgPSByZXN1bHRzRnV6enkubWFwKChlbCkgPT4gZWwuc3RyaW5nKTtcbiAgICBjb25zdCBtYXRjaGVzS2ViYWIgPSByZXN1bHRzRnV6enlLZWJhYi5tYXAoKGVsKSA9PiBlbC5zdHJpbmcpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IChyZXN1bHRzRnV6enkubGVuZ3RoID09PSAwKSA/IFtdIDogbGlzdC5maWx0ZXIoayA9PiB7XG4gICAgICByZXR1cm4gbWF0Y2hlcy5pbmNsdWRlcygodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpO1xuICAgIH0pXG5cbiAgICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDAgJiYgbWF0Y2hlc0tlYmFiLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG0gPSBsaXN0LmZpbmQoayA9PiBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpID09PSBfLmZpcnN0KG1hdGNoZXNLZWJhYikpO1xuICAgICAgcmVzdWx0cy5wdXNoKG0pO1xuICAgICAgbWF0Y2hlcy5wdXNoKCh2YWx1ZUZuID8gdmFsdWVGbihtKSA6IG0pIGFzIGFueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgbWF0Y2hlcywgcmVzdWx0cyB9O1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { _, } from 'tnp-core/browser';
2
+ export class HelpersEnvironment {
3
+ environmentName(filename, local_env_name) {
4
+ }
5
+ isValidGitRepuUrl(url) {
6
+ const regex = /^([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+(:\d+)?)(?::|\/)([\d\/\w.-]+?)(\.git)?$/;
7
+ const res = regex.test(url);
8
+ return res;
9
+ }
10
+ isValidIp(ip) {
11
+ if (!_.isString(ip)) {
12
+ return false;
13
+ }
14
+ ip = ip.trim();
15
+ if (ip === 'localhost') {
16
+ return true;
17
+ }
18
+ return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip);
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLWVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBSSxDQUFDLEdBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUd6QyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLGVBQWUsQ0FBQyxRQUFRLEVBQUUsY0FBYztJQUV4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBVztRQUMzQixNQUFNLEtBQUssR0FBRyxzRkFBc0YsQ0FBQztRQUNyRyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsSUFBSSxFQUFFLEtBQUssV0FBVyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLGtLQUFrSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNwTCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgICBfLCAgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5leHBvcnQgY2xhc3MgSGVscGVyc0Vudmlyb25tZW50IHtcblxuICBlbnZpcm9ubWVudE5hbWUoZmlsZW5hbWUsIGxvY2FsX2Vudl9uYW1lKSB7XG5cbiAgfVxuXG4gIGlzVmFsaWRHaXRSZXB1VXJsKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnZXggPSAvXihbQS1aYS16MC05XStAfGh0dHAofHMpXFw6XFwvXFwvKShbQS1aYS16MC05Ll0rKDpcXGQrKT8pKD86OnxcXC8pKFtcXGRcXC9cXHcuLV0rPykoXFwuZ2l0KT8kLztcbiAgICBjb25zdCByZXMgPSByZWdleC50ZXN0KHVybCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGlzVmFsaWRJcChpcDogc3RyaW5nKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKGlwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpcCA9IGlwLnRyaW0oKTtcbiAgICBpZiAoaXAgPT09ICdsb2NhbGhvc3QnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC9eKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykkLy50ZXN0KGlwKVxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { _ } from 'tnp-core/browser';
2
+ export class HelpersStringsRegexes {
3
+ escapeStringForRegEx(s) {
4
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
5
+ }
6
+ matchExactOnce(s, regex) {
7
+ if (!_.isString(s) || !_.isRegExp(regex)) {
8
+ return void 0;
9
+ }
10
+ const result = s.match(regex);
11
+ if (_.isNil(result)) {
12
+ return void 0;
13
+ }
14
+ return result.length >= 1 ? _.first(result) : void 0;
15
+ }
16
+ get regex() {
17
+ return {
18
+ /**
19
+ * mathes
20
+ * xxx.xxx.xxx.xxx
21
+ * xxx.xxx.xxx.xxx:port
22
+ * http://xxx.xxx.xxx.xxx:port
23
+ * http://xxx.xxx.xxx.xxx
24
+ * https://xxx.xxx.xxx.xxx:port
25
+ * https://xxx.xxx.xxx.xxx *
26
+ */
27
+ get forStringWithIpHost() {
28
+ const regex = /(http(s)?\:\/\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\:[0-9]+)?/;
29
+ return regex;
30
+ },
31
+ /**
32
+ * mathes
33
+ * http://domain.com:port
34
+ * http://domain.com
35
+ * http://domain:port
36
+ * http://domain
37
+ * https://domain.com:port
38
+ * https://domain.com
39
+ * https://domain:port
40
+ * https://domain
41
+ */
42
+ get forStringWithDomainHost() {
43
+ const regex = /(((http(s)?\:\/\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+(\:[0-9]+)?)|((http(s)?\:\/\/)[a-zA-Z0-9-]{1,61}))/;
44
+ return regex;
45
+ }
46
+ };
47
+ }
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsb0JBQW9CLENBQUMsQ0FBUztRQUM1QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFTLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU87WUFDTDs7Ozs7Ozs7YUFRQztZQUNELElBQUksbUJBQW1CO2dCQUNyQixNQUFNLEtBQUssR0FBRyw0TEFBNEwsQ0FBQztnQkFDM00sT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0Q7Ozs7Ozs7Ozs7WUFVQTtZQUNBLElBQUksdUJBQXVCO2dCQUN6QixNQUFNLEtBQUssR0FBRyxrSUFBa0ksQ0FBQztnQkFDakosT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5leHBvcnQgY2xhc3MgSGVscGVyc1N0cmluZ3NSZWdleGVzIHtcblxuXG5cbiAgZXNjYXBlU3RyaW5nRm9yUmVnRXgoczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gIH1cblxuICBtYXRjaEV4YWN0T25jZShzOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHApOiBzdHJpbmcge1xuICAgIGlmICghXy5pc1N0cmluZyhzKSB8fCAhXy5pc1JlZ0V4cChyZWdleCkpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHMubWF0Y2gocmVnZXgpO1xuICAgIGlmIChfLmlzTmlsKHJlc3VsdCkpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQubGVuZ3RoID49IDEgPyBfLmZpcnN0KHJlc3VsdCkgOiB2b2lkIDA7XG4gIH1cblxuICBnZXQgcmVnZXgoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKlxuICAgICAqIG1hdGhlc1xuICAgICAqIHh4eC54eHgueHh4Lnh4eFxuICAgICAqIHh4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cDovL3h4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cDovL3h4eC54eHgueHh4Lnh4eFxuICAgICAqIGh0dHBzOi8veHh4Lnh4eC54eHgueHh4OnBvcnRcbiAgICAgKiBodHRwczovL3h4eC54eHgueHh4Lnh4eCAgICpcbiAgICAgKi9cbiAgICAgIGdldCBmb3JTdHJpbmdXaXRoSXBIb3N0KCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oaHR0cChzKT9cXDpcXC9cXC8pPygyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pKFxcOlswLTldKyk/LztcbiAgICAgICAgcmV0dXJuIHJlZ2V4O1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICogbWF0aGVzXG4gICAgKiBodHRwOi8vZG9tYWluLmNvbTpwb3J0XG4gICAgKiBodHRwOi8vZG9tYWluLmNvbVxuICAgICogaHR0cDovL2RvbWFpbjpwb3J0XG4gICAgKiBodHRwOi8vZG9tYWluXG4gICAgKiBodHRwczovL2RvbWFpbi5jb206cG9ydFxuICAgICogaHR0cHM6Ly9kb21haW4uY29tXG4gICAgKiBodHRwczovL2RvbWFpbjpwb3J0XG4gICAgKiBodHRwczovL2RvbWFpblxuICAgICovXG4gICAgICBnZXQgZm9yU3RyaW5nV2l0aERvbWFpbkhvc3QoKSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLygoKGh0dHAocyk/XFw6XFwvXFwvKT9bYS16QS1aMC05XVthLXpBLVowLTktXXsxLDYxfVthLXpBLVowLTldKD86XFwuW2EtekEtWl17Mix9KSsoXFw6WzAtOV0rKT8pfCgoaHR0cChzKT9cXDpcXC9cXC8pW2EtekEtWjAtOS1dezEsNjF9KSkvO1xuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { _ } from 'tnp-core/browser';
2
+ export class HelpersStrings {
3
+ /**
4
+ * Example:
5
+ *
6
+ * const result = interpolateString("I'm {age} years old!")
7
+ * .withParameters({ age: 29 });
8
+ *
9
+ * const result = interpolateString("The {a} says {n}, {n}, {n}!")
10
+ * .withParameters({ a: 'cow', n: 'moo' });
11
+ *
12
+ *
13
+ * @param value string to interpolate
14
+ * @param parameters object with parametes
15
+ */
16
+ interpolateString(value) {
17
+ if (typeof value !== 'string') {
18
+ console.warn('[ss-logic][helper] Value for interpolation is not string: ', value);
19
+ return value;
20
+ }
21
+ return {
22
+ withParameters(parameters) {
23
+ if (typeof parameters !== 'object') {
24
+ console.warn('[ss-logic][helper] Parameters are not a object: ', parameters);
25
+ return value;
26
+ }
27
+ return value.replace(/{([^{}]*)}/g, function (a, b) {
28
+ var r = parameters[b];
29
+ return typeof r === 'string' || typeof r === 'number' ? r : a;
30
+ });
31
+ }
32
+ };
33
+ }
34
+ numValue(pixelsCss) {
35
+ // tslint:disable-next-line:radix
36
+ return parseInt(pixelsCss.replace('px', ''));
37
+ }
38
+ /**
39
+ * examples:
40
+ * 'aa bb bb' => ['aa','bb','cc'],
41
+ * 'aa' => ['aa']
42
+ * ['aa'] => ['aa']
43
+ */
44
+ splitIfNeed(stringOrArr) {
45
+ let res = [];
46
+ if (_.isArray(stringOrArr)) {
47
+ res = stringOrArr.map(s => {
48
+ return s.trim();
49
+ });
50
+ }
51
+ if (_.isString(stringOrArr)) {
52
+ res = stringOrArr.split(/\s*[\s,]\s*/);
53
+ }
54
+ return res.filter(f => !!f && (f.trim() !== ''));
55
+ }
56
+ removeDoubleOrMoreEmptyLines(s) {
57
+ s = s?.split('\n').map(f => f.trimRight()).join('\n');
58
+ return s?.replace(/(\r\n|\r|\n){2,}/g, '$1\n');
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckMsTUFBTSxPQUFPLGNBQWM7SUFFekI7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsaUJBQWlCLENBQVUsS0FBYTtRQUN0QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLDREQUE0RCxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPO1lBQ0wsY0FBYyxDQUFDLFVBQWE7Z0JBQzFCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO29CQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtEQUFrRCxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUM3RSxPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ2hELElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEIsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsQ0FBUSxDQUFDLENBQUM7WUFDWixDQUFDO1NBQ0YsQ0FBQTtJQUVILENBQUM7SUFFRCxRQUFRLENBQUMsU0FBaUI7UUFDeEIsaUNBQWlDO1FBQ2pDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLFdBQThCO1FBQ3hDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMxQixHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQixHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsQ0FBUztRQUNwQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzU3RyaW5ncyB7XG5cbiAgLyoqXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIGNvbnN0IHJlc3VsdCA9IGludGVycG9sYXRlU3RyaW5nKFwiSSdtIHthZ2V9IHllYXJzIG9sZCFcIilcbiAgICogLndpdGhQYXJhbWV0ZXJzKHsgYWdlOiAyOSB9KTtcbiAgICpcbiAgICogY29uc3QgcmVzdWx0ID0gaW50ZXJwb2xhdGVTdHJpbmcoXCJUaGUge2F9IHNheXMge259LCB7bn0sIHtufSFcIilcbiAgICogLndpdGhQYXJhbWV0ZXJzKHsgYTogJ2NvdycsIG46ICdtb28nIH0pO1xuICAgKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgc3RyaW5nIHRvIGludGVycG9sYXRlXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIG9iamVjdCB3aXRoIHBhcmFtZXRlc1xuICAgKi9cbiAgaW50ZXJwb2xhdGVTdHJpbmc8VCA9IGFueT4odmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tzcy1sb2dpY11baGVscGVyXSBWYWx1ZSBmb3IgaW50ZXJwb2xhdGlvbiBpcyBub3Qgc3RyaW5nOiAnLCB2YWx1ZSk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdpdGhQYXJhbWV0ZXJzKHBhcmFtZXRlcnM6IFQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW3NzLWxvZ2ljXVtoZWxwZXJdIFBhcmFtZXRlcnMgYXJlIG5vdCBhIG9iamVjdDogJywgcGFyYW1ldGVycyk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC97KFtee31dKil9L2csIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgdmFyIHIgPSBwYXJhbWV0ZXJzW2JdO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHIgPT09ICdudW1iZXInID8gciA6IGE7XG4gICAgICAgIH0gYXMgYW55KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIG51bVZhbHVlKHBpeGVsc0Nzczogc3RyaW5nKSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnJhZGl4XG4gICAgcmV0dXJuIHBhcnNlSW50KHBpeGVsc0Nzcy5yZXBsYWNlKCdweCcsICcnKSk7XG4gIH1cblxuICAvKipcbiAgICogZXhhbXBsZXM6XG4gICAqICdhYSBiYiBiYicgPT4gWydhYScsJ2JiJywnY2MnXSxcbiAgICogJ2FhJyA9PiBbJ2FhJ11cbiAgICogWydhYSddID0+IFsnYWEnXVxuICAgKi9cbiAgc3BsaXRJZk5lZWQoc3RyaW5nT3JBcnI6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBpZiAoXy5pc0FycmF5KHN0cmluZ09yQXJyKSkge1xuICAgICAgcmVzID0gc3RyaW5nT3JBcnIubWFwKHMgPT4ge1xuICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzdHJpbmdPckFycikpIHtcbiAgICAgIHJlcyA9IHN0cmluZ09yQXJyLnNwbGl0KC9cXHMqW1xccyxdXFxzKi8pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLmZpbHRlcihmID0+ICEhZiAmJiAoZi50cmltKCkgIT09ICcnKSk7XG4gIH1cblxuICByZW1vdmVEb3VibGVPck1vcmVFbXB0eUxpbmVzKHM6IHN0cmluZykge1xuICAgIHMgPSBzPy5zcGxpdCgnXFxuJykubWFwKGYgPT4gZi50cmltUmlnaHQoKSkuam9pbignXFxuJyk7XG4gICAgcmV0dXJuIHM/LnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbil7Mix9L2csICckMVxcbicpO1xuICB9XG5cbn1cblxuIl19
@@ -0,0 +1,106 @@
1
+ import { _ } from 'tnp-core/browser';
2
+ import { HelpersArrayObj } from './helpers-array-obj';
3
+ import { HelpersStringsRegexes } from './helpers-strings-regexes';
4
+ import { HelpersEnvironment } from './helpers-environment';
5
+ import { HelpersStrings } from './helpers-strings';
6
+ import { conditionWait } from './condition-wait';
7
+ import { Helpers } from './index';
8
+ import { CLASS } from 'typescript-class-helpers/browser';
9
+ import { Morphi } from 'morphi/browser';
10
+ import { CoreHelpers } from 'tnp-core/browser';
11
+ export function applyMixins(derivedCtor, baseCtors) {
12
+ baseCtors.forEach(baseCtor => {
13
+ Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
14
+ Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
15
+ });
16
+ });
17
+ }
18
+ // @ts-ignore
19
+ export class HelpersTnp extends CoreHelpers {
20
+ constructor(arrays = new HelpersArrayObj(), strings = new HelpersStrings()) {
21
+ super();
22
+ this.arrays = arrays;
23
+ this.strings = strings;
24
+ this.conditionWait = conditionWait;
25
+ this.applyMixins = applyMixins;
26
+ }
27
+ static get Instance() {
28
+ if (!HelpersTnp._instance) {
29
+ HelpersTnp._instance = new HelpersTnp();
30
+ }
31
+ return HelpersTnp._instance;
32
+ }
33
+ CLIWRAP(f, name) {
34
+ CLASS.setName(f, name);
35
+ return f;
36
+ }
37
+ async isElevated() {
38
+ }
39
+ async mesureExectionInMs(description, functionToExecute, ...functionArguments) {
40
+ var start = new Date();
41
+ await Helpers.runSyncOrAsync(functionToExecute, ...functionArguments);
42
+ //@ts-ignore
43
+ var end = new Date() - start;
44
+ if (Morphi.IsBrowser) {
45
+ Helpers.info(`Execution time: ${end.toString()}ms for "${description}"`);
46
+ }
47
+ return end;
48
+ }
49
+ mesureExectionInMsSync(description, functionToExecute) {
50
+ var start = new Date();
51
+ functionToExecute();
52
+ //@ts-ignore
53
+ var end = new Date() - start;
54
+ if (Morphi.IsBrowser) {
55
+ Helpers.info(`Execution time: ${end.toString()}ms for "${description}"`);
56
+ }
57
+ return end;
58
+ }
59
+ waitForCondition(conditionFn, howOfftenCheckInMs = 1000) {
60
+ return new Promise(async (resolve, reject) => {
61
+ const result = await Helpers.runSyncOrAsync(conditionFn);
62
+ if (result) {
63
+ resolve(void 0);
64
+ }
65
+ else {
66
+ setTimeout(() => {
67
+ Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {
68
+ resolve(void 0);
69
+ });
70
+ }, howOfftenCheckInMs);
71
+ }
72
+ });
73
+ }
74
+ getBrowserVerPath(moduleName) {
75
+ }
76
+ getMethodName(obj, method) {
77
+ var methodName = null;
78
+ Object.getOwnPropertyNames(obj).forEach(prop => {
79
+ if (obj[prop] === method) {
80
+ methodName = prop;
81
+ }
82
+ });
83
+ if (methodName !== null) {
84
+ return methodName;
85
+ }
86
+ var proto = Object.getPrototypeOf(obj);
87
+ if (proto) {
88
+ return Helpers.getMethodName(proto, method);
89
+ }
90
+ return null;
91
+ }
92
+ fixWebpackEnv(env) {
93
+ _.forIn(env, (v, k) => {
94
+ const value = v;
95
+ if (value === 'true')
96
+ env[k] = true;
97
+ if (value === 'false')
98
+ env[k] = false;
99
+ });
100
+ }
101
+ }
102
+ applyMixins(HelpersTnp, [
103
+ HelpersStringsRegexes,
104
+ HelpersEnvironment,
105
+ ]);
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE1BQU0sVUFBVSxXQUFXLENBQUMsV0FBZ0IsRUFBRSxTQUFnQjtJQUM1RCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoSCxDQUFDLENBQUMsQ0FB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SSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxFQUFFO2dCQUN4QixVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDdkIsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFFRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxHQUFXLENBQVEsQ0FBQztZQUMvQixJQUFJLEtBQUssS0FBSyxNQUFNO2dCQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDcEMsSUFBSSxLQUFLLEtBQUssT0FBTztnQkFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQU1GO0FBU0QsV0FBVyxDQUFDLFVBQVUsRUFBRTtJQUN0QixxQkFBcUI7SUFDckIsa0JBQWtCO0NBRW5CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzQXJyYXlPYmogfSBmcm9tICcuL2hlbHBlcnMtYXJyYXktb2JqJztcbmltcG9ydCB7IEhlbHBlcnNTdHJpbmdzUmVnZXhlcyB9IGZyb20gJy4vaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMnO1xuaW1wb3J0IHsgSGVscGVyc0Vudmlyb25tZW50IH0gZnJvbSAnLi9oZWxwZXJzLWVudmlyb25tZW50JztcbmltcG9ydCB7IEhlbHBlcnNTdHJpbmdzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MnO1xuaW1wb3J0IHsgY29uZGl0aW9uV2FpdCB9IGZyb20gJy4vY29uZGl0aW9uLXdhaXQnO1xuXG5pbXBvcnQgeyBjb25maWcsIENvbmZpZ01vZGVscyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IE1vcnBoaSB9IGZyb20gJ21vcnBoaS9icm93c2VyJztcbmltcG9ydCB7IENvcmVIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1peGlucyhkZXJpdmVkQ3RvcjogYW55LCBiYXNlQ3RvcnM6IGFueVtdKSB7XG4gIGJhc2VDdG9ycy5mb3JFYWNoKGJhc2VDdG9yID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUpLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVyaXZlZEN0b3IucHJvdG90eXBlLCBuYW1lLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VDdG9yLnByb3RvdHlwZSwgbmFtZSkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNsYXNzIEhlbHBlcnNUbnAgZXh0ZW5kcyBDb3JlSGVscGVycyB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBIZWxwZXJzVG5wICYgQ29yZUhlbHBlcnM7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCkge1xuICAgIGlmICghSGVscGVyc1RucC5faW5zdGFuY2UpIHtcbiAgICAgIEhlbHBlcnNUbnAuX2luc3RhbmNlID0gbmV3IEhlbHBlcnNUbnAoKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlbHBlcnNUbnAuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcblxuICAgIHB1YmxpYyBhcnJheXMgPSBuZXcgSGVscGVyc0FycmF5T2JqKCksXG4gICAgcHVibGljIHN0cmluZ3MgPSBuZXcgSGVscGVyc1N0cmluZ3MoKSxcblxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQ0xJV1JBUChmOiBGdW5jdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgQ0xBU1Muc2V0TmFtZShmLCBuYW1lKTtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG5cblxuXG5cbiAgYXN5bmMgaXNFbGV2YXRlZCgpIHtcblxuICB9XG5cblxuXG5cblxuXG5cbiAgYXN5bmMgbWVzdXJlRXhlY3Rpb25Jbk1zKFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGU6IEZ1bmN0aW9uLFxuICAgIC4uLmZ1bmN0aW9uQXJndW1lbnRzOiBhbnlbXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoZnVuY3Rpb25Ub0V4ZWN1dGUsIC4uLmZ1bmN0aW9uQXJndW1lbnRzKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB2YXIgZW5kID0gbmV3IERhdGUoKSAtIHN0YXJ0XG4gICAgaWYgKE1vcnBoaS5Jc0Jyb3dzZXIpIHtcbiAgICAgIEhlbHBlcnMuaW5mbyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cblxuICAgIHJldHVybiBlbmQ7XG4gIH1cblxuICBtZXN1cmVFeGVjdGlvbkluTXNTeW5jKFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGU6ICgpID0+IHZvaWQpOiBudW1iZXIge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKClcbiAgICBmdW5jdGlvblRvRXhlY3V0ZSgpO1xuICAgIC8vQHRzLWlnbm9yZVxuICAgIHZhciBlbmQgPSBuZXcgRGF0ZSgpIC0gc3RhcnRcbiAgICBpZiAoTW9ycGhpLklzQnJvd3Nlcikge1xuICAgICAgSGVscGVycy5pbmZvKGBFeGVjdXRpb24gdGltZTogJHtlbmQudG9TdHJpbmcoKX1tcyBmb3IgXCIke2Rlc2NyaXB0aW9ufVwiYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG4gIGNvbmRpdGlvbldhaXQgPSBjb25kaXRpb25XYWl0O1xuXG4gIHdhaXRGb3JDb25kaXRpb24oY29uZGl0aW9uRm46IChhbnkpID0+IGJvb2xlYW4sIGhvd09mZnRlbkNoZWNrSW5NcyA9IDEwMDApIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKGNvbmRpdGlvbkZuKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZSh2b2lkIDApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBIZWxwZXJzLndhaXRGb3JDb25kaXRpb24oY29uZGl0aW9uRm4sIGhvd09mZnRlbkNoZWNrSW5NcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHZvaWQgMCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSwgaG93T2ZmdGVuQ2hlY2tJbk1zKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0QnJvd3NlclZlclBhdGgobW9kdWxlTmFtZT86IHN0cmluZykge1xuXG4gIH1cblxuICBnZXRNZXRob2ROYW1lKG9iaiwgbWV0aG9kKTogc3RyaW5nIHtcbiAgICB2YXIgbWV0aG9kTmFtZSA9IG51bGw7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgaWYgKG9ialtwcm9wXSA9PT0gbWV0aG9kKSB7XG4gICAgICAgIG1ldGhvZE5hbWUgPSBwcm9wO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtZXRob2ROYW1lO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopO1xuICAgIGlmIChwcm90bykge1xuICAgICAgcmV0dXJuIEhlbHBlcnMuZ2V0TWV0aG9kTmFtZShwcm90bywgbWV0aG9kKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmaXhXZWJwYWNrRW52KGVudjogT2JqZWN0KSB7XG4gICAgXy5mb3JJbihlbnYsICh2LCBrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdiBhcyBhbnk7XG4gICAgICBpZiAodmFsdWUgPT09ICd0cnVlJykgZW52W2tdID0gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykgZW52W2tdID0gZmFsc2U7XG4gICAgfSlcbiAgfVxuXG5cblxuXG4gIHB1YmxpYyBhcHBseU1peGlucyA9IGFwcGx5TWl4aW5zO1xufVxuXG4vLyBAdHMtaWdub3JlXG5leHBvcnQgaW50ZXJmYWNlIEhlbHBlcnNUbnAgZXh0ZW5kc1xuICBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMsXG4gIEhlbHBlcnNFbnZpcm9ubWVudFxuXG57IH1cblxuYXBwbHlNaXhpbnMoSGVscGVyc1RucCwgW1xuICBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMsXG4gIEhlbHBlcnNFbnZpcm9ubWVudCxcblxuXSk7XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { HelpersTnp as Base } from './helpers';
2
+ export * from './constants';
3
+ // export * from './git-project';
4
+ export const Helpers = Base.Instance;
5
+ export * from './project';
6
+ export { BaseComponent, BaseComponentForRouter } from './base-component';
7
+ export { BaseFormlyComponent } from './base-formly-component';
8
+ export { DualComponentController } from './dual-component-ctrl';
9
+ export { ResizeService } from './resize-service';
10
+ export { LongPress } from './long-press.directive';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsSUFBSSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsY0FBYyxhQUFhLENBQUM7QUFHNUIsaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQ3JDLGNBQWMsV0FBVyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEhlbHBlcnNUbnAgYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuL2NvbmRpdGlvbi13YWl0JztcblxuLy8gZXhwb3J0ICogZnJvbSAnLi9naXQtcHJvamVjdCc7XG5leHBvcnQgY29uc3QgSGVscGVycyA9IEJhc2UuSW5zdGFuY2U7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QnO1xuXG5leHBvcnQgeyBCYXNlQ29tcG9uZW50LCBCYXNlQ29tcG9uZW50Rm9yUm91dGVyIH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudCc7XG5leHBvcnQgeyBCYXNlRm9ybWx5Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWZvcm1seS1jb21wb25lbnQnO1xuZXhwb3J0IHsgRHVhbENvbXBvbmVudENvbnRyb2xsZXIgfSBmcm9tICcuL2R1YWwtY29tcG9uZW50LWN0cmwnO1xuZXhwb3J0IHsgUmVzaXplU2VydmljZSB9IGZyb20gJy4vcmVzaXplLXNlcnZpY2UnO1xuZXhwb3J0IHsgTG9uZ1ByZXNzIH0gZnJvbSAnLi9sb25nLXByZXNzLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { Directive, Input, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';
2
+ import { _ } from 'tnp-core/browser';
3
+ import { Log, Level } from 'ng2-logger/browser';
4
+ import * as i0 from "@angular/core";
5
+ const log = Log.create(`[tnp-helpers] long-press`, Level.__NOTHING);
6
+ export class LongPress {
7
+ constructor() {
8
+ this.pressDuration = 1000;
9
+ this.onLongPress = new EventEmitter();
10
+ this.onLongPressing = new EventEmitter();
11
+ this.onLongPressEnd = new EventEmitter();
12
+ this.mouseX = 0;
13
+ this.mouseY = 0;
14
+ this.allowTrigger = false;
15
+ this.triggerEnd = _.debounce(() => {
16
+ this.endPress();
17
+ }, 500);
18
+ }
19
+ get press() { return this.pressing; }
20
+ get longPress() { return this.longPressing; }
21
+ onMouseDown(event) {
22
+ // don't do right/middle clicks
23
+ log.d(`MOUSE DOWN `);
24
+ if (event.which !== 1)
25
+ return;
26
+ this.allowTrigger = true;
27
+ this.mouseX = event.clientX;
28
+ this.mouseY = event.clientY;
29
+ this.pressing = true;
30
+ this.longPressing = false;
31
+ this.timeout = setTimeout(() => {
32
+ if (this.allowTrigger) {
33
+ this.longPressing = true;
34
+ log.d(`long pressing start pressDuration:${this.pressDuration} `);
35
+ this.onLongPress.emit(event);
36
+ this.loop(event);
37
+ }
38
+ }, this.pressDuration);
39
+ this.loop(event);
40
+ }
41
+ onMouseMove(event) {
42
+ if (this.pressing && !this.longPressing) {
43
+ const xThres = (event.clientX - this.mouseX) > 10;
44
+ const yThres = (event.clientY - this.mouseY) > 10;
45
+ if (xThres || yThres) {
46
+ this.endPress();
47
+ }
48
+ }
49
+ }
50
+ loop(event) {
51
+ if (this.longPressing) {
52
+ this.timeout = setTimeout(() => {
53
+ log.d(`emil longpressing`);
54
+ this.triggerEnd();
55
+ this.onLongPressing.emit(event);
56
+ this.loop(event);
57
+ }, 50);
58
+ }
59
+ }
60
+ endPress(emit = true) {
61
+ this.allowTrigger = false;
62
+ clearTimeout(this.timeout);
63
+ this.longPressing = false;
64
+ this.pressing = false;
65
+ if (emit) {
66
+ log.d(`EMIT END`);
67
+ this.onLongPressEnd.emit(true);
68
+ }
69
+ else {
70
+ log.d(`NOT EMIT END`);
71
+ }
72
+ }
73
+ onMouseUp() {
74
+ this.endPress(false);
75
+ }
76
+ }
77
+ LongPress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: LongPress, deps: [], target: i0.ɵɵFactoryTarget.Directive });
78
+ LongPress.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: LongPress, selector: "[long-press]", inputs: { pressDuration: "pressDuration" }, outputs: { onLongPress: "onLongPress", onLongPressing: "onLongPressing", onLongPressEnd: "onLongPressEnd" }, host: { listeners: { "mousedown": "onMouseDown($event)", "mousemove": "onMouseMove($event)", "mouseup": "onMouseUp()" }, properties: { "class.press": "this.press", "class.longpress": "this.longPress" } }, ngImport: i0 });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: LongPress, decorators: [{
80
+ type: Directive,
81
+ args: [{ selector: '[long-press]' }]
82
+ }], propDecorators: { pressDuration: [{
83
+ type: Input
84
+ }], onLongPress: [{
85
+ type: Output
86
+ }], onLongPressing: [{
87
+ type: Output
88
+ }], onLongPressEnd: [{
89
+ type: Output
90
+ }], press: [{
91
+ type: HostBinding,
92
+ args: ['class.press']
93
+ }], longPress: [{
94
+ type: HostBinding,
95
+ args: ['class.longpress']
96
+ }], onMouseDown: [{
97
+ type: HostListener,
98
+ args: ['mousedown', ['$event']]
99
+ }], onMouseMove: [{
100
+ type: HostListener,
101
+ args: ['mousemove', ['$event']]
102
+ }], onMouseUp: [{
103
+ type: HostListener,
104
+ args: ['mouseup']
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9uZy1wcmVzcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvbG9uZy1wcmVzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFJLFNBQVMsRUFBSSxLQUFLLEVBQUksTUFBTSxFQUFJLFlBQVksRUFBSSxXQUFXLEVBQUksWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlHLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUNoRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLDBCQUEwQixFQUM3QyxLQUFLLENBQUMsU0FBUyxDQUNsQixDQUFBO0FBR0QsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFHVyxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUU1QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt6RCxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFRM0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7S0FvRVI7SUE3RUMsSUFDSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVyQyxJQUNJLFNBQVMsS0FBSyxP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MkZBQVQsU0FBUztrQkFEckIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7OEJBRzVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBU0gsS0FBSztzQkFEUixXQUFXO3VCQUFDLGFBQWE7Z0JBSXRCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxpQkFBaUI7Z0JBUzlCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJyQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9DckMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgICBEaXJlY3RpdmUsICAgSW5wdXQsICAgT3V0cHV0LCAgIEV2ZW50RW1pdHRlciwgICBIb3N0QmluZGluZywgICBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci9icm93c2VyJztcbmNvbnN0IGxvZyA9IExvZy5jcmVhdGUoYFt0bnAtaGVscGVyc10gbG9uZy1wcmVzc2BcbiAgLCBMZXZlbC5fX05PVEhJTkdcbilcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2xvbmctcHJlc3NdJyB9KVxuZXhwb3J0IGNsYXNzIExvbmdQcmVzcyB7XG5cbiAgQElucHV0KCkgcHJlc3NEdXJhdGlvbjogbnVtYmVyID0gMTAwMDtcblxuICBAT3V0cHV0KCkgb25Mb25nUHJlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Mb25nUHJlc3Npbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Mb25nUHJlc3NFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgcHJlc3Npbmc6IGJvb2xlYW47XG4gIHByaXZhdGUgbG9uZ1ByZXNzaW5nOiBib29sZWFuO1xuICBwcml2YXRlIHRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBtb3VzZVg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgbW91c2VZOiBudW1iZXIgPSAwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucHJlc3MnKVxuICBnZXQgcHJlc3MoKSB7IHJldHVybiB0aGlzLnByZXNzaW5nOyB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb25ncHJlc3MnKVxuICBnZXQgbG9uZ1ByZXNzKCkgeyByZXR1cm4gdGhpcy5sb25nUHJlc3Npbmc7IH1cblxuICBhbGxvd1RyaWdnZXIgPSBmYWxzZTtcbiAgdHJpZ2dlckVuZCA9IF8uZGVib3VuY2UoKCkgPT4ge1xuICAgIHRoaXMuZW5kUHJlc3MoKTtcbiAgfSwgNTAwKVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VEb3duKGV2ZW50KSB7XG4gICAgLy8gZG9uJ3QgZG8gcmlnaHQvbWlkZGxlIGNsaWNrc1xuICAgIGxvZy5kKGBNT1VTRSBET1dOIGApO1xuXG4gICAgaWYgKGV2ZW50LndoaWNoICE9PSAxKSByZXR1cm47XG4gICAgdGhpcy5hbGxvd1RyaWdnZXIgPSB0cnVlO1xuXG4gICAgdGhpcy5tb3VzZVggPSBldmVudC5jbGllbnRYO1xuICAgIHRoaXMubW91c2VZID0gZXZlbnQuY2xpZW50WTtcblxuICAgIHRoaXMucHJlc3NpbmcgPSB0cnVlO1xuICAgIHRoaXMubG9uZ1ByZXNzaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFsbG93VHJpZ2dlcikge1xuICAgICAgICB0aGlzLmxvbmdQcmVzc2luZyA9IHRydWU7XG4gICAgICAgIGxvZy5kKGBsb25nIHByZXNzaW5nIHN0YXJ0ICBwcmVzc0R1cmF0aW9uOiR7dGhpcy5wcmVzc0R1cmF0aW9ufSBgKTtcbiAgICAgICAgdGhpcy5vbkxvbmdQcmVzcy5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5sb29wKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LCB0aGlzLnByZXNzRHVyYXRpb24pO1xuXG4gICAgdGhpcy5sb29wKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMucHJlc3NpbmcgJiYgIXRoaXMubG9uZ1ByZXNzaW5nKSB7XG4gICAgICBjb25zdCB4VGhyZXMgPSAoZXZlbnQuY2xpZW50WCAtIHRoaXMubW91c2VYKSA+IDEwO1xuICAgICAgY29uc3QgeVRocmVzID0gKGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vdXNlWSkgPiAxMDtcbiAgICAgIGlmICh4VGhyZXMgfHwgeVRocmVzKSB7XG4gICAgICAgIHRoaXMuZW5kUHJlc3MoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsb29wKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMubG9uZ1ByZXNzaW5nKSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbG9nLmQoYGVtaWwgbG9uZ3ByZXNzaW5nYClcbiAgICAgICAgdGhpcy50cmlnZ2VyRW5kKCk7XG4gICAgICAgIHRoaXMub25Mb25nUHJlc3NpbmcuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMubG9vcChldmVudCk7XG4gICAgICB9LCA1MCk7XG4gICAgfVxuICB9XG5cbiAgZW5kUHJlc3MoZW1pdCA9IHRydWUpIHtcbiAgICB0aGlzLmFsbG93VHJpZ2dlciA9IGZhbHNlO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgIHRoaXMubG9uZ1ByZXNzaW5nID0gZmFsc2U7XG4gICAgdGhpcy5wcmVzc2luZyA9IGZhbHNlO1xuICAgIGlmIChlbWl0KSB7XG4gICAgICBsb2cuZChgRU1JVCBFTkRgKVxuICAgICAgdGhpcy5vbkxvbmdQcmVzc0VuZC5lbWl0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZChgTk9UIEVNSVQgRU5EYClcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJylcbiAgb25Nb3VzZVVwKCkge1xuICAgIHRoaXMuZW5kUHJlc3MoZmFsc2UpO1xuICB9XG5cbn1cbiJdfQ==