@acorex/core 1.3.90

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 (147) hide show
  1. package/README.md +3 -0
  2. package/acorex-core.d.ts +4 -0
  3. package/acorex-core.metadata.json +1 -0
  4. package/bundles/acorex-core.umd.js +2539 -0
  5. package/bundles/acorex-core.umd.js.map +1 -0
  6. package/bundles/acorex-core.umd.min.js +17 -0
  7. package/bundles/acorex-core.umd.min.js.map +1 -0
  8. package/esm2015/acorex-core.js +5 -0
  9. package/esm2015/lib/classes/base-page.class.js +21 -0
  10. package/esm2015/lib/classes/color.class.js +49 -0
  11. package/esm2015/lib/classes/datetime.class.js +314 -0
  12. package/esm2015/lib/classes/menu.class.js +27 -0
  13. package/esm2015/lib/classes/navigator.class.js +1 -0
  14. package/esm2015/lib/classes/popup.class.js +1 -0
  15. package/esm2015/lib/classes/promise.class.js +19 -0
  16. package/esm2015/lib/classes/sectionlist.class.js +1 -0
  17. package/esm2015/lib/classes/select.class.js +3 -0
  18. package/esm2015/lib/core.module.js +24 -0
  19. package/esm2015/lib/error/error.class.js +1 -0
  20. package/esm2015/lib/error/error.module.js +16 -0
  21. package/esm2015/lib/error/error.service.js +25 -0
  22. package/esm2015/lib/events/keyboard.js +1 -0
  23. package/esm2015/lib/http/http-error.class.js +1 -0
  24. package/esm2015/lib/http/http-events.interceptor.js +3 -0
  25. package/esm2015/lib/http/http-request.class.js +1 -0
  26. package/esm2015/lib/http/http-result.class.js +21 -0
  27. package/esm2015/lib/http/http.module.js +29 -0
  28. package/esm2015/lib/http/http.service.js +149 -0
  29. package/esm2015/lib/locale/en.json +249 -0
  30. package/esm2015/lib/locale/fa.json +238 -0
  31. package/esm2015/lib/pipe/datetime.pipe.js +24 -0
  32. package/esm2015/lib/pipe/htmlToText.pipe.js +23 -0
  33. package/esm2015/lib/services/config.js +29 -0
  34. package/esm2015/lib/services/event.service.js +36 -0
  35. package/esm2015/lib/services/navigator.service.js +9 -0
  36. package/esm2015/lib/services/storage.service.js +15 -0
  37. package/esm2015/lib/translator/translator.js +26 -0
  38. package/esm2015/lib/translator/translator.module.js +23 -0
  39. package/esm2015/lib/translator/translator.pipe.js +23 -0
  40. package/esm2015/lib/translator/translator.service.js +21 -0
  41. package/esm2015/lib/utils/array/array-util.js +133 -0
  42. package/esm2015/lib/utils/html/html-util.js +192 -0
  43. package/esm2015/lib/utils/html/html.module.js +16 -0
  44. package/esm2015/lib/utils/math/math-util.js +6 -0
  45. package/esm2015/lib/utils/object/object-util.js +83 -0
  46. package/esm2015/lib/utils/render/on-demand-preload-strategy.service.js +21 -0
  47. package/esm2015/lib/utils/render/render.service.js +112 -0
  48. package/esm2015/lib/utils/render/rendering.module.js +26 -0
  49. package/esm2015/lib/utils/scroll/scroll.directive.js +66 -0
  50. package/esm2015/lib/utils/scroll/scroll.module.js +16 -0
  51. package/esm2015/lib/utils/separator/separator.module.js +16 -0
  52. package/esm2015/lib/utils/separator/separator.pipe.js +22 -0
  53. package/esm2015/public-api.js +36 -0
  54. package/esm5/acorex-core.js +5 -0
  55. package/esm5/lib/classes/base-page.class.js +23 -0
  56. package/esm5/lib/classes/color.class.js +54 -0
  57. package/esm5/lib/classes/datetime.class.js +390 -0
  58. package/esm5/lib/classes/menu.class.js +42 -0
  59. package/esm5/lib/classes/navigator.class.js +1 -0
  60. package/esm5/lib/classes/popup.class.js +1 -0
  61. package/esm5/lib/classes/promise.class.js +22 -0
  62. package/esm5/lib/classes/sectionlist.class.js +1 -0
  63. package/esm5/lib/classes/select.class.js +7 -0
  64. package/esm5/lib/core.module.js +27 -0
  65. package/esm5/lib/error/error.class.js +1 -0
  66. package/esm5/lib/error/error.module.js +19 -0
  67. package/esm5/lib/error/error.service.js +26 -0
  68. package/esm5/lib/events/keyboard.js +1 -0
  69. package/esm5/lib/http/http-error.class.js +1 -0
  70. package/esm5/lib/http/http-events.interceptor.js +3 -0
  71. package/esm5/lib/http/http-request.class.js +1 -0
  72. package/esm5/lib/http/http-result.class.js +24 -0
  73. package/esm5/lib/http/http.module.js +33 -0
  74. package/esm5/lib/http/http.service.js +157 -0
  75. package/esm5/lib/locale/en.json +249 -0
  76. package/esm5/lib/locale/fa.json +238 -0
  77. package/esm5/lib/pipe/datetime.pipe.js +26 -0
  78. package/esm5/lib/pipe/htmlToText.pipe.js +26 -0
  79. package/esm5/lib/services/config.js +37 -0
  80. package/esm5/lib/services/event.service.js +37 -0
  81. package/esm5/lib/services/navigator.service.js +12 -0
  82. package/esm5/lib/services/storage.service.js +18 -0
  83. package/esm5/lib/translator/translator.js +34 -0
  84. package/esm5/lib/translator/translator.module.js +24 -0
  85. package/esm5/lib/translator/translator.pipe.js +25 -0
  86. package/esm5/lib/translator/translator.service.js +24 -0
  87. package/esm5/lib/utils/array/array-util.js +147 -0
  88. package/esm5/lib/utils/html/html-util.js +224 -0
  89. package/esm5/lib/utils/html/html.module.js +19 -0
  90. package/esm5/lib/utils/math/math-util.js +10 -0
  91. package/esm5/lib/utils/object/object-util.js +88 -0
  92. package/esm5/lib/utils/render/on-demand-preload-strategy.service.js +22 -0
  93. package/esm5/lib/utils/render/render.service.js +117 -0
  94. package/esm5/lib/utils/render/rendering.module.js +29 -0
  95. package/esm5/lib/utils/scroll/scroll.directive.js +68 -0
  96. package/esm5/lib/utils/scroll/scroll.module.js +19 -0
  97. package/esm5/lib/utils/separator/separator.module.js +19 -0
  98. package/esm5/lib/utils/separator/separator.pipe.js +25 -0
  99. package/esm5/public-api.js +36 -0
  100. package/fesm2015/acorex-core.js +2057 -0
  101. package/fesm2015/acorex-core.js.map +1 -0
  102. package/fesm5/acorex-core.js +2274 -0
  103. package/fesm5/acorex-core.js.map +1 -0
  104. package/lib/classes/base-page.class.d.ts +10 -0
  105. package/lib/classes/color.class.d.ts +17 -0
  106. package/lib/classes/datetime.class.d.ts +63 -0
  107. package/lib/classes/menu.class.d.ts +33 -0
  108. package/lib/classes/navigator.class.d.ts +5 -0
  109. package/lib/classes/popup.class.d.ts +12 -0
  110. package/lib/classes/promise.class.d.ts +7 -0
  111. package/lib/classes/sectionlist.class.d.ts +8 -0
  112. package/lib/classes/select.class.d.ts +7 -0
  113. package/lib/core.module.d.ts +2 -0
  114. package/lib/error/error.class.d.ts +4 -0
  115. package/lib/error/error.module.d.ts +2 -0
  116. package/lib/error/error.service.d.ts +10 -0
  117. package/lib/events/keyboard.d.ts +2 -0
  118. package/lib/http/http-error.class.d.ts +7 -0
  119. package/lib/http/http-events.interceptor.d.ts +10 -0
  120. package/lib/http/http-request.class.d.ts +14 -0
  121. package/lib/http/http-result.class.d.ts +11 -0
  122. package/lib/http/http.module.d.ts +4 -0
  123. package/lib/http/http.service.d.ts +20 -0
  124. package/lib/pipe/datetime.pipe.d.ts +5 -0
  125. package/lib/pipe/htmlToText.pipe.d.ts +4 -0
  126. package/lib/services/config.d.ts +9 -0
  127. package/lib/services/event.service.d.ts +6 -0
  128. package/lib/services/navigator.service.d.ts +5 -0
  129. package/lib/services/storage.service.d.ts +4 -0
  130. package/lib/translator/translator.d.ts +9 -0
  131. package/lib/translator/translator.module.d.ts +3 -0
  132. package/lib/translator/translator.pipe.d.ts +5 -0
  133. package/lib/translator/translator.service.d.ts +5 -0
  134. package/lib/utils/array/array-util.d.ts +6 -0
  135. package/lib/utils/html/html-util.d.ts +62 -0
  136. package/lib/utils/html/html.module.d.ts +2 -0
  137. package/lib/utils/math/math-util.d.ts +3 -0
  138. package/lib/utils/object/object-util.d.ts +7 -0
  139. package/lib/utils/render/on-demand-preload-strategy.service.d.ts +7 -0
  140. package/lib/utils/render/render.service.d.ts +14 -0
  141. package/lib/utils/render/rendering.module.d.ts +4 -0
  142. package/lib/utils/scroll/scroll.directive.d.ts +13 -0
  143. package/lib/utils/scroll/scroll.module.d.ts +2 -0
  144. package/lib/utils/separator/separator.module.d.ts +2 -0
  145. package/lib/utils/separator/separator.pipe.d.ts +4 -0
  146. package/package.json +23 -0
  147. package/public-api.d.ts +42 -0
