@odx/angular 2.6.1 → 2.7.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 (174) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cdk/autocomplete-control/index.d.ts +0 -1
  3. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +2 -3
  4. package/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.d.ts +3 -3
  5. package/cdk/custom-form-control/index.d.ts +1 -0
  6. package/cdk/{autocomplete-control/lib/abstract/base-search-field.directive.d.ts → custom-form-control/lib/input-control.directive.d.ts} +3 -3
  7. package/charts-config/lib/charts-theme.directive.d.ts +1 -1
  8. package/charts-config/lib/charts-theme.service.d.ts +3 -3
  9. package/components/autocomplete/lib/autocomplete.component.d.ts +2 -2
  10. package/components/autocomplete/lib/autocomplete.module.d.ts +2 -2
  11. package/components/autocomplete/lib/directives/autocomplete-input-control.directive.d.ts +9 -0
  12. package/components/autocomplete/lib/directives/index.d.ts +1 -1
  13. package/components/calendar/README.md +3 -0
  14. package/components/calendar/index.d.ts +5 -0
  15. package/components/calendar/lib/calendar.component.d.ts +18 -0
  16. package/components/calendar/lib/calendar.config.d.ts +100 -0
  17. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +27 -0
  18. package/components/calendar/lib/components/calendar-header/index.d.ts +1 -0
  19. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +21 -0
  20. package/components/calendar/lib/components/calendar-month/index.d.ts +1 -0
  21. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +18 -0
  22. package/components/calendar/lib/components/calendar-year/index.d.ts +1 -0
  23. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +20 -0
  24. package/components/calendar/lib/components/calendar-years/index.d.ts +1 -0
  25. package/components/calendar/lib/components/index.d.ts +4 -0
  26. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +34 -0
  27. package/components/calendar/lib/directives/calendar-view.directive.d.ts +29 -0
  28. package/components/calendar/lib/directives/index.d.ts +2 -0
  29. package/components/calendar/lib/enums/calendar-view.enum.d.ts +5 -0
  30. package/components/calendar/lib/enums/index.d.ts +1 -0
  31. package/components/calendar/lib/models/date-filter.d.ts +1 -0
  32. package/components/calendar/lib/models/date-type.d.ts +1 -0
  33. package/components/calendar/lib/models/date-validator.d.ts +1 -0
  34. package/components/calendar/lib/models/index.d.ts +3 -0
  35. package/components/calendar/lib/pipes/date-label.pipe.d.ts +18 -0
  36. package/components/calendar/lib/pipes/index.d.ts +1 -0
  37. package/components/calendar/lib/services/calendar-month.service.d.ts +13 -0
  38. package/components/calendar/lib/services/calendar-year.service.d.ts +11 -0
  39. package/components/calendar/lib/services/calendar-years.service.d.ts +9 -0
  40. package/components/calendar/lib/services/calendar.service.d.ts +25 -0
  41. package/components/calendar/lib/services/index.d.ts +4 -0
  42. package/components/calendar/lib/utils/check-identical-date.d.ts +2 -0
  43. package/components/calendar/lib/utils/get-A11y-label.d.ts +3 -0
  44. package/components/calendar/lib/utils/index.d.ts +7 -0
  45. package/components/calendar/lib/utils/parse-date.d.ts +2 -0
  46. package/components/calendar/lib/utils/validate-max-date.d.ts +2 -0
  47. package/components/calendar/lib/utils/validate-min-date.d.ts +2 -0
  48. package/components/calendar/lib/utils/validate-next-date-set.d.ts +2 -0
  49. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +2 -0
  50. package/components/datepicker/README.md +3 -0
  51. package/components/datepicker/index.d.ts +5 -0
  52. package/components/datepicker/lib/datepicker.component.d.ts +37 -0
  53. package/components/datepicker/lib/datepicker.config.d.ts +29 -0
  54. package/components/datepicker/lib/datepicker.module.d.ts +9 -0
  55. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +24 -0
  56. package/components/datepicker/lib/directives/index.d.ts +1 -0
  57. package/components/datepicker/lib/models/datepicker-input-date-order.d.ts +6 -0
  58. package/components/datepicker/lib/models/datepicker-input-pattern.d.ts +11 -0
  59. package/components/datepicker/lib/models/index.d.ts +2 -0
  60. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +3 -0
  61. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +2 -0
  62. package/components/datepicker/lib/utils/index.d.ts +2 -0
  63. package/components/select/lib/directives/index.d.ts +1 -1
  64. package/components/select/lib/directives/select-input-control.directive.d.ts +9 -0
  65. package/components/select/lib/select.component.d.ts +2 -2
  66. package/components/select/lib/select.module.d.ts +2 -2
  67. package/esm2020/cdk/autocomplete-control/index.mjs +1 -2
  68. package/esm2020/cdk/autocomplete-control/lib/autocomplete-control.mjs +1 -1
  69. package/esm2020/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.mjs +1 -1
  70. package/esm2020/cdk/custom-form-control/index.mjs +2 -1
  71. package/esm2020/cdk/custom-form-control/lib/input-control.directive.mjs +35 -0
  72. package/esm2020/charts-config/lib/charts-theme.directive.mjs +5 -5
  73. package/esm2020/charts-config/lib/charts-theme.module.mjs +4 -4
  74. package/esm2020/charts-config/lib/charts-theme.service.mjs +5 -5
  75. package/esm2020/components/autocomplete/lib/autocomplete.component.mjs +4 -5
  76. package/esm2020/components/autocomplete/lib/autocomplete.module.mjs +4 -4
  77. package/esm2020/components/autocomplete/lib/directives/autocomplete-input-control.directive.mjs +32 -0
  78. package/esm2020/components/autocomplete/lib/directives/index.mjs +2 -2
  79. package/esm2020/components/calendar/index.mjs +6 -0
  80. package/esm2020/components/calendar/lib/calendar.component.mjs +57 -0
  81. package/esm2020/components/calendar/lib/calendar.config.mjs +15 -0
  82. package/esm2020/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +51 -0
  83. package/esm2020/components/calendar/lib/components/calendar-header/index.mjs +2 -0
  84. package/esm2020/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +59 -0
  85. package/esm2020/components/calendar/lib/components/calendar-month/index.mjs +2 -0
  86. package/esm2020/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +57 -0
  87. package/esm2020/components/calendar/lib/components/calendar-year/index.mjs +2 -0
  88. package/esm2020/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +65 -0
  89. package/esm2020/components/calendar/lib/components/calendar-years/index.mjs +2 -0
  90. package/esm2020/components/calendar/lib/components/index.mjs +5 -0
  91. package/esm2020/components/calendar/lib/directives/calendar-cell.directive.mjs +92 -0
  92. package/esm2020/components/calendar/lib/directives/calendar-view.directive.mjs +39 -0
  93. package/esm2020/components/calendar/lib/directives/index.mjs +3 -0
  94. package/esm2020/components/calendar/lib/enums/calendar-view.enum.mjs +7 -0
  95. package/esm2020/components/calendar/lib/enums/index.mjs +2 -0
  96. package/esm2020/components/calendar/lib/models/date-filter.mjs +2 -0
  97. package/esm2020/components/calendar/lib/models/date-type.mjs +2 -0
  98. package/esm2020/components/calendar/lib/models/date-validator.mjs +2 -0
  99. package/esm2020/components/calendar/lib/models/index.mjs +4 -0
  100. package/esm2020/components/calendar/lib/pipes/date-label.pipe.mjs +25 -0
  101. package/esm2020/components/calendar/lib/pipes/index.mjs +2 -0
  102. package/esm2020/components/calendar/lib/services/calendar-month.service.mjs +38 -0
  103. package/esm2020/components/calendar/lib/services/calendar-year.service.mjs +31 -0
  104. package/esm2020/components/calendar/lib/services/calendar-years.service.mjs +33 -0
  105. package/esm2020/components/calendar/lib/services/calendar.service.mjs +74 -0
  106. package/esm2020/components/calendar/lib/services/index.mjs +5 -0
  107. package/esm2020/components/calendar/lib/utils/check-identical-date.mjs +11 -0
  108. package/esm2020/components/calendar/lib/utils/get-A11y-label.mjs +10 -0
  109. package/esm2020/components/calendar/lib/utils/index.mjs +8 -0
  110. package/esm2020/components/calendar/lib/utils/parse-date.mjs +15 -0
  111. package/esm2020/components/calendar/lib/utils/validate-max-date.mjs +11 -0
  112. package/esm2020/components/calendar/lib/utils/validate-min-date.mjs +11 -0
  113. package/esm2020/components/calendar/lib/utils/validate-next-date-set.mjs +12 -0
  114. package/esm2020/components/calendar/lib/utils/validate-previous-date-set.mjs +12 -0
  115. package/esm2020/components/calendar/odx-angular-components-calendar.mjs +5 -0
  116. package/esm2020/components/datepicker/index.mjs +6 -0
  117. package/esm2020/components/datepicker/lib/datepicker.component.mjs +118 -0
  118. package/esm2020/components/datepicker/lib/datepicker.config.mjs +7 -0
  119. package/esm2020/components/datepicker/lib/datepicker.module.mjs +19 -0
  120. package/esm2020/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +60 -0
  121. package/esm2020/components/datepicker/lib/directives/index.mjs +2 -0
  122. package/esm2020/components/datepicker/lib/models/datepicker-input-date-order.mjs +6 -0
  123. package/esm2020/components/datepicker/lib/models/datepicker-input-pattern.mjs +11 -0
  124. package/esm2020/components/datepicker/lib/models/index.mjs +3 -0
  125. package/esm2020/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +16 -0
  126. package/esm2020/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +30 -0
  127. package/esm2020/components/datepicker/lib/utils/index.mjs +3 -0
  128. package/esm2020/components/datepicker/odx-angular-components-datepicker.mjs +5 -0
  129. package/esm2020/components/select/lib/directives/index.mjs +2 -2
  130. package/esm2020/components/select/lib/directives/select-input-control.directive.mjs +35 -0
  131. package/esm2020/components/select/lib/select.component.mjs +4 -4
  132. package/esm2020/components/select/lib/select.module.mjs +4 -4
  133. package/esm2020/utils/lib/helpers/index.mjs +2 -2
  134. package/fesm2015/odx-angular-cdk-autocomplete-control.mjs +4 -39
  135. package/fesm2015/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  136. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +34 -2
  137. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  138. package/fesm2015/odx-angular-charts-config.mjs +10 -10
  139. package/fesm2015/odx-angular-charts-config.mjs.map +1 -1
  140. package/fesm2015/odx-angular-components-autocomplete.mjs +15 -12
  141. package/fesm2015/odx-angular-components-autocomplete.mjs.map +1 -1
  142. package/fesm2015/odx-angular-components-calendar.mjs +623 -0
  143. package/fesm2015/odx-angular-components-calendar.mjs.map +1 -0
  144. package/fesm2015/odx-angular-components-datepicker.mjs +249 -0
  145. package/fesm2015/odx-angular-components-datepicker.mjs.map +1 -0
  146. package/fesm2015/odx-angular-components-select.mjs +14 -13
  147. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  148. package/fesm2015/odx-angular-utils.mjs +21 -21
  149. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  150. package/fesm2020/odx-angular-cdk-autocomplete-control.mjs +4 -39
  151. package/fesm2020/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  152. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +34 -2
  153. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  154. package/fesm2020/odx-angular-charts-config.mjs +10 -10
  155. package/fesm2020/odx-angular-charts-config.mjs.map +1 -1
  156. package/fesm2020/odx-angular-components-autocomplete.mjs +15 -12
  157. package/fesm2020/odx-angular-components-autocomplete.mjs.map +1 -1
  158. package/fesm2020/odx-angular-components-calendar.mjs +621 -0
  159. package/fesm2020/odx-angular-components-calendar.mjs.map +1 -0
  160. package/fesm2020/odx-angular-components-datepicker.mjs +249 -0
  161. package/fesm2020/odx-angular-components-datepicker.mjs.map +1 -0
  162. package/fesm2020/odx-angular-components-select.mjs +14 -13
  163. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  164. package/fesm2020/odx-angular-utils.mjs +21 -21
  165. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  166. package/package.json +21 -3
  167. package/utils/lib/helpers/index.d.ts +1 -1
  168. package/cdk/autocomplete-control/lib/abstract/index.d.ts +0 -1
  169. package/components/autocomplete/lib/directives/autocomplete-search-field.directive.d.ts +0 -9
  170. package/components/select/lib/directives/select-search-field.directive.d.ts +0 -9
  171. package/esm2020/cdk/autocomplete-control/lib/abstract/base-search-field.directive.mjs +0 -38
  172. package/esm2020/cdk/autocomplete-control/lib/abstract/index.mjs +0 -2
  173. package/esm2020/components/autocomplete/lib/directives/autocomplete-search-field.directive.mjs +0 -26
  174. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +0 -35
