@stemy/ngx-utils 13.1.3 → 13.2.0

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 (130) hide show
  1. package/bundles/stemy-ngx-utils.umd.js +6254 -0
  2. package/bundles/stemy-ngx-utils.umd.js.map +1 -0
  3. package/esm2015/ngx-utils/common-types.js +116 -0
  4. package/esm2015/ngx-utils/components/dynamic-table/dynamic-table.component.js +139 -0
  5. package/esm2015/ngx-utils/components/pagination-menu/pagination-menu.component.js +96 -0
  6. package/esm2015/ngx-utils/components/unordered-list/unordered-list.component.js +51 -0
  7. package/esm2015/ngx-utils/directives/async-method.base.js +54 -0
  8. package/esm2015/ngx-utils/directives/async-method.directive.js +24 -0
  9. package/esm2015/ngx-utils/directives/background.directive.js +51 -0
  10. package/esm2015/ngx-utils/directives/dynamic-table-template.directive.js +19 -0
  11. package/esm2015/ngx-utils/directives/global-template.directive.js +27 -0
  12. package/esm2015/ngx-utils/directives/icon.directive.js +59 -0
  13. package/esm2015/ngx-utils/directives/ngx-template-outlet.directive.js +88 -0
  14. package/esm2015/ngx-utils/directives/pagination-item.directive.js +33 -0
  15. package/esm2015/ngx-utils/directives/pagination.directive.js +76 -0
  16. package/esm2015/ngx-utils/directives/resource-if.directive.js +51 -0
  17. package/esm2015/ngx-utils/directives/sticky-class.directive.js +35 -0
  18. package/esm2015/ngx-utils/directives/sticky.directive.js +48 -0
  19. package/esm2015/ngx-utils/directives/unordered-list-item.directive.js +70 -0
  20. package/esm2015/ngx-utils/directives/unordered-list-template.directive.js +26 -0
  21. package/esm2015/ngx-utils/ngx-utils.module.js +244 -0
  22. package/esm2015/ngx-utils/pipes/chunk.pipe.js +21 -0
  23. package/esm2015/ngx-utils/pipes/entries.pipe.js +24 -0
  24. package/esm2015/ngx-utils/pipes/extra-item-properties.pipe.js +27 -0
  25. package/esm2015/ngx-utils/pipes/filter.pipe.js +38 -0
  26. package/esm2015/ngx-utils/pipes/find.pipe.js +25 -0
  27. package/esm2015/ngx-utils/pipes/format-number.pipe.js +19 -0
  28. package/esm2015/ngx-utils/pipes/get-offset.pipe.js +13 -0
  29. package/esm2015/ngx-utils/pipes/get-type.pipe.js +12 -0
  30. package/esm2015/ngx-utils/pipes/global-template.pipe.js +37 -0
  31. package/esm2015/ngx-utils/pipes/group-by.pipe.js +23 -0
  32. package/esm2015/ngx-utils/pipes/is-type.pipe.js +12 -0
  33. package/esm2015/ngx-utils/pipes/join.pipe.js +15 -0
  34. package/esm2015/ngx-utils/pipes/keys.pipe.js +18 -0
  35. package/esm2015/ngx-utils/pipes/map.pipe.js +25 -0
  36. package/esm2015/ngx-utils/pipes/max.pipe.js +22 -0
  37. package/esm2015/ngx-utils/pipes/min.pipe.js +22 -0
  38. package/esm2015/ngx-utils/pipes/pop.pipe.js +12 -0
  39. package/esm2015/ngx-utils/pipes/reduce.pipe.js +26 -0
  40. package/esm2015/ngx-utils/pipes/remap.pipe.js +28 -0
  41. package/esm2015/ngx-utils/pipes/replace.pipe.js +12 -0
  42. package/esm2015/ngx-utils/pipes/reverse.pipe.js +20 -0
  43. package/esm2015/ngx-utils/pipes/round.pipe.js +19 -0
  44. package/esm2015/ngx-utils/pipes/safe-html.pipe.js +32 -0
  45. package/esm2015/ngx-utils/pipes/shift.pipe.js +12 -0
  46. package/esm2015/ngx-utils/pipes/split.pipe.js +12 -0
  47. package/esm2015/ngx-utils/pipes/translate.pipe.js +81 -0
  48. package/esm2015/ngx-utils/pipes/values.pipe.js +18 -0
  49. package/esm2015/ngx-utils/plugins/resize-event.plugin.js +56 -0
  50. package/esm2015/ngx-utils/plugins/scroll-event.plugin.js +36 -0
  51. package/esm2015/ngx-utils/services/acl.service.js +81 -0
  52. package/esm2015/ngx-utils/services/api.service.js +35 -0
  53. package/esm2015/ngx-utils/services/auth.service.js +14 -0
  54. package/esm2015/ngx-utils/services/base-http.client.js +46 -0
  55. package/esm2015/ngx-utils/services/base-http.service.js +285 -0
  56. package/esm2015/ngx-utils/services/config.service.js +124 -0
  57. package/esm2015/ngx-utils/services/error-handler.service.js +49 -0
  58. package/esm2015/ngx-utils/services/events.service.js +24 -0
  59. package/esm2015/ngx-utils/services/formatter.service.js +45 -0
  60. package/esm2015/ngx-utils/services/global-template.service.js +35 -0
  61. package/esm2015/ngx-utils/services/icon.service.js +24 -0
  62. package/esm2015/ngx-utils/services/language.service.js +117 -0
  63. package/esm2015/ngx-utils/services/open-api.service.js +41 -0
  64. package/esm2015/ngx-utils/services/promise.service.js +52 -0
  65. package/esm2015/ngx-utils/services/state.service.js +181 -0
  66. package/esm2015/ngx-utils/services/static-language.service.js +152 -0
  67. package/esm2015/ngx-utils/services/storage.service.js +48 -0
  68. package/esm2015/ngx-utils/services/toaster.service.js +29 -0
  69. package/esm2015/ngx-utils/services/translated-url.serializer.js +70 -0
  70. package/esm2015/ngx-utils/services/universal.service.js +75 -0
  71. package/esm2015/ngx-utils/utils/ajax-request-handler.js +40 -0
  72. package/esm2015/ngx-utils/utils/array.utils.js +107 -0
  73. package/esm2015/ngx-utils/utils/auth.guard.js +156 -0
  74. package/esm2015/ngx-utils/utils/canvas.utils.js +388 -0
  75. package/esm2015/ngx-utils/utils/date.utils.js +28 -0
  76. package/esm2015/ngx-utils/utils/file-system.js +25 -0
  77. package/esm2015/ngx-utils/utils/file.utils.js +90 -0
  78. package/esm2015/ngx-utils/utils/generic-value.js +20 -0
  79. package/esm2015/ngx-utils/utils/geometry.js +132 -0
  80. package/esm2015/ngx-utils/utils/initializer.js +20 -0
  81. package/esm2015/ngx-utils/utils/loader.utils.js +55 -0
  82. package/esm2015/ngx-utils/utils/math.utils.js +45 -0
  83. package/esm2015/ngx-utils/utils/object.utils.js +274 -0
  84. package/esm2015/ngx-utils/utils/observable.utils.js +63 -0
  85. package/esm2015/ngx-utils/utils/reflect.utils.js +33 -0
  86. package/esm2015/ngx-utils/utils/set.utils.js +20 -0
  87. package/esm2015/ngx-utils/utils/string.utils.js +28 -0
  88. package/esm2015/ngx-utils/utils/timer.utils.js +52 -0
  89. package/esm2015/ngx-utils/utils/unique.utils.js +24 -0
  90. package/esm2015/ngx-utils/utils/vector.js +77 -0
  91. package/esm2015/public_api.js +88 -0
  92. package/esm2015/stemy-ngx-utils.js +7 -0
  93. package/esm2020/ngx-utils/components/unordered-list/unordered-list.component.mjs +3 -3
  94. package/esm2020/ngx-utils/ngx-utils.imports.mjs +7 -1
  95. package/esm2020/ngx-utils/ngx-utils.module.mjs +31 -28
  96. package/esm2020/ngx-utils/pipes/pop.pipe.mjs +16 -0
  97. package/esm2020/ngx-utils/pipes/shift.pipe.mjs +16 -0
  98. package/esm2020/ngx-utils/pipes/split.pipe.mjs +16 -0
  99. package/esm2020/ngx-utils/services/acl.service.mjs +3 -1
  100. package/esm2020/ngx-utils/services/config.service.mjs +6 -5
  101. package/esm2020/ngx-utils/services/formatter.service.mjs +3 -2
  102. package/esm2020/ngx-utils/utils/array.utils.mjs +8 -1
  103. package/esm2020/ngx-utils/utils/file-system.mjs +25 -0
  104. package/esm2020/ngx-utils/utils/math.utils.mjs +31 -2
  105. package/esm2020/ngx-utils/utils/object.utils.mjs +36 -25
  106. package/esm2020/public_api.mjs +5 -1
  107. package/fesm2015/stemy-ngx-utils.js +4974 -0
  108. package/fesm2015/stemy-ngx-utils.js.map +1 -0
  109. package/fesm2015/stemy-ngx-utils.mjs +157 -35
  110. package/fesm2015/stemy-ngx-utils.mjs.map +1 -1
  111. package/fesm2020/stemy-ngx-utils.mjs +156 -35
  112. package/fesm2020/stemy-ngx-utils.mjs.map +1 -1
  113. package/ngx-utils/ngx-utils.module.d.ts +31 -28
  114. package/ngx-utils/pipes/pop.pipe.d.ts +7 -0
  115. package/ngx-utils/pipes/shift.pipe.d.ts +7 -0
  116. package/ngx-utils/pipes/split.pipe.d.ts +7 -0
  117. package/ngx-utils/services/config.service.d.ts +4 -2
  118. package/ngx-utils/utils/array.utils.d.ts +1 -0
  119. package/ngx-utils/utils/file-system.d.ts +16 -0
  120. package/ngx-utils/utils/math.utils.d.ts +3 -0
  121. package/ngx-utils/utils/object.utils.d.ts +1 -1
  122. package/package.json +10 -10
  123. package/public_api.d.ts +4 -0
  124. package/stemy-ngx-utils.metadata.json +1 -0
  125. package/tools/circular.js +117 -0
  126. package/tools/circular.js.map +1 -0
  127. package/tools/config.js +79 -0
  128. package/tools/config.js.map +1 -0
  129. package/tools/icons.js +14 -0
  130. package/tools/icons.js.map +1 -0
@@ -28,31 +28,34 @@ import * as i13 from "./pipes/keys.pipe";
28
28
  import * as i14 from "./pipes/map.pipe";
29
29
  import * as i15 from "./pipes/max.pipe";
30
30
  import * as i16 from "./pipes/min.pipe";
