@acorex/core 6.5.28 → 6.5.30

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 (144) hide show
  1. package/README.md +3 -3
  2. package/acorex-core.d.ts +5 -0
  3. package/esm2020/acorex-core.mjs +5 -0
  4. package/esm2020/lib/classes/base-page.class.mjs +28 -0
  5. package/esm2020/lib/classes/color.class.mjs +49 -0
  6. package/esm2020/lib/classes/datetime.class.mjs +314 -0
  7. package/esm2020/lib/classes/menu.class.mjs +27 -0
  8. package/esm2020/lib/classes/navigator.class.mjs +2 -0
  9. package/esm2020/lib/classes/popup.class.mjs +2 -0
  10. package/esm2020/lib/classes/promise.class.mjs +19 -0
  11. package/esm2020/lib/classes/sectionlist.class.mjs +2 -0
  12. package/esm2020/lib/classes/select.class.mjs +3 -0
  13. package/esm2020/lib/core.module.mjs +27 -0
  14. package/esm2020/lib/error/error.class.mjs +2 -0
  15. package/esm2020/lib/error/error.module.mjs +19 -0
  16. package/esm2020/lib/error/error.service.mjs +21 -0
  17. package/esm2020/lib/events/keyboard.mjs +2 -0
  18. package/esm2020/lib/http/http-error.class.mjs +2 -0
  19. package/esm2020/lib/http/http-events.interceptor.mjs +3 -0
  20. package/esm2020/lib/http/http-request.class.mjs +2 -0
  21. package/esm2020/lib/http/http-result.class.mjs +21 -0
  22. package/esm2020/lib/http/http.module.mjs +37 -0
  23. package/esm2020/lib/http/http.service.mjs +145 -0
  24. package/{src → esm2020}/lib/locale/en.json +255 -255
  25. package/{src → esm2020}/lib/locale/fa.json +245 -245
  26. package/esm2020/lib/pipe/datetime.pipe.mjs +25 -0
  27. package/esm2020/lib/pipe/htmlToText.pipe.mjs +25 -0
  28. package/esm2020/lib/platform/index.mjs +2 -0
  29. package/esm2020/lib/platform/platform.service.mjs +150 -0
  30. package/esm2020/lib/services/config.mjs +29 -0
  31. package/esm2020/lib/services/event.service.mjs +36 -0
  32. package/esm2020/lib/services/navigator.service.mjs +10 -0
  33. package/esm2020/lib/services/storage.service.mjs +16 -0
  34. package/esm2020/lib/translator/translator.mjs +26 -0
  35. package/esm2020/lib/translator/translator.module.mjs +25 -0
  36. package/esm2020/lib/translator/translator.pipe.mjs +24 -0
  37. package/esm2020/lib/translator/translator.service.mjs +21 -0
  38. package/esm2020/lib/utils/array/array-util.mjs +133 -0
  39. package/esm2020/lib/utils/html/html-util.mjs +192 -0
  40. package/esm2020/lib/utils/html/html.module.mjs +19 -0
  41. package/esm2020/lib/utils/math/math-util.mjs +6 -0
  42. package/esm2020/lib/utils/object/object-util.mjs +83 -0
  43. package/esm2020/lib/utils/render/on-demand-preload-strategy.service.mjs +20 -0
  44. package/esm2020/lib/utils/render/render.service.mjs +103 -0
  45. package/esm2020/lib/utils/render/rendering.module.mjs +35 -0
  46. package/esm2020/lib/utils/scroll/scroll.directive.mjs +54 -0
  47. package/esm2020/lib/utils/scroll/scroll.module.mjs +19 -0
  48. package/esm2020/lib/utils/separator/separator.module.mjs +19 -0
  49. package/esm2020/lib/utils/separator/separator.pipe.mjs +33 -0
  50. package/esm2020/public-api.mjs +44 -0
  51. package/fesm2015/acorex-core.mjs +2274 -0
  52. package/fesm2015/acorex-core.mjs.map +1 -0
  53. package/fesm2020/acorex-core.mjs +2270 -0
  54. package/fesm2020/acorex-core.mjs.map +1 -0
  55. package/lib/classes/base-page.class.d.ts +13 -0
  56. package/lib/classes/color.class.d.ts +17 -0
  57. package/lib/classes/datetime.class.d.ts +63 -0
  58. package/lib/classes/menu.class.d.ts +34 -0
  59. package/{src/lib/classes/navigator.class.ts → lib/classes/navigator.class.d.ts} +5 -5
  60. package/{src/lib/classes/popup.class.ts → lib/classes/popup.class.d.ts} +12 -14
  61. package/lib/classes/promise.class.d.ts +7 -0
  62. package/{src/lib/classes/sectionlist.class.ts → lib/classes/sectionlist.class.d.ts} +8 -8
  63. package/lib/classes/select.class.d.ts +7 -0
  64. package/lib/core.module.d.ts +9 -0
  65. package/{src/lib/error/error.class.ts → lib/error/error.class.d.ts} +4 -4
  66. package/lib/error/error.module.d.ts +7 -0
  67. package/lib/error/error.service.d.ts +13 -0
  68. package/{src/lib/events/keyboard.ts → lib/events/keyboard.d.ts} +2 -5
  69. package/{src/lib/http/http-error.class.ts → lib/http/http-error.class.d.ts} +7 -7
  70. package/{src/lib/http/http-events.interceptor.ts → lib/http/http-events.interceptor.d.ts} +10 -14
  71. package/{src/lib/http/http-request.class.ts → lib/http/http-request.class.d.ts} +14 -14
  72. package/lib/http/http-result.class.d.ts +11 -0
  73. package/lib/http/http.module.d.ts +10 -0
  74. package/lib/http/http.service.d.ts +23 -0
  75. package/lib/pipe/datetime.pipe.d.ts +8 -0
  76. package/lib/pipe/htmlToText.pipe.d.ts +7 -0
  77. package/lib/platform/index.d.ts +1 -0
  78. package/lib/platform/platform.service.d.ts +26 -0
  79. package/lib/services/config.d.ts +9 -0
  80. package/lib/services/event.service.d.ts +9 -0
  81. package/lib/services/navigator.service.d.ts +8 -0
  82. package/lib/services/storage.service.d.ts +7 -0
  83. package/lib/translator/translator.d.ts +9 -0
  84. package/lib/translator/translator.module.d.ts +8 -0
  85. package/lib/translator/translator.pipe.d.ts +8 -0
  86. package/lib/translator/translator.service.d.ts +8 -0
  87. package/lib/utils/array/array-util.d.ts +6 -0
  88. package/lib/utils/html/html-util.d.ts +62 -0
  89. package/lib/utils/html/html.module.d.ts +8 -0
  90. package/lib/utils/math/math-util.d.ts +3 -0
  91. package/lib/utils/object/object-util.d.ts +7 -0
  92. package/lib/utils/render/on-demand-preload-strategy.service.d.ts +10 -0
  93. package/lib/utils/render/render.service.d.ts +18 -0
  94. package/lib/utils/render/rendering.module.d.ts +8 -0
  95. package/lib/utils/scroll/scroll.directive.d.ts +18 -0
  96. package/lib/utils/scroll/scroll.module.d.ts +8 -0
  97. package/lib/utils/separator/separator.module.d.ts +8 -0
  98. package/lib/utils/separator/separator.pipe.d.ts +8 -0
  99. package/package.json +33 -13
  100. package/{src/public-api.ts → public-api.d.ts} +43 -53
  101. package/karma.conf.js +0 -32
  102. package/ng-package.json +0 -10
  103. package/src/lib/classes/base-page.class.ts +0 -29
  104. package/src/lib/classes/color.class.ts +0 -61
  105. package/src/lib/classes/datetime.class.ts +0 -373
  106. package/src/lib/classes/menu.class.ts +0 -37
  107. package/src/lib/classes/promise.class.ts +0 -25
  108. package/src/lib/classes/select.class.ts +0 -7
  109. package/src/lib/core.module.ts +0 -21
  110. package/src/lib/error/error.module.ts +0 -13
  111. package/src/lib/error/error.service.ts +0 -23
  112. package/src/lib/error/index.ts +0 -3
  113. package/src/lib/http/http-result.class.ts +0 -34
  114. package/src/lib/http/http.module.ts +0 -25
  115. package/src/lib/http/http.service.ts +0 -159
  116. package/src/lib/pipe/datetime.pipe.ts +0 -20
  117. package/src/lib/pipe/htmlToText.pipe.ts +0 -18
  118. package/src/lib/platform/index.ts +0 -1
  119. package/src/lib/platform/platform.service.ts +0 -223
  120. package/src/lib/services/config.ts +0 -36
  121. package/src/lib/services/event.service.ts +0 -31
  122. package/src/lib/services/navigator.service.ts +0 -8
  123. package/src/lib/services/storage.service.ts +0 -11
  124. package/src/lib/translator/translator.module.ts +0 -19
  125. package/src/lib/translator/translator.pipe.ts +0 -22
  126. package/src/lib/translator/translator.service.ts +0 -19
  127. package/src/lib/translator/translator.ts +0 -31
  128. package/src/lib/utils/array/array-util.ts +0 -140
  129. package/src/lib/utils/html/html-util.ts +0 -264
  130. package/src/lib/utils/html/html.module.ts +0 -11
  131. package/src/lib/utils/math/math-util.ts +0 -5
  132. package/src/lib/utils/object/object-util.ts +0 -87
  133. package/src/lib/utils/render/on-demand-preload-strategy.service.ts +0 -25
  134. package/src/lib/utils/render/render.service.ts +0 -110
  135. package/src/lib/utils/render/rendering.module.ts +0 -25
  136. package/src/lib/utils/scroll/scroll.directive.ts +0 -35
  137. package/src/lib/utils/scroll/scroll.module.ts +0 -11
  138. package/src/lib/utils/separator/separator.module.ts +0 -11
  139. package/src/lib/utils/separator/separator.pipe.ts +0 -27
  140. package/src/test.ts +0 -28
  141. package/tsconfig.lib.json +0 -25
  142. package/tsconfig.lib.prod.json +0 -6
  143. package/tsconfig.spec.json +0 -18
  144. package/tslint.json +0 -17
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2V2ZW50cy9rZXlib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBBWEtleWJvYXJkRXZlbnQgZXh0ZW5kcyBLZXlib2FyZEV2ZW50IHtcblxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvaHR0cC9odHRwLWVycm9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElIdHRwRXJyb3Ige1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgc3RhdHVzPzogbnVtYmVyO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgaGFuZGxlZDogYm9vbGVhbjtcbiAgICBlcnJvcjogYW55IHwgbnVsbFxufSJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken('ax.http.events');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1ldmVudHMuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2h0dHAvaHR0cC1ldmVudHMuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsZ0JBQWdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIdHRwRXJyb3IgfSBmcm9tICcuL2h0dHAtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYSHR0cFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi9odHRwLXJlcXVlc3QuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgQVhfSFRUUF9FVkVOVF9JTlRFUkNFUFRPUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWEh0dHBFdmVudEludGVyY2VwdG9yPignYXguaHR0cC5ldmVudHMnKTtcblxuZXhwb3J0IGludGVyZmFjZSBBWEh0dHBFdmVudEludGVyY2VwdG9yIHtcbiAgICBiZWdpbihyZXF1ZXN0OiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8QVhIdHRwUmVxdWVzdE9wdGlvbnM+O1xuICAgIHN1Y2Nlc3MocmVxdWVzdDogQVhIdHRwUmVxdWVzdE9wdGlvbnMsIHJlc3VsdDogYW55KTogUHJvbWlzZTxhbnk+O1xuICAgIGNvbXBsZXRlKHJlcXVlc3Q6IEFYSHR0cFJlcXVlc3RPcHRpb25zKTtcbiAgICBlcnJvcihyZXF1ZXN0OiBBWEh0dHBSZXF1ZXN0T3B0aW9ucywgZXJyb3I6IElIdHRwRXJyb3IpO1xufVxuXG5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9odHRwL2h0dHAtcmVxdWVzdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWEh0dHBSZXF1ZXN0T3B0aW9ucyB7XG4gICAgdXJsPzogYW55LFxuICAgIHBhcmFtcz86IHtcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBhbnk7XG4gICAgfSxcbiAgICBib2R5Pzoge1xuICAgICAgICBbcGFyYW06IHN0cmluZ106IGFueTtcbiAgICB9LFxuICAgIGhlYWRlcnM/OiB7XG4gICAgICAgIFtoZWFkZXI6IHN0cmluZ106IGFueTtcbiAgICB9LFxuICAgIG1ldGhvZD86ICdnZXQnIHwgJ3Bvc3QnIHwgJ3B1dCcgfCAnZGVsZXRlJztcbiAgICByZXNwb25zZVR5cGU/OiBhbnk7XG59Il19
@@ -0,0 +1,21 @@
1
+ export class HttpResult {
2
+ constructor(executor) {
3
+ this._executor = executor;
4
+ setTimeout(() => {
5
+ this._executor(this.resultAction, this.errorAction, this.completeAction);
6
+ }, 50);
7
+ }
8
+ result(action) {
9
+ this.resultAction = action;
10
+ return this;
11
+ }
12
+ error(action) {
13
+ this.errorAction = action;
14
+ return this;
15
+ }
16
+ complete(action) {
17
+ this.completeAction = action;
18
+ return this;
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXN1bHQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2h0dHAvaHR0cC1yZXN1bHQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFFbkIsWUFDSSxRQUlTO1FBRVQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBTUQsTUFBTSxDQUFDLE1BQXVCO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBZ0M7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFrQjtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSHR0cEVycm9yIH0gZnJvbSAnLi9odHRwLWVycm9yLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIEh0dHBSZXN1bHQ8VD4ge1xuICAgIHByaXZhdGUgX2V4ZWN1dG9yOiAocmVzdWx0OiAoZT86IFQpID0+IHZvaWQsIGVycm9yOiAoZT86IElIdHRwRXJyb3IpID0+IHZvaWQsIGNvbXBsZXRlOiAoKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBleGVjdXRvcjogKFxuICAgICAgICAgICAgcmVzdWx0OiAoZT86IFQpID0+IHZvaWQsXG4gICAgICAgICAgICBlcnJvcjogKGU/OiBJSHR0cEVycm9yKSA9PiB2b2lkLFxuICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHZvaWRcbiAgICAgICAgKSA9PiB2b2lkXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2V4ZWN1dG9yID0gZXhlY3V0b3I7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZXhlY3V0b3IodGhpcy5yZXN1bHRBY3Rpb24sIHRoaXMuZXJyb3JBY3Rpb24sIHRoaXMuY29tcGxldGVBY3Rpb24pO1xuICAgICAgICB9LCA1MCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN1bHRBY3Rpb246IChlPzogVCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIGVycm9yQWN0aW9uOiAoZT86IElIdHRwRXJyb3IpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBjb21wbGV0ZUFjdGlvbjogKCkgPT4gdm9pZDtcblxuICAgIHJlc3VsdChhY3Rpb246IChlPzogVCkgPT4gdm9pZCk6IEh0dHBSZXN1bHQ8VD4geyBcbiAgICAgICAgdGhpcy5yZXN1bHRBY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBlcnJvcihhY3Rpb246IChlPzogSUh0dHBFcnJvcikgPT4gdm9pZCk6IEh0dHBSZXN1bHQ8VD4ge1xuICAgICAgICB0aGlzLmVycm9yQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgY29tcGxldGUoYWN0aW9uOiAoKSA9PiB2b2lkKTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn0iXX0=
@@ -0,0 +1,37 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { HttpClientModule } from '@angular/common/http';
4
+ import { AXHttpService } from './http.service';
5
+ import * as i0 from "@angular/core";
6
+ export class AXHttpModule {
7
+ static forRoot() {
8
+ return {
9
+ ngModule: AXHttpModule,
10
+ providers: [AXHttpService]
11
+ };
12
+ }
13
+ }
14
+ AXHttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ AXHttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
16
+ HttpClientModule], exports: [HttpClientModule] });
17
+ AXHttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpModule, providers: [
18
+ AXHttpService
19
+ ], imports: [[
20
+ CommonModule,
21
+ HttpClientModule
22
+ ], HttpClientModule] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ declarations: [],
27
+ imports: [
28
+ CommonModule,
29
+ HttpClientModule
30
+ ],
31
+ exports: [HttpClientModule],
32
+ providers: [
33
+ AXHttpService
34
+ ]
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL2h0dHAvaHR0cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjL0MsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQzNCLENBQUM7SUFDSixDQUFDOzswR0FOVSxZQUFZOzJHQUFaLFlBQVksWUFSckIsWUFBWTtRQUNaLGdCQUFnQixhQUVSLGdCQUFnQjsyR0FLZixZQUFZLGFBSlo7UUFDVCxhQUFhO0tBQ2QsWUFQUTtZQUNQLFlBQVk7WUFDWixnQkFBZ0I7U0FDakIsRUFDUyxnQkFBZ0I7NEZBS2YsWUFBWTtrQkFYeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsU0FBUyxFQUFFO3dCQUNULGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBWEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIEFYSHR0cFNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWEh0dHBNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYSHR0cE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhIdHRwTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbQVhIdHRwU2VydmljZV1cbiAgICB9O1xuICB9XG59Il19
@@ -0,0 +1,145 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
3
+ import { HttpResult } from './http-result.class';
4
+ import { AX_HTTP_EVENT_INTERCEPTOR } from './http-events.interceptor';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ // import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';
8
+ // import { of, concat, throwError } from 'rxjs';
9
+ export class AXHttpService {
10
+ constructor(http, injector) {
11
+ this.http = http;
12
+ this.injector = injector;
13
+ this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);
14
+ }
15
+ get(url, config = {}) {
16
+ config.url = url;
17
+ config.method = "get";
18
+ return this.request(config);
19
+ }
20
+ post(url, config = {}) {
21
+ config.url = url;
22
+ config.method = "post";
23
+ return this.request(config);
24
+ }
25
+ delete(url, config = {}) {
26
+ config.url = url;
27
+ config.method = "delete";
28
+ return this.request(config);
29
+ }
30
+ put(url, config = {}) {
31
+ config.url = url;
32
+ config.method = "put";
33
+ return this.request(config);
34
+ }
35
+ request(config) {
36
+ return new HttpResult((result, error, complete) => {
37
+ this.handleBegin(config).then(c => {
38
+ this.http
39
+ .request(config.method, config.url, this.mapOptions(config))
40
+ //.pipe(this.retry)
41
+ .subscribe(data => {
42
+ this.handleResult(data, result, complete, config);
43
+ }, c => {
44
+ this.handleError(c, error, complete, config);
45
+ });
46
+ });
47
+ });
48
+ }
49
+ handleResult(data, result, complete, config) {
50
+ if (this.interceptor) {
51
+ this.interceptor.success(config, data).then(c => {
52
+ if (result)
53
+ result(c);
54
+ this.handleComplete(complete, config);
55
+ });
56
+ }
57
+ else {
58
+ //
59
+ if (result)
60
+ result(data);
61
+ this.handleComplete(complete, config);
62
+ }
63
+ }
64
+ handleBegin(config) {
65
+ return new Promise((resolve) => {
66
+ if (!config.headers)
67
+ config.headers = {};
68
+ if (!config.params)
69
+ config.params = {};
70
+ //
71
+ if (this.interceptor) {
72
+ this.interceptor.begin(config).then(c => {
73
+ resolve(c);
74
+ });
75
+ }
76
+ else {
77
+ resolve(config);
78
+ }
79
+ });
80
+ }
81
+ handleComplete(complete, config) {
82
+ if (complete)
83
+ complete();
84
+ if (this.interceptor)
85
+ this.interceptor.complete(config);
86
+ }
87
+ handleError(c, error, complete, config) {
88
+ let r = {
89
+ message: c.message,
90
+ status: c.status,
91
+ code: c.status?.toString(),
92
+ handled: false,
93
+ error: c.error
94
+ };
95
+ if (error) {
96
+ error(r);
97
+ }
98
+ if (!r.handled) {
99
+ if (this.interceptor)
100
+ this.interceptor.error(config, r);
101
+ }
102
+ this.handleComplete(complete, config);
103
+ }
104
+ mapOptions(options) {
105
+ let headers = new HttpHeaders();
106
+ for (const key in options.headers) {
107
+ if (options.headers.hasOwnProperty(key)) {
108
+ const value = options.headers[key];
109
+ headers = headers.set(key, value);
110
+ }
111
+ }
112
+ let params = new HttpParams();
113
+ for (const key in options.params) {
114
+ if (options.params.hasOwnProperty(key)) {
115
+ const value = options.params[key];
116
+ params = params.set(key, value);
117
+ }
118
+ }
119
+ return {
120
+ headers: headers,
121
+ params: params,
122
+ body: options.body,
123
+ responseType: options.responseType || 'json'
124
+ };
125
+ // if (options.method == "get") {
126
+ // return {
127
+ // headers: headers,
128
+ // params: params
129
+ // };
130
+ // }
131
+ // else {
132
+ // return {
133
+ // headers: headers,
134
+ // params: params,
135
+ // body: options.body
136
+ // };
137
+ // }
138
+ }
139
+ }
140
+ AXHttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
141
+ AXHttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpService });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXHttpService, decorators: [{
143
+ type: Injectable
144
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvc3JjL2xpYi9odHRwL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2pELE9BQU8sRUFDSCx5QkFBeUIsRUFDNUIsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBQ25DLHVIQUF1SDtBQUN2SCxpREFBaUQ7QUFJakQsTUFBTSxPQUFPLGFBQWE7SUFHdEIsWUFBb0IsSUFBZ0IsRUFBVSxRQUFrQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUdELEdBQUcsQ0FBSSxHQUFXLEVBQUUsU0FBK0IsRUFBRTtRQUNqRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksQ0FBSSxHQUFXLEVBQUUsU0FBK0IsRUFBRTtRQUNsRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMs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O1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ25DO1NBQ0o7UUFDRCxPQUFPO1lBQ0gsT0FBTyxFQUFFLE9BQU87WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksTUFBTTtTQUMvQyxDQUFDO1FBQ0YsaUNBQWlDO1FBQ2pDLGVBQWU7UUFDZiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLFNBQVM7UUFDVCxJQUFJO1FBQ0osU0FBUztRQUNULGVBQWU7UUFDZiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLDZCQUE2QjtRQUM3QixTQUFTO1FBQ1QsSUFBSTtJQUNSLENBQUM7OzJHQS9JUSxhQUFhOytHQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBJbmplY3RGbGFncyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSHR0cFJlc3VsdCB9IGZyb20gJy4vaHR0cC1yZXN1bHQuY2xhc3MnO1xuaW1wb3J0IHsgSUh0dHBFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBBWEh0dHBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LmNsYXNzJztcbmltcG9ydCB7XG4gICAgQVhfSFRUUF9FVkVOVF9JTlRFUkNFUFRPUiwgQVhIdHRwRXZlbnRJbnRlcmNlcHRvclxufSBmcm9tICcuL2h0dHAtZXZlbnRzLmludGVyY2VwdG9yJztcbi8vIGltcG9ydCB7IGNhdGNoRXJyb3IsIHJldHJ5LCByZXRyeVdoZW4sIG1lcmdlTWFwLCBkZWxheSwgc3dpdGNoTWFwLCBzY2FuLCB0YWtlV2hpbGUsIGZsYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG4vLyBpbXBvcnQgeyBvZiwgY29uY2F0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYSHR0cFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBpbnRlcmNlcHRvcjogQVhIdHRwRXZlbnRJbnRlcmNlcHRvcjtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMuaW50ZXJjZXB0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWF9IVFRQX0VWRU5UX0lOVEVSQ0VQVE9SKTtcbiAgICB9XG5cblxuICAgIGdldDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcImdldFwiO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcG9zdDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcInBvc3RcIjtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChjb25maWcpO1xuICAgIH1cblxuICAgIGRlbGV0ZTxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcImRlbGV0ZVwiO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHV0PFQ+KHVybDogc3RyaW5nLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zID0ge30pOiBIdHRwUmVzdWx0PFQ+IHtcbiAgICAgICAgY29uZmlnLnVybCA9IHVybDtcbiAgICAgICAgY29uZmlnLm1ldGhvZCA9IFwicHV0XCI7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoY29uZmlnKTtcbiAgICB9XG5cblxuICAgIHJlcXVlc3Q8VD4oY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk6IEh0dHBSZXN1bHQ8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IEh0dHBSZXN1bHQ8VD4oKHJlc3VsdD8sIGVycm9yPywgY29tcGxldGU/KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUJlZ2luKGNvbmZpZykudGhlbihjID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLnJlcXVlc3Q8VD4oY29uZmlnLm1ldGhvZCwgY29uZmlnLnVybCwgdGhpcy5tYXBPcHRpb25zKGNvbmZpZykpXG4gICAgICAgICAgICAgICAgICAgIC8vLnBpcGUodGhpcy5yZXRyeSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzdWx0KGRhdGEsIHJlc3VsdCwgY29tcGxldGUsIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH0sIGMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihjLCBlcnJvciwgY29tcGxldGUsIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGhhbmRsZVJlc3VsdChkYXRhLCByZXN1bHQsIGNvbXBsZXRlLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yLnN1Y2Nlc3MoY29uZmlnLCBkYXRhKS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdChjKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgICAgICAgICByZXN1bHQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVCZWdpbihjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxBWEh0dHBSZXF1ZXN0T3B0aW9ucz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGlmICghY29uZmlnLmhlYWRlcnMpXG4gICAgICAgICAgICAgICAgY29uZmlnLmhlYWRlcnMgPSB7fTtcbiAgICAgICAgICAgIGlmICghY29uZmlnLnBhcmFtcylcbiAgICAgICAgICAgICAgICBjb25maWcucGFyYW1zID0ge307XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJjZXB0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yLmJlZ2luKGNvbmZpZykudGhlbihjID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoY29uZmlnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ29tcGxldGUoY29tcGxldGU6IEZ1bmN0aW9uLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgIGlmIChjb21wbGV0ZSlcbiAgICAgICAgICAgIGNvbXBsZXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvci5jb21wbGV0ZShjb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoYzogSHR0cEVycm9yUmVzcG9uc2UsIGVycm9yOiBGdW5jdGlvbiwgY29tcGxldGU6IEZ1bmN0aW9uLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgIGxldCByOiBJSHR0cEVycm9yID0ge1xuICAgICAgICAgICAgbWVzc2FnZTogYy5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBjLnN0YXR1cyxcbiAgICAgICAgICAgIGNvZGU6IGMuc3RhdHVzPy50b1N0cmluZygpLFxuICAgICAgICAgICAgaGFuZGxlZDogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogYy5lcnJvclxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgZXJyb3Iocik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyLmhhbmRsZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKVxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3IuZXJyb3IoY29uZmlnLCByKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFwT3B0aW9ucyhvcHRpb25zOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucykge1xuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMuaGVhZGVycykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zLmhlYWRlcnNba2V5XTtcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhcmFtcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zLnBhcmFtc1trZXldO1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgIGJvZHk6IG9wdGlvbnMuYm9keSxcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucy5yZXNwb25zZVR5cGUgfHwgJ2pzb24nXG4gICAgICAgIH07XG4gICAgICAgIC8vIGlmIChvcHRpb25zLm1ldGhvZCA9PSBcImdldFwiKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgIC8vICAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgICAgLy8gICAgIH07XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgIC8vICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICAgIC8vICAgICAgICAgYm9keTogb3B0aW9ucy5ib2R5XG4gICAgICAgIC8vICAgICB9O1xuICAgICAgICAvLyB9XG4gICAgfVxuXG59Il19