@@ -13,7 +13,7 @@ import { CSSComponent, CSSModifier } from '@odx/angular/internal';
13
13
  import { fromQueryList } from '@odx/angular/rxjs';
14
14
  import { Transform, deferFn } from '@odx/angular/utils';
15
15
  import { SelectOptionComponent } from './components';
16
- import { SelectSearchFieldDirective } from './directives';
16
+ import { SelectInputControlDirective } from './directives';
17
17
  import { SELECT_CONTROL } from './select.tokens';
18
18
  import * as i0 from "@angular/core";
19
19
  import * as i1 from "@angular/common";
@@ -152,7 +152,7 @@ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
152
152
  provide: ODX_SEARCH_FILTER_HOST,
153
153
  useExisting: SELECT_CONTROL,
154
154
  },
155
- ], queries: [{ propertyName: "searchField", first: true, predicate: SelectSearchFieldDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: SelectOptionComponent, selector: "odx-select-option, odx-option", inputs: ["notFoundMessage"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
155
+ ], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: SelectOptionComponent, selector: "odx-select-option, odx-option", inputs: ["notFoundMessage"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
156
156
  __decorate([
157
157
  CSSModifier(),
158
158
  Transform(coerceBooleanProperty),
@@ -182,7 +182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
182
182
  args: [SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
183
183
  }], searchField: [{
184
184
  type: ContentChild,
185
- args: [SelectSearchFieldDirective]
185
+ args: [SelectInputControlDirective]
186
186
  }], placeholder: [{
187
187
  type: Input
188
188
  }], multiple: [{
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
198
198
  type: HostListener,
199
199
  args: ['keydown', ['$event']]
200
200
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxP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TztzQkFEaEIsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFO2dCQUlyRixXQUFXO3NCQURqQixZQUFZO3VCQUFDLDBCQUEwQjtnQkFRakMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBaUVJLHFCQUFxQjtzQkFGOUIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgSWRlbnRpdHlNYXRjaGVyLCBPRFhfSURFTlRJVFlfTUFUQ0hFUiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb250cm9sLCBPRFhfU0VBUkNIX0ZJTFRFUl9IT1NUIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9hdXRvY29tcGxldGUtY29udHJvbCc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBmcm9tUXVlcnlMaXN0IH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBkZWZlckZuIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTRUxFQ1RfQ09OVFJPTCB9IGZyb20gJy4vc2VsZWN0LnRva2Vucyc7XG5cbkBDU1NDb21wb25lbnQoJ3NlbGVjdCcpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtc2VsZWN0JyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIERyb3Bkb3duRGlyZWN0aXZlLCBJY29uQ29tcG9uZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSwgU2VsZWN0T3B0aW9uQ29tcG9uZW50LCBMb2FkaW5nU3Bpbm5lck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0VMRUNUX0NPTlRST0wsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogT0RYX1NFQVJDSF9GSUxURVJfSE9TVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBTRUxFQ1RfQ09OVFJPTCxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1t0YWJpbmRleF0nOiAnc2VhcmNoRmllbGRFbmFibGVkIHx8IGlzRGlzYWJsZWQgPyAtMSA6IDAnLFxuICAgICdbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV0nOiAnbXVsdGlwbGUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQXV0b2NvbXBsZXRlQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tdWx0aXBsZTogQm9vbGVhbklucHV0O1xuXG4gIHByb3RlY3RlZCBzZWFyY2hGaWVsZEVuYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUsIGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zPzogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj47XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSlcbiAgcHVibGljIHNlYXJjaEZpZWxkPzogU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmU7XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfCBudWxsIH0+IHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uVGVtcGxhdGUgPz8gdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQFRyYW5zZm9ybShjb2VyY2VCb29sZWFuUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZE9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT4gfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBJZGVudGl0eU1hdGNoZXI8VCB8IG51bGw+ID0gaW5qZWN0KE9EWF9JREVOVElUWV9NQVRDSEVSKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSByZXR1cm47XG5cbiAgICB0aGlzLmluaXRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVRdWVyeUxpc3RPcHRpb24odGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgICAgZm4odmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICAgIG9wdGlvbi5zd2l0Y2hDaGVja2JveCgpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm11bHRpcGxlXG4gICAgICAgID8gdGhpcy5vcHRpb25zXG4gICAgICAgICAgICA/LnRvQXJyYXkoKVxuICAgICAgICAgICAgLmZpbHRlcigoeyBpc1NlbGVjdGVkIH0pID0+IGlzU2VsZWN0ZWQpXG4gICAgICAgICAgICAubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKVxuICAgICAgICA6IG9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKHZhbHVlIGFzIFQpID8/IG51bGwpO1xuICAgIH1cblxuICAgICF0aGlzLm11bHRpcGxlICYmIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgcHVibGljIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4pOiBib29sZWFuIHtcbiAgICBpZiAob3B0aW9uICYmICFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlIGFzIFRbXSkuaW5jbHVkZXMob3B0aW9uLnZhbHVlIGFzIFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlNYXRjaGVyKG9wdGlvbi52YWx1ZSBhcyBULCB0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXRLZXlNYW5hZ2VyKG9wdGlvbnM6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKG9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gaXRlbS5kaXNhYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0T3B0aW9uKG9wdGlvbnM6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgZnJvbVF1ZXJ5TGlzdChvcHRpb25zKVxuICAgICAgLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlckNvbnRyb2xsZXJDaGFuZ2UoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8IHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtIGFzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPiB8IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5pc1NlbGVjdGVkICYmICFvcHRpb24uZGlzYWJsZWQpO1xuICAgIGlmICghYWN0aXZlSW5kZXggfHwgYWN0aXZlSW5kZXggPT09IC0xKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSA/PyAtMTtcbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGFjdGl2ZUluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZVNtb290aFNjcm9sbCgpO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmlzU2VsZWN0ZWQpID8/IG51bGw7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID1cbiAgICAgICAgb3B0aW9uc1xuICAgICAgICAgID8uZmlsdGVyKCh7IGlzU2VsZWN0ZWQgfSkgPT4gaXNTZWxlY3RlZClcbiAgICAgICAgICAubWFwKChvcHRpb24pID0+IHRoaXMuc3RyaW5naWZ5Py4ob3B0aW9uLnZhbHVlKSA/PyBvcHRpb24uZ2V0TGFiZWwoKSlcbiAgICAgICAgICAuam9pbignLCAnKSA/PyBudWxsO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5zdHJpbmdpZnk/Lih0aGlzLnNlbGVjdGVkT3B0aW9uPy52YWx1ZSkgPz8gdGhpcy5zZWxlY3RlZE9wdGlvbi5nZXRMYWJlbCgpIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9ICEhdGhpcy5zZWFyY2hGaWVsZDtcbiAgICBkZWZlckZuKCgpID0+IHRoaXMuc2VhcmNoRmllbGQ/LmZvY3VzKCkpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJvZHgtc2VsZWN0X190cmlnZ2VyXCJcbiAgW29keERyb3Bkb3duXT1cImRyb3Bkb3duQ29udGVudFwiXG4gIFtvZHhEcm9wZG93bkRpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiXG4gIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBvZmZzZXQ6IDQsIG91dGVyUGFkZGluZzogMTAsIHBvc2l0aW9uOiAnYm90dG9tLXN0YXJ0JyB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJlbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwiZW5hYmxlU21vb3RoU2Nyb2xsKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50PlxuICA8ZGl2IGNsYXNzPVwib2R4LWRyb3Bkb3duX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhhc09wdGlvbnNcIiBbbmdJZkVsc2VdPVwibm9PcHRpb25zVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9PcHRpb25zVGVtcGxhdGU+XG4gICAgICA8b2R4LXNlbGVjdC1vcHRpb24gZGlzYWJsZWQgbm90Rm91bmRNZXNzYWdlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtc2VsZWN0LW9wdGlvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxP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TztzQkFEaEIsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFO2dCQUlyRixXQUFXO3NCQURqQixZQUFZO3VCQUFDLDJCQUEyQjtnQkFRbEMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBaUVJLHFCQUFxQjtzQkFGOUIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgSWRlbnRpdHlNYXRjaGVyLCBPRFhfSURFTlRJVFlfTUFUQ0hFUiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb250cm9sLCBPRFhfU0VBUkNIX0ZJTFRFUl9IT1NUIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9hdXRvY29tcGxldGUtY29udHJvbCc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBmcm9tUXVlcnlMaXN0IH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBkZWZlckZuIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU0VMRUNUX0NPTlRST0wgfSBmcm9tICcuL3NlbGVjdC50b2tlbnMnO1xuXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIFNlbGVjdE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9TRUFSQ0hfRklMVEVSX0hPU1QsXG4gICAgICB1c2VFeGlzdGluZzogU0VMRUNUX0NPTlRST0wsXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbdGFiaW5kZXhdJzogJ3NlYXJjaEZpZWxkRW5hYmxlZCB8fCBpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VCB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbXVsdGlwbGU6IEJvb2xlYW5JbnB1dDtcblxuICBwcm90ZWN0ZWQgc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbjogU2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvblRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2VsZWN0T3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlLCBlbWl0RGlzdGluY3RDaGFuZ2VzT25seTogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgb3B0aW9ucz86IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+O1xuXG4gIEBDb250ZW50Q2hpbGQoU2VsZWN0SW5wdXRDb250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgc2VhcmNoRmllbGQ/OiBTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmU7XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfCBudWxsIH0+IHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uVGVtcGxhdGUgPz8gdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQFRyYW5zZm9ybShjb2VyY2VCb29sZWFuUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZE9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT4gfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBJZGVudGl0eU1hdGNoZXI8VCB8IG51bGw+ID0gaW5qZWN0KE9EWF9JREVOVElUWV9NQVRDSEVSKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSByZXR1cm47XG5cbiAgICB0aGlzLmluaXRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVRdWVyeUxpc3RPcHRpb24odGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgICAgZm4odmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICAgIG9wdGlvbi5zd2l0Y2hDaGVja2JveCgpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm11bHRpcGxlXG4gICAgICAgID8gdGhpcy5vcHRpb25zXG4gICAgICAgICAgICA/LnRvQXJyYXkoKVxuICAgICAgICAgICAgLmZpbHRlcigoeyBpc1NlbGVjdGVkIH0pID0+IGlzU2VsZWN0ZWQpXG4gICAgICAgICAgICAubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKVxuICAgICAgICA6IG9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKHZhbHVlIGFzIFQpID8/IG51bGwpO1xuICAgIH1cblxuICAgICF0aGlzLm11bHRpcGxlICYmIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgcHVibGljIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4pOiBib29sZWFuIHtcbiAgICBpZiAob3B0aW9uICYmICFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlIGFzIFRbXSkuaW5jbHVkZXMob3B0aW9uLnZhbHVlIGFzIFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlNYXRjaGVyKG9wdGlvbi52YWx1ZSBhcyBULCB0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXRLZXlNYW5hZ2VyKG9wdGlvbnM6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKG9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gaXRlbS5kaXNhYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0T3B0aW9uKG9wdGlvbnM6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgZnJvbVF1ZXJ5TGlzdChvcHRpb25zKVxuICAgICAgLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlckNvbnRyb2xsZXJDaGFuZ2UoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8IHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtIGFzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPiB8IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5pc1NlbGVjdGVkICYmICFvcHRpb24uZGlzYWJsZWQpO1xuICAgIGlmICghYWN0aXZlSW5kZXggfHwgYWN0aXZlSW5kZXggPT09IC0xKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSA/PyAtMTtcbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGFjdGl2ZUluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZVNtb290aFNjcm9sbCgpO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmlzU2VsZWN0ZWQpID8/IG51bGw7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID1cbiAgICAgICAgb3B0aW9uc1xuICAgICAgICAgID8uZmlsdGVyKCh7IGlzU2VsZWN0ZWQgfSkgPT4gaXNTZWxlY3RlZClcbiAgICAgICAgICAubWFwKChvcHRpb24pID0+IHRoaXMuc3RyaW5naWZ5Py4ob3B0aW9uLnZhbHVlKSA/PyBvcHRpb24uZ2V0TGFiZWwoKSlcbiAgICAgICAgICAuam9pbignLCAnKSA/PyBudWxsO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5zdHJpbmdpZnk/Lih0aGlzLnNlbGVjdGVkT3B0aW9uPy52YWx1ZSkgPz8gdGhpcy5zZWxlY3RlZE9wdGlvbi5nZXRMYWJlbCgpIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9ICEhdGhpcy5zZWFyY2hGaWVsZDtcbiAgICBkZWZlckZuKCgpID0+IHRoaXMuc2VhcmNoRmllbGQ/LmZvY3VzKCkpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJvZHgtc2VsZWN0X190cmlnZ2VyXCJcbiAgW29keERyb3Bkb3duXT1cImRyb3Bkb3duQ29udGVudFwiXG4gIFtvZHhEcm9wZG93bkRpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiXG4gIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBvZmZzZXQ6IDQsIG91dGVyUGFkZGluZzogMTAsIHBvc2l0aW9uOiAnYm90dG9tLXN0YXJ0JyB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJlbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwiZW5hYmxlU21vb3RoU2Nyb2xsKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50PlxuICA8ZGl2IGNsYXNzPVwib2R4LWRyb3Bkb3duX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhhc09wdGlvbnNcIiBbbmdJZkVsc2VdPVwibm9PcHRpb25zVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9PcHRpb25zVGVtcGxhdGU+XG4gICAgICA8b2R4LXNlbGVjdC1vcHRpb24gZGlzYWJsZWQgbm90Rm91bmRNZXNzYWdlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtc2VsZWN0LW9wdGlvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,15 +1,15 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CoreModule } from '@odx/angular';
3
3
  import { SelectOptionComponent } from './components';
4
- import { SelectSearchFieldDirective } from './directives';
4
+ import { SelectInputControlDirective } from './directives';
5
5
  import { SelectSearchFilterPipe } from './pipes';
6
6
  import { SelectComponent } from './select.component';
7
7
  import * as i0 from "@angular/core";
8
- const modules = [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, SelectOptionComponent];
8
+ const modules = [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent];
9
9
  export class SelectModule {
10
10
  }
11
11
  SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, SelectOptionComponent], exports: [CoreModule, SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, SelectOptionComponent] });
12
+ SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent], exports: [CoreModule, SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent] });
13
13
  SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectOptionComponent, CoreModule] });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectModule, decorators: [{
15
15
  type: NgModule,
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
18
18
  exports: [CoreModule, ...modules],
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFckQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQU03RyxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLFlBTlIsZUFBZSxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixhQUkvRixVQUFVLEVBSkwsZUFBZSxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQjswR0FNOUYsWUFBWSxZQU5SLGVBQWUsRUFBc0QscUJBQXFCLEVBSS9GLFVBQVU7MkZBRVQsWUFBWTtrQkFKeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hGaWx0ZXJQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC5jb21wb25lbnQnO1xuXG5jb25zdCBtb2R1bGVzID0gW1NlbGVjdENvbXBvbmVudCwgU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmUsIFNlbGVjdFNlYXJjaEZpbHRlclBpcGUsIFNlbGVjdE9wdGlvbkNvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IG1vZHVsZXMsXG4gIGV4cG9ydHM6IFtDb3JlTW9kdWxlLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0TW9kdWxlIHt9XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFckQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQU05RyxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLFlBTlIsZUFBZSxFQUFFLDJCQUEyQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixhQUloRyxVQUFVLEVBSkwsZUFBZSxFQUFFLDJCQUEyQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQjswR0FNL0YsWUFBWSxZQU5SLGVBQWUsRUFBdUQscUJBQXFCLEVBSWhHLFVBQVU7MkZBRVQsWUFBWTtrQkFKeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoRmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcblxuY29uc3QgbW9kdWxlcyA9IFtTZWxlY3RDb21wb25lbnQsIFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZSwgU2VsZWN0U2VhcmNoRmlsdGVyUGlwZSwgU2VsZWN0T3B0aW9uQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogbW9kdWxlcyxcbiAgZXhwb3J0czogW0NvcmVNb2R1bGUsIC4uLm1vZHVsZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNb2R1bGUge31cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  export * from './angular';
2
2
  export * from './array';
3
3
  export * from './build-url';
4
+ export * from './debounce';
4
5
  export * from './defer-fn';
5
6
  export * from './dom';
6
7
  export * from './event-manager';
@@ -13,5 +14,4 @@ export * from './provide-config';
13
14
  export * from './queue';
14
15
  export * from './type-guards';
15
16
  export * from './until-destroyed';
16
- export * from './debounce';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5ndWxhcic7XG5leHBvcnQgKiBmcm9tICcuL2FycmF5JztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQtdXJsJztcbmV4cG9ydCAqIGZyb20gJy4vZGVmZXItZm4nO1xuZXhwb3J0ICogZnJvbSAnLi9kb20nO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWF4aXMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtb3Bwb3NpdGUtc2lkZSc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1zaWRlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXVuaXF1ZS1pZCc7XG5leHBvcnQgKiBmcm9tICcuL25nLWNoYW5nZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXVlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi91bnRpbC1kZXN0cm95ZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJvdW5jZSc7XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5ndWxhcic7XG5leHBvcnQgKiBmcm9tICcuL2FycmF5JztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQtdXJsJztcbmV4cG9ydCAqIGZyb20gJy4vZGVib3VuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZlci1mbic7XG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtYXhpcyc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1vcHBvc2l0ZS1zaWRlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXNpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtdW5pcXVlLWlkJztcbmV4cG9ydCAqIGZyb20gJy4vbmctY2hhbmdlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGUtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlLWd1YXJkcyc7XG5leHBvcnQgKiBmcm9tICcuL3VudGlsLWRlc3Ryb3llZCc7XG4iXX0=
@@ -1,47 +1,12 @@
1
- import * as i0 from '@angular/core';
2
- import { Directive, inject, ChangeDetectorRef, EventEmitter, ViewChild, Input, Output, HostListener, InjectionToken } from '@angular/core';
3
- import { untilDestroyed, injectElement, isFunction, Transform, Pure } from '@odx/angular/utils';
4
- import { fromEvent, distinctUntilChanged, map } from 'rxjs';
5
1
  import { __decorate, __metadata } from 'tslib';
6
2
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
7
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import * as i0 from '@angular/core';
5
+ import { inject, ChangeDetectorRef, EventEmitter, Directive, ViewChild, Input, Output, HostListener, InjectionToken } from '@angular/core';
8
6
  import { detectControllerChanges, ODX_STRING_SEARCH_HANDLER, ODX_STRINGIFY } from '@odx/angular';
9
7
  import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
10
8
  import { DropdownDirective } from '@odx/angular/components/dropdown';
11
-
12
- class BaseSearchFieldDirective {
13
- constructor() {
14
- this.takeUntilDestroyed = untilDestroyed();
15
- this.element = injectElement();
16
- this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), map(() => this.nativeElementValue), this.takeUntilDestroyed());
17
- }
18
- get nativeElementValue() {
19
- return this.element.nativeElement.value;
20
- }
21
- set nativeElementValue(value) {
22
- this.element.nativeElement.value = value;
23
- }
24
- focus() {
25
- this.element.nativeElement.focus();
26
- }
27
- blur() {
28
- this.element.nativeElement.blur();
29
- }
30
- reset() {
31
- this.element.nativeElement.value = '';
32
- }
33
- }
34
- BaseSearchFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseSearchFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
35
- BaseSearchFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseSearchFieldDirective, isStandalone: true, host: { properties: { "class.odx-form-field-control": "true" } }, ngImport: i0 });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseSearchFieldDirective, decorators: [{
37
- type: Directive,
38
- args: [{
39
- standalone: true,
40
- host: {
41
- '[class.odx-form-field-control]': 'true',
42
- },
43
- }]
44
- }] });
9
+ import { untilDestroyed, injectElement, isFunction, Transform, Pure } from '@odx/angular/utils';
45
10
 