31
- import * as i17 from "./pipes/reduce.pipe";
32
- import * as i18 from "./pipes/remap.pipe";
33
- import * as i19 from "./pipes/replace.pipe";
34
- import * as i20 from "./pipes/reverse.pipe";
35
- import * as i21 from "./pipes/round.pipe";
36
- import * as i22 from "./pipes/safe-html.pipe";
37
- import * as i23 from "./pipes/translate.pipe";
38
- import * as i24 from "./pipes/values.pipe";
39
- import * as i25 from "./directives/async-method.base";
40
- import * as i26 from "./directives/async-method.directive";
41
- import * as i27 from "./directives/background.directive";
42
- import * as i28 from "./directives/dynamic-table-template.directive";
43
- import * as i29 from "./directives/global-template.directive";
44
- import * as i30 from "./directives/icon.directive";
45
- import * as i31 from "./directives/ngx-template-outlet.directive";
46
- import * as i32 from "./directives/pagination.directive";
47
- import * as i33 from "./directives/pagination-item.directive";
48
- import * as i34 from "./directives/resource-if.directive";
49
- import * as i35 from "./directives/sticky.directive";
50
- import * as i36 from "./directives/sticky-class.directive";
51
- import * as i37 from "./directives/unordered-list-item.directive";
52
- import * as i38 from "./directives/unordered-list-template.directive";
53
- import * as i39 from "./components/dynamic-table/dynamic-table.component";
54
- import * as i40 from "./components/pagination-menu/pagination-menu.component";
55
- import * as i41 from "./components/unordered-list/unordered-list.component";
31
+ import * as i17 from "./pipes/pop.pipe";
32
+ import * as i18 from "./pipes/reduce.pipe";
33
+ import * as i19 from "./pipes/remap.pipe";
34
+ import * as i20 from "./pipes/replace.pipe";
35
+ import * as i21 from "./pipes/reverse.pipe";
36
+ import * as i22 from "./pipes/round.pipe";
37
+ import * as i23 from "./pipes/safe-html.pipe";
38
+ import * as i24 from "./pipes/shift.pipe";
39
+ import * as i25 from "./pipes/split.pipe";
40
+ import * as i26 from "./pipes/translate.pipe";
41
+ import * as i27 from "./pipes/values.pipe";
42
+ import * as i28 from "./directives/async-method.base";
43
+ import * as i29 from "./directives/async-method.directive";
44
+ import * as i30 from "./directives/background.directive";
45
+ import * as i31 from "./directives/dynamic-table-template.directive";
46
+ import * as i32 from "./directives/global-template.directive";
47
+ import * as i33 from "./directives/icon.directive";
48
+ import * as i34 from "./directives/ngx-template-outlet.directive";
49
+ import * as i35 from "./directives/pagination.directive";
50
+ import * as i36 from "./directives/pagination-item.directive";
51
+ import * as i37 from "./directives/resource-if.directive";
52
+ import * as i38 from "./directives/sticky.directive";
53
+ import * as i39 from "./directives/sticky-class.directive";
54
+ import * as i40 from "./directives/unordered-list-item.directive";
55
+ import * as i41 from "./directives/unordered-list-template.directive";
56
+ import * as i42 from "./components/dynamic-table/dynamic-table.component";
57
+ import * as i43 from "./components/pagination-menu/pagination-menu.component";
58
+ import * as i44 from "./components/unordered-list/unordered-list.component";
56
59
  export function loadBaseUrl() {
57
60
  if (typeof (document) === "undefined" || typeof (location) === "undefined")
58
61
  return "/";
@@ -148,8 +151,8 @@ export class NgxUtilsModule {
148
151
  }
149
152
  }
150
153
  NgxUtilsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxUtilsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
151
- NgxUtilsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxUtilsModule, declarations: [i1.ChunkPipe, i2.EntriesPipe, i3.ExtraItemPropertiesPipe, i4.FilterPipe, i5.FindPipe, i6.FormatNumberPipe, i7.GetOffsetPipe, i8.GetTypePipe, i9.GlobalTemplatePipe, i10.GroupByPipe, i11.IsTypePipe, i12.JoinPipe, i13.KeysPipe, i14.MapPipe, i15.MaxPipe, i16.MinPipe, i17.ReducePipe, i18.RemapPipe, i19.ReplacePipe, i20.ReversePipe, i21.RoundPipe, i22.SafeHtmlPipe, i23.TranslatePipe, i24.ValuesPipe, i25.AsyncMethodBase, i26.AsyncMethodDirective, i27.BackgroundDirective, i28.DynamicTableTemplateDirective, i29.GlobalTemplateDirective, i30.IconDirective, i31.NgxTemplateOutletDirective, i32.PaginationDirective, i33.PaginationItemDirective, i34.ResourceIfDirective, i35.StickyDirective, i36.StickyClassDirective, i37.UnorderedListItemDirective, i38.UnorderedListTemplateDirective, i39.DynamicTableComponent, i40.PaginationMenuComponent, i41.UnorderedListComponent], imports: [CommonModule,
152
- FormsModule], exports: [i1.ChunkPipe, i2.EntriesPipe, i3.ExtraItemPropertiesPipe, i4.FilterPipe, i5.FindPipe, i6.FormatNumberPipe, i7.GetOffsetPipe, i8.GetTypePipe, i9.GlobalTemplatePipe, i10.GroupByPipe, i11.IsTypePipe, i12.JoinPipe, i13.KeysPipe, i14.MapPipe, i15.MaxPipe, i16.MinPipe, i17.ReducePipe, i18.RemapPipe, i19.ReplacePipe, i20.ReversePipe, i21.RoundPipe, i22.SafeHtmlPipe, i23.TranslatePipe, i24.ValuesPipe, i25.AsyncMethodBase, i26.AsyncMethodDirective, i27.BackgroundDirective, i28.DynamicTableTemplateDirective, i29.GlobalTemplateDirective, i30.IconDirective, i31.NgxTemplateOutletDirective, i32.PaginationDirective, i33.PaginationItemDirective, i34.ResourceIfDirective, i35.StickyDirective, i36.StickyClassDirective, i37.UnorderedListItemDirective, i38.UnorderedListTemplateDirective, i39.DynamicTableComponent, i40.PaginationMenuComponent, i41.UnorderedListComponent, FormsModule] });
154
+ NgxUtilsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxUtilsModule, declarations: [i1.ChunkPipe, i2.EntriesPipe, i3.ExtraItemPropertiesPipe, i4.FilterPipe, i5.FindPipe, i6.FormatNumberPipe, i7.GetOffsetPipe, i8.GetTypePipe, i9.GlobalTemplatePipe, i10.GroupByPipe, i11.IsTypePipe, i12.JoinPipe, i13.KeysPipe, i14.MapPipe, i15.MaxPipe, i16.MinPipe, i17.PopPipe, i18.ReducePipe, i19.RemapPipe, i20.ReplacePipe, i21.ReversePipe, i22.RoundPipe, i23.SafeHtmlPipe, i24.ShiftPipe, i25.SplitPipe, i26.TranslatePipe, i27.ValuesPipe, i28.AsyncMethodBase, i29.AsyncMethodDirective, i30.BackgroundDirective, i31.DynamicTableTemplateDirective, i32.GlobalTemplateDirective, i33.IconDirective, i34.NgxTemplateOutletDirective, i35.PaginationDirective, i36.PaginationItemDirective, i37.ResourceIfDirective, i38.StickyDirective, i39.StickyClassDirective, i40.UnorderedListItemDirective, i41.UnorderedListTemplateDirective, i42.DynamicTableComponent, i43.PaginationMenuComponent, i44.UnorderedListComponent], imports: [CommonModule,
155
+ FormsModule], exports: [i1.ChunkPipe, i2.EntriesPipe, i3.ExtraItemPropertiesPipe, i4.FilterPipe, i5.FindPipe, i6.FormatNumberPipe, i7.GetOffsetPipe, i8.GetTypePipe, i9.GlobalTemplatePipe, i10.GroupByPipe, i11.IsTypePipe, i12.JoinPipe, i13.KeysPipe, i14.MapPipe, i15.MaxPipe, i16.MinPipe, i17.PopPipe, i18.ReducePipe, i19.RemapPipe, i20.ReplacePipe, i21.ReversePipe, i22.RoundPipe, i23.SafeHtmlPipe, i24.ShiftPipe, i25.SplitPipe, i26.TranslatePipe, i27.ValuesPipe, i28.AsyncMethodBase, i29.AsyncMethodDirective, i30.BackgroundDirective, i31.DynamicTableTemplateDirective, i32.GlobalTemplateDirective, i33.IconDirective, i34.NgxTemplateOutletDirective, i35.PaginationDirective, i36.PaginationItemDirective, i37.ResourceIfDirective, i38.StickyDirective, i39.StickyClassDirective, i40.UnorderedListItemDirective, i41.UnorderedListTemplateDirective, i42.DynamicTableComponent, i43.PaginationMenuComponent, i44.UnorderedListComponent, FormsModule] });
153
156
  NgxUtilsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: NgxUtilsModule, providers: pipes, imports: [[
154
157
  CommonModule,
155
158
  FormsModule
@@ -175,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
175
178
  providers: pipes
176
179
  }]
