tnp-helpers 13.1.39 → 16.0.1

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 (174) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base-component.mjs +51 -0
  4. package/browser/esm2022/lib/base-formly-component.mjs +114 -0
  5. package/browser/esm2022/lib/helpers-browser.mjs +48 -0
  6. package/browser/esm2022/lib/helpers.mjs +286 -0
  7. package/{websql/esm2020 → browser/esm2022}/lib/long-press.directive.mjs +8 -7
  8. package/browser/esm2022/lib/project.mjs +431 -0
  9. package/browser/esm2022/lib/resize-service.mjs +23 -0
  10. package/{client/fesm2020 → browser/fesm2022}/tnp-helpers.mjs +39 -35
  11. package/{client/fesm2020 → browser/fesm2022}/tnp-helpers.mjs.map +1 -1
  12. package/browser/lib/base-component.d.ts +1 -1
  13. package/browser/lib/base-formly-component.d.ts +1 -1
  14. package/browser/lib/condition-wait.d.ts +1 -1
  15. package/browser/lib/long-press.directive.d.ts +1 -1
  16. package/browser/lib/project.d.ts +2 -2
  17. package/browser/package.json +6 -12
  18. package/client/README.md +24 -24
  19. package/client/esm2022/lib/base-component.mjs +51 -0
  20. package/client/esm2022/lib/base-formly-component.mjs +114 -0
  21. package/client/esm2022/lib/helpers-browser.mjs +48 -0
  22. package/client/esm2022/lib/helpers.mjs +286 -0
  23. package/client/esm2022/lib/long-press.directive.mjs +114 -0
  24. package/client/esm2022/lib/project.mjs +431 -0
  25. package/client/esm2022/lib/resize-service.mjs +23 -0
  26. package/{browser/fesm2020 → client/fesm2022}/tnp-helpers.mjs +39 -35
  27. package/{browser/fesm2020 → client/fesm2022}/tnp-helpers.mjs.map +1 -1
  28. package/client/lib/base-component.d.ts +1 -1
  29. package/client/lib/base-formly-component.d.ts +1 -1
  30. package/client/lib/condition-wait.d.ts +1 -1
  31. package/client/lib/long-press.directive.d.ts +1 -1
  32. package/client/lib/project.d.ts +2 -2
  33. package/client/package.json +84 -82
  34. package/index.js.map +1 -1
  35. package/lib/angular.helper.js +3 -3
  36. package/lib/angular.helper.js.map +1 -1
  37. package/lib/base-component.js +3 -3
  38. package/lib/base-component.js.map +1 -1
  39. package/lib/base-formly-component.js +3 -3
  40. package/lib/base-formly-component.js.map +1 -1
  41. package/lib/condition-wait.d.ts +1 -1
  42. package/lib/condition-wait.js.map +1 -1
  43. package/lib/constants.js.map +1 -1
  44. package/lib/dual-component-ctrl.js +3 -3
  45. package/lib/dual-component-ctrl.js.map +1 -1
  46. package/lib/firedev-models.js.map +1 -1
  47. package/lib/git-project.js.map +1 -1
  48. package/lib/helpers-array-obj.js.map +1 -1
  49. package/lib/helpers-browser.js +1 -2
  50. package/lib/helpers-browser.js.map +1 -1
  51. package/lib/helpers-cli-tool.backend.js.map +1 -1
  52. package/lib/helpers-console-gui.js.map +1 -1
  53. package/lib/helpers-dependencies.backend.js.map +1 -1
  54. package/lib/helpers-environment.js.map +1 -1
  55. package/lib/helpers-file-folders.backend.js.map +1 -1
  56. package/lib/helpers-git.backend.js +20 -1
  57. package/lib/helpers-git.backend.js.map +1 -1
  58. package/lib/helpers-json5.backend.js.map +1 -1
  59. package/lib/helpers-morphi-framework.backend.js.map +1 -1
  60. package/lib/helpers-network.backend.js.map +1 -1
  61. package/lib/helpers-npm.backend.js.map +1 -1
  62. package/lib/helpers-numbers.js.map +1 -1
  63. package/lib/helpers-path.backend.js.map +1 -1
  64. package/lib/helpers-process.backend.js.map +1 -1
  65. package/lib/helpers-strings-regexes.js.map +1 -1
  66. package/lib/helpers-strings.js.map +1 -1
  67. package/lib/helpers-system-terminal.backend.js.map +1 -1
  68. package/lib/helpers-vscode.backend.js.map +1 -1
  69. package/lib/helpers.js.map +1 -1
  70. package/lib/index.js.map +1 -1
  71. package/lib/long-press.directive.js +1 -2
  72. package/lib/long-press.directive.js.map +1 -1
  73. package/lib/merge-helpers.backend.d.ts +1 -1
  74. package/lib/merge-helpers.backend.js.map +1 -1
  75. package/lib/project.d.ts +2 -2
  76. package/lib/project.js +4 -3
  77. package/lib/project.js.map +1 -1
  78. package/lib/resize-service.js +1 -2
  79. package/lib/resize-service.js.map +1 -1
  80. package/lib/ts-code/index.js.map +1 -1
  81. package/lib/ts-code/ts-code-extractor.d.ts +1 -1
  82. package/lib/ts-code/ts-code-extractor.js.map +1 -1
  83. package/lib/ts-code/ts-code-modifier.backend.js.map +1 -1
  84. package/package.json +5 -5
  85. package/package.json_devDependencies.json +222 -222
  86. package/package.json_tnp.json5 +49 -49
  87. package/tmp-environment.json +89 -87
  88. package/websql/README.md +24 -24
  89. package/websql/esm2022/lib/base-component.mjs +51 -0
  90. package/websql/esm2022/lib/base-formly-component.mjs +114 -0
  91. package/websql/esm2022/lib/helpers-browser.mjs +48 -0
  92. package/websql/esm2022/lib/helpers.mjs +286 -0
  93. package/websql/esm2022/lib/long-press.directive.mjs +114 -0
  94. package/websql/esm2022/lib/project.mjs +431 -0
  95. package/websql/esm2022/lib/resize-service.mjs +23 -0
  96. package/websql/{fesm2020 → fesm2022}/tnp-helpers.mjs +39 -35
  97. package/websql/{fesm2020 → fesm2022}/tnp-helpers.mjs.map +1 -1
  98. package/websql/lib/base-component.d.ts +1 -1
  99. package/websql/lib/base-formly-component.d.ts +1 -1
  100. package/websql/lib/condition-wait.d.ts +1 -1
  101. package/websql/lib/long-press.directive.d.ts +1 -1
  102. package/websql/lib/project.d.ts +2 -2
  103. package/websql/package.json +6 -12
  104. package/browser/esm2020/lib/base-component.mjs +0 -50
  105. package/browser/esm2020/lib/base-formly-component.mjs +0 -113
  106. package/browser/esm2020/lib/helpers-browser.mjs +0 -47
  107. package/browser/esm2020/lib/helpers.mjs +0 -286
  108. package/browser/esm2020/lib/long-press.directive.mjs +0 -113
  109. package/browser/esm2020/lib/project.mjs +0 -430
  110. package/browser/esm2020/lib/resize-service.mjs +0 -22
  111. package/browser/fesm2015/tnp-helpers.mjs +0 -1741
  112. package/browser/fesm2015/tnp-helpers.mjs.map +0 -1
  113. package/client/esm2020/lib/base-component.mjs +0 -50
  114. package/client/esm2020/lib/base-formly-component.mjs +0 -113
  115. package/client/esm2020/lib/helpers-browser.mjs +0 -47
  116. package/client/esm2020/lib/helpers.mjs +0 -286
  117. package/client/esm2020/lib/long-press.directive.mjs +0 -113
  118. package/client/esm2020/lib/project.mjs +0 -430
  119. package/client/esm2020/lib/resize-service.mjs +0 -22
  120. package/client/fesm2015/tnp-helpers.mjs +0 -1741
  121. package/client/fesm2015/tnp-helpers.mjs.map +0 -1
  122. package/websql/esm2020/lib/base-component.mjs +0 -50
  123. package/websql/esm2020/lib/base-formly-component.mjs +0 -113
  124. package/websql/esm2020/lib/helpers-browser.mjs +0 -47
  125. package/websql/esm2020/lib/helpers.mjs +0 -286
  126. package/websql/esm2020/lib/project.mjs +0 -430
  127. package/websql/esm2020/lib/resize-service.mjs +0 -22
  128. package/websql/fesm2015/tnp-helpers.mjs +0 -1741
  129. package/websql/fesm2015/tnp-helpers.mjs.map +0 -1
  130. /package/browser/{esm2020 → esm2022}/lib/angular.helper.mjs +0 -0
  131. /package/browser/{esm2020 → esm2022}/lib/condition-wait.mjs +0 -0
  132. /package/browser/{esm2020 → esm2022}/lib/constants.mjs +0 -0
  133. /package/browser/{esm2020 → esm2022}/lib/dual-component-ctrl.mjs +0 -0
  134. /package/browser/{esm2020 → esm2022}/lib/firedev-models.mjs +0 -0
  135. /package/browser/{esm2020 → esm2022}/lib/helpers-array-obj.mjs +0 -0
  136. /package/browser/{esm2020 → esm2022}/lib/helpers-console-gui.mjs +0 -0
  137. /package/browser/{esm2020 → esm2022}/lib/helpers-environment.mjs +0 -0
  138. /package/browser/{esm2020 → esm2022}/lib/helpers-numbers.mjs +0 -0
  139. /package/browser/{esm2020 → esm2022}/lib/helpers-strings-regexes.mjs +0 -0
  140. /package/browser/{esm2020 → esm2022}/lib/helpers-strings.mjs +0 -0
  141. /package/browser/{esm2020 → esm2022}/lib/index.mjs +0 -0
  142. /package/browser/{esm2020 → esm2022}/public-api.mjs +0 -0
  143. /package/browser/{esm2020 → esm2022}/tnp-helpers.mjs +0 -0
  144. /package/browser/{tnp-helpers.d.ts → index.d.ts} +0 -0
  145. /package/client/{esm2020 → esm2022}/lib/angular.helper.mjs +0 -0
  146. /package/client/{esm2020 → esm2022}/lib/condition-wait.mjs +0 -0
  147. /package/client/{esm2020 → esm2022}/lib/constants.mjs +0 -0
  148. /package/client/{esm2020 → esm2022}/lib/dual-component-ctrl.mjs +0 -0
  149. /package/client/{esm2020 → esm2022}/lib/firedev-models.mjs +0 -0
  150. /package/client/{esm2020 → esm2022}/lib/helpers-array-obj.mjs +0 -0
  151. /package/client/{esm2020 → esm2022}/lib/helpers-console-gui.mjs +0 -0
  152. /package/client/{esm2020 → esm2022}/lib/helpers-environment.mjs +0 -0
  153. /package/client/{esm2020 → esm2022}/lib/helpers-numbers.mjs +0 -0
  154. /package/client/{esm2020 → esm2022}/lib/helpers-strings-regexes.mjs +0 -0
  155. /package/client/{esm2020 → esm2022}/lib/helpers-strings.mjs +0 -0
  156. /package/client/{esm2020 → esm2022}/lib/index.mjs +0 -0
  157. /package/client/{esm2020 → esm2022}/public-api.mjs +0 -0
  158. /package/client/{esm2020 → esm2022}/tnp-helpers.mjs +0 -0
  159. /package/client/{tnp-helpers.d.ts → index.d.ts} +0 -0
  160. /package/websql/{esm2020 → esm2022}/lib/angular.helper.mjs +0 -0
  161. /package/websql/{esm2020 → esm2022}/lib/condition-wait.mjs +0 -0
  162. /package/websql/{esm2020 → esm2022}/lib/constants.mjs +0 -0
  163. /package/websql/{esm2020 → esm2022}/lib/dual-component-ctrl.mjs +0 -0
  164. /package/websql/{esm2020 → esm2022}/lib/firedev-models.mjs +0 -0
  165. /package/websql/{esm2020 → esm2022}/lib/helpers-array-obj.mjs +0 -0
  166. /package/websql/{esm2020 → esm2022}/lib/helpers-console-gui.mjs +0 -0
  167. /package/websql/{esm2020 → esm2022}/lib/helpers-environment.mjs +0 -0
  168. /package/websql/{esm2020 → esm2022}/lib/helpers-numbers.mjs +0 -0
  169. /package/websql/{esm2020 → esm2022}/lib/helpers-strings-regexes.mjs +0 -0
  170. /package/websql/{esm2020 → esm2022}/lib/helpers-strings.mjs +0 -0
  171. /package/websql/{esm2020 → esm2022}/lib/index.mjs +0 -0
  172. /package/websql/{esm2020 → esm2022}/public-api.mjs +0 -0
  173. /package/websql/{esm2020 → esm2022}/tnp-helpers.mjs +0 -0
  174. /package/websql/{tnp-helpers.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,48 @@
1
+ const key = Symbol('[firedev-helpers] helper browser key');
2
+ class HelpersBrowaser {
3
+ static { this.callbacks = []; }
4
+ static onInit(callback) {
5
+ this.callbacks.push(callback);
6
+ }
7
+ get win() {
8
+ let win = window;
9
+ return win;
10
+ }
11
+ get tabIdSessionStorage() {
12
+ return Number(this.win.sessionStorage?.tabId) || 0;
13
+ }
14
+ constructor(win) {
15
+ this.init = (() => {
16
+ const win = this.win;
17
+ if (!win[key]) {
18
+ win[key] = new HelpersBrowaser(win);
19
+ }
20
+ HelpersBrowaser.inst = win[key];
21
+ })();
22
+ win.addEventListener("beforeunload", (e) => {
23
+ win.sessionStorage.tabId = this.tabId;
24
+ return null;
25
+ });
26
+ setTimeout(() => {
27
+ if (win.sessionStorage?.tabId) {
28
+ // @ts-ignore
29
+ this.tabId = Number(win.sessionStorage.tabId);
30
+ win.sessionStorage.removeItem("tabId");
31
+ }
32
+ else {
33
+ // @ts-ignore
34
+ this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();
35
+ }
36
+ HelpersBrowaser.callbacks.forEach((c) => {
37
+ c(this);
38
+ });
39
+ });
40
+ }
41
+ static get instance() {
42
+ return HelpersBrowaser.inst;
43
+ }
44
+ }
45
+ export { HelpersBrowaser };
46
+ ;
47
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7QUFFMUQsTUFBYSxlQUFlO2FBRVgsY0FBUyxHQUFHLEVBQUUsQUFBTCxDQUFNO0lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFZLG1CQUFtQjtRQUM3QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQWNELFlBQW9CLEdBQVc7UUFUL0IsU0FBSSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUVyQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztZQUNELGVBQWUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFJSCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUVkLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUU7Z0JBQzdCLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDeEM7aUJBQ0k7Z0JBQ0gsYUFBYTtnQkFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzNFO1lBQ0QsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUdKLENBQUM7SUFHRCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQzs7U0F6RFUsZUFBZTtBQWtFM0IsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5jb25zdCBrZXkgPSBTeW1ib2woJ1tmaXJlZGV2LWhlbHBlcnNdIGhlbHBlciBicm93c2VyIGtleScpXG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQnJvd2FzZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhbGxiYWNrcyA9IFtdO1xuICBzdGF0aWMgb25Jbml0KGNhbGxiYWNrOiAoaW5zOiBIZWxwZXJzQnJvd2FzZXIpID0+IGFueSkge1xuICAgIHRoaXMuY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgZ2V0IHdpbigpIHtcbiAgICBsZXQgd2luID0gd2luZG93O1xuICAgIHJldHVybiB3aW47XG4gIH1cblxuICBwcml2YXRlIGdldCB0YWJJZFNlc3Npb25TdG9yYWdlKCkge1xuICAgIHJldHVybiBOdW1iZXIodGhpcy53aW4uc2Vzc2lvblN0b3JhZ2U/LnRhYklkKSB8fCAwO1xuICB9XG5cbiAgcmVhZG9ubHkgdGFiSWQ6IG51bWJlcjtcblxuICBwcml2YXRlIHN0YXRpYyBpbnN0OiBIZWxwZXJzQnJvd2FzZXI7XG4gIGluaXQgPSAoKCkgPT4ge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMud2luO1xuXG4gICAgaWYgKCF3aW5ba2V5XSkge1xuICAgICAgd2luW2tleV0gPSBuZXcgSGVscGVyc0Jyb3dhc2VyKHdpbik7XG4gICAgfVxuICAgIEhlbHBlcnNCcm93YXNlci5pbnN0ID0gd2luW2tleV07XG4gIH0pKCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih3aW46IFdpbmRvdykge1xuXG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgKGUpID0+IHtcbiAgICAgIHdpbi5zZXNzaW9uU3RvcmFnZS50YWJJZCA9IHRoaXMudGFiSWQ7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuXG4gICAgICBpZiAod2luLnNlc3Npb25TdG9yYWdlPy50YWJJZCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMudGFiSWQgPSBOdW1iZXIod2luLnNlc3Npb25TdG9yYWdlLnRhYklkKTtcbiAgICAgICAgd2luLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJ0YWJJZFwiKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMudGFiSWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICBIZWxwZXJzQnJvd2FzZXIuY2FsbGJhY2tzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgYyh0aGlzKTtcbiAgICAgIH0pO1xuICAgIH0pXG5cblxuICB9XG5cblxuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiBIZWxwZXJzQnJvd2FzZXIuaW5zdDtcbiAgfVxuXG59XG5cblxuXG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtYnJvd3Nlci50cyJdfQ==
@@ -0,0 +1,286 @@
1
+ import { _ } from 'tnp-core/websql';
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 { HelpersConsoleGui } from './helpers-console-gui';
7
+ import { conditionWait } from './condition-wait';
8
+ import { Helpers } from './index';
9
+ import { CLASS } from 'typescript-class-helpers/websql';
10
+ import { Morphi } from 'morphi/websql';
11
+ import { CoreHelpers } from 'tnp-core/websql';
12
+ import { HelpersNumber } from './helpers-numbers';
13
+ import { HelpersBrowaser } from './helpers-browser';
14
+ import { NgHelpers } from './angular.helper';
15
+ export function applyMixins(derivedCtor, baseCtors) {
16
+ baseCtors.forEach(baseCtor => {
17
+ Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
18
+ Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
19
+ });
20
+ });
21
+ }
22
+ // @ts-ignore
23
+ export class HelpersTnp extends CoreHelpers {
24
+ static get Instance() {
25
+ if (!HelpersTnp._instance) {
26
+ HelpersTnp._instance = new HelpersTnp();
27
+ }
28
+ return HelpersTnp._instance;
29
+ }
30
+ constructor(
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ arrays = new HelpersArrayObj(), strings = new HelpersStrings(), numbers = new HelpersNumber(), consoleGui = new HelpersConsoleGui(), browser = HelpersBrowaser.instance, ng = NgHelpers) {
45
+ super();
46
+ this.arrays = arrays;
47
+ this.strings = strings;
48
+ this.numbers = numbers;
49
+ this.consoleGui = consoleGui;
50
+ this.browser = browser;
51
+ this.ng = ng;
52
+ this.conditionWait = conditionWait;
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ /* */
65
+ /* */
66
+ /* */
67
+ /* */
68
+ /* */
69
+ /* */
70
+ /* */
71
+ /* */
72
+ /* */
73
+ /* */
74
+ /* */
75
+ /* */
76
+ /* */
77
+ /* */
78
+ /* */
79
+ /* */
80
+ /* */
81
+ /* */
82
+ /* */
83
+ /* */
84
+ /* */
85
+ /* */
86
+ /* */
87
+ /* */
88
+ /* */
89
+ /* */
90
+ /* */
91
+ /* */
92
+ /* */
93
+ /* */
94
+ /* */
95
+ /* */
96
+ /* */
97
+ /* */
98
+ /* */
99
+ /* */
100
+ /* */
101
+ /* */
102
+ /* */
103
+ /* */
104
+ /* */
105
+ /* */
106
+ /* */
107
+ /* */
108
+ /* */
109
+ /* */
110
+ /* */
111
+ /* */
112
+ /* */
113
+ /* */
114
+ /* */
115
+ /* */
116
+ /* */
117
+ /* */
118
+ /* */
119
+ /* */
120
+ /* */
121
+ /* */
122
+ /* */
123
+ /* */
124
+ /* */
125
+ /* */
126
+ /* */
127
+ /* */
128
+ /* */
129
+ /* */
130
+ /* */
131
+ this.applyMixins = applyMixins;
132
+ }
133
+ CLIWRAP(f, name) {
134
+ CLASS.setName(f, name);
135
+ return f;
136
+ }
137
+ /* */
138
+ /* */
139
+ /* */
140
+ /* */
141
+ /* */
142
+ /* */
143
+ /* */
144
+ /* */
145
+ /* */
146
+ /* */
147
+ /* */
148
+ /* */
149
+ /* */
150
+ /* */
151
+ /* */
152
+ /* */
153
+ /* */
154
+ /* */
155
+ /* */
156
+ /* */
157
+ /* */
158
+ /* */
159
+ /* */
160
+ /* */
161
+ /* */
162
+ /* */
163
+ /* */
164
+ /* */
165
+ /* */
166
+ /* */
167
+ /* */
168
+ /* */
169
+ /* */
170
+ /* */
171
+ /* */
172
+ /* */
173
+ /* */
174
+ /* */
175
+ async isElevated() {
176
+ /* */
177
+ /* */
178
+ /* */
179
+ /* */
180
+ }
181
+ /* */
182
+ /* */
183
+ /* */
184
+ /* */
185
+ /* */
186
+ /* */
187
+ /* */
188
+ /* */
189
+ /* */
190
+ /* */
191
+ /* */
192
+ /* */
193
+ /* */
194
+ /* */
195
+ /* */
196
+ /* */
197
+ /* */
198
+ /* */
199
+ /* */
200
+ /* */
201
+ /* */
202
+ /* */
203
+ /* */
204
+ /* */
205
+ async mesureExectionInMs(description, functionToExecute, ...functionArguments) {
206
+ var start = new Date();
207
+ await Helpers.runSyncOrAsync(functionToExecute, ...functionArguments);
208
+ //@ts-ignore
209
+ var end = new Date() - start;
210
+ if (Morphi.IsBrowser) {
211
+ Helpers.info(`Execution time: ${end.toString()}ms for "${description}"`);
212
+ }
213
+ /* */
214
+ /* */
215
+ return end;
216
+ }
217
+ mesureExectionInMsSync(description, functionToExecute) {
218
+ var start = new Date();
219
+ functionToExecute();
220
+ //@ts-ignore
221
+ var end = new Date() - start;
222
+ if (Morphi.IsBrowser) {
223
+ Helpers.log(`Execution time: ${end.toString()}ms for "${description}"`);
224
+ }
225
+ /* */
226
+ /* */
227
+ return end;
228
+ }
229
+ waitForCondition(conditionFn, howOfftenCheckInMs = 1000) {
230
+ return new Promise(async (resolve, reject) => {
231
+ const result = await Helpers.runSyncOrAsync(conditionFn);
232
+ if (result) {
233
+ resolve(void 0);
234
+ }
235
+ else {
236
+ setTimeout(() => {
237
+ Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {
238
+ resolve(void 0);
239
+ });
240
+ }, howOfftenCheckInMs);
241
+ }
242
+ });
243
+ }
244
+ getBrowserVerPath(moduleName, websql = false) {
245
+ /* */
246
+ /* */
247
+ /* */
248
+ /* */
249
+ /* */
250
+ }
251
+ getMethodName(obj, method) {
252
+ var methodName = null;
253
+ Object.getOwnPropertyNames(obj).forEach(prop => {
254
+ if (obj[prop] === method) {
255
+ methodName = prop;
256
+ }
257
+ });
258
+ if (methodName !== null) {
259
+ return methodName;
260
+ }
261
+ var proto = Object.getPrototypeOf(obj);
262
+ if (proto) {
263
+ return Helpers.getMethodName(proto, method);
264
+ }
265
+ return null;
266
+ }
267
+ fixWebpackEnv(env) {
268
+ _.forIn(env, (v, k) => {
269
+ const value = v;
270
+ if (value === 'true')
271
+ env[k] = true;
272
+ if (value === 'false')
273
+ env[k] = false;
274
+ });
275
+ }
276
+ }
277
+ applyMixins(HelpersTnp, [
278
+ HelpersStringsRegexes,
279
+ HelpersEnvironment,
280
+ /* */
281
+ /* */
282
+ /* */
283
+ ]);
284
+ ;
285
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers.ts
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUF3QmpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSTdDLE1BQU0sVUFBVSxXQUFXLENBQUMsV0FBZ0IsRUFBRSxTQUFnQjtJQUM1RCxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELGFBQWE7QUFDYixNQUFNLE9BQU8sVUFBVyxTQUFRLFdBQVc7SUFHbEMsTUFBTSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDekIsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRDtJQUNGLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFFTSxTQUFTLElBQUksZUFBZSxFQUFFLEVBQzlCLFVBQVUsSUFBSSxjQUFjLEVBQUUsRUFDOUIsVUFBVSxJQUFJLGFBQWEsRUFBRSxFQUM3QixhQUFhLElBQUksaUJBQWlCLEVBQUUsRUFFcEMsVUFBVSxlQUFlLENBQUMsUUFBUSxFQUNsQyxLQUFLLFNBQVM7UUFHckIsS0FBSyxFQUFFLENBQUM7UUFURCxXQUFNLEdBQU4sTUFBTSxDQUF3QjtRQUM5QixZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM5QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUVwQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUNsQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBNEh2QixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQXNEaEMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUdMLEtBQUs7UUFDTCxLQUFLO1FBRUksZ0JBQVcsR0FBRyxXQUFXLENBQUM7SUEvUGpDLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBVyxFQUFFLElBQVk7UUFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkIs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QUssQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FvRkY7QUFhRCxXQUFXLENBQUMsVUFBVSxFQUFFO0lBQ3RCLHFCQUFxQjtJQUNyQixrQkFBa0I7SUFDcEIsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0NBRUosQ0FBQyxDQUFDO0FBRUYsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNBcnJheU9iaiB9IGZyb20gJy4vaGVscGVycy1hcnJheS1vYmonO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3NSZWdleGVzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcyc7XG5pbXBvcnQgeyBIZWxwZXJzRW52aXJvbm1lbnQgfSBmcm9tICcuL2hlbHBlcnMtZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3MgfSBmcm9tICcuL2hlbHBlcnMtc3RyaW5ncyc7XG5pbXBvcnQgeyBIZWxwZXJzQ29uc29sZUd1aSB9IGZyb20gJy4vaGVscGVycy1jb25zb2xlLWd1aSc7XG5pbXBvcnQgeyBjb25kaXRpb25XYWl0IH0gZnJvbSAnLi9jb25kaXRpb24td2FpdCc7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IGNvbmZpZywgQ29uZmlnTW9kZWxzIH0gZnJvbSAndG5wLWNvbmZpZy93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbmltcG9ydCB7IE1vcnBoaSB9IGZyb20gJ21vcnBoaS93ZWJzcWwnO1xuaW1wb3J0IHsgQ29yZUhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVyc051bWJlciB9IGZyb20gJy4vaGVscGVycy1udW1iZXJzJztcblxuaW1wb3J0IHsgSGVscGVyc0Jyb3dhc2VyIH0gZnJvbSAnLi9oZWxwZXJzLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBOZ0hlbHBlcnMgfSBmcm9tICcuL2FuZ3VsYXIuaGVscGVyJztcblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1peGlucyhkZXJpdmVkQ3RvcjogYW55LCBiYXNlQ3RvcnM6IGFueVtdKSB7XG4gIGJhc2VDdG9ycy5mb3JFYWNoKGJhc2VDdG9yID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUpLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVyaXZlZEN0b3IucHJvdG90eXBlLCBuYW1lLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VDdG9yLnByb3RvdHlwZSwgbmFtZSkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNsYXNzIEhlbHBlcnNUbnAgZXh0ZW5kcyBDb3JlSGVscGVycyB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBIZWxwZXJzVG5wICYgQ29yZUhlbHBlcnM7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCkge1xuICAgIGlmICghSGVscGVyc1RucC5faW5zdGFuY2UpIHtcbiAgICAgIEhlbHBlcnNUbnAuX2luc3RhbmNlID0gbmV3IEhlbHBlcnNUbnAoKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlbHBlcnNUbnAuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIHB1YmxpYyBhcnJheXMgPSBuZXcgSGVscGVyc0FycmF5T2JqKCksXG4gICAgcHVibGljIHN0cmluZ3MgPSBuZXcgSGVscGVyc1N0cmluZ3MoKSxcbiAgICBwdWJsaWMgbnVtYmVycyA9IG5ldyBIZWxwZXJzTnVtYmVyKCksXG4gICAgcHVibGljIGNvbnNvbGVHdWkgPSBuZXcgSGVscGVyc0NvbnNvbGVHdWkoKSxcblxuICAgIHB1YmxpYyBicm93c2VyID0gSGVscGVyc0Jyb3dhc2VyLmluc3RhbmNlLFxuICAgIHB1YmxpYyBuZyA9IE5nSGVscGVyc1xuXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBDTElXUkFQKGY6IEZ1bmN0aW9uLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBDTEFTUy5zZXROYW1lKGYsIG5hbWUpO1xuICAgIHJldHVybiBmO1xuICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuICBhc3luYyBpc0VsZXZhdGVkKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbiAgYXN5bmMgbWVzdXJlRXhlY3Rpb25Jbk1zKFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGU6IEZ1bmN0aW9uLFxuICAgIC4uLmZ1bmN0aW9uQXJndW1lbnRzOiBhbnlbXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKVxuICAgIGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoZnVuY3Rpb25Ub0V4ZWN1dGUsIC4uLmZ1bmN0aW9uQXJndW1lbnRzKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB2YXIgZW5kID0gbmV3IERhdGUoKSAtIHN0YXJ0XG4gICAgaWYgKE1vcnBoaS5Jc0Jyb3dzZXIpIHtcbiAgICAgIEhlbHBlcnMuaW5mbyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuICBcbiAgICByZXR1cm4gZW5kO1xuICB9XG5cbiAgbWVzdXJlRXhlY3Rpb25Jbk1zU3luYyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiAoKSA9PiB2b2lkKTogbnVtYmVyIHtcbiAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZSgpXG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGUoKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB2YXIgZW5kID0gbmV3IERhdGUoKSAtIHN0YXJ0XG4gICAgaWYgKE1vcnBoaS5Jc0Jyb3dzZXIpIHtcbiAgICAgIEhlbHBlcnMubG9nKGBFeGVjdXRpb24gdGltZTogJHtlbmQudG9TdHJpbmcoKX1tcyBmb3IgXCIke2Rlc2NyaXB0aW9ufVwiYCk7XG4gICAgfVxuLyogKi9cbi8qICovXG4gIFxuICAgIHJldHVybiBlbmQ7XG4gIH1cblxuICBjb25kaXRpb25XYWl0ID0gY29uZGl0aW9uV2FpdDtcblxuICB3YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbkZuOiAoYW55KSA9PiBib29sZWFuLCBob3dPZmZ0ZW5DaGVja0luTXMgPSAxMDAwKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgSGVscGVycy5ydW5TeW5jT3JBc3luYyhjb25kaXRpb25Gbik7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJlc29sdmUodm9pZCAwKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgSGVscGVycy53YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbkZuLCBob3dPZmZ0ZW5DaGVja0luTXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh2b2lkIDApO1xuICAgICAgICAgIH0pXG4gICAgICAgIH0sIGhvd09mZnRlbkNoZWNrSW5Ncyk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldEJyb3dzZXJWZXJQYXRoKG1vZHVsZU5hbWU/OiBzdHJpbmcsIHdlYnNxbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuICBnZXRNZXRob2ROYW1lKG9iaiwgbWV0aG9kKTogc3RyaW5nIHtcbiAgICB2YXIgbWV0aG9kTmFtZSA9IG51bGw7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgaWYgKG9ialtwcm9wXSA9PT0gbWV0aG9kKSB7XG4gICAgICAgIG1ldGhvZE5hbWUgPSBwcm9wO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtZXRob2ROYW1lO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopO1xuICAgIGlmIChwcm90bykge1xuICAgICAgcmV0dXJuIEhlbHBlcnMuZ2V0TWV0aG9kTmFtZShwcm90bywgbWV0aG9kKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmaXhXZWJwYWNrRW52KGVudjogT2JqZWN0KSB7XG4gICAgXy5mb3JJbihlbnYsICh2LCBrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdiBhcyBhbnk7XG4gICAgICBpZiAodmFsdWUgPT09ICd0cnVlJykgZW52W2tdID0gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykgZW52W2tdID0gZmFsc2U7XG4gICAgfSlcbiAgfVxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuLyogKi9cbi8qICovXG4gIFxuICBwdWJsaWMgYXBwbHlNaXhpbnMgPSBhcHBseU1peGlucztcbn1cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGludGVyZmFjZSBIZWxwZXJzVG5wIGV4dGVuZHNcbiAgSGVscGVyc1N0cmluZ3NSZWdleGVzLFxuICBIZWxwZXJzRW52aXJvbm1lbnRcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxueyB9XG5cbmFwcGx5TWl4aW5zKEhlbHBlcnNUbnAsIFtcbiAgSGVscGVyc1N0cmluZ3NSZWdleGVzLFxuICBIZWxwZXJzRW52aXJvbm1lbnQsXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXSk7XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy50cyJdfQ==
@@ -0,0 +1,114 @@
1
+ import { Directive, Input, Output, EventEmitter, HostBinding, HostListener } from '@angular/core'; /* */
2
+ /* */
3
+ /* */
4
+ /* */
5
+ /* */
6
+ /* */
7
+ /* */
8
+ import { _ } from 'tnp-core/websql';
9
+ import { Log, Level } from 'ng2-logger/websql';
10
+ import * as i0 from "@angular/core";
11
+ const log = Log.create(`[firedev-helpers] long-press`, Level.__NOTHING);
12
+ class LongPress {
13
+ constructor() {
14
+ this.pressDuration = 1000;
15
+ this.onLongPress = new EventEmitter();
16
+ this.onLongPressing = new EventEmitter();
17
+ this.onLongPressEnd = new EventEmitter();
18
+ this.mouseX = 0;
19
+ this.mouseY = 0;
20
+ this.allowTrigger = false;
21
+ this.triggerEnd = _.debounce(() => {
22
+ this.endPress();
23
+ }, 500);
24
+ }
25
+ get press() { return this.pressing; }
26
+ get longPress() { return this.longPressing; }
27
+ onMouseDown(event) {
28
+ log.d(`MOUSE DOWN `);
29
+ if (event.which !== 1)
30
+ return;
31
+ this.allowTrigger = true;
32
+ this.mouseX = event.clientX;
33
+ this.mouseY = event.clientY;
34
+ this.pressing = true;
35
+ this.longPressing = false;
36
+ this.timeout = setTimeout(() => {
37
+ if (this.allowTrigger) {
38
+ this.longPressing = true;
39
+ log.d(`long pressing start pressDuration:${this.pressDuration} `);
40
+ this.onLongPress.emit(event);
41
+ this.loop(event);
42
+ }
43
+ }, this.pressDuration);
44
+ this.loop(event);
45
+ }
46
+ onMouseMove(event) {
47
+ if (this.pressing && !this.longPressing) {
48
+ const xThres = (event.clientX - this.mouseX) > 10;
49
+ const yThres = (event.clientY - this.mouseY) > 10;
50
+ if (xThres || yThres) {
51
+ this.endPress();
52
+ }
53
+ }
54
+ }
55
+ loop(event) {
56
+ if (this.longPressing) {
57
+ this.timeout = setTimeout(() => {
58
+ log.d(`emil longpressing`);
59
+ this.triggerEnd();
60
+ this.onLongPressing.emit(event);
61
+ this.loop(event);
62
+ }, 50);
63
+ }
64
+ }
65
+ endPress(emit = true) {
66
+ this.allowTrigger = false;
67
+ clearTimeout(this.timeout);
68
+ this.longPressing = false;
69
+ this.pressing = false;
70
+ if (emit) {
71
+ log.d(`EMIT END`);
72
+ this.onLongPressEnd.emit(true);
73
+ }
74
+ else {
75
+ log.d(`NOT EMIT END`);
76
+ }
77
+ }
78
+ onMouseUp() {
79
+ this.endPress(false);
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LongPress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.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 }); }
83
+ }
84
+ export { LongPress };
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LongPress, decorators: [{
86
+ type: Directive,
87
+ args: [{ selector: '[long-press]' }]
88
+ }], propDecorators: { pressDuration: [{
89
+ type: Input
90
+ }], onLongPress: [{
91
+ type: Output
92
+ }], onLongPressing: [{
93
+ type: Output
94
+ }], onLongPressEnd: [{
95
+ type: Output
96
+ }], press: [{
97
+ type: HostBinding,
98
+ args: ['class.press']
99
+ }], longPress: [{
100
+ type: HostBinding,
101
+ args: ['class.longpress']
102
+ }], onMouseDown: [{
103
+ type: HostListener,
104
+ args: ['mousedown', ['$event']]
105
+ }], onMouseMove: [{
106
+ type: HostListener,
107
+ args: ['mousemove', ['$event']]
108
+ }], onMouseUp: [{
109
+ type: HostListener,
110
+ args: ['mouseup']
111
+ }] } });
112
+ ;
113
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/long-press.directive.ts
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9uZy1wcmVzcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2xvbmctcHJlc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBSSxTQUFTLEVBQUksS0FBSyxFQUFJLE1BQU0sRUFBSSxZQUFZLEVBQUksV0FBVyxFQUFJLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQyxDQUFBLEtBQUs7QUFDbkgsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsOEJBQThCLEVBQ2pELEtBQUssQ0FBQyxTQUFTLENBQ2xCLENBQUE7QUFFRCxNQUNhLFNBQVM7SUFEdEI7UUFHVyxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUU1QixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt6RCxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFRM0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7S0FvRVI7SUE3RUMs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QUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs4R0F6RlUsU0FBUztrR0FBVCxTQUFTOztTQUFULFNBQVM7MkZBQVQsU0FBUztrQkFEckIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7OEJBRzVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBU0gsS0FBSztzQkFEUixXQUFXO3VCQUFDLGFBQWE7Z0JBSXRCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxpQkFBaUI7Z0JBUzlCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJyQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9DckMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVM7O0FBT3hCLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0VBQW9FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgICBEaXJlY3RpdmUsICAgSW5wdXQsICAgT3V0cHV0LCAgIEV2ZW50RW1pdHRlciwgICBIb3N0QmluZGluZywgICBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvd2Vic3FsJztcbmNvbnN0IGxvZyA9IExvZy5jcmVhdGUoYFtmaXJlZGV2LWhlbHBlcnNdIGxvbmctcHJlc3NgXG4gICwgTGV2ZWwuX19OT1RISU5HXG4pXG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tsb25nLXByZXNzXScgfSlcbmV4cG9ydCBjbGFzcyBMb25nUHJlc3Mge1xuXG4gIEBJbnB1dCgpIHByZXNzRHVyYXRpb246IG51bWJlciA9IDEwMDA7XG5cbiAgQE91dHB1dCgpIG9uTG9uZ1ByZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uTG9uZ1ByZXNzaW5nOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uTG9uZ1ByZXNzRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHByZXNzaW5nOiBib29sZWFuO1xuICBwcml2YXRlIGxvbmdQcmVzc2luZzogYm9vbGVhbjtcbiAgcHJpdmF0ZSB0aW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgbW91c2VYOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG1vdXNlWTogbnVtYmVyID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnByZXNzJylcbiAgZ2V0IHByZXNzKCkgeyByZXR1cm4gdGhpcy5wcmVzc2luZzsgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubG9uZ3ByZXNzJylcbiAgZ2V0IGxvbmdQcmVzcygpIHsgcmV0dXJuIHRoaXMubG9uZ1ByZXNzaW5nOyB9XG5cbiAgYWxsb3dUcmlnZ2VyID0gZmFsc2U7XG4gIHRyaWdnZXJFbmQgPSBfLmRlYm91bmNlKCgpID0+IHtcbiAgICB0aGlzLmVuZFByZXNzKCk7XG4gIH0sIDUwMClcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBvbk1vdXNlRG93bihldmVudCkge1xuXG4gICAgbG9nLmQoYE1PVVNFIERPV04gYCk7XG5cbiAgICBpZiAoZXZlbnQud2hpY2ggIT09IDEpIHJldHVybjtcbiAgICB0aGlzLmFsbG93VHJpZ2dlciA9IHRydWU7XG5cbiAgICB0aGlzLm1vdXNlWCA9IGV2ZW50LmNsaWVudFg7XG4gICAgdGhpcy5tb3VzZVkgPSBldmVudC5jbGllbnRZO1xuXG4gICAgdGhpcy5wcmVzc2luZyA9IHRydWU7XG4gICAgdGhpcy5sb25nUHJlc3NpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWxsb3dUcmlnZ2VyKSB7XG4gICAgICAgIHRoaXMubG9uZ1ByZXNzaW5nID0gdHJ1ZTtcbiAgICAgICAgbG9nLmQoYGxvbmcgcHJlc3Npbmcgc3RhcnQgIHByZXNzRHVyYXRpb246JHt0aGlzLnByZXNzRHVyYXRpb259IGApO1xuICAgICAgICB0aGlzLm9uTG9uZ1ByZXNzLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmxvb3AoZXZlbnQpO1xuICAgICAgfVxuICAgIH0sIHRoaXMucHJlc3NEdXJhdGlvbik7XG5cbiAgICB0aGlzLmxvb3AoZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZU1vdmUoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5wcmVzc2luZyAmJiAhdGhpcy5sb25nUHJlc3NpbmcpIHtcbiAgICAgIGNvbnN0IHhUaHJlcyA9IChldmVudC5jbGllbnRYIC0gdGhpcy5tb3VzZVgpID4gMTA7XG4gICAgICBjb25zdCB5VGhyZXMgPSAoZXZlbnQuY2xpZW50WSAtIHRoaXMubW91c2VZKSA+IDEwO1xuICAgICAgaWYgKHhUaHJlcyB8fCB5VGhyZXMpIHtcbiAgICAgICAgdGhpcy5lbmRQcmVzcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxvb3AoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5sb25nUHJlc3NpbmcpIHtcbiAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsb2cuZChgZW1pbCBsb25ncHJlc3NpbmdgKVxuICAgICAgICB0aGlzLnRyaWdnZXJFbmQoKTtcbiAgICAgICAgdGhpcy5vbkxvbmdQcmVzc2luZy5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5sb29wKGV2ZW50KTtcbiAgICAgIH0sIDUwKTtcbiAgICB9XG4gIH1cblxuICBlbmRQcmVzcyhlbWl0ID0gdHJ1ZSkge1xuICAgIHRoaXMuYWxsb3dUcmlnZ2VyID0gZmFsc2U7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgdGhpcy5sb25nUHJlc3NpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnByZXNzaW5nID0gZmFsc2U7XG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIGxvZy5kKGBFTUlUIEVORGApXG4gICAgICB0aGlzLm9uTG9uZ1ByZXNzRW5kLmVtaXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kKGBOT1QgRU1JVCBFTkRgKVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnKVxuICBvbk1vdXNlVXAoKSB7XG4gICAgdGhpcy5lbmRQcmVzcyhmYWxzZSk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2xvbmctcHJlc3MuZGlyZWN0aXZlLnRzIl19