46
11
  class AutocompleteControl extends CustomFormControl {
47
12
  get hasOptions() {
@@ -173,5 +138,5 @@ __decorate([
173
138
  * Generated bundle index. Do not edit.
174
139
  */
175
140
 
176
- export { AutocompleteControl, BaseSearchFieldDirective, BaseSearchFilterPipe, ODX_SEARCH_FILTER_HOST };
141
+ export { AutocompleteControl, BaseSearchFilterPipe, ODX_SEARCH_FILTER_HOST };
177
142
  //# sourceMappingURL=odx-angular-cdk-autocomplete-control.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/abstract/base-search-field.directive.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@Directive({\n standalone: true,\n host: {\n '[class.odx-form-field-control]': 'true',\n },\n})\nexport abstract class BaseSearchFieldDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map(() => this.nativeElementValue),\n this.takeUntilDestroyed()\n );\n\n public get nativeElementValue(): string {\n return this.element.nativeElement.value;\n }\n\n public set nativeElementValue(value: string) {\n this.element.nativeElement.value = value;\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public blur(): void {\n this.element.nativeElement.blur();\n }\n\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild } from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { injectElement, isFunction, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { BaseSearchFieldDirective } from './abstract';\n\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n public static ngAcceptInputType_isLoading: BooleanInput;\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n\n public abstract searchField?: BaseSearchFieldDirective;\n\n public readonly element = injectElement();\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Transform(coerceBooleanProperty)\n @Input()\n public isLoading = false;\n\n @Input()\n public stringify?: StringifyFn<T>;\n\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { Pure } from '@odx/angular/utils';\nimport { BaseSearchFieldDirective } from '../abstract';\n\ninterface HostController {\n searchField?: BaseSearchFieldDirective;\n stringify?: StringifyFn<unknown>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): BaseSearchFieldDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, searchHandler?: StringSearchHandler): T[] | null {\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, searchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, searchHandler?: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n const search = searchHandler ?? this.stringSearchHandler;\n\n return items.filter((item) => search(this.stringify(item), query));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild } from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { injectElement, isFunction, Transform, untilDestroyed } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n public static ngAcceptInputType_isLoading: BooleanInput;\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Transform(coerceBooleanProperty)\n @Input()\n public isLoading = false;\n\n @Input()\n public stringify?: StringifyFn<T>;\n\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, searchHandler?: StringSearchHandler): T[] | null {\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, searchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, searchHandler?: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n const search = searchHandler ?? this.stringSearchHandler;\n\n return items.filter((item) => search(this.stringify(item), query));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, inject, Input, ViewChild } from '@angular/core';
3
- import { injectElement, Transform, Pure } from '@odx/angular/utils';
3
+ import { injectElement, Transform, Pure, untilDestroyed } from '@odx/angular/utils';
4
4
  import { __decorate, __metadata } from 'tslib';
5
5
  import { coerceArray } from '@angular/cdk/coercion';
6
6
  import { Validators, RequiredValidator, NgControl } from '@angular/forms';
7
7
  import { Controller, DisabledController, ReadonlyController } from '@odx/angular';
8
+ import { fromEvent, distinctUntilChanged, map } from 'rxjs';
8
9
 
9
10
  class ControlDirective {
10
11
  constructor() {
@@ -138,9 +139,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
138
139
  args: [ControlDirective]
139
140
  }], hasNonIgnoredError: [] } });
140
141
 
142
+ class InputControlDirective {
143
+ constructor() {
144
+ this.takeUntilDestroyed = untilDestroyed();
145
+ this.element = injectElement();
146
+ this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), map(() => this.nativeElementValue));
147
+ }
148
+ get nativeElementValue() {
149
+ return this.element.nativeElement.value;
150
+ }
151
+ set nativeElementValue(value) {
152
+ this.element.nativeElement.value = value;
153
+ }
154
+ focus() {
155
+ this.element.nativeElement.focus();
156
+ }
157
+ blur() {
158
+ this.element.nativeElement.blur();
159
+ }
160
+ reset() {
161
+ this.element.nativeElement.value = '';
162
+ }
163
+ }
164
+ InputControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: InputControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
165
+ InputControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: InputControlDirective, isStandalone: true, ngImport: i0 });
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: InputControlDirective, decorators: [{
167
+ type: Directive,
168
+ args: [{
169
+ standalone: true,
170
+ }]
171
+ }] });
172
+
141
173
  /**
142
174
  * Generated bundle index. Do not edit.
143
175
  */