@@ -0,0 +1,22 @@
1
+ import { __decorate } from "tslib";
2
+ import { Pipe, Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ let AXSeparatorPipe = class AXSeparatorPipe {
5
+ transform(value) {
6
+ if (value) {
7
+ return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
8
+ }
9
+ else {
10
+ return '0';
11
+ }
12
+ }
13
+ };
14
+ AXSeparatorPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AXSeparatorPipe_Factory() { return new AXSeparatorPipe(); }, token: AXSeparatorPipe, providedIn: "root" });
15
+ AXSeparatorPipe = __decorate([
16
+ Pipe({ name: 'separator' }),
17
+ Injectable({
18
+ providedIn: 'root'
19
+ })
20
+ ], AXSeparatorPipe);
21
+ export { AXSeparatorPipe };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvc2VwYXJhdG9yL3NlcGFyYXRvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWhFLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFDMUIsU0FBUyxDQUFDLEtBQWE7UUFDckIsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDL0Q7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0NBQ0YsQ0FBQTs7QUFSWSxlQUFlO0lBSjNCLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMzQixVQUFVLENBQUM7UUFDVixVQUFVLEVBQUUsTUFBTTtLQUNuQixDQUFDO0dBQ1csZUFBZSxDQVEzQjtTQVJZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdzZXBhcmF0b3InIH0pXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2VwYXJhdG9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJywnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnMCc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,36 @@
1
+ export * from './lib/classes/color.class';
2
+ export * from './lib/classes/datetime.class';
3
+ export * from './lib/classes/menu.class';
4
+ export * from './lib/classes/promise.class';
5
+ export * from './lib/classes/select.class';
6
+ export * from './lib/classes/base-page.class';
7
+ export * from './lib/error/error.module';
8
+ export * from './lib/error/error.service';
9
+ export * from './lib/http/http-events.interceptor';
10
+ export * from './lib/http/http-result.class';
11
+ export * from './lib/http/http.module';
12
+ export * from './lib/http/http.service';
13
+ export * from './lib/pipe/datetime.pipe';
14
+ export * from './lib/pipe/htmlToText.pipe';
15
+ export * from './lib/services/event.service';
16
+ export * from './lib/services/navigator.service';
17
+ export * from './lib/services/storage.service';
18
+ export * from './lib/services/config';
19
+ export * from './lib/translator/translator.service';
20
+ export * from './lib/translator/translator.pipe';
21
+ export * from './lib/translator/translator';
22
+ export * from './lib/translator/translator.module';
23
+ export * from './lib/utils/array/array-util';
24
+ export * from './lib/utils/html/html-util';
25
+ export * from './lib/utils/html/html.module';
26
+ export * from './lib/utils/math/math-util';
27
+ export * from './lib/utils/object/object-util';
28
+ export * from './lib/utils/render/render.service';
29
+ export * from './lib/utils/render/on-demand-preload-strategy.service';
30
+ export * from './lib/utils/render/rendering.module';
31
+ export * from './lib/utils/scroll/scroll.directive';
32
+ export * from './lib/utils/scroll/scroll.module';
33
+ export * from './lib/utils/separator/separator.module';
34
+ export * from './lib/utils/separator/separator.pipe';
35
+ export * from './lib/core.module';
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29yZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFHekMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsK0JBQStCLENBQUM7QUFHOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBSzFDLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUJBQXVCLENBQUM7QUFHdEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9jb2xvci5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvZGF0ZXRpbWUuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL21lbnUuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL25hdmlnYXRvci5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvcG9wdXAuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3Byb21pc2UuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3NlY3Rpb25saXN0LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9zZWxlY3QuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Jhc2UtcGFnZS5jbGFzcyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lcnJvci9lcnJvci5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vycm9yL2Vycm9yLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vycm9yL2Vycm9yLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXZlbnRzL2tleWJvYXJkJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAvaHR0cC1lcnJvci5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAvaHR0cC1ldmVudHMuaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9odHRwL2h0dHAtcmVxdWVzdC5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAvaHR0cC1yZXN1bHQuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9odHRwL2h0dHAubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaHR0cC9odHRwLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZS9kYXRldGltZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZS9odG1sVG9UZXh0LnBpcGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXZlbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlnJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xhdG9yL3RyYW5zbGF0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zbGF0b3IvdHJhbnNsYXRvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJhbnNsYXRvci90cmFuc2xhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJhbnNsYXRvci90cmFuc2xhdG9yLm1vZHVsZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9hcnJheS9hcnJheS11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvaHRtbC9odG1sLXV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9odG1sL2h0bWwubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvbWF0aC9tYXRoLXV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9vYmplY3Qvb2JqZWN0LXV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9yZW5kZXIvcmVuZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9yZW5kZXIvb24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3JlbmRlci9yZW5kZXJpbmcubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2Nyb2xsL3Njcm9sbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9zY3JvbGwvc2Nyb2xsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NlcGFyYXRvci9zZXBhcmF0b3IubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2VwYXJhdG9yL3NlcGFyYXRvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS5tb2R1bGUnO1xyXG5cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJhY29yZXgtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,23 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ /**
3
+ * @deprecated Use AXBasePageComponent from @acorex/components
4
+ */
5
+ var AXBasePageComponent = /** @class */ (function () {
6
+ function AXBasePageComponent() {
7
+ this.onClosed = new EventEmitter();
8
+ }
9
+ AXBasePageComponent.prototype.close = function (data) {
10
+ this.onClosed.emit({
11
+ component: this,
12
+ data: data
13
+ });
14
+ };
15
+ AXBasePageComponent.prototype.onClosing = function (e) {
16
+ };
17
+ AXBasePageComponent.prototype.ngOnDestroy = function () {
18
+ this.onClosed.unsubscribe();
19
+ };
20
+ return AXBasePageComponent;
21
+ }());
22
+ export { AXBasePageComponent };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wYWdlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvYmFzZS1wYWdlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7O0dBRUc7QUFDSDtJQUFBO1FBRUksYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBaUIxRCxDQUFDO0lBZkcsbUNBQUssR0FBTCxVQUFNLElBQVU7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsdUNBQVMsR0FBVCxVQUFVLENBQU07SUFDaEIsQ0FBQztJQUVELHlDQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFHTCwwQkFBQztBQUFELENBQUMsQUFuQkQsSUFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBVc2UgQVhCYXNlUGFnZUNvbXBvbmVudCBmcm9tIEBhY29yZXgvY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xyXG5cclxuICAgIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNsb3NlKGRhdGE/OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGFcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NpbmcoZTogYW55KTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMub25DbG9zZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuIl19
@@ -0,0 +1,54 @@
1
+ var AXColorUtil = /** @class */ (function () {
2
+ function AXColorUtil() {
3
+ }
4
+ AXColorUtil.hex2Rgb = function (hexColor) {
5
+ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
6
+ return result ? {
7
+ r: parseInt(result[1], 16),
8
+ g: parseInt(result[2], 16),
9
+ b: parseInt(result[3], 16)
10
+ } : null;
11
+ };
12
+ AXColorUtil.rgb2Hex = function (r, g, b, a) {
13
+ if (a === void 0) { a = 255; }
14
+ var alpha;
15
+ var hex = (r | 1 << 8).toString(16).slice(1) +
16
+ (g | 1 << 8).toString(16).slice(1) +
17
+ (b | 1 << 8).toString(16).slice(1);
18
+ if (a !== 255) {
19
+ alpha = a;
20
+ }
21
+ else {
22
+ alpha = 1;
23
+ }
24
+ alpha = Math.round(alpha * 100) / 100;
25
+ alpha = Math.round(alpha * 255);
26
+ var hexAlpha = (alpha + 0x10000).toString(16).substr(-2).toUpperCase();
27
+ return '#' + hex + (alpha == 255 ? '' : hexAlpha);
28
+ };
29
+ ;
30
+ AXColorUtil.illuminance = function (hexColor) {
31
+ var rgbColor = AXColorUtil.hex2Rgb(hexColor);
32
+ if (!rgbColor) {
33
+ return -1;
34
+ }
35
+ var r = rgbColor.r;
36
+ var g = rgbColor.g;
37
+ var b = rgbColor.b;
38
+ var a = [r, g, b].map(function (v) {
39
+ v /= 255;
40
+ return (v <= 0.03928) ?
41
+ v / 12.92 :
42
+ Math.pow(((v + 0.055) / 1.055), 2.4);
43
+ });
44
+ return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
45
+ };
46
+ AXColorUtil.contrastToWhite = function (hexColor) {
47
+ var whiteIlluminance = 1;
48
+ var illuminance = AXColorUtil.illuminance(hexColor);
49
+ return whiteIlluminance / illuminance;
50
+ };
51
+ return AXColorUtil;
52
+ }());
53
+ export { AXColorUtil };
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9jb2xvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTtJQUFBO0lBb0RBLENBQUM7SUFqRFUsbUJBQU8sR0FBZCxVQUFlLFFBQWdCO1FBQzNCLElBQU0sTUFBTSxHQUFHLDJDQUEyQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDWixDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFCLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUM3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRU0sbUJBQU8sR0FBZCxVQUFlLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQWU7UUFBZixrQkFBQSxFQUFBLE9BQWU7UUFDM0QsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUNYLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDYjthQUFNO1lBQ0gsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNiO1FBRUQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN0QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUFBLENBQUM7SUFFSyx1QkFBVyxHQUFsQixVQUFtQixRQUFnQjtRQUMvQixJQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ2I7UUFDRCxJQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQztZQUNyQixDQUFDLElBQUksR0FBRyxDQUFDO1lBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUN6RCxDQUFDO0lBRU0sMkJBQWUsR0FBdEIsVUFBdUIsUUFBZ0I7UUFDbkMsSUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxPQUFPLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRUwsa0JBQUM7QUFBRCxDQUFDLEFBcERELElBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWENvbG9yIHtcclxuICAgIGlkPzogc3RyaW5nO1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbiAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XHJcbiAgICBhY3RpdmU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhDb2xvclV0aWwge1xyXG5cclxuXHJcbiAgICBzdGF0aWMgaGV4MlJnYihoZXhDb2xvcjogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleENvbG9yKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0ID8ge1xyXG4gICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcclxuICAgICAgICAgICAgZzogcGFyc2VJbnQocmVzdWx0WzJdLCAxNiksXHJcbiAgICAgICAgICAgIGI6IHBhcnNlSW50KHJlc3VsdFszXSwgMTYpXHJcbiAgICAgICAgfSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJnYjJIZXgocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgYTogbnVtYmVyID0gMjU1KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgYWxwaGE7XHJcbiAgICAgICAgbGV0IGhleCA9IChyIHwgMSA8PCA4KS50b1N0cmluZygxNikuc2xpY2UoMSkgK1xyXG4gICAgICAgICAgICAoZyB8IDEgPDwgOCkudG9TdHJpbmcoMTYpLnNsaWNlKDEpICtcclxuICAgICAgICAgICAgKGIgfCAxIDw8IDgpLnRvU3RyaW5nKDE2KS5zbGljZSgxKTtcclxuICAgICAgICBpZiAoYSAhPT0gMjU1KSB7XHJcbiAgICAgICAgICAgIGFscGhhID0gYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhbHBoYSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhbHBoYSA9IE1hdGgucm91bmQoYWxwaGEgKiAxMDApIC8gMTAwO1xyXG4gICAgICAgIGFscGhhID0gTWF0aC5yb3VuZChhbHBoYSAqIDI1NSk7XHJcbiAgICAgICAgY29uc3QgaGV4QWxwaGEgPSAoYWxwaGEgKyAweDEwMDAwKS50b1N0cmluZygxNikuc3Vic3RyKC0yKS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICAgIHJldHVybiAnIycgKyBoZXggKyAoYWxwaGEgPT0gMjU1ID8gJycgOiBoZXhBbHBoYSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHN0YXRpYyBpbGx1bWluYW5jZShoZXhDb2xvcjogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcmdiQ29sb3IgPSBBWENvbG9yVXRpbC5oZXgyUmdiKGhleENvbG9yKTtcclxuICAgICAgICBpZiAoIXJnYkNvbG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgciA9IHJnYkNvbG9yLnI7XHJcbiAgICAgICAgY29uc3QgZyA9IHJnYkNvbG9yLmc7XHJcbiAgICAgICAgY29uc3QgYiA9IHJnYkNvbG9yLmI7XHJcbiAgICAgICAgY29uc3QgYSA9IFtyLCBnLCBiXS5tYXAodiA9PiB7XHJcbiAgICAgICAgICAgIHYgLz0gMjU1O1xyXG4gICAgICAgICAgICByZXR1cm4gKHYgPD0gMC4wMzkyOCkgP1xyXG4gICAgICAgICAgICAgICAgdiAvIDEyLjkyIDpcclxuICAgICAgICAgICAgICAgIE1hdGgucG93KCgodiArIDAuMDU1KSAvIDEuMDU1KSwgMi40KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gYVswXSAqIDAuMjEyNiArIGFbMV0gKiAwLjcxNTIgKyBhWzJdICogMC4wNzIyO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjb250cmFzdFRvV2hpdGUoaGV4Q29sb3I6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHdoaXRlSWxsdW1pbmFuY2UgPSAxO1xyXG4gICAgICAgIGNvbnN0IGlsbHVtaW5hbmNlID0gQVhDb2xvclV0aWwuaWxsdW1pbmFuY2UoaGV4Q29sb3IpO1xyXG4gICAgICAgIHJldHVybiB3aGl0ZUlsbHVtaW5hbmNlIC8gaWxsdW1pbmFuY2U7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,390 @@
1
+ import * as moment_ from 'jalali-moment';
2
+ import { AXConfig } from '../services/config';
3
+ var moment = moment_;
4
+ var AXDateTime = /** @class */ (function () {
5
+ // private get _moment(): moment_.Moment {
6
+ // const m = moment(this.date);
7
+ // if (this.type === 'jalali') {
8
+ // m.locale('fa');
9
+ // }
10
+ // return m;
11
+ // }
12
+ function AXDateTime(value, type) {
13
+ if (value === void 0) { value = new Date(); }
14
+ if (type === void 0) { type = AXConfig.get('dateTime.type') || 'gregorian'; }
15
+ this.type = type;
16
+ if (value instanceof Date) {
17
+ this._date = value;
18
+ }
19
+ else {
20
+ this._date = new Date(value);
21
+ }
22
+ this._moment = moment(this.date);
23
+ if (this.type === 'jalali') {
24
+ this._moment.locale('fa');
25
+ }
26
+ }
27
+ AXDateTime.convert = function (value, type) {
28
+ if (type === void 0) { type = AXConfig.get('dateTime.type') || 'gregorian'; }
29
+ var date;
30
+ if (typeof value === 'string' || value instanceof String) {
31
+ date = new AXDateTime(value, type);
32
+ }
33
+ else if (value instanceof Date) {
34
+ date = new AXDateTime(value, type);
35
+ }
36
+ else if (value instanceof AXDateTime) {
37
+ date = value;
38
+ }
39
+ return date;
40
+ };
41
+ Object.defineProperty(AXDateTime.prototype, "date", {
42
+ get: function () {
43
+ return this._date;
44
+ },
45
+ enumerable: true,
46
+ configurable: true
47
+ });
48
+ AXDateTime.prototype.resolveUnit = function (unit) {
49
+ return this.type === 'jalali' ? 'j' + unit : unit;
50
+ };
51
+ AXDateTime.prototype.clone = function () {
52
+ return new AXDateTime(this.date, this.type);
53
+ };
54
+ Object.defineProperty(AXDateTime.prototype, "dayInMonth", {
55
+ get: function () {
56
+ return this._moment.date();
57
+ },
58
+ enumerable: true,
59
+ configurable: true
60
+ });
61
+ Object.defineProperty(AXDateTime.prototype, "dayOfYear", {
62
+ get: function () {
63
+ return this._moment.dayOfYear();
64
+ },
65
+ enumerable: true,
66
+ configurable: true
67
+ });
68
+ Object.defineProperty(AXDateTime.prototype, "dayInWeek", {
69
+ get: function () {
70
+ return this._moment.day();
71
+ },
72
+ enumerable: true,
73
+ configurable: true
74
+ });
75
+ Object.defineProperty(AXDateTime.prototype, "hour", {
76
+ get: function () {
77
+ return this._moment.hour();
78
+ },
79
+ enumerable: true,
80
+ configurable: true
81
+ });
82
+ Object.defineProperty(AXDateTime.prototype, "minute", {
83
+ get: function () {
84
+ return this._moment.minute();
85
+ },
86
+ enumerable: true,
87
+ configurable: true
88
+ });
89
+ Object.defineProperty(AXDateTime.prototype, "second", {
90
+ get: function () {
91
+ return this._moment.second();
92
+ },
93
+ enumerable: true,
94
+ configurable: true
95
+ });
96
+ Object.defineProperty(AXDateTime.prototype, "year", {
97
+ get: function () {
98
+ return this._moment.year();
99
+ },
100
+ enumerable: true,
101
+ configurable: true
102
+ });
103
+ Object.defineProperty(AXDateTime.prototype, "monthOfYear", {
104
+ get: function () {
105
+ return this._moment.month();
106
+ },
107
+ enumerable: true,
108
+ configurable: true
109
+ });
110
+ Object.defineProperty(AXDateTime.prototype, "month", {
111
+ get: function () {
112
+ return new AXCalendarMonth(this);
113
+ },
114
+ enumerable: true,
115
+ configurable: true
116
+ });
117
+ Object.defineProperty(AXDateTime.prototype, "firstDayOfWeek", {
118
+ get: function () {
119
+ var a = moment(this.date);
120
+ if (this.type === 'jalali') {
121
+ this._moment.locale('fa');
122
+ }
123
+ return new AXDateTime(a.startOf('w').toDate(), this.type);
124
+ },
125
+ enumerable: true,
126
+ configurable: true
127
+ });
128
+ Object.defineProperty(AXDateTime.prototype, "endDayOfWeek", {
129
+ get: function () {
130
+ var a = moment(this.date);
131
+ if (this.type === 'jalali') {
132
+ this._moment.locale('fa');
133
+ }
134
+ return new AXDateTime(moment(this.date).endOf('w').toDate(), this.type);
135
+ },
136
+ enumerable: true,
137
+ configurable: true
138
+ });
139
+ AXDateTime.prototype.convertStringToJalali = function (date, format) {
140
+ return moment(date).locale('fa').format('YYYY/M/D');
141
+ };
142
+ AXDateTime.prototype.convertStringToGregorian = function (date, format) {
143
+ return new Date((moment.from(date, 'fa', 'YYYY/MM/DD').format('YYYY/MM/DD')));
144
+ };
145
+ AXDateTime.prototype.add = function (unit, amount) {
146
+ if (unit === void 0) { unit = 'day'; }
147
+ return new AXDateTime(moment(this.date).add(amount, this.resolveUnit(unit)).toDate(), this.type);
148
+ };
149
+ AXDateTime.prototype.addDay = function (amount) {
150
+ return new AXDateTime(moment(this.date).add(amount, 'd').toDate(), this.type);
151
+ };
152
+ AXDateTime.prototype.addMonth = function (amount) {
153
+ return new AXDateTime(moment(this.date).add(amount, 'months').toDate(), this.type);
154
+ };
155
+ AXDateTime.prototype.addHour = function (amount) {
156
+ return new AXDateTime(moment(this.date).add(amount, 'hours').toDate(), this.type);
157
+ };
158
+ AXDateTime.prototype.set = function (unit, value) {
159
+ if (unit === void 0) { unit = 'day'; }
160
+ return new AXDateTime(this._moment.set(unit, value).toDate(), this.type);
161
+ };
162
+ AXDateTime.prototype.duration = function (end, unit) {
163
+ if (unit === void 0) { unit = 'days'; }
164
+ var duration = moment.duration(this._moment.diff(end._moment));
165
+ return Math.round(duration.as(unit));
166
+ };
167
+ AXDateTime.prototype.startOf = function (unit) {
168
+ if (unit === void 0) { unit = 'day'; }
169
+ return new AXDateTime(moment(this.date).startOf(this.resolveUnit(unit)).toDate(), this.type);
170
+ };
171
+ AXDateTime.prototype.endOf = function (unit) {
172
+ if (unit === void 0) { unit = 'day'; }
173
+ return new AXDateTime(moment(this.date).endOf(this.resolveUnit(unit)).toDate(), this.type);
174
+ };
175
+ AXDateTime.prototype.format = function (format) {
176
+ if (format === void 0) { format = AXConfig.get('dateTime.shortDateFormat') || (this.type === 'gregorian' ? 'DD-MM-YYYY' : 'YYYY-MM-DD'); }
177
+ if (format === 'P') {
178
+ return this._moment.fromNow();
179
+ }
180
+ return this._moment.format(format);
181
+ };
182
+ AXDateTime.prototype.toString = function () {
183
+ return this.format();
184
+ };
185
+ AXDateTime.prototype.equal = function (value, unit) {
186
+ if (unit === void 0) { unit = 'day'; }
187
+ if (!value) {
188
+ return false;
189
+ }
190
+ return this._moment.isSame(moment(value.date), this.resolveUnit(unit));
191
+ };
192
+ AXDateTime.prototype.convertToJalaliDate = function (value) {
193
+ var options = {
194
+ numberingSystem: 'latn',
195
+ year: 'numeric',
196
+ month: '2-digit',
197
+ day: '2-digit',
198
+ hour: '2-digit',
199
+ minute: '2-digit',
200
+ second: '2-digit'
201
+ };
202
+ var jDate = new Date(value).toLocaleDateString('fa-IR', options);
203
+ var item = {};
204
+ item.year = jDate.slice(0, 4);
205
+ item.month = jDate.slice(5, 7);
206
+ item.day = jDate.slice(8, 10);
207
+ item.hour = jDate.slice(13, 15);
208
+ item.minutes = jDate.slice(16, 18);
209
+ item.seconds = jDate.slice(19, 21);
210
+ return item;
211
+ };
212
+ AXDateTime.prototype.toJalaliString = function (value) {
213
+ var date = this.convertToJalaliDate(value);
214
+ var str = '';
215
+ str = date.year + '-' + date.month + '-' + date.day + 'T' + date.hour + ':' + date.minutes + ':' + date.seconds;
216
+ return str;
217
+ };
218
+ AXDateTime.prototype.convertToGregorianDate = function (value) {
219
+ var options = {
220
+ numberingSystem: 'latn',
221
+ year: 'numeric',
222
+ month: '2-digit',
223
+ day: '2-digit',
224
+ hour: '2-digit',
225
+ minute: '2-digit',
226
+ second: '2-digit'
227
+ };
228
+ var date = new Date(value).toLocaleString('en-us', options);
229
+ var item = {};
230
+ item.year = date.slice(6, 10);
231
+ item.month = date.slice(0, 2);
232
+ item.day = date.slice(3, 5);
233
+ item.hour = date.slice(12, 14);
234
+ item.minutes = date.slice(15, 17);
235
+ item.seconds = date.slice(18, 20);
236
+ return item;
237
+ };
238
+ AXDateTime.prototype.toGregorianString = function (value) {
239
+ var date = this.convertToGregorianDate(value);
240
+ var str = '';
241
+ str = date.year + '-' + date.month + '-' + date.day + 'T' + date.hour + ':' + date.minutes + ':' + date.seconds;
242
+ return str;
243
+ };
244
+ AXDateTime.prototype.compaireNew = function (value, unit, type) {
245
+ if (unit === void 0) { unit = 'YMD'; }
246
+ if (type === void 0) { type = 'jalali'; }
247
+ var range = [0, 0];
248
+ var str1;
249
+ var str2;
250
+ if (type === 'jalali') {
251
+ str1 = this.toJalaliString(this.date);
252
+ str2 = this.toJalaliString(value.date ? value.date : value);
253
+ }
254
+ else {
255
+ str1 = this.toGregorianString(this.date);
256
+ str2 = this.toGregorianString(value.date ? value.date : value);
257
+ }
258
+ switch (unit) {
259
+ case 'YMDhms':
260
+ range[0] = 0;
261
+ range[1] = 19;
262
+ break;
263
+ case 'YMDhm':
264
+ range[0] = 0;
265
+ range[1] = 16;
266
+ break;
267
+ case 'YMDh':
268
+ range[0] = 0;
269
+ range[1] = 13;
270
+ break;
271
+ case 'YMD':
272
+ range[0] = 0;
273
+ range[1] = 10;
274
+ break;
275
+ case 'YM':
276
+ range[0] = 0;
277
+ range[1] = 7;
278
+ break;
279
+ case 'h':
280
+ range[0] = 11;
281
+ range[1] = 13;
282
+ break;
283
+ case 'm':
284
+ range[0] = 14;
285
+ range[1] = 16;
286
+ break;
287
+ case 's':
288
+ range[0] = 17;
289
+ range[1] = 19;
290
+ break;
291
+ case 'D':
292
+ range[0] = 8;
293
+ range[1] = 10;
294
+ break;
295
+ case 'M':
296
+ range[0] = 5;
297
+ range[1] = 7;
298
+ break;
299
+ case 'Y':
300
+ range[0] = 0;
301
+ range[1] = 4;
302
+ break;
303
+ }
304
+ if (str1.slice(range[0], range[1]) === str2.slice(range[0], range[1])) {
305
+ return 0;
306
+ }
307
+ else if (str1.slice(range[0], range[1]) > str2.slice(range[0], range[1])) {
308
+ return 1;
309
+ }
310
+ else {
311
+ return -1;
312
+ }
313
+ };
314
+ AXDateTime.prototype.compaire = function (value, unit) {
315
+ if (unit === void 0) { unit = 'day'; }
316
+ if (this._moment.isSame(moment(value.date), this.resolveUnit(unit))) {
317
+ return 0;
318
+ }
319
+ else if (this._moment.isAfter(moment(value.date), this.resolveUnit(unit))) {
320
+ return 1;
321
+ }
322
+ else {
323
+ return -1;
324
+ }
325
+ };
326
+ AXDateTime.prototype.toISOString = function () {
327
+ return this._date.toISOString();
328
+ };
329
+ return AXDateTime;
330
+ }());
331
+ export { AXDateTime };
332
+ var AXCalendarMonth = /** @class */ (function () {
333
+ function AXCalendarMonth(date) {
334
+ this._moment = moment(date.date);
335
+ this.index = date.date.getMonth();
336
+ this.name = this._moment.format('MMMM');
337
+ this.range = new AXDateTimeRange(new AXDateTime(this._moment.startOf('month').toDate(), date.type), new AXDateTime(this._moment.endOf('month').toDate(), date.type));
338
+ }
339
+ Object.defineProperty(AXCalendarMonth.prototype, "range", {
340
+ get: function () {
341
+ return this._range;
342
+ },
343
+ set: function (v) {
344
+ this._range = v;
345
+ },
346
+ enumerable: true,
347
+ configurable: true
348
+ });
349
+ return AXCalendarMonth;
350
+ }());
351
+ export { AXCalendarMonth };
352
+ var AXDateTimeRange = /** @class */ (function () {
353
+ function AXDateTimeRange(startTime, endTime) {
354
+ this.startTime = startTime;
355
+ this.endTime = endTime;
356
+ }
357
+ AXDateTimeRange.prototype.duration = function (unit) {
358
+ if (unit === void 0) { unit = 'days'; }
359
+ var duration = moment.duration(moment(this.startTime.date).diff(moment(this.endTime.date)));
360
+ return duration.as(unit);
361
+ };
362
+ AXDateTimeRange.prototype.enumurate = function (unit, type) {
363
+ if (unit === void 0) { unit = 'day'; }
364
+ if (type === void 0) { type = AXConfig.get('dateTime.type') || 'jalali'; }
365
+ var result = [];
366
+ for (var index = 0; this.startTime.add(unit, index).compaireNew(this.endTime, this.getViewCompaire(unit), type) <= 0; index++) {
367
+ result.push(this.startTime.add(unit, index));
368
+ }
369
+ return result;
370
+ };
371
+ AXDateTimeRange.prototype.includes = function (value, unit, type) {
372
+ if (unit === void 0) { unit = 'day'; }
373
+ if (type === void 0) { type = 'jalali'; }
374
+ return (value.compaireNew(this.startTime, this.getViewCompaire(unit), type) >= 0 &&
375
+ value.compaireNew(this.endTime, this.getViewCompaire(unit), type) <= 0);
376
+ };
377
+ AXDateTimeRange.prototype.getViewCompaire = function (view) {
378
+ switch (view) {
379
+ case 'day':
380
+ return 'YMD';
381
+ case 'month':
382
+ return 'YM';
383
+ case 'year':
384
+ return 'Y';
385
+ }
386
+ };
387
+ return AXDateTimeRange;
388
+ }());
389
+ export { AXDateTimeRange };
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9kYXRldGltZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBVXZCO0lBd0JFLDBDQUEwQztJQUMxQyxtQ0FBbUM7SUFDbkMsb0NBQW9DO0lBQ3BDLDBCQUEwQjtJQUMxQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLElBQUk7SUFFSixvQkFBWSxLQUFpQyxFQUFTLElBQW1FO1FBQTdHLHNCQUFBLEVBQUEsWUFBMkIsSUFBSSxFQUFFO1FBQVMscUJBQUEsRUFBQSxPQUF1QixRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFdBQVc7UUFBbkUsU0FBSSxHQUFKLElBQUksQ0FBK0Q7UUFDdkgsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBYSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBekNNLGtCQUFPLEdBQWQsVUFBZSxLQUFVLEVBQUUsSUFBbUU7UUFBbkUscUJBQUEsRUFBQSxPQUF1QixRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFdBQVc7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QUFDO1lBQ3pDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEU7UUFDRCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssUUFBUTtnQkFDWCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUVSLEtBQUssSUFBSTtnQkFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtZQUVSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNkLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUVSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNkLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUVSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNkLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUVSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtZQUVSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtTQUNUO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRSxPQUFPLENBQUMsQ0FBQztTQUNWO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxRSxPQUFPLENBQUMsQ0FBQztTQUNWO2FBQU07WUFDTCxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsNkJBQVEsR0FBUixVQUFTLEtBQWlCLEVBQUUsSUFBc0I7UUFBdEIscUJBQUEsRUFBQSxZQUFzQjtRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ25FLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCxnQ0FBVyxHQUFYO1FBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDSCxpQkFBQztBQUFELENBQUMsQUE3U0QsSUE2U0M7O0FBRUQ7SUFXRSx5QkFBWSxJQUFnQjtRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FDOUIsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNqRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2hFLENBQUM7SUFDSixDQUFDO0lBZkQsc0JBQVcsa0NBQUs7YUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQzthQUNELFVBQWlCLENBQWtCO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7OztPQUhBO0lBaUJILHNCQUFDO0FBQUQsQ0FBQyxBQXZCRCxJQXVCQzs7QUFFRDtJQUNFLHlCQUFtQixTQUFxQixFQUFTLE9BQW1CO1FBQWpELGNBQVMsR0FBVCxTQUFTLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUksQ0FBQztJQUV6RSxrQ0FBUSxHQUFSLFVBQVMsSUFBMkI7UUFBM0IscUJBQUEsRUFBQSxhQUEyQjtRQUNsQyxJQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxtQ0FBUyxHQUFULFVBQVUsSUFBc0IsRUFBRSxJQUFnRTtRQUF4RixxQkFBQSxFQUFBLFlBQXNCO1FBQUUscUJBQUEsRUFBQSxPQUF1QixRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFFBQVE7UUFDaEcsSUFBTSxNQUFNLEdBQWlCLEVBQUUsQ0FBQztRQUNoQyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDN0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQ0FBUSxHQUFSLFVBQVMsS0FBaUIsRUFBRSxJQUFzQixFQUFFLElBQWU7UUFBdkMscUJBQUEsRUFBQSxZQUFzQjtRQUFFLHFCQUFBLEVBQUEsZUFBZTtRQUNqRSxPQUFPLENBQ0wsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN4RSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRUQseUNBQWUsR0FBZixVQUFnQixJQUFJO1FBQ2xCLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxLQUFLO2dCQUNSLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxNQUFNO2dCQUNULE9BQU8sR0FBRyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBakNELElBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdqYWxhbGktbW9tZW50JztcclxuaW1wb3J0IHsgQVhDb25maWcgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcnO1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xyXG5cclxuZXhwb3J0IHR5cGUgVGltZVVuaXQgPSAnc2Vjb25kJyB8ICdtaW51dGUnIHwgJ21pbnV0ZXMnIHwgJ2hvdXInIHwgJ2hvdXJzJyB8ICdkYXknIHwgJ2RheXMnIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICd3ZWVrJztcclxuXHJcbmV4cG9ydCB0eXBlIFRpbWVEdXJhdGlvbiA9ICdzZWNvbmRzJyB8ICdtaW51dGVzJyB8ICdob3VycycgfCAnZGF5cycgfCAnd2Vla3MnIHwgJ21vbnRoJyB8ICd5ZWFycyc7XHJcblxyXG5leHBvcnQgdHlwZSBUaW1lU3RlcCA9ICdZJyB8ICdNJyB8ICdEJyB8ICdZTScgfCAnWU1EJyB8ICdZTURoJyB8ICdZTURobScgfCAnWU1EaG1zJyB8ICdoJyB8ICdtJyB8ICdzJztcclxuXHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJUeXBlID0gJ2phbGFsaScgfCAnZ3JlZ29yaWFuJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lIHtcclxuICBzdGF0aWMgY29udmVydCh2YWx1ZTogYW55LCB0eXBlOiBBWENhbGVuZGFyVHlwZSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpIHx8ICdncmVnb3JpYW4nKTogQVhEYXRlVGltZSB7XHJcbiAgICBsZXQgZGF0ZTogQVhEYXRlVGltZTtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7XHJcbiAgICAgIGRhdGUgPSBuZXcgQVhEYXRlVGltZSh2YWx1ZSBhcyBzdHJpbmcsIHR5cGUpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgZGF0ZSA9IG5ldyBBWERhdGVUaW1lKHZhbHVlIGFzIERhdGUsIHR5cGUpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcclxuICAgICAgZGF0ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRlOiBEYXRlO1xyXG4gIGdldCBkYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVVbml0KHVuaXQ6IFRpbWVVbml0KTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdqYWxhbGknID8gJ2onICsgdW5pdCA6IHVuaXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tb21lbnQ6IG1vbWVudF8uTW9tZW50O1xyXG5cclxuICAvLyBwcml2YXRlIGdldCBfbW9tZW50KCk6IG1vbWVudF8uTW9tZW50IHtcclxuICAvLyAgICAgY29uc3QgbSA9IG1vbWVudCh0aGlzLmRhdGUpO1xyXG4gIC8vICAgICBpZiAodGhpcy50eXBlID09PSAnamFsYWxpJykge1xyXG4gIC8vICAgICAgICAgbS5sb2NhbGUoJ2ZhJyk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgcmV0dXJuIG07XHJcbiAgLy8gfVxyXG5cclxuICBjb25zdHJ1Y3Rvcih2YWx1ZTogRGF0ZSB8IHN0cmluZyA9IG5ldyBEYXRlKCksIHB1YmxpYyB0eXBlOiBBWENhbGVuZGFyVHlwZSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpIHx8ICdncmVnb3JpYW4nKSB7XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIHRoaXMuX2RhdGUgPSB2YWx1ZSBhcyBEYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuX21vbWVudCA9IG1vbWVudCh0aGlzLmRhdGUpO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2phbGFsaScpIHtcclxuICAgICAgdGhpcy5fbW9tZW50LmxvY2FsZSgnZmEnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb25lKCk6IEFYRGF0ZVRpbWUge1xyXG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKHRoaXMuZGF0ZSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGdldCBkYXlJbk1vbnRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9tZW50LmRhdGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBkYXlPZlllYXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9tb21lbnQuZGF5T2ZZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGF5SW5XZWVrKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9tZW50LmRheSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhvdXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9tb21lbnQuaG91cigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbnV0ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vbWVudC5taW51dGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWNvbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9tb21lbnQuc2Vjb25kKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgeWVhcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vbWVudC55ZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9udGhPZlllYXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9tb21lbnQubW9udGgoKTtcclxuICB9XHJcblxyXG4gIGdldCBtb250aCgpOiBBWENhbGVuZGFyTW9udGgge1xyXG4gICAgcmV0dXJuIG5ldyBBWENhbGVuZGFyTW9udGgodGhpcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlyc3REYXlPZldlZWsoKTogQVhEYXRlVGltZSB7XHJcbiAgICBjb25zdCBhID0gbW9tZW50KHRoaXMuZGF0ZSk7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnamFsYWxpJykge1xyXG4gICAgICB0aGlzLl9tb21lbnQubG9jYWxlKCdmYScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGEuc3RhcnRPZigndycpLnRvRGF0ZSgpLCB0aGlzLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZERheU9mV2VlaygpOiBBWERhdGVUaW1lIHtcclxuICAgIGNvbnN0IGEgPSBtb21lbnQodGhpcy5kYXRlKTtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdqYWxhbGknKSB7XHJcbiAgICAgIHRoaXMuX21vbWVudC5sb2NhbGUoJ2ZhJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobW9tZW50KHRoaXMuZGF0ZSkuZW5kT2YoJ3cnKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRTdHJpbmdUb0phbGFsaShkYXRlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbW9tZW50KGRhdGUpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ1lZWVkvTS9EJyk7XHJcblxyXG5cclxuICB9XHJcbiAgY29udmVydFN0cmluZ1RvR3JlZ29yaWFuKGRhdGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSgobW9tZW50LmZyb20oZGF0ZSwgJ2ZhJywgJ1lZWVkvTU0vREQnKS5mb3JtYXQoJ1lZWVkvTU0vREQnKSkpO1xyXG4gIH1cclxuXHJcbiAgYWRkKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScsIGFtb3VudDogbnVtYmVyKTogQVhEYXRlVGltZSB7XHJcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobW9tZW50KHRoaXMuZGF0ZSkuYWRkKGFtb3VudCwgdGhpcy5yZXNvbHZlVW5pdCh1bml0KSkudG9EYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBhZGREYXkoYW1vdW50OiBudW1iZXIpOiBBWERhdGVUaW1lIHtcclxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShtb21lbnQodGhpcy5kYXRlKS5hZGQoYW1vdW50LCAnZCcpLnRvRGF0ZSgpLCB0aGlzLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgYWRkTW9udGgoYW1vdW50OiBudW1iZXIpOiBBWERhdGVUaW1lIHtcclxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShtb21lbnQodGhpcy5kYXRlKS5hZGQoYW1vdW50LCAnbW9udGhzJykudG9EYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgfVxyXG4gIGFkZEhvdXIoYW1vdW50OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShtb21lbnQodGhpcy5kYXRlKS5hZGQoYW1vdW50LCAnaG91cnMnKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIHNldCh1bml0OiBUaW1lVW5pdCA9ICdkYXknLCB2YWx1ZTogbnVtYmVyKTogQVhEYXRlVGltZSB7XHJcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUodGhpcy5fbW9tZW50LnNldCh1bml0LCB2YWx1ZSkudG9EYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBkdXJhdGlvbihlbmQ6IEFYRGF0ZVRpbWUsIHVuaXQ6IFRpbWVEdXJhdGlvbiA9ICdkYXlzJyk6IG51bWJlciB7XHJcbiAgICBjb25zdCBkdXJhdGlvbiA9IG1vbWVudC5kdXJhdGlvbih0aGlzLl9tb21lbnQuZGlmZihlbmQuX21vbWVudCkpO1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoZHVyYXRpb24uYXModW5pdCkpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRPZih1bml0OiBUaW1lVW5pdCA9ICdkYXknKTogQVhEYXRlVGltZSB7XHJcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobW9tZW50KHRoaXMuZGF0ZSkuc3RhcnRPZih0aGlzLnJlc29sdmVVbml0KHVuaXQpKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGVuZE9mKHVuaXQ6IFRpbWVVbml0ID0gJ2RheScpOiBBWERhdGVUaW1lIHtcclxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShtb21lbnQodGhpcy5kYXRlKS5lbmRPZih0aGlzLnJlc29sdmVVbml0KHVuaXQpKS50b0RhdGUoKSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdChmb3JtYXQ6IHN0cmluZyA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuc2hvcnREYXRlRm9ybWF0JykgfHwgKHRoaXMudHlwZSA9PT0gJ2dyZWdvcmlhbicgPyAnREQtTU0tWVlZWScgOiAnWVlZWS1NTS1ERCcpKTogc3RyaW5nIHtcclxuICAgIGlmIChmb3JtYXQgPT09ICdQJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbW9tZW50LmZyb21Ob3coKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9tb21lbnQuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICBlcXVhbCh2YWx1ZTogQVhEYXRlVGltZSwgdW5pdDogVGltZVVuaXQgPSAnZGF5Jykge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fbW9tZW50LmlzU2FtZShtb21lbnQodmFsdWUuZGF0ZSksIHRoaXMucmVzb2x2ZVVuaXQodW5pdCkpO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvSmFsYWxpRGF0ZSh2YWx1ZSkge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgbnVtYmVyaW5nU3lzdGVtOiAnbGF0bicsXHJcbiAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcclxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgIHNlY29uZDogJzItZGlnaXQnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgakRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCdmYS1JUicsIG9wdGlvbnMpO1xyXG4gICAgY29uc3QgaXRlbTogYW55ID0ge307XHJcbiAgICBpdGVtLnllYXIgPSBqRGF0ZS5zbGljZSgwLCA0KTtcclxuICAgIGl0ZW0ubW9udGggPSBqRGF0ZS5zbGljZSg1LCA3KTtcclxuICAgIGl0ZW0uZGF5ID0gakRhdGUuc2xpY2UoOCwgMTApO1xyXG4gICAgaXRlbS5ob3VyID0gakRhdGUuc2xpY2UoMTMsIDE1KTtcclxuICAgIGl0ZW0ubWludXRlcyA9IGpEYXRlLnNsaWNlKDE2LCAxOCk7XHJcbiAgICBpdGVtLnNlY29uZHMgPSBqRGF0ZS5zbGljZSgxOSwgMjEpO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG5cclxuICB0b0phbGFsaVN0cmluZyh2YWx1ZSkge1xyXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuY29udmVydFRvSmFsYWxpRGF0ZSh2YWx1ZSk7XHJcbiAgICBsZXQgc3RyID0gJyc7XHJcbiAgICBzdHIgPSBkYXRlLnllYXIgKyAnLScgKyBkYXRlLm1vbnRoICsgJy0nICsgZGF0ZS5kYXkgKyAnVCcgKyBkYXRlLmhvdXIgKyAnOicgKyBkYXRlLm1pbnV0ZXMgKyAnOicgKyBkYXRlLnNlY29uZHM7XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvR3JlZ29yaWFuRGF0ZSh2YWx1ZSkge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgbnVtYmVyaW5nU3lzdGVtOiAnbGF0bicsXHJcbiAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcclxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgIHNlY29uZDogJzItZGlnaXQnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZVN0cmluZygnZW4tdXMnLCBvcHRpb25zKTtcclxuICAgIGNvbnN0IGl0ZW06IGFueSA9IHt9O1xyXG4gICAgaXRlbS55ZWFyID0gZGF0ZS5zbGljZSg2LCAxMCk7XHJcbiAgICBpdGVtLm1vbnRoID0gZGF0ZS5zbGljZSgwLCAyKTtcclxuICAgIGl0ZW0uZGF5ID0gZGF0ZS5zbGljZSgzLCA1KTtcclxuICAgIGl0ZW0uaG91ciA9IGRhdGUuc2xpY2UoMTIsIDE0KTtcclxuICAgIGl0ZW0ubWludXRlcyA9IGRhdGUuc2xpY2UoMTUsIDE3KTtcclxuICAgIGl0ZW0uc2Vjb25kcyA9IGRhdGUuc2xpY2UoMTgsIDIwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxuXHJcbiAgdG9HcmVnb3JpYW5TdHJpbmcodmFsdWUpIHtcclxuICAgIGNvbnN0IGRhdGUgPSB0aGlzLmNvbnZlcnRUb0dyZWdvcmlhbkRhdGUodmFsdWUpO1xyXG4gICAgbGV0IHN0ciA9ICcnO1xyXG4gICAgc3RyID0gZGF0ZS55ZWFyICsgJy0nICsgZGF0ZS5tb250aCArICctJyArIGRhdGUuZGF5ICsgJ1QnICsgZGF0ZS5ob3VyICsgJzonICsgZGF0ZS5taW51dGVzICsgJzonICsgZGF0ZS5zZWNvbmRzO1xyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIGNvbXBhaXJlTmV3KHZhbHVlOiBBWERhdGVUaW1lLCB1bml0OiBUaW1lU3RlcCA9ICdZTUQnLCB0eXBlID0gJ2phbGFsaScpIHtcclxuICAgIGNvbnN0IHJhbmdlID0gWzAsIDBdO1xyXG4gICAgbGV0IHN0cjE7XHJcbiAgICBsZXQgc3RyMjtcclxuICAgIGlmICh0eXBlID09PSAnamFsYWxpJykge1xyXG4gICAgICBzdHIxID0gdGhpcy50b0phbGFsaVN0cmluZyh0aGlzLmRhdGUpO1xyXG4gICAgICBzdHIyID0gdGhpcy50b0phbGFsaVN0cmluZyh2YWx1ZS5kYXRlID8gdmFsdWUuZGF0ZSA6IHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN0cjEgPSB0aGlzLnRvR3JlZ29yaWFuU3RyaW5nKHRoaXMuZGF0ZSk7XHJcbiAgICAgIHN0cjIgPSB0aGlzLnRvR3JlZ29yaWFuU3RyaW5nKHZhbHVlLmRhdGUgPyB2YWx1ZS5kYXRlIDogdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh1bml0KSB7XHJcbiAgICAgIGNhc2UgJ1lNRGhtcyc6XHJcbiAgICAgICAgcmFuZ2VbMF0gPSAwO1xyXG4gICAgICAgIHJhbmdlWzFdID0gMTk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1lNRGhtJzpcclxuICAgICAgICByYW5nZVswXSA9IDA7XHJcbiAgICAgICAgcmFuZ2VbMV0gPSAxNjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWU1EaCc6XHJcbiAgICAgICAgcmFuZ2VbMF0gPSAwO1xyXG4gICAgICAgIHJhbmdlWzFdID0gMTM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1lNRCc6XHJcbiAgICAgICAgcmFuZ2VbMF0gPSAwO1xyXG4gICAgICAgIHJhbmdlWzFdID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdZTSc6XHJcbiAgICAgICAgcmFuZ2VbMF0gPSAwO1xyXG4gICAgICAgIHJhbmdlWzFdID0gNztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ2gnOlxyXG4gICAgICAgIHJhbmdlWzBdID0gMTE7XHJcbiAgICAgICAgcmFuZ2VbMV0gPSAxMztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ20nOlxyXG4gICAgICAgIHJhbmdlWzBdID0gMTQ7XHJcbiAgICAgICAgcmFuZ2VbMV0gPSAxNjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3MnOlxyXG4gICAgICAgIHJhbmdlWzBdID0gMTc7XHJcbiAgICAgICAgcmFuZ2VbMV0gPSAxOTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnRCc6XHJcbiAgICAgICAgcmFuZ2VbMF0gPSA4O1xyXG4gICAgICAgIHJhbmdlWzFdID0gMTA7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdNJzpcclxuICAgICAgICByYW5nZVswXSA9IDU7XHJcbiAgICAgICAgcmFuZ2VbMV0gPSA3O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnWSc6XHJcbiAgICAgICAgcmFuZ2VbMF0gPSAwO1xyXG4gICAgICAgIHJhbmdlWzFdID0gNDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyMS5zbGljZShyYW5nZVswXSwgcmFuZ2VbMV0pID09PSBzdHIyLnNsaWNlKHJhbmdlWzBdLCByYW5nZVsxXSkpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9IGVsc2UgaWYgKHN0cjEuc2xpY2UocmFuZ2VbMF0sIHJhbmdlWzFdKSA+IHN0cjIuc2xpY2UocmFuZ2VbMF0sIHJhbmdlWzFdKSkge1xyXG4gICAgICByZXR1cm4gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAtMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBhaXJlKHZhbHVlOiBBWERhdGVUaW1lLCB1bml0OiBUaW1lVW5pdCA9ICdkYXknKSB7XHJcbiAgICBpZiAodGhpcy5fbW9tZW50LmlzU2FtZShtb21lbnQodmFsdWUuZGF0ZSksIHRoaXMucmVzb2x2ZVVuaXQodW5pdCkpKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb21lbnQuaXNBZnRlcihtb21lbnQodmFsdWUuZGF0ZSksIHRoaXMucmVzb2x2ZVVuaXQodW5pdCkpKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9JU09TdHJpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJNb250aCB7XHJcbiAgcHJpdmF0ZSBfbW9tZW50OiBtb21lbnRfLk1vbWVudDtcclxuXHJcbiAgcHJpdmF0ZSBfcmFuZ2U6IEFYRGF0ZVRpbWVSYW5nZTtcclxuICBwdWJsaWMgZ2V0IHJhbmdlKCk6IEFYRGF0ZVRpbWVSYW5nZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcmFuZ2UodjogQVhEYXRlVGltZVJhbmdlKSB7XHJcbiAgICB0aGlzLl9yYW5nZSA9IHY7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICB0aGlzLl9tb21lbnQgPSBtb21lbnQoZGF0ZS5kYXRlKTtcclxuICAgIHRoaXMuaW5kZXggPSBkYXRlLmRhdGUuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMubmFtZSA9IHRoaXMuX21vbWVudC5mb3JtYXQoJ01NTU0nKTtcclxuICAgIHRoaXMucmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKFxyXG4gICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9tb21lbnQuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKSwgZGF0ZS50eXBlKSxcclxuICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbW9tZW50LmVuZE9mKCdtb250aCcpLnRvRGF0ZSgpLCBkYXRlLnR5cGUpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpbmRleDogbnVtYmVyO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZVJhbmdlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RhcnRUaW1lOiBBWERhdGVUaW1lLCBwdWJsaWMgZW5kVGltZTogQVhEYXRlVGltZSkgeyB9XHJcblxyXG4gIGR1cmF0aW9uKHVuaXQ6IFRpbWVEdXJhdGlvbiA9ICdkYXlzJyk6IG51bWJlciB7XHJcbiAgICBjb25zdCBkdXJhdGlvbiA9IG1vbWVudC5kdXJhdGlvbihtb21lbnQodGhpcy5zdGFydFRpbWUuZGF0ZSkuZGlmZihtb21lbnQodGhpcy5lbmRUaW1lLmRhdGUpKSk7XHJcbiAgICByZXR1cm4gZHVyYXRpb24uYXModW5pdCk7XHJcbiAgfVxyXG5cclxuICBlbnVtdXJhdGUodW5pdDogVGltZVVuaXQgPSAnZGF5JywgdHlwZTogQVhDYWxlbmRhclR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKSB8fCAnamFsYWxpJyk6IEFYRGF0ZVRpbWVbXSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFYRGF0ZVRpbWVbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyB0aGlzLnN0YXJ0VGltZS5hZGQodW5pdCwgaW5kZXgpLmNvbXBhaXJlTmV3KHRoaXMuZW5kVGltZSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodW5pdCksIHR5cGUpIDw9IDA7IGluZGV4KyspIHtcclxuICAgICAgcmVzdWx0LnB1c2godGhpcy5zdGFydFRpbWUuYWRkKHVuaXQsIGluZGV4KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaW5jbHVkZXModmFsdWU6IEFYRGF0ZVRpbWUsIHVuaXQ6IFRpbWVVbml0ID0gJ2RheScsIHR5cGUgPSAnamFsYWxpJyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdmFsdWUuY29tcGFpcmVOZXcodGhpcy5zdGFydFRpbWUsIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHVuaXQpLCB0eXBlKSA+PSAwICYmXHJcbiAgICAgIHZhbHVlLmNvbXBhaXJlTmV3KHRoaXMuZW5kVGltZSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodW5pdCksIHR5cGUpIDw9IDBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3Q29tcGFpcmUodmlldykge1xyXG4gICAgc3dpdGNoICh2aWV3KSB7XHJcbiAgICAgIGNhc2UgJ2RheSc6XHJcbiAgICAgICAgcmV0dXJuICdZTUQnO1xyXG4gICAgICBjYXNlICdtb250aCc6XHJcbiAgICAgICAgcmV0dXJuICdZTSc7XHJcbiAgICAgIGNhc2UgJ3llYXInOlxyXG4gICAgICAgIHJldHVybiAnWSc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==