177
180
  }], ctorParameters: function () { return []; } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXV0aWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFlBQVksRUFDWixlQUFlLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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b0JBQ2pFLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztpQkFDOUU7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFVBQVUsRUFBRSxZQUFZO29CQUN4QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3ZCO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs7MkdBN0RRLGNBQWM7NEdBQWQsY0FBYywwM0JBWG5CLFlBQVk7UUFDWixXQUFXLDIyQkFNWCxXQUFXOzRHQUlOLGNBQWMsYUFGWixLQUFLLFlBVlA7WUFDTCxZQUFZO1lBQ1osV0FBVztTQUNkLEVBS0csV0FBVzsyRkFJTixjQUFjO2tCQWxCMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsR0FBRyxLQUFLO3dCQUNSLEdBQUcsVUFBVTt3QkFDYixHQUFHLFVBQVU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsS0FBSzt3QkFDUixHQUFHLFVBQVU7d0JBQ2IsR0FBRyxVQUFVO3dCQUNiLFdBQVc7cUJBQ2Q7b0JBQ0QsU0FBUyxFQUFFLEtBQUs7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBUFBfQkFTRV9IUkVGLCBDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgICBBUElfU0VSVklDRSxcclxuICAgIEFQUF9CQVNFX1VSTCxcclxuICAgIEFVVEhfU0VSVklDRSxcclxuICAgIENPTkZJR19TRVJWSUNFLFxyXG4gICAgR0xPQkFMX1RFTVBMQVRFUyxcclxuICAgIElDT05fU0VSVklDRSxcclxuICAgIElNb2R1bGVDb25maWcsXHJcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxyXG4gICAgUFJPTUlTRV9TRVJWSUNFLFxyXG4gICAgUk9PVF9FTEVNRU5ULFxyXG4gICAgVE9BU1RFUl9TRVJWSUNFXHJcbn0gZnJvbSBcIi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7Y29tcG9uZW50cywgZGlyZWN0aXZlcywgbG9hZENvbmZpZywgcGlwZXMsIHByb3ZpZGVyc30gZnJvbSBcIi4vbmd4LXV0aWxzLmltcG9ydHNcIjtcclxuaW1wb3J0IHtBcGlTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0YXRpY0F1dGhTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvaWNvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RhdGljTGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9zdGF0aWMtbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbnNvbGVUb2FzdGVyU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3Byb21pc2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7R2xvYmFsVGVtcGxhdGVTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9nbG9iYWwtdGVtcGxhdGUuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRCYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIChkb2N1bWVudCkgPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIChsb2NhdGlvbikgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBcIi9cIjtcclxuICAgIGNvbnN0IGN1cnJlbnRTY3JpcHQgPSAoZG9jdW1lbnQuY3VycmVudFNjcmlwdCBhcyBIVE1MU2NyaXB0RWxlbWVudCk7XHJcbiAgICBpZiAoIWN1cnJlbnRTY3JpcHQpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBub2luc3BlY3Rpb24gRXhjZXB0aW9uQ2F1Z2h0TG9jYWxseUpTXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc3QgcXVhbGlmaWVkVXJsID0gbG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyBsb2NhdGlvbi5ob3N0O1xyXG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IChlLnN0YWNrIHx8IFwiXCIpIGFzIHN0cmluZztcclxuICAgICAgICAgICAgY29uc3Qgc3JjVXJsID0gKHN0YWNrLm1hdGNoKG5ldyBSZWdFeHAocXVhbGlmaWVkVXJsICsgXCIuKj9cXFxcLmpzXCIsIFwiZ1wiKSkgfHwgc3RhY2subWF0Y2goL2h0dHAoW0EtWjpcXC9cXC0uXSspXFwuanMvZ2kpKS5zaGlmdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0SW5kZXggPSBzcmNVcmwubGFzdEluZGV4T2YoXCIvXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4IDwgMCA/IFwiL1wiIDogc3JjVXJsLnN1YnN0cmluZygwLCBsYXN0SW5kZXggKyAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JpcHRTcmMgPSBjdXJyZW50U2NyaXB0LnNyYztcclxuICAgIGNvbnN0IGxhc3RJbmRleCA9IHNjcmlwdFNyYy5sYXN0SW5kZXhPZihcIi9cIik7XHJcbiAgICByZXR1cm4gbGFzdEluZGV4IDwgMCA/IFwiL1wiIDogc2NyaXB0U3JjLnN1YnN0cmluZygwLCBsYXN0SW5kZXggKyAxKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRCYXNlSHJlZihiYXNlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVSTChiYXNlVXJsKS5wYXRobmFtZTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgICByZXR1cm4gXCIvXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICAuLi5waXBlcyxcclxuICAgICAgICAuLi5kaXJlY3RpdmVzLFxyXG4gICAgICAgIC4uLmNvbXBvbmVudHNcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIC4uLnBpcGVzLFxyXG4gICAgICAgIC4uLmRpcmVjdGl2ZXMsXHJcbiAgICAgICAgLi4uY29tcG9uZW50cyxcclxuICAgICAgICBGb3Jtc01vZHVsZVxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogcGlwZXNcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFV0aWxzTW9kdWxlIHtcclxuXHJcbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBJTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hVdGlsc01vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hVdGlsc01vZHVsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAgICAuLi5wcm92aWRlcnMsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBJX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5hcGlTZXJ2aWNlKSB8fCBBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFVVEhfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmF1dGhTZXJ2aWNlKSB8fCBTdGF0aWNBdXRoU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBJQ09OX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pY29uU2VydmljZSkgfHwgSWNvblNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTEFOR1VBR0VfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmxhbmd1YWdlU2VydmljZSkgfHwgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRPQVNURVJfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnRvYXN0ZXJTZXJ2aWNlKSB8fCBDb25zb2xlVG9hc3RlclNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPTUlTRV9TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcucHJvbWlzZVNlcnZpY2UpIHx8IFByb21pc2VTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IENPTkZJR19TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuY29uZmlnU2VydmljZSkgfHwgQ29uZmlnU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBHTE9CQUxfVEVNUExBVEVTLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuZ2xvYmFsVGVtcGxhdGVzKSB8fCBHbG9iYWxUZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0JBU0VfVVJMLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5iYXNlVXJsKSB8fCBsb2FkQmFzZVVybCxcclxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPT1RfRUxFTUVOVCxcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogbnVsbFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmluaXRpYWxpemVBcHApIHx8IGxvYWRDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVwczogWyghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pbml0aWFsaXplQXBwKSA/IEluamVjdG9yIDogQ09ORklHX1NFUlZJQ0VdXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9CQVNFX0hSRUYsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogbG9hZEJhc2VIcmVmLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBUFBfQkFTRV9VUkxdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXV0aWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFlBQVksRUFDWixlQUFlLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QVU7b0JBQ2pFLEtBQUssRUFBRSxJQUFJO29CQUNYLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztpQkFDOUU7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFVBQVUsRUFBRSxZQUFZO29CQUN4QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3ZCO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs7MkdBN0RRLGNBQWM7NEdBQWQsY0FBYyxxNkJBWG5CLFlBQVk7UUFDWixXQUFXLHM1QkFNWCxXQUFXOzRHQUlOLGNBQWMsYUFGWixLQUFLLFlBVlA7WUFDTCxZQUFZO1lBQ1osV0FBVztTQUNkLEVBS0csV0FBVzsyRkFJTixjQUFjO2tCQWxCMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsR0FBRyxLQUFLO3dCQUNSLEdBQUcsVUFBVTt3QkFDYixHQUFHLFVBQVU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLEdBQUcsS0FBSzt3QkFDUixHQUFHLFVBQVU7d0JBQ2IsR0FBRyxVQUFVO3dCQUNiLFdBQVc7cUJBQ2Q7b0JBQ0QsU0FBUyxFQUFFLEtBQUs7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBUFBfQkFTRV9IUkVGLCBDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7XHJcbiAgICBBUElfU0VSVklDRSxcclxuICAgIEFQUF9CQVNFX1VSTCxcclxuICAgIEFVVEhfU0VSVklDRSxcclxuICAgIENPTkZJR19TRVJWSUNFLFxyXG4gICAgR0xPQkFMX1RFTVBMQVRFUyxcclxuICAgIElDT05fU0VSVklDRSxcclxuICAgIElNb2R1bGVDb25maWcsXHJcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxyXG4gICAgUFJPTUlTRV9TRVJWSUNFLFxyXG4gICAgUk9PVF9FTEVNRU5ULFxyXG4gICAgVE9BU1RFUl9TRVJWSUNFXHJcbn0gZnJvbSBcIi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7Y29tcG9uZW50cywgZGlyZWN0aXZlcywgbG9hZENvbmZpZywgcGlwZXMsIHByb3ZpZGVyc30gZnJvbSBcIi4vbmd4LXV0aWxzLmltcG9ydHNcIjtcclxuaW1wb3J0IHtBcGlTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQge1N0YXRpY0F1dGhTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvaWNvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RhdGljTGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9zdGF0aWMtbGFuZ3VhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbnNvbGVUb2FzdGVyU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3Byb21pc2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7R2xvYmFsVGVtcGxhdGVTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9nbG9iYWwtdGVtcGxhdGUuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRCYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIChkb2N1bWVudCkgPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mIChsb2NhdGlvbikgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBcIi9cIjtcclxuICAgIGNvbnN0IGN1cnJlbnRTY3JpcHQgPSAoZG9jdW1lbnQuY3VycmVudFNjcmlwdCBhcyBIVE1MU2NyaXB0RWxlbWVudCk7XHJcbiAgICBpZiAoIWN1cnJlbnRTY3JpcHQpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBub2luc3BlY3Rpb24gRXhjZXB0aW9uQ2F1Z2h0TG9jYWxseUpTXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc3QgcXVhbGlmaWVkVXJsID0gbG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyBsb2NhdGlvbi5ob3N0O1xyXG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IChlLnN0YWNrIHx8IFwiXCIpIGFzIHN0cmluZztcclxuICAgICAgICAgICAgY29uc3Qgc3JjVXJsID0gKHN0YWNrLm1hdGNoKG5ldyBSZWdFeHAocXVhbGlmaWVkVXJsICsgXCIuKj9cXFxcLmpzXCIsIFwiZ1wiKSkgfHwgc3RhY2subWF0Y2goL2h0dHAoW0EtWjpcXC9cXC0uXSspXFwuanMvZ2kpKS5zaGlmdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0SW5kZXggPSBzcmNVcmwubGFzdEluZGV4T2YoXCIvXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4IDwgMCA/IFwiL1wiIDogc3JjVXJsLnN1YnN0cmluZygwLCBsYXN0SW5kZXggKyAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzY3JpcHRTcmMgPSBjdXJyZW50U2NyaXB0LnNyYztcclxuICAgIGNvbnN0IGxhc3RJbmRleCA9IHNjcmlwdFNyYy5sYXN0SW5kZXhPZihcIi9cIik7XHJcbiAgICByZXR1cm4gbGFzdEluZGV4IDwgMCA/IFwiL1wiIDogc2NyaXB0U3JjLnN1YnN0cmluZygwLCBsYXN0SW5kZXggKyAxKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRCYXNlSHJlZihiYXNlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVSTChiYXNlVXJsKS5wYXRobmFtZTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgICByZXR1cm4gXCIvXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICAuLi5waXBlcyxcclxuICAgICAgICAuLi5kaXJlY3RpdmVzLFxyXG4gICAgICAgIC4uLmNvbXBvbmVudHNcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIC4uLnBpcGVzLFxyXG4gICAgICAgIC4uLmRpcmVjdGl2ZXMsXHJcbiAgICAgICAgLi4uY29tcG9uZW50cyxcclxuICAgICAgICBGb3Jtc01vZHVsZVxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogcGlwZXNcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFV0aWxzTW9kdWxlIHtcclxuXHJcbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBJTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hVdGlsc01vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hVdGlsc01vZHVsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAgICAuLi5wcm92aWRlcnMsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBJX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5hcGlTZXJ2aWNlKSB8fCBBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFVVEhfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmF1dGhTZXJ2aWNlKSB8fCBTdGF0aWNBdXRoU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBJQ09OX1NFUlZJQ0UsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pY29uU2VydmljZSkgfHwgSWNvblNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTEFOR1VBR0VfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmxhbmd1YWdlU2VydmljZSkgfHwgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRPQVNURVJfU0VSVklDRSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnRvYXN0ZXJTZXJ2aWNlKSB8fCBDb25zb2xlVG9hc3RlclNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPTUlTRV9TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcucHJvbWlzZVNlcnZpY2UpIHx8IFByb21pc2VTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IENPTkZJR19TRVJWSUNFLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuY29uZmlnU2VydmljZSkgfHwgQ29uZmlnU2VydmljZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBHTE9CQUxfVEVNUExBVEVTLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuZ2xvYmFsVGVtcGxhdGVzKSB8fCBHbG9iYWxUZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0JBU0VfVVJMLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5iYXNlVXJsKSB8fCBsb2FkQmFzZVVybCxcclxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPT1RfRUxFTUVOVCxcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogbnVsbFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmluaXRpYWxpemVBcHApIHx8IGxvYWRDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVwczogWyghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pbml0aWFsaXplQXBwKSA/IEluamVjdG9yIDogQ09ORklHX1NFUlZJQ0VdXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9CQVNFX0hSRUYsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogbG9hZEJhc2VIcmVmLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBUFBfQkFTRV9VUkxdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Pipe } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class PopPipe {
4
+ transform(value) {
5
+ return !Array.isArray(value) ? null : Array.from(value).pop();
6
+ }
7
+ }
8
+ PopPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PopPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ PopPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PopPipe, name: "pop" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PopPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: "pop"
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3BpcGVzL3BvcC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8sT0FBTztJQUVoQixTQUFTLENBQUMsS0FBWTtRQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2xFLENBQUM7O29HQUpRLE9BQU87a0dBQVAsT0FBTzsyRkFBUCxPQUFPO2tCQUhuQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxLQUFLO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogXCJwb3BcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55W10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBudWxsIDogQXJyYXkuZnJvbSh2YWx1ZSkucG9wKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,16 @@
1
+ import { Pipe } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class ShiftPipe {
4
+ transform(value) {
5
+ return !Array.isArray(value) ? null : Array.from(value).shift();
6
+ }
7
+ }
8
+ ShiftPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ShiftPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ ShiftPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ShiftPipe, name: "shift" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ShiftPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: "shift"
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpZnQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvcGlwZXMvc2hpZnQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7QUFLbEQsTUFBTSxPQUFPLFNBQVM7SUFFbEIsU0FBUyxDQUFDLEtBQVk7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwRSxDQUFDOztzR0FKUSxTQUFTO29HQUFULFNBQVM7MkZBQVQsU0FBUztrQkFIckIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsT0FBTztpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiBcInNoaWZ0XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFNoaWZ0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55W10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBudWxsIDogQXJyYXkuZnJvbSh2YWx1ZSkuc2hpZnQoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Pipe } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class SplitPipe {
4
+ transform(value, separator = ".") {
5
+ return `${value}`.split(separator);
6
+ }
7
+ }
8
+ SplitPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SplitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ SplitPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SplitPipe, name: "split" });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: SplitPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: "split"
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvcGlwZXMvc3BsaXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7QUFLbEQsTUFBTSxPQUFPLFNBQVM7SUFFbEIsU0FBUyxDQUFDLEtBQVUsRUFBRSxZQUFvQixHQUFHO1FBQ3pDLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7c0dBSlEsU0FBUztvR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBSHJCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLE9BQU87aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogXCJzcGxpdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGxpdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgc2VwYXJhdG9yOiBzdHJpbmcgPSBcIi5cIik6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YC5zcGxpdChzZXBhcmF0b3IpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -22,6 +22,8 @@ export class AclService {
22
22
  return;
23
23
  info.dirty = false;
24
24
  const component = info.component;
25
+ if (!info.component)
26
+ return;
25
27
  if (info.first) {
26
28
  if (ObjectUtils.isFunction(component.onUserInitialized)) {
27
29
  component.onUserInitialized();
@@ -78,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
78
80
  type: Inject,
79
81
  args: [AUTH_SERVICE]
80
82
  }] }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2FjbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFFOUMsTUFBTSxXQUFXLEdBQVUsRUFBRSxDQUFDO0FBRzlCLE1BQU0sT0FBTyxVQUFVO0lBSW5CLFlBQXFCLFFBQWtCLEVBQVcsS0FBbUIsRUFBaUMsSUFBa0I7UUFBbkcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFXLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBaUMsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNwSCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQXFCLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxZQUFZLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFD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QVYsVUFBVTtrQkFEdEIsVUFBVTs7MEJBS2lFLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgVHlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdGF0ZVNlcnZpY2V9IGZyb20gXCIuL3N0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBVVRIX1NFUlZJQ0UsIElBY2xDb21wb25lbnQsIElBdXRoU2VydmljZSwgSVJvdXRlU3RhdGVJbmZvfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuaW1wb3J0IHtBdXRoR3VhcmR9IGZyb20gXCIuLi91dGlscy9hdXRoLmd1YXJkXCI7XHJcblxyXG5jb25zdCBlbXB0eUd1YXJkczogYW55W10gPSBbXTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFjbFNlcnZpY2Uge1xyXG5cclxuICAgIHByb3RlY3RlZCBjb21wb25lbnRzOiBJUm91dGVTdGF0ZUluZm9bXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsIHJlYWRvbmx5IHN0YXRlOiBTdGF0ZVNlcnZpY2UsIEBJbmplY3QoQVVUSF9TRVJWSUNFKSByZWFkb25seSBhdXRoOiBJQXV0aFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSBbXTtcclxuICAgICAgICB0aGlzLmF1dGgudXNlckNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzLmZvckVhY2godCA9PiB0LmRpcnR5ID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmdldFN0YXRlSW5mbygpO1xyXG4gICAgICAgICAgICBjb25zdCBjaGVjazogUHJvbWlzZTxib29sZWFuPiA9IGluZm8gJiYgaW5mby5ndWFyZCBpbnN0YW5jZW9mIEF1dGhHdWFyZCA/IGluZm8uZ3VhcmQuY2hlY2tSb3V0ZShpbmZvLnJvdXRlKSA6IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgY2hlY2sudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5mbyB8fCAhaW5mby5kaXJ0eSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIGluZm8uZGlydHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQ6IElBY2xDb21wb25lbnQgPSBpbmZvLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5maXJzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25Vc2VySW5pdGlhbGl6ZWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQub25Vc2VySW5pdGlhbGl6ZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzRnVuY3Rpb24oY29tcG9uZW50Lm9uVXNlckNoYW5nZWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vblVzZXJDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIChpbmZvLmd1YXJkIGFzIEF1dGhHdWFyZCkuZ2V0UmV0dXJuU3RhdGUoaW5mby5yb3V0ZSkudGhlbihyZXR1cm5TdGF0ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXR1cm5TdGF0ZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUubmF2aWdhdGUocmV0dXJuU3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3RhdGUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5mbyA9IHRoaXMuZ2V0U3RhdGVJbmZvKCk7XHJcbiAgICAgICAgICAgIGlmICghaW5mbz8uY29tcG9uZW50KSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudDogSUFjbENvbXBvbmVudCA9IGluZm8uY29tcG9uZW50O1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25Vc2VySW5pdGlhbGl6ZWQpKSB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQub25Vc2VySW5pdGlhbGl6ZWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRTdGF0ZUluZm8oKTogSVJvdXRlU3RhdGVJbmZvIHtcclxuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuc3RhdGUucm91dGU7XHJcbiAgICAgICAgaWYgKCFyb3V0ZSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgbGV0IGluZm8gPSB0aGlzLmNvbXBvbmVudHMuZmluZCh0ID0+IHQucm91dGUgPT0gdGhpcy5zdGF0ZS5yb3V0ZSk7XHJcbiAgICAgICAgaWYgKCFpbmZvKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGd1YXJkVHlwZTogVHlwZTxBdXRoR3VhcmQ+ID0gKHJvdXRlLmNhbkFjdGl2YXRlIHx8IGVtcHR5R3VhcmRzKVswXTtcclxuICAgICAgICAgICAgaW5mbyA9IHtcclxuICAgICAgICAgICAgICAgIHJvdXRlOiB0aGlzLnN0YXRlLnJvdXRlLFxyXG4gICAgICAgICAgICAgICAgZ3VhcmQ6IGd1YXJkVHlwZSA/IHRoaXMuaW5qZWN0b3IuZ2V0KGd1YXJkVHlwZSkgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgZGlydHk6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaXJzdDogdHJ1ZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMucHVzaChpbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5mby5jb21wb25lbnQgPSB0aGlzLnN0YXRlLmNvbXBvbmVudDtcclxuICAgICAgICByZXR1cm4gaW5mbztcclxuICAgIH1cclxufVxyXG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2FjbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFFOUMsTUFBTSxXQUFXLEdBQVUsRUFBRSxDQUFDO0FBRzlCLE1BQU0sT0FBTyxVQUFVO0lBSW5CLFlBQXFCLFFBQWtCLEVBQVcsS0FBbUIsRUFBaUMsSUFBa0I7UUFBbkcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFXLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBaUMsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNwSCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQXFCLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxZQUFZLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFD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QUM7O3VHQTVEUSxVQUFVLHNFQUk0RCxZQUFZOzJHQUpsRixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVU7OzBCQUtpRSxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3RhdGVTZXJ2aWNlfSBmcm9tIFwiLi9zdGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QVVUSF9TRVJWSUNFLCBJQWNsQ29tcG9uZW50LCBJQXV0aFNlcnZpY2UsIElSb3V0ZVN0YXRlSW5mb30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7QXV0aEd1YXJkfSBmcm9tIFwiLi4vdXRpbHMvYXV0aC5ndWFyZFwiO1xyXG5cclxuY29uc3QgZW1wdHlHdWFyZHM6IGFueVtdID0gW107XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBY2xTZXJ2aWNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50czogSVJvdXRlU3RhdGVJbmZvW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLCByZWFkb25seSBzdGF0ZTogU3RhdGVTZXJ2aWNlLCBASW5qZWN0KEFVVEhfU0VSVklDRSkgcmVhZG9ubHkgYXV0aDogSUF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0gW107XHJcbiAgICAgICAgdGhpcy5hdXRoLnVzZXJDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKHQgPT4gdC5kaXJ0eSA9IHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRTdGF0ZUluZm8oKTtcclxuICAgICAgICAgICAgY29uc3QgY2hlY2s6IFByb21pc2U8Ym9vbGVhbj4gPSBpbmZvICYmIGluZm8uZ3VhcmQgaW5zdGFuY2VvZiBBdXRoR3VhcmQgPyBpbmZvLmd1YXJkLmNoZWNrUm91dGUoaW5mby5yb3V0ZSkgOiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNoZWNrLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWluZm8gfHwgIWluZm8uZGlydHkpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICBpbmZvLmRpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50OiBJQWNsQ29tcG9uZW50ID0gaW5mby5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmZvLmNvbXBvbmVudCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc0Z1bmN0aW9uKGNvbXBvbmVudC5vblVzZXJJbml0aWFsaXplZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vblVzZXJJbml0aWFsaXplZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjb21wb25lbnQub25Vc2VyQ2hhbmdlZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50Lm9uVXNlckNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKGluZm8uZ3VhcmQgYXMgQXV0aEd1YXJkKS5nZXRSZXR1cm5TdGF0ZShpbmZvLnJvdXRlKS50aGVuKHJldHVyblN0YXRlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJldHVyblN0YXRlKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5uYXZpZ2F0ZShyZXR1cm5TdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5nZXRTdGF0ZUluZm8oKTtcclxuICAgICAgICAgICAgaWYgKCFpbmZvPy5jb21wb25lbnQpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50OiBJQWNsQ29tcG9uZW50ID0gaW5mby5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc0Z1bmN0aW9uKGNvbXBvbmVudC5vblVzZXJJbml0aWFsaXplZCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vblVzZXJJbml0aWFsaXplZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldFN0YXRlSW5mbygpOiBJUm91dGVTdGF0ZUluZm8ge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5zdGF0ZS5yb3V0ZTtcclxuICAgICAgICBpZiAoIXJvdXRlKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBsZXQgaW5mbyA9IHRoaXMuY29tcG9uZW50cy5maW5kKHQgPT4gdC5yb3V0ZSA9PSB0aGlzLnN0YXRlLnJvdXRlKTtcclxuICAgICAgICBpZiAoIWluZm8pIHtcclxuICAgICAgICAgICAgY29uc3QgZ3VhcmRUeXBlOiBUeXBlPEF1dGhHdWFyZD4gPSAocm91dGUuY2FuQWN0aXZhdGUgfHwgZW1wdHlHdWFyZHMpWzBdO1xyXG4gICAgICAgICAgICBpbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgcm91dGU6IHRoaXMuc3RhdGUucm91dGUsXHJcbiAgICAgICAgICAgICAgICBndWFyZDogZ3VhcmRUeXBlID8gdGhpcy5pbmplY3Rvci5nZXQoZ3VhcmRUeXBlKSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBkaXJ0eTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGZpcnN0OiB0cnVlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cy5wdXNoKGluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpbmZvLmNvbXBvbmVudCA9IHRoaXMuc3RhdGUuY29tcG9uZW50O1xyXG4gICAgICAgIHJldHVybiBpbmZvO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Inject, Injectable, isDevMode, Optional } from "@angular/core";