144
176
 
145
- export { ControlDirective, CustomFormControl };
177
+ export { ControlDirective, CustomFormControl, InputControlDirective };
146
178
  //# sourceMappingURL=odx-angular-cdk-custom-form-control.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-custom-form-control.mjs","sources":["../../../../libs/angular/cdk/custom-form-control/src/lib/control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/custom-form-control.ts","../../../../libs/angular/cdk/custom-form-control/src/odx-angular-cdk-custom-form-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxControl]',\n exportAs: 'odxControl',\n})\nexport class ControlDirective {\n public readonly element = injectElement();\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl, RequiredValidator, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { Pure, Transform } from '@odx/angular/utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n host: {\n '[class.has-error]': 'hasError',\n '[class.is-disabled]': 'isDisabled',\n '[class.is-readonly]': 'isReadonly',\n '[class.is-required]': 'required',\n },\n})\nexport abstract class CustomFormControl<T> extends Controller implements ControlValueAccessor {\n private static CURRENT_INDEX = 0;\n public static ngAcceptInputType_ignoreErrors: string | string[];\n\n private readonly requiredValidator = inject(RequiredValidator, { optional: true, self: true });\n private internalValue: T;\n protected readonly disabledController = DisabledController.inject();\n protected readonly readonlyController = ReadonlyController.inject();\n protected readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;\n\n @Input()\n public tabindex: string | null = null;\n\n @Transform(coerceArray)\n @Input()\n public ignoreErrors: string[] = [];\n\n public set value(value: T) {\n if (this.internalValue !== value) {\n this.internalValue = value;\n this.triggerControllerChange();\n }\n }\n public get value(): T {\n return this.internalValue;\n }\n\n public get hasError(): boolean {\n return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);\n }\n\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public get isReadonly(): boolean {\n return !!this.readonlyController?.readonly;\n }\n\n public get isRequired(): boolean {\n return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);\n }\n\n @ViewChild(ControlDirective)\n public readonly control: ControlDirective | null = null;\n\n constructor(initialValue: T) {\n super();\n this.internalValue = initialValue;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public onTouched() {\n // implemented by control value accessor\n }\n\n public onChange(_value: T) {\n // implemented by control value accessor\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabledController?.setDisabledState(isDisabled);\n }\n\n public writeValue(value: T): void {\n if (this.isDisabled) return;\n this.value = value;\n this.onChange(value);\n }\n\n public updateValue(value: T): void {\n if (this.isDisabled) return;\n this.writeValue(value);\n this.onTouched();\n }\n\n protected hasValidator(validator: ValidatorFn): boolean {\n return !!this.ngControl?.control?.hasValidator(validator);\n }\n\n @Pure\n private hasNonIgnoredError(errors: ValidationErrors | null): boolean {\n if (!errors) return false;\n\n return Object.keys(errors).some((error) => !this.ignoreErrors.includes(error));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-custom-form-control.mjs","sources":["../../../../libs/angular/cdk/custom-form-control/src/lib/control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/custom-form-control.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/input-control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/odx-angular-cdk-custom-form-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxControl]',\n exportAs: 'odxControl',\n})\nexport class ControlDirective {\n public readonly element = injectElement();\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl, RequiredValidator, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { Pure, Transform } from '@odx/angular/utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n host: {\n '[class.has-error]': 'hasError',\n '[class.is-disabled]': 'isDisabled',\n '[class.is-readonly]': 'isReadonly',\n '[class.is-required]': 'required',\n },\n})\nexport abstract class CustomFormControl<T> extends Controller implements ControlValueAccessor {\n private static CURRENT_INDEX = 0;\n public static ngAcceptInputType_ignoreErrors: string | string[];\n\n private readonly requiredValidator = inject(RequiredValidator, { optional: true, self: true });\n private internalValue: T;\n protected readonly disabledController = DisabledController.inject();\n protected readonly readonlyController = ReadonlyController.inject();\n protected readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;\n\n @Input()\n public tabindex: string | null = null;\n\n @Transform(coerceArray)\n @Input()\n public ignoreErrors: string[] = [];\n\n public set value(value: T) {\n if (this.internalValue !== value) {\n this.internalValue = value;\n this.triggerControllerChange();\n }\n }\n public get value(): T {\n return this.internalValue;\n }\n\n public get hasError(): boolean {\n return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);\n }\n\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public get isReadonly(): boolean {\n return !!this.readonlyController?.readonly;\n }\n\n public get isRequired(): boolean {\n return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);\n }\n\n @ViewChild(ControlDirective)\n public readonly control: ControlDirective | null = null;\n\n constructor(initialValue: T) {\n super();\n this.internalValue = initialValue;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public onTouched() {\n // implemented by control value accessor\n }\n\n public onChange(_value: T) {\n // implemented by control value accessor\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabledController?.setDisabledState(isDisabled);\n }\n\n public writeValue(value: T): void {\n if (this.isDisabled) return;\n this.value = value;\n this.onChange(value);\n }\n\n public updateValue(value: T): void {\n if (this.isDisabled) return;\n this.writeValue(value);\n this.onTouched();\n }\n\n protected hasValidator(validator: ValidatorFn): boolean {\n return !!this.ngControl?.control?.hasValidator(validator);\n }\n\n @Pure\n private hasNonIgnoredError(errors: ValidationErrors | null): boolean {\n if (!errors) return false;\n\n return Object.keys(errors).some((error) => !this.ignoreErrors.includes(error));\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@Directive({\n standalone: true,\n})\nexport abstract class InputControlDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map(() => this.nativeElementValue),\n );\n\n public get nativeElementValue(): string {\n return this.element.nativeElement.value;\n }\n\n public set nativeElementValue(value: string) {\n this.element.nativeElement.value = value;\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public blur(): void {\n this.element.nativeElement.blur();\n }\n\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { ThemingService } from '@odx/angular/theming';
