@stemy/ngx-utils 10.2.44 → 10.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +27 -27
  2. package/bundles/stemy-ngx-utils.umd.js +5654 -5640
  3. package/bundles/stemy-ngx-utils.umd.js.map +1 -1
  4. package/bundles/stemy-ngx-utils.umd.min.js +1 -1
  5. package/bundles/stemy-ngx-utils.umd.min.js.map +1 -1
  6. package/esm2015/ngx-utils/common-types.js +111 -111
  7. package/esm2015/ngx-utils/components/dynamic-table/dynamic-table.component.js +139 -139
  8. package/esm2015/ngx-utils/components/pagination-menu/pagination-menu.component.js +96 -96
  9. package/esm2015/ngx-utils/components/unordered-list/unordered-list.component.js +51 -51
  10. package/esm2015/ngx-utils/directives/async-method.directive.js +58 -58
  11. package/esm2015/ngx-utils/directives/background.directive.js +51 -51
  12. package/esm2015/ngx-utils/directives/dynamic-table-template.directive.js +19 -19
  13. package/esm2015/ngx-utils/directives/global-template.directive.js +27 -27
  14. package/esm2015/ngx-utils/directives/icon.directive.js +59 -59
  15. package/esm2015/ngx-utils/directives/ngx-template-outlet.directive.js +88 -88
  16. package/esm2015/ngx-utils/directives/pagination-item.directive.js +33 -33
  17. package/esm2015/ngx-utils/directives/pagination.directive.js +76 -71
  18. package/esm2015/ngx-utils/directives/resource-if.directive.js +51 -51
  19. package/esm2015/ngx-utils/directives/sticky-class.directive.js +35 -35
  20. package/esm2015/ngx-utils/directives/sticky.directive.js +48 -48
  21. package/esm2015/ngx-utils/directives/unordered-list-item.directive.js +70 -70
  22. package/esm2015/ngx-utils/directives/unordered-list-template.directive.js +26 -26
  23. package/esm2015/ngx-utils/ngx-utils.module.js +232 -232
  24. package/esm2015/ngx-utils/pipes/chunk.pipe.js +21 -21
  25. package/esm2015/ngx-utils/pipes/entries.pipe.js +24 -24
  26. package/esm2015/ngx-utils/pipes/extra-item-properties.pipe.js +27 -27
  27. package/esm2015/ngx-utils/pipes/filter.pipe.js +38 -38
  28. package/esm2015/ngx-utils/pipes/find.pipe.js +25 -25
  29. package/esm2015/ngx-utils/pipes/format-number.pipe.js +19 -19
  30. package/esm2015/ngx-utils/pipes/get-offset.pipe.js +13 -13
  31. package/esm2015/ngx-utils/pipes/get-type.pipe.js +12 -12
  32. package/esm2015/ngx-utils/pipes/global-template.pipe.js +35 -35
  33. package/esm2015/ngx-utils/pipes/group-by.pipe.js +23 -23
  34. package/esm2015/ngx-utils/pipes/is-type.pipe.js +12 -12
  35. package/esm2015/ngx-utils/pipes/join.pipe.js +15 -15
  36. package/esm2015/ngx-utils/pipes/keys.pipe.js +18 -18
  37. package/esm2015/ngx-utils/pipes/map.pipe.js +25 -25
  38. package/esm2015/ngx-utils/pipes/max.pipe.js +22 -22
  39. package/esm2015/ngx-utils/pipes/min.pipe.js +22 -22
  40. package/esm2015/ngx-utils/pipes/reduce.pipe.js +26 -26
  41. package/esm2015/ngx-utils/pipes/remap.pipe.js +28 -28
  42. package/esm2015/ngx-utils/pipes/replace.pipe.js +12 -12
  43. package/esm2015/ngx-utils/pipes/reverse.pipe.js +20 -20
  44. package/esm2015/ngx-utils/pipes/round.pipe.js +19 -19
  45. package/esm2015/ngx-utils/pipes/safe-html.pipe.js +32 -32
  46. package/esm2015/ngx-utils/pipes/translate.pipe.js +81 -81
  47. package/esm2015/ngx-utils/pipes/values.pipe.js +18 -18
  48. package/esm2015/ngx-utils/plugins/resize-event.plugin.js +59 -59
  49. package/esm2015/ngx-utils/plugins/scroll-event.plugin.js +52 -52
  50. package/esm2015/ngx-utils/services/acl.service.js +78 -78
  51. package/esm2015/ngx-utils/services/api.service.js +35 -35
  52. package/esm2015/ngx-utils/services/auth.service.js +14 -14
  53. package/esm2015/ngx-utils/services/base-http.client.js +46 -46
  54. package/esm2015/ngx-utils/services/base-http.service.js +274 -274
  55. package/esm2015/ngx-utils/services/config.service.js +95 -95
  56. package/esm2015/ngx-utils/services/error-handler.service.js +49 -49
  57. package/esm2015/ngx-utils/services/events.service.js +24 -24
  58. package/esm2015/ngx-utils/services/formatter.service.js +44 -44
  59. package/esm2015/ngx-utils/services/global-template.service.js +35 -35
  60. package/esm2015/ngx-utils/services/icon.service.js +24 -24
  61. package/esm2015/ngx-utils/services/language.service.js +117 -117
  62. package/esm2015/ngx-utils/services/open-api.service.js +41 -41
  63. package/esm2015/ngx-utils/services/promise.service.js +49 -49
  64. package/esm2015/ngx-utils/services/state.service.js +143 -143
  65. package/esm2015/ngx-utils/services/static-language.service.js +144 -144
  66. package/esm2015/ngx-utils/services/storage.service.js +48 -48
  67. package/esm2015/ngx-utils/services/toaster.service.js +29 -29
  68. package/esm2015/ngx-utils/services/translated-url.serializer.js +70 -70
  69. package/esm2015/ngx-utils/services/universal.service.js +73 -73
  70. package/esm2015/ngx-utils/utils/ajax-request-handler.js +40 -40
  71. package/esm2015/ngx-utils/utils/array.utils.js +100 -90
  72. package/esm2015/ngx-utils/utils/auth.guard.js +153 -153
  73. package/esm2015/ngx-utils/utils/canvas.utils.js +388 -388
  74. package/esm2015/ngx-utils/utils/date.utils.js +28 -28
  75. package/esm2015/ngx-utils/utils/file.utils.js +90 -90
  76. package/esm2015/ngx-utils/utils/generic-value.js +20 -20
  77. package/esm2015/ngx-utils/utils/geometry.js +132 -132
  78. package/esm2015/ngx-utils/utils/initializer.js +17 -17
  79. package/esm2015/ngx-utils/utils/loader.utils.js +55 -55
  80. package/esm2015/ngx-utils/utils/math.utils.js +15 -15
  81. package/esm2015/ngx-utils/utils/object.utils.js +248 -248
  82. package/esm2015/ngx-utils/utils/observable.utils.js +63 -63
  83. package/esm2015/ngx-utils/utils/reflect.utils.js +33 -33
  84. package/esm2015/ngx-utils/utils/set.utils.js +20 -20
  85. package/esm2015/ngx-utils/utils/string.utils.js +28 -28
  86. package/esm2015/ngx-utils/utils/timer.utils.js +52 -52
  87. package/esm2015/ngx-utils/utils/unique.utils.js +24 -24
  88. package/esm2015/ngx-utils/utils/vector.js +77 -77
  89. package/esm2015/public_api.js +83 -83
  90. package/esm2015/stemy-ngx-utils.js +7 -7
  91. package/fesm2015/stemy-ngx-utils.js +4552 -4537
  92. package/fesm2015/stemy-ngx-utils.js.map +1 -1
  93. package/ngx-utils/common-types.d.ts +284 -284
  94. package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +43 -43
  95. package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +28 -28
  96. package/ngx-utils/components/unordered-list/unordered-list.component.d.ts +22 -22
  97. package/ngx-utils/directives/async-method.directive.d.ts +16 -16
  98. package/ngx-utils/directives/background.directive.d.ts +14 -14
  99. package/ngx-utils/directives/dynamic-table-template.directive.d.ts +8 -8
  100. package/ngx-utils/directives/global-template.directive.d.ts +10 -10
  101. package/ngx-utils/directives/icon.directive.d.ts +20 -20
  102. package/ngx-utils/directives/ngx-template-outlet.directive.d.ts +14 -14
  103. package/ngx-utils/directives/pagination-item.directive.d.ts +12 -12
  104. package/ngx-utils/directives/pagination.directive.d.ts +22 -21
  105. package/ngx-utils/directives/resource-if.directive.d.ts +16 -16
  106. package/ngx-utils/directives/sticky-class.directive.d.ts +12 -12
  107. package/ngx-utils/directives/sticky.directive.d.ts +16 -16
  108. package/ngx-utils/directives/unordered-list-item.directive.d.ts +25 -25
  109. package/ngx-utils/directives/unordered-list-template.directive.d.ts +10 -10
  110. package/ngx-utils/ngx-utils.module.d.ts +76 -76
  111. package/ngx-utils/pipes/chunk.pipe.d.ts +4 -4
  112. package/ngx-utils/pipes/entries.pipe.d.ts +9 -9
  113. package/ngx-utils/pipes/extra-item-properties.pipe.d.ts +5 -5
  114. package/ngx-utils/pipes/filter.pipe.d.ts +5 -5
  115. package/ngx-utils/pipes/find.pipe.d.ts +5 -5
  116. package/ngx-utils/pipes/format-number.pipe.d.ts +7 -7
  117. package/ngx-utils/pipes/get-offset.pipe.d.ts +4 -4
  118. package/ngx-utils/pipes/get-type.pipe.d.ts +4 -4
  119. package/ngx-utils/pipes/global-template.pipe.d.ts +13 -13
  120. package/ngx-utils/pipes/group-by.pipe.d.ts +5 -5
  121. package/ngx-utils/pipes/is-type.pipe.d.ts +4 -4
  122. package/ngx-utils/pipes/join.pipe.d.ts +4 -4
  123. package/ngx-utils/pipes/keys.pipe.d.ts +4 -4
  124. package/ngx-utils/pipes/map.pipe.d.ts +5 -5
  125. package/ngx-utils/pipes/max.pipe.d.ts +4 -4
  126. package/ngx-utils/pipes/min.pipe.d.ts +4 -4
  127. package/ngx-utils/pipes/reduce.pipe.d.ts +5 -5
  128. package/ngx-utils/pipes/remap.pipe.d.ts +4 -4
  129. package/ngx-utils/pipes/replace.pipe.d.ts +4 -4
  130. package/ngx-utils/pipes/reverse.pipe.d.ts +4 -4
  131. package/ngx-utils/pipes/round.pipe.d.ts +7 -7
  132. package/ngx-utils/pipes/safe-html.pipe.d.ts +7 -7
  133. package/ngx-utils/pipes/translate.pipe.d.ts +15 -15
  134. package/ngx-utils/pipes/values.pipe.d.ts +4 -4
  135. package/ngx-utils/plugins/resize-event.plugin.d.ts +10 -10
  136. package/ngx-utils/plugins/scroll-event.plugin.d.ts +11 -11
  137. package/ngx-utils/services/acl.service.d.ts +12 -12
  138. package/ngx-utils/services/api.service.d.ts +14 -14
  139. package/ngx-utils/services/auth.service.d.ts +8 -8
  140. package/ngx-utils/services/base-http.client.d.ts +12 -12
  141. package/ngx-utils/services/base-http.service.d.ts +42 -42
  142. package/ngx-utils/services/config.service.d.ts +21 -21
  143. package/ngx-utils/services/error-handler.service.d.ts +10 -10
  144. package/ngx-utils/services/events.service.d.ts +11 -11
  145. package/ngx-utils/services/formatter.service.d.ts +12 -12
  146. package/ngx-utils/services/global-template.service.d.ts +16 -16
  147. package/ngx-utils/services/icon.service.d.ts +10 -10
  148. package/ngx-utils/services/language.service.d.ts +18 -18
  149. package/ngx-utils/services/open-api.service.d.ts +8 -8
  150. package/ngx-utils/services/promise.service.d.ts +15 -15
  151. package/ngx-utils/services/state.service.d.ts +41 -41
  152. package/ngx-utils/services/static-language.service.d.ts +41 -41
  153. package/ngx-utils/services/storage.service.d.ts +12 -12
  154. package/ngx-utils/services/toaster.service.d.ts +10 -10
  155. package/ngx-utils/services/translated-url.serializer.d.ts +16 -16
  156. package/ngx-utils/services/universal.service.d.ts +24 -24
  157. package/ngx-utils/utils/ajax-request-handler.d.ts +11 -11
  158. package/ngx-utils/utils/array.utils.d.ts +10 -9
  159. package/ngx-utils/utils/auth.guard.d.ts +26 -26
  160. package/ngx-utils/utils/canvas.utils.d.ts +13 -13
  161. package/ngx-utils/utils/date.utils.d.ts +8 -8
  162. package/ngx-utils/utils/file.utils.d.ts +14 -14
  163. package/ngx-utils/utils/generic-value.d.ts +8 -8
  164. package/ngx-utils/utils/geometry.d.ts +50 -50
  165. package/ngx-utils/utils/initializer.d.ts +11 -11
  166. package/ngx-utils/utils/loader.utils.d.ts +7 -7
  167. package/ngx-utils/utils/math.utils.d.ts +5 -5
  168. package/ngx-utils/utils/object.utils.d.ts +31 -31
  169. package/ngx-utils/utils/observable.utils.d.ts +12 -12
  170. package/ngx-utils/utils/reflect.utils.d.ts +9 -9
  171. package/ngx-utils/utils/set.utils.d.ts +4 -4
  172. package/ngx-utils/utils/string.utils.d.ts +7 -7
  173. package/ngx-utils/utils/timer.utils.d.ts +6 -6
  174. package/ngx-utils/utils/unique.utils.d.ts +5 -5
  175. package/ngx-utils/utils/vector.d.ts +23 -23
  176. package/package.json +1 -1
  177. package/public_api.d.ts +82 -82
  178. package/stemy-ngx-utils.d.ts +6 -6
  179. package/stemy-ngx-utils.metadata.json +1 -1
  180. package/tools/circular.js +116 -116
  181. package/tools/config.js +78 -78
  182. package/tools/icons.js +13 -13