1
+ import { Inject, Injectable, Injector, isDevMode, Optional } from "@angular/core";
2
2
  import { HttpClient } from "@angular/common/http";
3
3
  import * as JSON5 from "json5";
4
4
  import { UniversalService } from "./universal.service";
@@ -9,9 +9,10 @@ import * as i1 from "@angular/common/http";
9
9
  import * as i2 from "./universal.service";
10
10
  import * as i3 from "../common-types";
11
11
  export class ConfigService {
12
- constructor(http, universal, rootElement, baseUrl, baseConfig = null, scriptParams = null) {
12
+ constructor(http, universal, injector, rootElement, baseUrl, baseConfig = null, scriptParams = null) {
13
13
  this.http = http;
14
14
  this.universal = universal;
15
+ this.injector = injector;
15
16
  this.rootElement = rootElement;
16
17
  this.baseUrl = baseUrl;
17
18
  for (const key in []) {
@@ -92,11 +93,11 @@ export class ConfigService {
92
93
  return decodeURIComponent(results[2].replace(/\+/g, " "));
93
94
  }
94
95
  }
95
- ConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ConfigService, deps: [{ token: i1.HttpClient }, { token: i2.UniversalService }, { token: ROOT_ELEMENT }, { token: APP_BASE_URL }, { token: BASE_CONFIG, optional: true }, { token: SCRIPT_PARAMS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
96
+ ConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ConfigService, deps: [{ token: i1.HttpClient }, { token: i2.UniversalService }, { token: i0.Injector }, { token: ROOT_ELEMENT }, { token: APP_BASE_URL }, { token: BASE_CONFIG, optional: true }, { token: SCRIPT_PARAMS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
96
97
  ConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ConfigService });
97
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ConfigService, decorators: [{
98
99
  type: Injectable
99
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.UniversalService }, { type: undefined, decorators: [{
100
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.UniversalService }, { type: i0.Injector }, { type: undefined, decorators: [{
100
101
  type: Inject,
101
102
  args: [ROOT_ELEMENT]
102
103
  }] }, { type: undefined, decorators: [{
@@ -113,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
113
114
  type: Inject,
114
115
  args: [SCRIPT_PARAMS]
115
116
  }] }]; } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUUsV0FBVyxFQUFrQixjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZILE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFHbEQsTUFBTSxPQUFPLGFBQWE7SUFvQnRCLFlBQXFCLElBQWdCLEVBQ2hCLFNBQTJCLEVBQ0wsV0FBZ0IsRUFDaEIsT0FBZSxFQUNiLGFBQTZCLElBQUksRUFDL0IsZUFBb0IsSUFBSTtRQUxsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ0wsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUd0RCxLQUFLLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUN4QyxVQUFVLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7U0FDTjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxN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QUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLG1CQUFtQixDQUFDLEVBQ3pELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7MEdBcEdRLGFBQWEsNEVBc0JGLFlBQVksYUFDWixZQUFZLGFBQ0EsV0FBVyw2QkFDWCxhQUFhOzhHQXpCcEMsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkF1Qk0sTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXOzswQkFDOUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIGlzRGV2TW9kZSwgT3B0aW9uYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCAqIGFzIEpTT041IGZyb20gXCJqc29uNVwiO1xyXG5pbXBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QVBQX0JBU0VfVVJMLCBCQVNFX0NPTkZJRywgSUNvbmZpZ1NlcnZpY2UsIElDb25maWd1cmF0aW9uLCBST09UX0VMRU1FTlQsIFNDUklQVF9QQVJBTVN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4uL3V0aWxzL3N0cmluZy51dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElDb25maWdTZXJ2aWNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgYmFzZUNvbmZpZzogSUNvbmZpZ3VyYXRpb247XHJcbiAgICBwcm90ZWN0ZWQgbG9hZGVkQ29uZmlnOiBJQ29uZmlndXJhdGlvbjtcclxuICAgIHByb3RlY3RlZCBzY3JpcHRQYXJhbWV0ZXJzOiBhbnk7XHJcbiAgICBwcm90ZWN0ZWQgbG9hZGVyOiBQcm9taXNlPElDb25maWd1cmF0aW9uPjtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2FkZXJGdW5jOiAoKSA9PiBQcm9taXNlPElDb25maWd1cmF0aW9uPjtcclxuXHJcbiAgICBnZXQgbG9hZCgpOiAoKSA9PiBQcm9taXNlPElDb25maWd1cmF0aW9uPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyRnVuYztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uZmlnKCk6IElDb25maWd1cmF0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZWRDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmZpZ1VybCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmxvYWRlZENvbmZpZy5iYXNlVXJsfWNvbmZpZy9jb25maWcuanNvbmA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHVuaXZlcnNhbDogVW5pdmVyc2FsU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoUk9PVF9FTEVNRU5UKSByZWFkb25seSByb290RWxlbWVudDogYW55LFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChBUFBfQkFTRV9VUkwpIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQkFTRV9DT05GSUcpIGJhc2VDb25maWc6IElDb25maWd1cmF0aW9uID0gbnVsbCxcclxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0NSSVBUX1BBUkFNUykgc2NyaXB0UGFyYW1zOiBhbnkgPSBudWxsKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gW10pIHtcclxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwga2V5LCB7XHJcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5iYXNlQ29uZmlnID0gYmFzZUNvbmZpZyB8fCB7fTtcclxuICAgICAgICB0aGlzLmxvYWRlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgICF0aGlzLmJhc2VVcmwgPyB7fSA6IHtiYXNlVXJsOiB0aGlzLmJhc2VVcmwsIGJhc2VEb21haW46IFN0cmluZ1V0aWxzLnBhcnNlRG9tYWluKHRoaXMuYmFzZVVybCl9LFxyXG4gICAgICAgICAgICB0aGlzLmJhc2VDb25maWdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2NyaXB0UGFyYW1ldGVycyA9IHNjcmlwdFBhcmFtcyB8fCB7fTtcclxuICAgICAgICB0aGlzLmxvYWRlckZ1bmMgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVyID0gdGhpcy5sb2FkZXIgfHwgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRKc29uKCkudGhlbihjb25maWcgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkQ29uZmlnID0gY29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLmxvYWRlZENvbmZpZywgY29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVDb25maWcoY29uZmlnKS50aGVuKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZENvbmZpZyA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGMuYmFzZVVybCA9IGMuYmFzZVVybCB8fCBcIi9cIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sIHJlamVjdCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkZXI7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmluaXRTZXJ2aWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgbG9hZEpzb24oKTogUHJvbWlzZTxJQ29uZmlndXJhdGlvbj4ge1xyXG4gICAgICAgIGlmICh0aGlzLnVuaXZlcnNhbC5pc1NlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMubG9hZGVkQ29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29uZmlnVXJsID0gdGhpcy5jb25maWdVcmw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlnNSA9IGF3YWl0IHRoaXMuaHR0cC5nZXQoaXNEZXZNb2RlKCkgPyBgJHtjb25maWdVcmx9NWAgOiBjb25maWdVcmwsIHtyZXNwb25zZVR5cGU6IFwidGV4dFwifSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09ONS5wYXJzZShjb25maWc1KTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KGNvbmZpZ1VybCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgQ2FuJ3QgcGFyc2UganNvbjUgY29uZmlnOiAke2V9YCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlIG5vdCBmb3VuZCBhdDogJHtjb25maWdVcmx9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHByZXBhcmVDb25maWcoY29uZmlnOiBJQ29uZmlndXJhdGlvbik6IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+IHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZVVybCh1cmw6IHN0cmluZywgZW5kaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHByb2plY3QgPSAhdGhpcy5sb2FkZWRDb25maWcgPyBcIlwiIDogdGhpcy5sb2FkZWRDb25maWcucHJvamVjdDtcclxuICAgICAgICBjb25zdCBuZWVkc1Byb3RvY29sID0gdXJsPy5zdGFydHNXaXRoKFwiLy9cIikgPz8gZmFsc2U7XHJcbiAgICAgICAgdXJsID0gIW5lZWRzUHJvdG9jb2wgJiYgdXJsPy5zdGFydHNXaXRoKFwiL1wiKSA/IHRoaXMubG9hZGVkQ29uZmlnLmJhc2VEb21haW4gKyB1cmwuc3Vic3RyKDEpIDogdXJsIHx8IFwiXCI7XHJcbiAgICAgICAgdXJsID0gYCR7dXJsLnJlcGxhY2UoL1xcLyskLywgXCJcIil9JHtlbmRpbmd9YC5yZXBsYWNlKFwiW3Byb2plY3RdXCIsIHByb2plY3QpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVuaXZlcnNhbC5pc1NlcnZlciAmJiBuZWVkc1Byb3RvY29sID8gYGh0dHA6JHt1cmx9YCA6IHVybDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb25maWdWYWx1ZShrZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVkQ29uZmlnW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UXVlcnlQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHVybCA9IHVybCB8fCAodGhpcy51bml2ZXJzYWwuaXNCcm93c2VyID8gd2luZG93LmxvY2F0aW9uLmhyZWYgOiBcIlwiKTtcclxuICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXFxdXS9nLCBcIlxcXFwkJlwiKTtcclxuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoXCJbPyZdXCIgKyBuYW1lICsgXCIoPShbXiYjXSopfCZ8I3wkKVwiKSxcclxuICAgICAgICAgICAgcmVzdWx0cyA9IHJlZ2V4LmV4ZWModXJsKTtcclxuICAgICAgICBpZiAoIXJlc3VsdHMpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGlmICghcmVzdWx0c1syXSkgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzJdLnJlcGxhY2UoL1xcKy9nLCBcIiBcIikpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBa0IsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2SCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBR2xELE1BQU0sT0FBTyxhQUFhO0lBb0J0QixZQUFxQixJQUFnQixFQUNoQixTQUEyQixFQUMzQixRQUFrQixFQUNJLFdBQWdCLEVBQ2hCLE9BQWUsRUFDYixhQUE2QixJQUFJLEVBQy9CLGVBQW9CLElBQUk7UUFObEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0ksZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUd0RCxLQUFLLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUN4QyxVQUFVLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7U0FDTjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJ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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLG1CQUFtQixDQUFDLEVBQ3pELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7MEdBckdRLGFBQWEsb0dBdUJGLFlBQVksYUFDWixZQUFZLGFBQ0EsV0FBVyw2QkFDWCxhQUFhOzhHQTFCcEMsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkF3Qk0sTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXOzswQkFDOUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBpc0Rldk1vZGUsIE9wdGlvbmFsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgKiBhcyBKU09ONSBmcm9tIFwianNvbjVcIjtcclxuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5pbXBvcnQge0FQUF9CQVNFX1VSTCwgQkFTRV9DT05GSUcsIElDb25maWdTZXJ2aWNlLCBJQ29uZmlndXJhdGlvbiwgUk9PVF9FTEVNRU5ULCBTQ1JJUFRfUEFSQU1TfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gXCIuLi91dGlscy9zdHJpbmcudXRpbHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJQ29uZmlnU2VydmljZSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGJhc2VDb25maWc6IElDb25maWd1cmF0aW9uO1xyXG4gICAgcHJvdGVjdGVkIGxvYWRlZENvbmZpZzogSUNvbmZpZ3VyYXRpb247XHJcbiAgICBwcm90ZWN0ZWQgc2NyaXB0UGFyYW1ldGVyczogYW55O1xyXG4gICAgcHJvdGVjdGVkIGxvYWRlcjogUHJvbWlzZTxJQ29uZmlndXJhdGlvbj47XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZGVyRnVuYzogKCkgPT4gUHJvbWlzZTxJQ29uZmlndXJhdGlvbj47XHJcblxyXG4gICAgZ2V0IGxvYWQoKTogKCkgPT4gUHJvbWlzZTxJQ29uZmlndXJhdGlvbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlckZ1bmM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmZpZygpOiBJQ29uZmlndXJhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVkQ29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25maWdVcmwoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5sb2FkZWRDb25maWcuYmFzZVVybH1jb25maWcvY29uZmlnLmpzb25gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB1bml2ZXJzYWw6IFVuaXZlcnNhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KFJPT1RfRUxFTUVOVCkgcmVhZG9ubHkgcm9vdEVsZW1lbnQ6IGFueSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoQVBQX0JBU0VfVVJMKSByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJBU0VfQ09ORklHKSBiYXNlQ29uZmlnOiBJQ29uZmlndXJhdGlvbiA9IG51bGwsXHJcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNDUklQVF9QQVJBTVMpIHNjcmlwdFBhcmFtczogYW55ID0gbnVsbCkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIFtdKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsIGtleSwge1xyXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYmFzZUNvbmZpZyA9IGJhc2VDb25maWcgfHwge307XHJcbiAgICAgICAgdGhpcy5sb2FkZWRDb25maWcgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgICAgICAhdGhpcy5iYXNlVXJsID8ge30gOiB7YmFzZVVybDogdGhpcy5iYXNlVXJsLCBiYXNlRG9tYWluOiBTdHJpbmdVdGlscy5wYXJzZURvbWFpbih0aGlzLmJhc2VVcmwpfSxcclxuICAgICAgICAgICAgdGhpcy5iYXNlQ29uZmlnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNjcmlwdFBhcmFtZXRlcnMgPSBzY3JpcHRQYXJhbXMgfHwge307XHJcbiAgICAgICAgdGhpcy5sb2FkZXJGdW5jID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRlciA9IHRoaXMubG9hZGVyIHx8IG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkSnNvbigpLnRoZW4oY29uZmlnID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZENvbmZpZyA9IGNvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5sb2FkZWRDb25maWcsIGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQ29uZmlnKGNvbmZpZykudGhlbihjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRDb25maWcgPSBjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjLmJhc2VVcmwgPSBjLmJhc2VVcmwgfHwgXCIvXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LCByZWplY3QpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVyO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5pbml0U2VydmljZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBpbml0U2VydmljZSgpOiB2b2lkIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIGxvYWRKc29uKCk6IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+IHtcclxuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmxvYWRlZENvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNvbmZpZ1VybCA9IHRoaXMuY29uZmlnVXJsO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZzUgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KGlzRGV2TW9kZSgpID8gYCR7Y29uZmlnVXJsfTVgIDogY29uZmlnVXJsLCB7cmVzcG9uc2VUeXBlOiBcInRleHRcIn0pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTjUucGFyc2UoY29uZmlnNSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5odHRwLmdldChjb25maWdVcmwpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYENhbid0IHBhcnNlIGpzb241IGNvbmZpZzogJHtlfWApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZztcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25maWcgZmlsZSBub3QgZm91bmQgYXQ6ICR7Y29uZmlnVXJsfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBwcmVwYXJlQ29uZmlnKGNvbmZpZzogSUNvbmZpZ3VyYXRpb24pOiBQcm9taXNlPElDb25maWd1cmF0aW9uPiB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByZXBhcmVVcmwodXJsOiBzdHJpbmcsIGVuZGluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwcm9qZWN0ID0gIXRoaXMubG9hZGVkQ29uZmlnID8gXCJcIiA6IHRoaXMubG9hZGVkQ29uZmlnLnByb2plY3Q7XHJcbiAgICAgICAgY29uc3QgbmVlZHNQcm90b2NvbCA9IHVybD8uc3RhcnRzV2l0aChcIi8vXCIpID8/IGZhbHNlO1xyXG4gICAgICAgIHVybCA9ICFuZWVkc1Byb3RvY29sICYmIHVybD8uc3RhcnRzV2l0aChcIi9cIikgPyB0aGlzLmxvYWRlZENvbmZpZy5iYXNlRG9tYWluICsgdXJsLnN1YnN0cigxKSA6IHVybCB8fCBcIlwiO1xyXG4gICAgICAgIHVybCA9IGAke3VybC5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfSR7ZW5kaW5nfWAucmVwbGFjZShcIltwcm9qZWN0XVwiLCBwcm9qZWN0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIgJiYgbmVlZHNQcm90b2NvbCA/IGBodHRwOiR7dXJsfWAgOiB1cmw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZENvbmZpZ1trZXldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFF1ZXJ5UGFyYW1ldGVyKG5hbWU6IHN0cmluZywgdXJsPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB1cmwgPSB1cmwgfHwgKHRoaXMudW5pdmVyc2FsLmlzQnJvd3NlciA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogXCJcIik7XHJcbiAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgvW1xcW1xcXV0vZywgXCJcXFxcJCZcIik7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFwiWz8mXVwiICsgbmFtZSArIFwiKD0oW14mI10qKXwmfCN8JClcIiksXHJcbiAgICAgICAgICAgIHJlc3VsdHMgPSByZWdleC5leGVjKHVybCk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHRzKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBpZiAoIXJlc3VsdHNbMl0pIHJldHVybiBcIlwiO1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1syXS5yZXBsYWNlKC9cXCsvZywgXCIgXCIpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -25,7 +25,8 @@ export class FormatterService {
25
25
  const num = ObjectUtils.isNumber(value) ? value : parseFloat(value) || 0;
26
26
  const str = (num / divider).toLocaleString(this.language.currentLanguage, {
27
27
  minimumFractionDigits: precision,
28
- maximumFractionDigits: precision
28
+ maximumFractionDigits: precision,
29
+ useGrouping: false
29
30
  });
30
31
  return ObjectUtils.evaluate(format || this.defaultNumberFormat, { num: str });
31
32
  }
@@ -44,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
44
45
  type: Inject,
45
46
  args: [LANGUAGE_SERVICE]
46
47
  }] }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUc5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBY3pCLFlBQTZDLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBRXZFLENBQUM7SUFkRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBTUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxTQUFrQixFQUFFLE9BQWdCO1FBQzNELE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBc0IsRUFBRSxNQUFlLEVBQUUsU0FBa0IsRUFBRSxPQUFnQjtRQUN0RixTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRTtZQUN0RSxxQkFBcUIsRUFBRSxTQUFTO1lBQ2hDLHFCQUFxQixFQUFFLFNBQVM7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFNBQWtCLEVBQUUsT0FBZ0I7UUFDaEUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxZQUFZLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvRSxDQUFDOzs2R0F2Q1EsZ0JBQWdCLGtCQWNMLGdCQUFnQjtpSEFkM0IsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQWVNLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2VydmljZSwgTEFOR1VBR0VfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7TWF0aFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC51dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0dGVyU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGRlZmF1bHRQcmVjaXNpb24oKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gMjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVmYXVsdE51bWJlckZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgbnVtICsgJyBtbSdgO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWZhdWx0RGl2aWRlcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTEFOR1VBR0VfU0VSVklDRSkgcHVibGljIGxhbmd1YWdlOiBJTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJvdW5kTnVtYmVyKHZhbHVlOiBudW1iZXIsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGhVdGlscy5yb3VuZCh2YWx1ZSwgdGhpcy5nZXRQcmVjaXNpb24ocHJlY2lzaW9uKSwgZGl2aWRlciB8fCB0aGlzLmRlZmF1bHREaXZpZGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciB8IHN0cmluZywgZm9ybWF0Pzogc3RyaW5nLCBwcmVjaXNpb24/OiBudW1iZXIsIGRpdmlkZXI/OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKHByZWNpc2lvbik7XHJcbiAgICAgICAgZGl2aWRlciA9IGRpdmlkZXIgfHwgdGhpcy5kZWZhdWx0RGl2aWRlcjtcclxuICAgICAgICBjb25zdCBudW0gPSBPYmplY3RVdGlscy5pc051bWJlcih2YWx1ZSkgPyA8bnVtYmVyPnZhbHVlIDogcGFyc2VGbG9hdCg8c3RyaW5nPnZhbHVlKSB8fCAwO1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IChudW0gLyBkaXZpZGVyKS50b0xvY2FsZVN0cmluZyh0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZSwge1xyXG4gICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IHByZWNpc2lvbixcclxuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBwcmVjaXNpb25cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuZXZhbHVhdGUoZm9ybWF0IHx8IHRoaXMuZGVmYXVsdE51bWJlckZvcm1hdCwge251bTogc3RyfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0TWlsbGltZXRlcih2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb24/OiBudW1iZXIsIGRpdmlkZXI/OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSwgYG51bSArICcgbW0nYCwgcHJlY2lzaW9uLCBkaXZpZGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UHJlY2lzaW9uKHByZWNpc2lvbjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNOdW1iZXIocHJlY2lzaW9uKSA/IHByZWNpc2lvbiA6IHRoaXMuZGVmYXVsdFByZWNpc2lvbjtcclxuICAgIH1cclxufVxyXG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUc5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBY3pCLFlBQTZDLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBRXZFLENBQUM7SUFkRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBTUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxTQUFrQixFQUFFLE9BQWdCO1FBQzNELE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBc0IsRUFBRSxNQUFlLEVBQUUsU0FBa0IsRUFBRSxPQUFnQjtRQUN0RixTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRTtZQUN0RSxxQkFBcUIsRUFBRSxTQUFTO1lBQ2hDLHFCQUFxQixFQUFFLFNBQVM7WUFDaEMsV0FBVyxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFNBQWtCLEVBQUUsT0FBZ0I7UUFDaEUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxZQUFZLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvRSxDQUFDOzs2R0F4Q1EsZ0JBQWdCLGtCQWNMLGdCQUFnQjtpSEFkM0IsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQWVNLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2VydmljZSwgTEFOR1VBR0VfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7TWF0aFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC51dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0dGVyU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGRlZmF1bHRQcmVjaXNpb24oKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gMjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVmYXVsdE51bWJlckZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgbnVtICsgJyBtbSdgO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWZhdWx0RGl2aWRlcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTEFOR1VBR0VfU0VSVklDRSkgcHVibGljIGxhbmd1YWdlOiBJTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJvdW5kTnVtYmVyKHZhbHVlOiBudW1iZXIsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGhVdGlscy5yb3VuZCh2YWx1ZSwgdGhpcy5nZXRQcmVjaXNpb24ocHJlY2lzaW9uKSwgZGl2aWRlciB8fCB0aGlzLmRlZmF1bHREaXZpZGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciB8IHN0cmluZywgZm9ybWF0Pzogc3RyaW5nLCBwcmVjaXNpb24/OiBudW1iZXIsIGRpdmlkZXI/OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKHByZWNpc2lvbik7XHJcbiAgICAgICAgZGl2aWRlciA9IGRpdmlkZXIgfHwgdGhpcy5kZWZhdWx0RGl2aWRlcjtcclxuICAgICAgICBjb25zdCBudW0gPSBPYmplY3RVdGlscy5pc051bWJlcih2YWx1ZSkgPyA8bnVtYmVyPnZhbHVlIDogcGFyc2VGbG9hdCg8c3RyaW5nPnZhbHVlKSB8fCAwO1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IChudW0gLyBkaXZpZGVyKS50b0xvY2FsZVN0cmluZyh0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZSwge1xyXG4gICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IHByZWNpc2lvbixcclxuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBwcmVjaXNpb24sXHJcbiAgICAgICAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5ldmFsdWF0ZShmb3JtYXQgfHwgdGhpcy5kZWZhdWx0TnVtYmVyRm9ybWF0LCB7bnVtOiBzdHJ9KTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtYXRNaWxsaW1ldGVyKHZhbHVlOiBudW1iZXIsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlLCBgbnVtICsgJyBtbSdgLCBwcmVjaXNpb24sIGRpdmlkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRQcmVjaXNpb24ocHJlY2lzaW9uOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc051bWJlcihwcmVjaXNpb24pID8gcHJlY2lzaW9uIDogdGhpcy5kZWZhdWx0UHJlY2lzaW9uO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -96,5 +96,12 @@ export class ArrayUtils {
96
96
  }
97
97
  return result;
98
98
  }
99
+ static unique(arr) {
100
+ if (!ObjectUtils.isArray(arr))
101
+ return [];
102
+ return arr.filter((value, index, self) => {
103
+ return self.indexOf(value) === index;
104
+ });
105
+ }
99
106
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3V0aWxzL2FycmF5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLE9BQU8sVUFBVTtJQUVuQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQVUsRUFBRSxHQUFHLEtBQVk7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVSxFQUFFLEdBQVc7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sRUFBRTtnQkFDMUIsTUFBTSxLQUFLLEdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLEtBQUssQ0FBQyxJ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QUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi9vYmplY3QudXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcnJheVV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgaGFzKGFycjogYW55W10sIC4uLml0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpIHx8ICFPYmplY3RVdGlscy5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFyci5pbmRleE9mKGl0ZW1zW2ldKSA+PSAwKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtYXRjaChhcnI6IGFueVtdLCBzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpIHx8ICFPYmplY3RVdGlscy5pc1N0cmluZyhzdHIpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycltpXSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSA8UmVnRXhwPmFycltpXTtcclxuICAgICAgICAgICAgICAgIGlmIChyZWdleC50ZXN0KHN0cikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYW55PFQ+KGFycjogVFtdLCBjYjogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSB8fCAhT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihjYikpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2IoYXJyW2ldKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbW92ZTxUPihhcnI6IFRbXSwgb2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlcik6IFRbXSB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc0FycmF5KGFycikpIHJldHVybiBbXTtcclxuICAgICAgICBjb25zdCBsZW5ndGggPSBhcnIubGVuZ3RoO1xyXG4gICAgICAgIHdoaWxlIChvbGRJbmRleCA8IDApIHtcclxuICAgICAgICAgICAgb2xkSW5kZXggKz0gbGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICB3aGlsZSAobmV3SW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgIG5ld0luZGV4ICs9IGxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld0luZGV4ID49IGxlbmd0aCkge1xyXG4gICAgICAgICAgICBsZXQgayA9IG5ld0luZGV4IC0gbGVuZ3RoICsgMTtcclxuICAgICAgICAgICAgd2hpbGUgKGstLSkge1xyXG4gICAgICAgICAgICAgICAgYXJyLnB1c2godW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBhcnIuc3BsaWNlKG5ld0luZGV4LCAwLCBhcnIuc3BsaWNlKG9sZEluZGV4LCAxKVswXSk7XHJcbiAgICAgICAgcmV0dXJuIGFycjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmV2ZXJzZWQoYXJyOiBhbnlbXSk6IGFueVtdIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGFycltpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1pbjxUPihhcnI6IFRbXSwgY2I6IChpdGVtOiBULCBpbmRleD86IG51bWJlcikgPT4gbnVtYmVyKTogVCB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc0FycmF5KGFycikpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGxldCBtaW4gPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gY2IoYXJyW2ldLCBpKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgPCBtaW4gfHwgcmVzdWx0ID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBtaW4gPSBjdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gYXJyW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1heDxUPihhcnI6IFRbXSwgY2I6IChpdGVtOiBULCBpbmRleD86IG51bWJlcikgPT4gbnVtYmVyKTogVCB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc0FycmF5KGFycikpIHJldHVybiBudWxsO1xyXG4gICAgICAgIGxldCBtYXggPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gY2IoYXJyW2ldLCBpKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgPiBtYXggfHwgcmVzdWx0ID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBtYXggPSBjdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gYXJyW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNodW5rPFQ+KGFycjogVFtdLCBzaXplOiBudW1iZXIpOiBBcnJheTxUW10+IHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIFtdO1xyXG4gICAgICAgIHNpemUgPSBNYXRoLm1heCgxLCBzaXplKTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBzaXplKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGFyci5zbGljZShpLCBpICsgc2l6ZSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHRcclxuICAgIH1cclxufVxyXG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3V0aWxzL2FycmF5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLE9BQU8sVUFBVTtJQUVuQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQVUsRUFBRSxHQUFHLEtBQVk7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVSxFQUFFLEdBQVc7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sRUFBRTtnQkFDMUIsTUFBTSxLQUFLLEdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLEtBQUssQ0FBQyxJ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QUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBSSxHQUFRO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL29iamVjdC51dGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFycmF5VXRpbHMge1xyXG5cclxuICAgIHN0YXRpYyBoYXMoYXJyOiBhbnlbXSwgLi4uaXRlbXM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc0FycmF5KGFycikgfHwgIU9iamVjdFV0aWxzLmlzQXJyYXkoaXRlbXMpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYXJyLmluZGV4T2YoaXRlbXNbaV0pID49IDApIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1hdGNoKGFycjogYW55W10sIHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5pc0FycmF5KGFycikgfHwgIU9iamVjdFV0aWxzLmlzU3RyaW5nKHN0cikpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoYXJyW2ldIGluc3RhbmNlb2YgUmVnRXhwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IDxSZWdFeHA+YXJyW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlZ2V4LnRlc3Qoc3RyKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhbnk8VD4oYXJyOiBUW10sIGNiOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpIHx8ICFPYmplY3RVdGlscy5pc0Z1bmN0aW9uKGNiKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChjYihhcnJbaV0pKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtb3ZlPFQ+KGFycjogVFtdLCBvbGRJbmRleDogbnVtYmVyLCBuZXdJbmRleDogbnVtYmVyKTogVFtdIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIFtdO1xyXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGFyci5sZW5ndGg7XHJcbiAgICAgICAgd2hpbGUgKG9sZEluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICBvbGRJbmRleCArPSBsZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHdoaWxlIChuZXdJbmRleCA8IDApIHtcclxuICAgICAgICAgICAgbmV3SW5kZXggKz0gbGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmV3SW5kZXggPj0gbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxldCBrID0gbmV3SW5kZXggLSBsZW5ndGggKyAxO1xyXG4gICAgICAgICAgICB3aGlsZSAoay0tKSB7XHJcbiAgICAgICAgICAgICAgICBhcnIucHVzaCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFyci5zcGxpY2UobmV3SW5kZXgsIDAsIGFyci5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdKTtcclxuICAgICAgICByZXR1cm4gYXJyO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZXZlcnNlZChhcnI6IGFueVtdKTogYW55W10ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBhcnIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goYXJyW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbWluPFQ+KGFycjogVFtdLCBjYjogKGl0ZW06IFQsIGluZGV4PzogbnVtYmVyKSA9PiBudW1iZXIpOiBUIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgbGV0IG1pbiA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBjYihhcnJbaV0sIGkpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudCA8IG1pbiB8fCByZXN1bHQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIG1pbiA9IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbWF4PFQ+KGFycjogVFtdLCBjYjogKGl0ZW06IFQsIGluZGV4PzogbnVtYmVyKSA9PiBudW1iZXIpOiBUIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLmlzQXJyYXkoYXJyKSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgbGV0IG1heCA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBjYihhcnJbaV0sIGkpO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudCA+IG1heCB8fCByZXN1bHQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIG1heCA9IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY2h1bms8VD4oYXJyOiBUW10sIHNpemU6IG51bWJlcik6IEFycmF5PFRbXT4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpKSByZXR1cm4gW107XHJcbiAgICAgICAgc2l6ZSA9IE1hdGgubWF4KDEsIHNpemUpO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IHNpemUpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goYXJyLnNsaWNlKGksIGkgKyBzaXplKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB1bmlxdWU8VD4oYXJyOiBUW10pOiBUW10ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNBcnJheShhcnIpKSByZXR1cm4gW107XHJcbiAgICAgICAgcmV0dXJuIGFyci5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXg7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,25 @@
1
+ export class FileSystemEntry {
2
+ constructor(label, meta, image, data, parent, openCb) {
3
+ this.label = label;
4
+ this.meta = meta;
5
+ this.image = image;
6
+ this.data = data;
7
+ this.parent = parent;
8
+ this.openCb = openCb;
9
+ this.path = !parent ? [this] : parent.path.concat([this]);
10
+ this.level = this.path.length - 1;
11
+ this.classes = this.path
12
+ .filter(t => typeof t.data === "string" && t.data.length > 0).map(t => t.data)
13
+ .concat([`level-${this.level}`]);
14
+ }
15
+ open() {
16
+ this.result = this.result || this.openCb(this.data, this);
17
+ this.result.then(res => {
18
+ if (Array.isArray(res))
19
+ return;
20
+ this.result = null;
21
+ });
22
+ return this.result;
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zeXN0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3V0aWxzL2ZpbGUtc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxlQUFlO0lBUXhCLFlBQXFCLEtBQWEsRUFDYixJQUFZLEVBQ1osS0FBYSxFQUNiLElBQVMsRUFDVCxNQUF1QixFQUN0QixNQUE2QjtRQUw5QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDbkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQzdFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPO1lBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbGVTeXN0ZW1FbnRyeU9wZW5SZXN1bHQgPSBSZWFkb25seUFycmF5PEZpbGVTeXN0ZW1FbnRyeT4gfCBudWxsO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsZVN5c3RlbUVudHJ5T3BlbkNiID0gKGRhdGE6IGFueSwgcGFyZW50OiBGaWxlU3lzdGVtRW50cnkpID0+IFByb21pc2U8RmlsZVN5c3RlbUVudHJ5T3BlblJlc3VsdD47XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZVN5c3RlbUVudHJ5IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVzdWx0OiBQcm9taXNlPEZpbGVTeXN0ZW1FbnRyeU9wZW5SZXN1bHQ+O1xyXG5cclxuICAgIHJlYWRvbmx5IHBhdGg6IFJlYWRvbmx5QXJyYXk8RmlsZVN5c3RlbUVudHJ5PjtcclxuICAgIHJlYWRvbmx5IGxldmVsOiBudW1iZXI7XHJcbiAgICByZWFkb25seSBjbGFzc2VzOiBSZWFkb25seUFycmF5PHN0cmluZz47XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgbGFiZWw6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IG1ldGE6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGltYWdlOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBkYXRhOiBhbnksXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSBwYXJlbnQ6IEZpbGVTeXN0ZW1FbnRyeSxcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBvcGVuQ2I6IEZpbGVTeXN0ZW1FbnRyeU9wZW5DYikge1xyXG4gICAgICAgIHRoaXMucGF0aCA9ICFwYXJlbnQgPyBbdGhpc10gOiBwYXJlbnQucGF0aC5jb25jYXQoW3RoaXNdKTtcclxuICAgICAgICB0aGlzLmxldmVsID0gdGhpcy5wYXRoLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgdGhpcy5jbGFzc2VzID0gdGhpcy5wYXRoXHJcbiAgICAgICAgICAgIC5maWx0ZXIodCA9PiB0eXBlb2YgdC5kYXRhID09PSBcInN0cmluZ1wiICYmIHQuZGF0YS5sZW5ndGggPiAwKS5tYXAodCA9PiB0LmRhdGEpXHJcbiAgICAgICAgICAgIC5jb25jYXQoW2BsZXZlbC0ke3RoaXMubGV2ZWx9YF0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW4oKTogUHJvbWlzZTxGaWxlU3lzdGVtRW50cnlPcGVuUmVzdWx0PiB7XHJcbiAgICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLnJlc3VsdCB8fCB0aGlzLm9wZW5DYih0aGlzLmRhdGEsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMucmVzdWx0LnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { ObjectUtils } from "./object.utils";
2
2
  export class MathUtils {
3
3
  static equal(a, b, epsilon = null) {
4
- epsilon = ObjectUtils.isNumber(epsilon) ? epsilon : Math.E;
4
+ epsilon = ObjectUtils.isNumber(epsilon) ? epsilon : MathUtils.EPSILON;
5
5
  return Math.abs(a - b) < epsilon;
6
6
  }
7
7
  static clamp(value, min, max) {
@@ -11,5 +11,34 @@ export class MathUtils {
11
11
  precision = Math.pow(10, precision);
12
12
  return Math.round(value * precision / divider) / precision;
13
13
  }
14
+ static approxIndex(x, values, epsilon = null) {
15
+ if (!Array.isArray(values) || values.length == 0) {
16
+ return -1;
17
+ }
18
+ let s = 0;
19
+ let e = values.length - 1;
20
+ while (s <= e) {
21
+ const i = Math.floor((s + e) / 2);
22
+ const v = values[i];
23
+ if (MathUtils.equal(v, x, epsilon)) {
24
+ return i;
25
+ }
26
+ if (v < x) {
27
+ s = i + 1;
28
+ }
29
+ else {
30
+ e = i - 1;
31
+ }
32
+ }
33
+ const m = Math.max(e, 0);
34
+ const a = values[s];
35
+ const b = values[m];
36
+ return Math.abs(a - x) < Math.abs(b - x) ? s : m;
37
+ }
38
+ static approximate(x, values, epsilon = null) {
39
+ const index = MathUtils.approxIndex(x, values, epsilon);
40
+ return values[index] ?? null;
41
+ }
14
42
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvdXRpbHMvbWF0aC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLFNBQVM7SUFFbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLFVBQWtCLElBQUk7UUFDckQsT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDaEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxZQUFvQixDQUFDLEVBQUUsVUFBa0IsQ0FBQztRQUNsRSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQy9ELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL29iamVjdC51dGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1hdGhVdGlscyB7XHJcblxyXG4gICAgc3RhdGljIGVxdWFsKGE6IG51bWJlciwgYjogbnVtYmVyLCBlcHNpbG9uOiBudW1iZXIgPSBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgZXBzaWxvbiA9IE9iamVjdFV0aWxzLmlzTnVtYmVyKGVwc2lsb24pID8gZXBzaWxvbiA6IE1hdGguRTtcclxuICAgICAgICByZXR1cm4gTWF0aC5hYnMoIGEgLSBiICkgPCBlcHNpbG9uO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLm1heChNYXRoLm1pbih2YWx1ZSwgbWF4KSwgbWluKVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByb3VuZCh2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlciA9IDIsIGRpdmlkZXI6IG51bWJlciA9IDEpOiBudW1iZXIge1xyXG4gICAgICAgIHByZWNpc2lvbiA9IE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogcHJlY2lzaW9uIC8gZGl2aWRlcikgLyBwcmVjaXNpb247XHJcbiAgICB9XHJcbn1cclxuIl19
43
+ MathUtils.EPSILON = 1e-9;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvdXRpbHMvbWF0aC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLFNBQVM7SUFJbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLFVBQWtCLElBQUk7UUFDckQsT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDaEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxZQUFvQixDQUFDLEVBQUUsVUFBa0IsQ0FBQztRQUNsRSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQVMsRUFBRSxNQUFnQixFQUFFLFVBQWtCLElBQUk7UUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDOUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1gsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1AsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDYjtpQkFBTTtnQkFDSCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO1NBQ0o7UUFDRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQVMsRUFBRSxNQUFnQixFQUFFLFVBQWtCLElBQUk7UUFDbEUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNqQyxDQUFDOztBQTNDZSxpQkFBTyxHQUFXLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL29iamVjdC51dGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1hdGhVdGlscyB7XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IEVQU0lMT046IG51bWJlciA9IDFlLTk7XHJcblxyXG4gICAgc3RhdGljIGVxdWFsKGE6IG51bWJlciwgYjogbnVtYmVyLCBlcHNpbG9uOiBudW1iZXIgPSBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgZXBzaWxvbiA9IE9iamVjdFV0aWxzLmlzTnVtYmVyKGVwc2lsb24pID8gZXBzaWxvbiA6IE1hdGhVdGlscy5FUFNJTE9OO1xyXG4gICAgICAgIHJldHVybiBNYXRoLmFicyhhIC0gYikgPCBlcHNpbG9uO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLm1heChNYXRoLm1pbih2YWx1ZSwgbWF4KSwgbWluKVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByb3VuZCh2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlciA9IDIsIGRpdmlkZXI6IG51bWJlciA9IDEpOiBudW1iZXIge1xyXG4gICAgICAgIHByZWNpc2lvbiA9IE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogcHJlY2lzaW9uIC8gZGl2aWRlcikgLyBwcmVjaXNpb247XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGFwcHJveEluZGV4KHg6IG51bWJlciwgdmFsdWVzOiBudW1iZXJbXSwgZXBzaWxvbjogbnVtYmVyID0gbnVsbCk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlcykgfHwgdmFsdWVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHMgPSAwO1xyXG4gICAgICAgIGxldCBlID0gdmFsdWVzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgd2hpbGUgKHMgPD0gZSkge1xyXG4gICAgICAgICAgICBjb25zdCBpID0gTWF0aC5mbG9vcigocyArIGUpIC8gMik7XHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSB2YWx1ZXNbaV07XHJcbiAgICAgICAgICAgIGlmIChNYXRoVXRpbHMuZXF1YWwodiwgeCwgZXBzaWxvbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh2IDwgeCkge1xyXG4gICAgICAgICAgICAgICAgcyA9IGkgKyAxO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZSA9IGkgLSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG0gPSBNYXRoLm1heChlLCAwKTtcclxuICAgICAgICBjb25zdCBhID0gdmFsdWVzW3NdO1xyXG4gICAgICAgIGNvbnN0IGIgPSB2YWx1ZXNbbV07XHJcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKGEgLSB4KSA8IE1hdGguYWJzKGIgLSB4KSA/IHMgOiBtO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhcHByb3hpbWF0ZSh4OiBudW1iZXIsIHZhbHVlczogbnVtYmVyW10sIGVwc2lsb246IG51bWJlciA9IG51bGwpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gTWF0aFV0aWxzLmFwcHJveEluZGV4KHgsIHZhbHVlcywgZXBzaWxvbik7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlc1tpbmRleF0gPz8gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=