9
9
  import { distinctUntilChanged, Observable } from 'rxjs';
10
10
 
11
11
  /* eslint-disable @typescript-eslint/no-explicit-any */
12
- class ChartsThemeServise {
12
+ class ChartsThemeService {
13
13
  constructor() {
14
14
  this.coreChartThemeService = inject(ThemeService);
15
15
  this.document = inject(DOCUMENT);
@@ -107,9 +107,9 @@ class ChartsThemeServise {
107
107
  });
108
108
  }
109
109
  }
110
- ChartsThemeServise.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
111
- ChartsThemeServise.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, providedIn: 'root' });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeServise, decorators: [{
110
+ ChartsThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
111
+ ChartsThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeService, providedIn: 'root' });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeService, decorators: [{
113
113
  type: Injectable,
114
114
  args: [{ providedIn: 'root' }]
115
115
  }] });
@@ -117,12 +117,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
117
117
  class ChartThemeDirective extends BaseChartDirective {
118
118
  constructor(element, ngzone, parentThemeService) {
119
119
  super(element, ngzone, parentThemeService);
120
- this.chartsThemeServise = inject(ChartsThemeServise);
120
+ this.chartsThemeService = inject(ChartsThemeService);
121
121
  this.takeUntilDestroyed = untilDestroyed();
122
- this.chartsThemeServise.observeThemeChanging$
122
+ this.chartsThemeService.observeThemeChanging$
123
123
  .pipe(this.takeUntilDestroyed())
124
124
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
- .subscribe(() => { var _a; return this.chartsThemeServise.setTheme((_a = this.chart) === null || _a === void 0 ? void 0 : _a.config); });
125
+ .subscribe(() => { var _a; return this.chartsThemeService.setTheme((_a = this.chart) === null || _a === void 0 ? void 0 : _a.config); });
126
126
  }
127
127
  }