@@ -1,28 +1,28 @@
1
- import { utc } from "moment";
2
- export class DateUtils {
3
- static isHoliday(date) {
4
- return utc(date).isoWeekday() > 5;
5
- }
6
- static isBusinessDay(date) {
7
- return utc(date).isoWeekday() < 6;
8
- }
9
- static add(date, amount, unit) {
10
- return utc(date).add(amount, unit).toDate();
11
- }
12
- static businessAdd(date, amount, unit) {
13
- const signal = amount < 0 ? -1 : 1;
14
- let remaining = Math.abs(amount);
15
- let day = date;
16
- while (remaining) {
17
- day = DateUtils.add(day, signal, unit);
18
- if (DateUtils.isBusinessDay(day)) {
19
- remaining--;
20
- }
21
- }
22
- return day;
23
- }
24
- static businessSubtract(date, amount, unit) {
25
- return DateUtils.businessAdd(date, -amount, unit);
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvZGF0ZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLEdBQUcsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVqRSxNQUFNLE9BQU8sU0FBUztJQUVsQixNQUFNLENBQUMsU0FBUyxDQUFDLElBQVU7UUFDdkIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVU7UUFDM0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVUsRUFBRSxNQUEwQixFQUFFLElBQXdCO1FBQ3ZFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBVSxFQUFFLE1BQWMsRUFBRSxJQUF3QjtRQUNuRSxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ2YsT0FBTyxTQUFTLEVBQUU7WUFDZCxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDOUIsU0FBUyxFQUFFLENBQUM7YUFDZjtTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVUsRUFBRSxNQUFjLEVBQUUsSUFBd0I7UUFDeEUsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uSW5wdXRBcmcxLCBEdXJhdGlvbklucHV0QXJnMiwgdXRjfSBmcm9tIFwibW9tZW50XCI7XG5cbmV4cG9ydCBjbGFzcyBEYXRlVXRpbHMge1xuXG4gICAgc3RhdGljIGlzSG9saWRheShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB1dGMoZGF0ZSkuaXNvV2Vla2RheSgpID4gNTtcbiAgICB9XG5cbiAgICBzdGF0aWMgaXNCdXNpbmVzc0RheShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB1dGMoZGF0ZSkuaXNvV2Vla2RheSgpIDwgNjtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkKGRhdGU6IERhdGUsIGFtb3VudD86IER1cmF0aW9uSW5wdXRBcmcxLCB1bml0PzogRHVyYXRpb25JbnB1dEFyZzIpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHV0YyhkYXRlKS5hZGQoYW1vdW50LCB1bml0KS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYnVzaW5lc3NBZGQoZGF0ZTogRGF0ZSwgYW1vdW50OiBudW1iZXIsIHVuaXQ/OiBEdXJhdGlvbklucHV0QXJnMik6IERhdGUge1xuICAgICAgICBjb25zdCBzaWduYWwgPSBhbW91bnQgPCAwID8gLTEgOiAxO1xuICAgICAgICBsZXQgcmVtYWluaW5nID0gTWF0aC5hYnMoYW1vdW50KTtcbiAgICAgICAgbGV0IGRheSA9IGRhdGU7XG4gICAgICAgIHdoaWxlIChyZW1haW5pbmcpIHtcbiAgICAgICAgICAgIGRheSA9IERhdGVVdGlscy5hZGQoZGF5LCBzaWduYWwsIHVuaXQpO1xuICAgICAgICAgICAgaWYgKERhdGVVdGlscy5pc0J1c2luZXNzRGF5KGRheSkpIHtcbiAgICAgICAgICAgICAgICByZW1haW5pbmctLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF5O1xuICAgIH1cblxuICAgIHN0YXRpYyBidXNpbmVzc1N1YnRyYWN0KGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyLCB1bml0PzogRHVyYXRpb25JbnB1dEFyZzIpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIERhdGVVdGlscy5idXNpbmVzc0FkZChkYXRlLCAtYW1vdW50LCB1bml0KTtcbiAgICB9XG59XG4iXX0=
1
+ import { utc } from "moment";
2
+ export class DateUtils {
3
+ static isHoliday(date) {
4
+ return utc(date).isoWeekday() > 5;
5
+ }
6
+ static isBusinessDay(date) {
7
+ return utc(date).isoWeekday() < 6;
8
+ }
9
+ static add(date, amount, unit) {
10
+ return utc(date).add(amount, unit).toDate();
11
+ }
12
+ static businessAdd(date, amount, unit) {
13
+ const signal = amount < 0 ? -1 : 1;
14
+ let remaining = Math.abs(amount);
15
+ let day = date;
16
+ while (remaining) {
17
+ day = DateUtils.add(day, signal, unit);
18
+ if (DateUtils.isBusinessDay(day)) {
19
+ remaining--;
20
+ }
21
+ }
22
+ return day;
23
+ }
24
+ static businessSubtract(date, amount, unit) {
25
+ return DateUtils.businessAdd(date, -amount, unit);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvZGF0ZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLEdBQUcsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVqRSxNQUFNLE9BQU8sU0FBUztJQUVsQixNQUFNLENBQUMsU0FBUyxDQUFDLElBQVU7UUFDdkIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVU7UUFDM0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVUsRUFBRSxNQUEwQixFQUFFLElBQXdCO1FBQ3ZFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBVSxFQUFFLE1BQWMsRUFBRSxJQUF3QjtRQUNuRSxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ2YsT0FBTyxTQUFTLEVBQUU7WUFDZCxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDOUIsU0FBUyxFQUFFLENBQUM7YUFDZjtTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVUsRUFBRSxNQUFjLEVBQUUsSUFBd0I7UUFDeEUsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uSW5wdXRBcmcxLCBEdXJhdGlvbklucHV0QXJnMiwgdXRjfSBmcm9tIFwibW9tZW50XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgaXNIb2xpZGF5KGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdXRjKGRhdGUpLmlzb1dlZWtkYXkoKSA+IDU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzQnVzaW5lc3NEYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB1dGMoZGF0ZSkuaXNvV2Vla2RheSgpIDwgNjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYWRkKGRhdGU6IERhdGUsIGFtb3VudD86IER1cmF0aW9uSW5wdXRBcmcxLCB1bml0PzogRHVyYXRpb25JbnB1dEFyZzIpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdXRjKGRhdGUpLmFkZChhbW91bnQsIHVuaXQpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBidXNpbmVzc0FkZChkYXRlOiBEYXRlLCBhbW91bnQ6IG51bWJlciwgdW5pdD86IER1cmF0aW9uSW5wdXRBcmcyKTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3Qgc2lnbmFsID0gYW1vdW50IDwgMCA/IC0xIDogMTtcclxuICAgICAgICBsZXQgcmVtYWluaW5nID0gTWF0aC5hYnMoYW1vdW50KTtcclxuICAgICAgICBsZXQgZGF5ID0gZGF0ZTtcclxuICAgICAgICB3aGlsZSAocmVtYWluaW5nKSB7XHJcbiAgICAgICAgICAgIGRheSA9IERhdGVVdGlscy5hZGQoZGF5LCBzaWduYWwsIHVuaXQpO1xyXG4gICAgICAgICAgICBpZiAoRGF0ZVV0aWxzLmlzQnVzaW5lc3NEYXkoZGF5KSkge1xyXG4gICAgICAgICAgICAgICAgcmVtYWluaW5nLS07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRheTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYnVzaW5lc3NTdWJ0cmFjdChkYXRlOiBEYXRlLCBhbW91bnQ6IG51bWJlciwgdW5pdD86IER1cmF0aW9uSW5wdXRBcmcyKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIERhdGVVdGlscy5idXNpbmVzc0FkZChkYXRlLCAtYW1vdW50LCB1bml0KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,90 +1,90 @@
1
- import { first } from "rxjs/operators";
2
- import { ObjectUtils } from "./object.utils";
3
- export class FileUtils {
4
- static getExtension(file) {
5
- return file ? file.name.substr(file.name.lastIndexOf(".")).toLowerCase() : null;
6
- }
7
- static getName(file) {
8
- return file ? file.name.substr(0, file.name.lastIndexOf(".")) : null;
9
- }
10
- static toFile(blob, fileName) {
11
- const data = blob;
12
- data.lastModifiedDate = new Date();
13
- data.name = fileName.split(/\\|\//g).pop();
14
- return data;
15
- }
16
- static dataToBlob(data) {
17
- const parts = data.split(",");
18
- const byteString = atob(parts[1]);
19
- const mimeString = parts[0].split(":")[1].split(";")[0];
20
- const ab = new ArrayBuffer(byteString.length);
21
- const ia = new Uint8Array(ab);
22
- for (let i = 0; i < byteString.length; i++) {
23
- ia[i] = byteString.charCodeAt(i);
24
- }
25
- return new Blob([ab], { type: mimeString });
26
- }
27
- static saveBlob(blob, fileName) {
28
- if (typeof saveAs == "undefined") {
29
- throw Error("FileSaver library is not loaded. Please load it: https://www.npmjs.com/package/file-saver");
30
- }
31
- saveAs(blob, fileName);
32
- }
33
- static saveJson(json, fileName) {
34
- if (!ObjectUtils.isObject(json))
35
- return;
36
- FileUtils.saveBlob(new Blob([JSON.stringify(json, null, 4)]), fileName);
37
- }
38
- static readFileAsText(file) {
39
- return FileUtils.readFile(
40
- // @dynamic
41
- reader => reader.readAsText(file));
42
- }
43
- static readFileAsBinaryString(file) {
44
- return FileUtils.readFile(
45
- // @dynamic
46
- reader => reader.readAsBinaryString(file));
47
- }
48
- static readFileAsDataURL(file) {
49
- return FileUtils.readFile(
50
- // @dynamic
51
- reader => reader.readAsDataURL(file));
52
- }
53
- static readDataFromUrl(http, url) {
54
- return new Promise(
55
- // @dynamic
56
- (resolve, reject) => {
57
- if (!url) {
58
- reject({
59
- message: "The url is not specified"
60
- });
61
- return;
62
- }
63
- if ((/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/g).test(url)) {
64
- resolve(url);
65
- return;
66
- }
67
- first()(http.get(url, {
68
- responseType: "blob"
69
- })).subscribe((blob) => {
70
- FileUtils.readFileAsDataURL(blob).then(resolve, reject);
71
- }, reason => {
72
- if (reason.status > 0)
73
- reject(reason);
74
- else
75
- resolve(url);
76
- });
77
- });
78
- }
79
- static readFile(callback) {
80
- return new Promise(
81
- // @dynamic
82
- (resolve, reject) => {
83
- const reader = new FileReader();
84
- reader.onload = (event) => resolve(event.target.result);
85
- reader.onerror = reject;
86
- callback(reader);
87
- });
88
- }
89
- }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvZmlsZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSTNDLE1BQU0sT0FBTyxTQUFTO0lBRWxCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQ3RDLE1BQU0sSUFBSSxHQUFRLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0MsT0FBYSxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUMxQixNQUFNLEtBQUss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LE1BQU07YUFDdkIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7Z0JBQ3pCLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDUixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztvQkFFZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQXNDO1FBQzFELE9BQU8sSUFBSSxPQUFPO1FBQ2QsV0FBVztRQUNYLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7Zmlyc3R9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4vb2JqZWN0LnV0aWxzXCI7XG5cbmRlY2xhcmUgY29uc3Qgc2F2ZUFzOiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xuXG4gICAgc3RhdGljIGdldEV4dGVuc2lvbihmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZpbGUgPyBmaWxlLm5hbWUuc3Vic3RyKGZpbGUubmFtZS5sYXN0SW5kZXhPZihcIi5cIikpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXROYW1lKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZmlsZSA/IGZpbGUubmFtZS5zdWJzdHIoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKFwiLlwiKSkgOiBudWxsO1xuICAgIH1cblxuICAgIHN0YXRpYyB0b0ZpbGUoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IEZpbGUge1xuICAgICAgICBjb25zdCBkYXRhOiBhbnkgPSBibG9iO1xuICAgICAgICBkYXRhLmxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBkYXRhLm5hbWUgPSBmaWxlTmFtZS5zcGxpdCgvXFxcXHxcXC8vZykucG9wKCk7XG4gICAgICAgIHJldHVybiA8RmlsZT5kYXRhO1xuICAgIH1cblxuICAgIHN0YXRpYyBkYXRhVG9CbG9iKGRhdGE6IHN0cmluZyk6IEJsb2Ige1xuICAgICAgICBjb25zdCBwYXJ0cyA9IGRhdGEuc3BsaXQoXCIsXCIpO1xuICAgICAgICBjb25zdCBieXRlU3RyaW5nID0gYXRvYihwYXJ0c1sxXSk7XG4gICAgICAgIGNvbnN0IG1pbWVTdHJpbmcgPSBwYXJ0c1swXS5zcGxpdChcIjpcIilbMV0uc3BsaXQoXCI7XCIpWzBdO1xuXG4gICAgICAgIGNvbnN0IGFiID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgaWEgPSBuZXcgVWludDhBcnJheShhYik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IEJsb2IoW2FiXSwge3R5cGU6IG1pbWVTdHJpbmd9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc2F2ZUJsb2IoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIHNhdmVBcyA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIkZpbGVTYXZlciBsaWJyYXJ5IGlzIG5vdCBsb2FkZWQuIFBsZWFzZSBsb2FkIGl0OiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9maWxlLXNhdmVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHNhdmVBcyhibG9iLCBmaWxlTmFtZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNhdmVKc29uKGpzb246IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzT2JqZWN0KGpzb24pKSByZXR1cm47XG4gICAgICAgIEZpbGVVdGlscy5zYXZlQmxvYihuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgNCldKSwgZmlsZU5hbWUpO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWFkRmlsZUFzVGV4dChmaWxlOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIEZpbGVVdGlscy5yZWFkRmlsZShcbiAgICAgICAgICAgIC8vIEBkeW5hbWljXG4gICAgICAgICAgICByZWFkZXIgPT4gcmVhZGVyLnJlYWRBc1RleHQoZmlsZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVhZEZpbGVBc0JpbmFyeVN0cmluZyhmaWxlOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIEZpbGVVdGlscy5yZWFkRmlsZShcbiAgICAgICAgICAgIC8vIEBkeW5hbWljXG4gICAgICAgICAgICByZWFkZXIgPT4gcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWFkRmlsZUFzRGF0YVVSTChmaWxlOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIEZpbGVVdGlscy5yZWFkRmlsZShcbiAgICAgICAgICAgIC8vIEBkeW5hbWljXG4gICAgICAgICAgICByZWFkZXIgPT4gcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVhZERhdGFGcm9tVXJsKGh0dHA6IEh0dHBDbGllbnQsIHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oXG4gICAgICAgICAgICAvLyBAZHluYW1pY1xuICAgICAgICAgICAgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRoZSB1cmwgaXMgbm90IHNwZWNpZmllZFwiXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoL14oW0EtWmEtejAtOSsvXXs0fSkqKFtBLVphLXowLTkrL117NH18W0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KSQvZykudGVzdCh1cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodXJsKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaXJzdCgpKGh0dHAuZ2V0KHVybCwge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IFwiYmxvYlwiXG4gICAgICAgICAgICAgICAgfSkpLnN1YnNjcmliZSgoYmxvYjogQmxvYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBGaWxlVXRpbHMucmVhZEZpbGVBc0RhdGFVUkwoYmxvYikudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgICAgIH0sIHJlYXNvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWFzb24uc3RhdHVzID4gMClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZWFzb24pO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHVybCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZEZpbGUoY2FsbGJhY2s6IChyZWFkZXI6IEZpbGVSZWFkZXIpID0+IHZvaWQpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPihcbiAgICAgICAgICAgIC8vIEBkeW5hbWljXG4gICAgICAgICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGV2ZW50OiBhbnkpID0+IHJlc29sdmUoZXZlbnQudGFyZ2V0LnJlc3VsdCk7XG4gICAgICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2socmVhZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
1
+ import { first } from "rxjs/operators";
2
+ import { ObjectUtils } from "./object.utils";
3
+ export class FileUtils {
4
+ static getExtension(file) {
5
+ return file ? file.name.substr(file.name.lastIndexOf(".")).toLowerCase() : null;
6
+ }
7
+ static getName(file) {
8
+ return file ? file.name.substr(0, file.name.lastIndexOf(".")) : null;
9
+ }
10
+ static toFile(blob, fileName) {
11
+ const data = blob;
12
+ data.lastModifiedDate = new Date();
13
+ data.name = fileName.split(/\\|\//g).pop();
14
+ return data;
15
+ }
16
+ static dataToBlob(data) {
17
+ const parts = data.split(",");
18
+ const byteString = atob(parts[1]);
19
+ const mimeString = parts[0].split(":")[1].split(";")[0];
20
+ const ab = new ArrayBuffer(byteString.length);
21
+ const ia = new Uint8Array(ab);
22
+ for (let i = 0; i < byteString.length; i++) {
23
+ ia[i] = byteString.charCodeAt(i);
24
+ }
25
+ return new Blob([ab], { type: mimeString });
26
+ }
27
+ static saveBlob(blob, fileName) {
28
+ if (typeof saveAs == "undefined") {
29
+ throw Error("FileSaver library is not loaded. Please load it: https://www.npmjs.com/package/file-saver");
30
+ }
31
+ saveAs(blob, fileName);
32
+ }
33
+ static saveJson(json, fileName) {
34
+ if (!ObjectUtils.isObject(json))
35
+ return;
36
+ FileUtils.saveBlob(new Blob([JSON.stringify(json, null, 4)]), fileName);
37
+ }
38
+ static readFileAsText(file) {
39
+ return FileUtils.readFile(
40
+ // @dynamic
41
+ reader => reader.readAsText(file));
42
+ }
43
+ static readFileAsBinaryString(file) {
44
+ return FileUtils.readFile(
45
+ // @dynamic
46
+ reader => reader.readAsBinaryString(file));
47
+ }
48
+ static readFileAsDataURL(file) {
49
+ return FileUtils.readFile(
50
+ // @dynamic
51
+ reader => reader.readAsDataURL(file));
52
+ }
53
+ static readDataFromUrl(http, url) {
54
+ return new Promise(
55
+ // @dynamic
56
+ (resolve, reject) => {
57
+ if (!url) {
58
+ reject({
59
+ message: "The url is not specified"
60
+ });
61
+ return;
62
+ }
63
+ if ((/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/g).test(url)) {
64
+ resolve(url);
65
+ return;
66
+ }
67
+ first()(http.get(url, {
68
+ responseType: "blob"
69
+ })).subscribe((blob) => {
70
+ FileUtils.readFileAsDataURL(blob).then(resolve, reject);
71
+ }, reason => {
72
+ if (reason.status > 0)
73
+ reject(reason);
74
+ else
75
+ resolve(url);
76
+ });
77
+ });
78
+ }
79
+ static readFile(callback) {
80
+ return new Promise(
81
+ // @dynamic
82
+ (resolve, reject) => {
83
+ const reader = new FileReader();
84
+ reader.onload = (event) => resolve(event.target.result);
85
+ reader.onerror = reject;
86
+ callback(reader);
87
+ });
88
+ }
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvZmlsZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSTNDLE1BQU0sT0FBTyxTQUFTO0lBRWxCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQ3RDLE1BQU0sSUFBSSxHQUFRLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0MsT0FBYSxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJ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dkIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7Z0JBQ3pCLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDUixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztvQkFFZixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQXNDO1FBQzFELE9BQU8sSUFBSSxPQUFPO1FBQ2QsV0FBVztRQUNYLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtmaXJzdH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL29iamVjdC51dGlsc1wiO1xyXG5cclxuZGVjbGFyZSBjb25zdCBzYXZlQXM6IGFueTtcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXRpbHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXRFeHRlbnNpb24oZmlsZTogRmlsZSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGZpbGUgPyBmaWxlLm5hbWUuc3Vic3RyKGZpbGUubmFtZS5sYXN0SW5kZXhPZihcIi5cIikpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXROYW1lKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBmaWxlID8gZmlsZS5uYW1lLnN1YnN0cigwLCBmaWxlLm5hbWUubGFzdEluZGV4T2YoXCIuXCIpKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRvRmlsZShibG9iOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKTogRmlsZSB7XHJcbiAgICAgICAgY29uc3QgZGF0YTogYW55ID0gYmxvYjtcclxuICAgICAgICBkYXRhLmxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGRhdGEubmFtZSA9IGZpbGVOYW1lLnNwbGl0KC9cXFxcfFxcLy9nKS5wb3AoKTtcclxuICAgICAgICByZXR1cm4gPEZpbGU+ZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZGF0YVRvQmxvYihkYXRhOiBzdHJpbmcpOiBCbG9iIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGRhdGEuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSBhdG9iKHBhcnRzWzFdKTtcclxuICAgICAgICBjb25zdCBtaW1lU3RyaW5nID0gcGFydHNbMF0uc3BsaXQoXCI6XCIpWzFdLnNwbGl0KFwiO1wiKVswXTtcclxuXHJcbiAgICAgICAgY29uc3QgYWIgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZVN0cmluZy5sZW5ndGgpO1xyXG4gICAgICAgIGNvbnN0IGlhID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpYVtpXSA9IGJ5dGVTdHJpbmcuY2hhckNvZGVBdChpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgQmxvYihbYWJdLCB7dHlwZTogbWltZVN0cmluZ30pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzYXZlQmxvYihibG9iOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzYXZlQXMgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIkZpbGVTYXZlciBsaWJyYXJ5IGlzIG5vdCBsb2FkZWQuIFBsZWFzZSBsb2FkIGl0OiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9maWxlLXNhdmVyXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzYXZlQXMoYmxvYiwgZmlsZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzYXZlSnNvbihqc29uOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzT2JqZWN0KGpzb24pKSByZXR1cm47XHJcbiAgICAgICAgRmlsZVV0aWxzLnNhdmVCbG9iKG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCA0KV0pLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJlYWRGaWxlQXNUZXh0KGZpbGU6IEJsb2IpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiBGaWxlVXRpbHMucmVhZEZpbGUoXHJcbiAgICAgICAgICAgIC8vIEBkeW5hbWljXHJcbiAgICAgICAgICAgIHJlYWRlciA9PiByZWFkZXIucmVhZEFzVGV4dChmaWxlKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJlYWRGaWxlQXNCaW5hcnlTdHJpbmcoZmlsZTogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIEZpbGVVdGlscy5yZWFkRmlsZShcclxuICAgICAgICAgICAgLy8gQGR5bmFtaWNcclxuICAgICAgICAgICAgcmVhZGVyID0+IHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZWFkRmlsZUFzRGF0YVVSTChmaWxlOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gRmlsZVV0aWxzLnJlYWRGaWxlKFxyXG4gICAgICAgICAgICAvLyBAZHluYW1pY1xyXG4gICAgICAgICAgICByZWFkZXIgPT4gcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZWFkRGF0YUZyb21VcmwoaHR0cDogSHR0cENsaWVudCwgdXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KFxyXG4gICAgICAgICAgICAvLyBAZHluYW1pY1xyXG4gICAgICAgICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXVybCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiVGhlIHVybCBpcyBub3Qgc3BlY2lmaWVkXCJcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoKC9eKFtBLVphLXowLTkrL117NH0pKihbQS1aYS16MC05Ky9dezR9fFtBLVphLXowLTkrL117M309fFtBLVphLXowLTkrL117Mn09PSkkL2cpLnRlc3QodXJsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodXJsKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaXJzdCgpKGh0dHAuZ2V0KHVybCwge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogXCJibG9iXCJcclxuICAgICAgICAgICAgICAgIH0pKS5zdWJzY3JpYmUoKGJsb2I6IEJsb2IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBGaWxlVXRpbHMucmVhZEZpbGVBc0RhdGFVUkwoYmxvYikudGhlbihyZXNvbHZlLCByZWplY3QpO1xyXG4gICAgICAgICAgICAgICAgfSwgcmVhc29uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVhc29uLnN0YXR1cyA+IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZWFzb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh1cmwpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRGaWxlKGNhbGxiYWNrOiAocmVhZGVyOiBGaWxlUmVhZGVyKSA9PiB2b2lkKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPihcclxuICAgICAgICAgICAgLy8gQGR5bmFtaWNcclxuICAgICAgICAgICAgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IGFueSkgPT4gcmVzb2x2ZShldmVudC50YXJnZXQucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gcmVqZWN0O1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2socmVhZGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,20 +1,20 @@
1
- import { Subject } from "rxjs";
2
- export class GenericValue extends Subject {
3
- constructor(value = null) {
4
- super();
5
- this._value = value;
6
- }
7
- get value() {
8
- return this._value;
9
- }
10
- set value(value) {
11
- if (value == this._value)
12
- return;
13
- this._value = value;
14
- this.next(value);
15
- }
16
- setJustValue(value) {
17
- this._value = value;
18
- }
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy12YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVteS9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvZ2VuZXJpYy12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE1BQU0sT0FBTyxZQUFnQixTQUFRLE9BQVU7SUFjM0MsWUFBWSxRQUFXLElBQUk7UUFDdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBZkQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFRO1FBQ2QsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQVNELFlBQVksQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcblxuZXhwb3J0IGNsYXNzIEdlbmVyaWNWYWx1ZTxUPiBleHRlbmRzIFN1YmplY3Q8VD4ge1xuXG4gICAgZ2V0IHZhbHVlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSB0aGlzLl92YWx1ZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbHVlOiBUO1xuXG4gICAgY29uc3RydWN0b3IodmFsdWU6IFQgPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0SnVzdFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxufVxuIl19
1
+ import { Subject } from "rxjs";
2
+ export class GenericValue extends Subject {
3
+ constructor(value = null) {
4
+ super();
5
+ this._value = value;
6
+ }
7
+ get value() {
8
+ return this._value;
9
+ }
10
+ set value(value) {
11
+ if (value == this._value)
12
+ return;
13
+ this._value = value;
14
+ this.next(value);
15
+ }
16
+ setJustValue(value) {
17
+ this._value = value;
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy12YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvZ2VuZXJpYy12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE1BQU0sT0FBTyxZQUFnQixTQUFRLE9BQVU7SUFjM0MsWUFBWSxRQUFXLElBQUk7UUFDdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBZkQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFRO1FBQ2QsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQVNELFlBQVksQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljVmFsdWU8VD4gZXh0ZW5kcyBTdWJqZWN0PFQ+IHtcclxuXHJcbiAgICBnZXQgdmFsdWUoKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSB0aGlzLl92YWx1ZSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF92YWx1ZTogVDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZTogVCA9IG51bGwpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SnVzdFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=