128
128
  ChartThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
@@ -143,7 +143,7 @@ ChartThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
143
143
  {
144
144
  provide: NgChartsConfiguration,
145
145
  useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
146
- deps: [ChartsThemeServise],
146
+ deps: [ChartsThemeService],
147
147
  },
148
148
  BaseChartDirective,
149
149
  ], imports: [NgChartsModule, NgChartsModule] });
@@ -155,7 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
155
155
  {
156
156
  provide: NgChartsConfiguration,
157
157
  useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
158
- deps: [ChartsThemeServise],
158
+ deps: [ChartsThemeService],
159
159
  },
160
160
  BaseChartDirective,
161
161
  ],
@@ -167,5 +167,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
167
167
  * Generated bundle index. Do not edit.
168
168
  */
169
169
 
170
- export { ChartThemeDirective, ChartThemeModule, ChartsThemeServise };
170
+ export { ChartThemeDirective, ChartThemeModule, ChartsThemeService };
171
171
  //# sourceMappingURL=odx-angular-charts-config.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-charts-config.mjs","sources":["../../../../libs/angular/charts-config/src/lib/charts-theme.service.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.directive.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.module.ts","../../../../libs/angular/charts-config/src/odx-angular-charts-config.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { Theme, ThemingService } from '@odx/angular/theming';\nimport { createMutationObserver } from '@odx/angular/utils';\nimport { ChartConfiguration, ChartType, Color } from 'chart.js';\nimport { ThemeService } from 'ng2-charts';\nimport { distinctUntilChanged, Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ChartsThemeServise {\n private readonly coreChartThemeService = inject(ThemeService);\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly themingService = inject(ThemingService);\n\n public getOverrides = {\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n backgroundColor: 'rgba(0,0,0,0)',\n color: this.windowRef.getCSSVariable('blue-700'),\n font: {\n family: 'Pangea',\n size: 13.333,\n },\n plugins: {\n colors: { enabled: false },\n tooltip: {\n backgroundColor: this.windowRef.getCSSVariable('blue-800'),\n cornerRadius: 3,\n },\n },\n datasets: {\n line: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}66`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBackgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBorderColor: '#fff',\n },\n bar: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n },\n doughnut: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n },\n polarArea: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n },\n get pie(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get bubble(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get scatter(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get area(): Record<string, ((context: any) => Color) | Color> {\n return this.polarArea;\n },\n get radar(): Record<string, ((context: any) => Color) | Color> {\n return this.line;\n },\n },\n };\n\n public seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));\n public observeThemeChanging$: Observable<MutationRecord | Theme> = this.document.body.className.includes('sb-')\n ? this.buildBodyObserver().pipe(distinctUntilChanged())\n : this.themingService.theme$;\n\n public setTheme(chartConf: ChartConfiguration) {\n const type: ChartType = (chartConf && chartConf['type']) || 'bar';\n this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));\n }\n\n private themeColorsOverrides(type?: ChartType): ChartConfiguration['options'] {\n const scales =\n type === 'pie' || type === 'doughnut'\n ? undefined\n : {\n x: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n y: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n };\n return {\n color: this.windowRef.getCSSVariable('blue-700'),\n scales,\n plugins: {\n colors: {\n forceOverride: true,\n },\n legend: {},\n },\n };\n }\n\n private buildBodyObserver(): Observable<MutationRecord> {\n return new Observable((observer) => {\n const mutation: MutationObserver = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));\n mutation.observe(this.document.body, { attributes: true });\n return () => mutation.disconnect();\n });\n }\n}\n","import { Directive, ElementRef, inject, NgZone } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BaseChartDirective, ThemeService } from 'ng2-charts';\nimport { ChartsThemeServise } from './charts-theme.service';\n\n@Directive({\n selector: 'canvas[odxChart]',\n standalone: true,\n})\nexport class ChartThemeDirective extends BaseChartDirective {\n private readonly chartsThemeServise = inject(ChartsThemeServise);\n private readonly takeUntilDestroyed = untilDestroyed();\n\n constructor(element: ElementRef, ngzone: NgZone, parentThemeService: ThemeService) {\n super(element, ngzone, parentThemeService);\n this.chartsThemeServise.observeThemeChanging$\n .pipe(this.takeUntilDestroyed())\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe(() => this.chartsThemeServise.setTheme(this.chart?.config as any));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BaseChartDirective, NgChartsConfiguration, NgChartsModule } from 'ng2-charts';\nimport { ChartThemeDirective } from './charts-theme.directive';\nimport { ChartsThemeServise } from './charts-theme.service';\n\n@NgModule({\n imports: [NgChartsModule, ChartThemeDirective],\n providers: [\n {\n provide: NgChartsConfiguration,\n useFactory: (service: ChartsThemeServise) => ({ defaults: service.getOverrides, generateColors: false }),\n deps: [ChartsThemeServise],\n },\n BaseChartDirective,\n ],\n exports: [NgChartsModule, ChartThemeDirective],\n})\nexport class ChartThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-charts-config.mjs","sources":["../../../../libs/angular/charts-config/src/lib/charts-theme.service.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.directive.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.module.ts","../../../../libs/angular/charts-config/src/odx-angular-charts-config.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { Theme, ThemingService } from '@odx/angular/theming';\nimport { createMutationObserver } from '@odx/angular/utils';\nimport { ChartConfiguration, ChartType, Color } from 'chart.js';\nimport { ThemeService } from 'ng2-charts';\nimport { distinctUntilChanged, Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ChartsThemeService {\n private readonly coreChartThemeService = inject(ThemeService);\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly themingService = inject(ThemingService);\n\n public getOverrides = {\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n backgroundColor: 'rgba(0,0,0,0)',\n color: this.windowRef.getCSSVariable('blue-700'),\n font: {\n family: 'Pangea',\n size: 13.333,\n },\n plugins: {\n colors: { enabled: false },\n tooltip: {\n backgroundColor: this.windowRef.getCSSVariable('blue-800'),\n cornerRadius: 3,\n },\n },\n datasets: {\n line: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}66`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBackgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBorderColor: '#fff',\n },\n bar: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n },\n doughnut: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n },\n polarArea: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n },\n get pie(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get bubble(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get scatter(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get area(): Record<string, ((context: any) => Color) | Color> {\n return this.polarArea;\n },\n get radar(): Record<string, ((context: any) => Color) | Color> {\n return this.line;\n },\n },\n };\n\n public seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));\n public observeThemeChanging$: Observable<MutationRecord | Theme> = this.document.body.className.includes('sb-')\n ? this.buildBodyObserver().pipe(distinctUntilChanged())\n : this.themingService.theme$;\n\n public setTheme(chartConf: ChartConfiguration) {\n const type: ChartType = (chartConf && chartConf['type']) || 'bar';\n this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));\n }\n\n private themeColorsOverrides(type?: ChartType): ChartConfiguration['options'] {\n const scales =\n type === 'pie' || type === 'doughnut'\n ? undefined\n : {\n x: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n y: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n };\n return {\n color: this.windowRef.getCSSVariable('blue-700'),\n scales,\n plugins: {\n colors: {\n forceOverride: true,\n },\n legend: {},\n },\n };\n }\n\n private buildBodyObserver(): Observable<MutationRecord> {\n return new Observable((observer) => {\n const mutation: MutationObserver = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));\n mutation.observe(this.document.body, { attributes: true });\n return () => mutation.disconnect();\n });\n }\n}\n","import { Directive, ElementRef, inject, NgZone } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BaseChartDirective, ThemeService } from 'ng2-charts';\nimport { ChartsThemeService } from './charts-theme.service';\n\n@Directive({\n selector: 'canvas[odxChart]',\n standalone: true,\n})\nexport class ChartThemeDirective extends BaseChartDirective {\n private readonly chartsThemeService = inject(ChartsThemeService);\n private readonly takeUntilDestroyed = untilDestroyed();\n\n constructor(element: ElementRef, ngzone: NgZone, parentThemeService: ThemeService) {\n super(element, ngzone, parentThemeService);\n this.chartsThemeService.observeThemeChanging$\n .pipe(this.takeUntilDestroyed())\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe(() => this.chartsThemeService.setTheme(this.chart?.config as any));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BaseChartDirective, NgChartsConfiguration, NgChartsModule } from 'ng2-charts';\nimport { ChartThemeDirective } from './charts-theme.directive';\nimport { ChartsThemeService } from './charts-theme.service';\n\n@NgModule({\n imports: [NgChartsModule, ChartThemeDirective],\n providers: [\n {\n provide: NgChartsConfiguration,\n useFactory: (service: ChartsThemeService) => ({ defaults: service.getOverrides, generateColors: false }),\n deps: [ChartsThemeService],\n },\n BaseChartDirective,\n ],\n exports: [NgChartsModule, ChartThemeDirective],\n})\nexport class ChartThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}