@odx/angular 10.2.1 → 11.0.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 (205) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/animations/lib/fade.d.ts +6 -2
  3. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +3 -1
  4. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +3 -1
  5. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +3 -1
  6. package/components/calendar/lib/calendar.component.d.ts +7 -0
  7. package/components/calendar/lib/directives/calendar-view.directive.d.ts +0 -2
  8. package/components/card/lib/card.component.d.ts +1 -1
  9. package/components/checkbox/lib/checkbox.validator.d.ts +2 -2
  10. package/components/footer/lib/footer.component.d.ts +0 -2
  11. package/components/main-menu/lib/main-menu.component.d.ts +0 -2
  12. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +0 -2
  13. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +4 -3
  14. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  15. package/components/timepicker/lib/timepicker.component.d.ts +0 -2
  16. package/components/toast/lib/components/toast-container/toast-container.component.d.ts +0 -2
  17. package/esm2022/animations/lib/fade.mjs +7 -3
  18. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +4 -2
  19. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +4 -2
  20. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +4 -2
  21. package/esm2022/cdk/connected-overlay/lib/connected-overlay.component.mjs +3 -3
  22. package/esm2022/components/accordion/lib/accordion.component.mjs +3 -3
  23. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +4 -5
  24. package/esm2022/components/action-group/action-group.component.mjs +3 -3
  25. package/esm2022/components/area-header/area-header.component.mjs +3 -3
  26. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +4 -5
  27. package/esm2022/components/autocomplete/lib/components/option/autocomplete-option.component.mjs +3 -3
  28. package/esm2022/components/avatar/lib/avatar.component.mjs +3 -3
  29. package/esm2022/components/badge/lib/badge.component.mjs +3 -3
  30. package/esm2022/components/bar/lib/bar.component.mjs +3 -3
  31. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  32. package/esm2022/components/button/lib/button.component.mjs +3 -3
  33. package/esm2022/components/button-group/lib/button-group.component.mjs +3 -3
  34. package/esm2022/components/calendar/lib/calendar.component.mjs +11 -4
  35. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +3 -3
  36. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +3 -3
  37. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +3 -3
  38. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +4 -5
  39. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +2 -3
  40. package/esm2022/components/card/lib/card.component.mjs +3 -3
  41. package/esm2022/components/card/lib/components/card-footer/card-footer.component.mjs +3 -3
  42. package/esm2022/components/card/lib/components/card-image/card-image.component.mjs +3 -3
  43. package/esm2022/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +3 -3
  44. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +3 -3
  45. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +3 -3
  46. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +3 -3
  47. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +3 -3
  48. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +3 -3
  49. package/esm2022/components/content-box/lib/content-box.component.mjs +3 -3
  50. package/esm2022/components/datepicker/lib/datepicker.component.mjs +3 -3
  51. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +3 -3
  52. package/esm2022/components/dropdown/lib/dropdown.component.mjs +3 -3
  53. package/esm2022/components/error-page/lib/error-page.component.mjs +3 -4
  54. package/esm2022/components/footer/lib/footer.component.mjs +4 -5
  55. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +3 -3
  56. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  57. package/esm2022/components/form-field/lib/form-field.component.mjs +3 -3
  58. package/esm2022/components/inline-message/lib/inline-message.component.mjs +3 -3
  59. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +3 -4
  60. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +3 -3
  61. package/esm2022/components/main-menu/lib/main-menu.component.mjs +4 -5
  62. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +3 -3
  63. package/esm2022/components/menu/lib/menu.component.mjs +3 -4
  64. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +3 -6
  65. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +3 -3
  66. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +3 -4
  67. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +7 -8
  68. package/esm2022/components/modal/lib/modal.component.mjs +3 -3
  69. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +3 -3
  70. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +4 -7
  71. package/esm2022/components/notification/lib/components/notification-item/notification-item.component.mjs +3 -3
  72. package/esm2022/components/paginator/lib/paginator.component.mjs +4 -5
  73. package/esm2022/components/radio-group/lib/components/radio-button/radio-button.component.mjs +3 -3
  74. package/esm2022/components/radio-group/lib/radio-group.component.mjs +3 -3
  75. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +3 -3
  76. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +3 -3
  77. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +3 -3
  78. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +3 -4
  79. package/esm2022/components/rich-list/lib/components/rich-list-item-header/rich-list-item-header.component.mjs +3 -3
  80. package/esm2022/components/rich-list/lib/rich-list.component.mjs +3 -3
  81. package/esm2022/components/search-bar/lib/search-bar.component.mjs +3 -3
  82. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +3 -3
  83. package/esm2022/components/select/lib/select.component.mjs +3 -3
  84. package/esm2022/components/switch/lib/switch.component.mjs +3 -3
  85. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +3 -4
  86. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +3 -3
  87. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +3 -3
  88. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +4 -5
  89. package/esm2022/components/table/lib/table.component.mjs +5 -6
  90. package/esm2022/components/timepicker/lib/components/timepicker-option.component.mjs +3 -3
  91. package/esm2022/components/timepicker/lib/timepicker.component.mjs +7 -9
  92. package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +4 -5
  93. package/esm2022/components/toast/lib/components/toast-item/toast-item.component.mjs +3 -4
  94. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +3 -3
  95. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +3 -3
  96. package/esm2022/components/tooltip/lib/tooltip.component.mjs +3 -3
  97. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +3 -3
  98. package/esm2022/components/wizard/lib/wizard.component.mjs +3 -3
  99. package/esm2022/lib/core.module.mjs +4 -6
  100. package/esm2022/utils/lib/helpers/angular.mjs +3 -1
  101. package/fesm2022/odx-angular-animations.mjs +6 -2
  102. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  103. package/fesm2022/odx-angular-cdk-a11y.mjs +6 -2
  104. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  105. package/fesm2022/odx-angular-cdk-active-indicator.mjs +3 -1
  106. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  107. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +2 -2
  108. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  109. package/fesm2022/odx-angular-components-accordion.mjs +5 -6
  110. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  111. package/fesm2022/odx-angular-components-action-group.mjs +2 -2
  112. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  113. package/fesm2022/odx-angular-components-area-header.mjs +2 -2
  114. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  115. package/fesm2022/odx-angular-components-autocomplete.mjs +5 -6
  116. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  117. package/fesm2022/odx-angular-components-avatar.mjs +2 -2
  118. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  119. package/fesm2022/odx-angular-components-badge.mjs +2 -2
  120. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  121. package/fesm2022/odx-angular-components-bar.mjs +2 -2
  122. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  123. package/fesm2022/odx-angular-components-breadcrumbs.mjs +2 -2
  124. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  125. package/fesm2022/odx-angular-components-button-group.mjs +2 -2
  126. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  127. package/fesm2022/odx-angular-components-button.mjs +2 -2
  128. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  129. package/fesm2022/odx-angular-components-calendar.mjs +19 -14
  130. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  131. package/fesm2022/odx-angular-components-card.mjs +8 -8
  132. package/fesm2022/odx-angular-components-card.mjs.map +1 -1
  133. package/fesm2022/odx-angular-components-checkbox.mjs +2 -2
  134. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  135. package/fesm2022/odx-angular-components-chip.mjs +6 -6
  136. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  137. package/fesm2022/odx-angular-components-circular-progress.mjs +2 -2
  138. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  139. package/fesm2022/odx-angular-components-content-box.mjs +2 -2
  140. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  141. package/fesm2022/odx-angular-components-datepicker.mjs +2 -2
  142. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  143. package/fesm2022/odx-angular-components-daterangepicker.mjs +2 -2
  144. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  145. package/fesm2022/odx-angular-components-dropdown.mjs +2 -2
  146. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  147. package/fesm2022/odx-angular-components-error-page.mjs +2 -3
  148. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  149. package/fesm2022/odx-angular-components-footer.mjs +3 -4
  150. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  151. package/fesm2022/odx-angular-components-form-field.mjs +6 -6
  152. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  153. package/fesm2022/odx-angular-components-inline-message.mjs +2 -2
  154. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  155. package/fesm2022/odx-angular-components-list.mjs +2 -3
  156. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  157. package/fesm2022/odx-angular-components-loading-spinner.mjs +2 -2
  158. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  159. package/fesm2022/odx-angular-components-main-menu.mjs +3 -4
  160. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  161. package/fesm2022/odx-angular-components-mainfilter-group.mjs +2 -2
  162. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  163. package/fesm2022/odx-angular-components-menu.mjs +2 -3
  164. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  165. package/fesm2022/odx-angular-components-modal.mjs +19 -20
  166. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  167. package/fesm2022/odx-angular-components-navigation-back.mjs +2 -2
  168. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  169. package/fesm2022/odx-angular-components-notification.mjs +5 -8
  170. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  171. package/fesm2022/odx-angular-components-paginator.mjs +3 -4
  172. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  173. package/fesm2022/odx-angular-components-radio-group.mjs +4 -4
  174. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  175. package/fesm2022/odx-angular-components-rail-navigation.mjs +4 -4
  176. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  177. package/fesm2022/odx-angular-components-rich-list.mjs +8 -9
  178. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  179. package/fesm2022/odx-angular-components-search-bar.mjs +2 -2
  180. package/fesm2022/odx-angular-components-search-bar.mjs.map +1 -1
  181. package/fesm2022/odx-angular-components-select.mjs +4 -4
  182. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  183. package/fesm2022/odx-angular-components-switch.mjs +2 -2
  184. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  185. package/fesm2022/odx-angular-components-tab-bar.mjs +4 -5
  186. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  187. package/fesm2022/odx-angular-components-table.mjs +8 -9
  188. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  189. package/fesm2022/odx-angular-components-timepicker.mjs +7 -9
  190. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  191. package/fesm2022/odx-angular-components-toast.mjs +5 -6
  192. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  193. package/fesm2022/odx-angular-components-toggle-button-group.mjs +4 -4
  194. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  195. package/fesm2022/odx-angular-components-tooltip.mjs +2 -2
  196. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  197. package/fesm2022/odx-angular-components-wizard.mjs +4 -4
  198. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  199. package/fesm2022/odx-angular-utils.mjs +2 -0
  200. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  201. package/fesm2022/odx-angular.mjs +3 -5
  202. package/fesm2022/odx-angular.mjs.map +1 -1
  203. package/lib/core.module.d.ts +2 -3
  204. package/package.json +1 -2
  205. package/utils/lib/helpers/angular.d.ts +2 -0
@@ -10,9 +10,8 @@ import { debounceTime, tap } from 'rxjs';
10
10
  import { HeaderTitleComponent } from './components/header-title/header-title.component';
11
11
  import { TABLE } from './table.config';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common";
14
- import * as i2 from "@angular/forms";
15
- import * as i3 from "@odx/angular/components/form-field";
13
+ import * as i1 from "@angular/forms";
14
+ import * as i2 from "@odx/angular/components/form-field";
16
15
  /**
17
16
  * TableComponent is a dynamic table structure built for displaying complex data sets with sorting, filtering,
18
17
  * and checkable functionality. It provides configuration options through various inputs that allow the
@@ -94,7 +93,7 @@ let TableComponent = class TableComponent {
94
93
  });
95
94
  }
96
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableComponent, isStandalone: true, selector: "table[odxTable]", inputs: { variant: "variant", data: "data", headerData: "headerData" }, outputs: { sorted: "sorted", filtered: "filtered", checked: "checked" }, host: { properties: { "attr.role": "\"table\"" } }, providers: [{ provide: TABLE, useExisting: TableComponent }], viewQueries: [{ propertyName: "headers", predicate: HeaderTitleComponent, descendants: true }], ngImport: i0, template: "<thead class=\"odx-table__head\" role=\"rowgroup\" [formGroup]=\"form\">\n <tr class=\"odx-table__header-row\" role=\"row\">\n <th *ngFor=\"let item of headerData\" class=\"odx-table__header-cell\" role=\"columnheader\" odxHeaderTitle [item]=\"item\">\n <odx-form-field *ngIf=\"item.filter\">\n <input placeholder=\"Filter\" [formControlName]=\"item.name\" type=\"text\" odxFormFieldControl />\n </odx-form-field>\n </th>\n </tr>\n</thead>\n<tbody class=\"odx-table__body\" role=\"rowgroup\">\n <ng-content select=\"tr\"></ng-content>\n</tbody>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormFieldModule }, { kind: "component", type: i3.FormFieldComponent, selector: "odx-form-field", inputs: ["label", "hasWarning", "variant"] }, { kind: "directive", type: i3.FormFieldControlDirective, selector: "[odxFormFieldControl]", exportAs: ["odxFormFieldControl"] }, { kind: "component", type: HeaderTitleComponent, selector: "th[odxHeaderTitle]", inputs: ["item"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TableComponent, isStandalone: true, selector: "table[odxTable]", inputs: { variant: "variant", data: "data", headerData: "headerData" }, outputs: { sorted: "sorted", filtered: "filtered", checked: "checked" }, host: { properties: { "attr.role": "\"table\"" } }, providers: [{ provide: TABLE, useExisting: TableComponent }], viewQueries: [{ propertyName: "headers", predicate: HeaderTitleComponent, descendants: true }], ngImport: i0, template: "<thead class=\"odx-table__head\" role=\"rowgroup\" [formGroup]=\"form\">\n <tr class=\"odx-table__header-row\" role=\"row\">\n @for (item of headerData; track $index) {\n <th class=\"odx-table__header-cell\" role=\"columnheader\" odxHeaderTitle [item]=\"item\">\n @if (item.filter) {\n <odx-form-field>\n <input placeholder=\"Filter\" [formControlName]=\"item.name\" type=\"text\" odxFormFieldControl />\n </odx-form-field>\n }\n </th>\n }\n </tr>\n</thead>\n<tbody class=\"odx-table__body\" role=\"rowgroup\">\n <ng-content select=\"tr\" />\n</tbody>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormFieldModule }, { kind: "component", type: i2.FormFieldComponent, selector: "odx-form-field", inputs: ["label", "hasWarning", "variant"] }, { kind: "directive", type: i2.FormFieldControlDirective, selector: "[odxFormFieldControl]", exportAs: ["odxFormFieldControl"] }, { kind: "component", type: HeaderTitleComponent, selector: "th[odxHeaderTitle]", inputs: ["item"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
98
97
  };
99
98
  __decorate([
100
99
  CSSModifier(),
@@ -108,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
108
107
  type: Component,
109
108
  args: [{ selector: 'table[odxTable]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
110
109
  '[attr.role]': '"table"',
111
- }, imports: [CommonModule, IconComponent, ReactiveFormsModule, FormFieldModule, HeaderTitleComponent], providers: [{ provide: TABLE, useExisting: TableComponent }], template: "<thead class=\"odx-table__head\" role=\"rowgroup\" [formGroup]=\"form\">\n <tr class=\"odx-table__header-row\" role=\"row\">\n <th *ngFor=\"let item of headerData\" class=\"odx-table__header-cell\" role=\"columnheader\" odxHeaderTitle [item]=\"item\">\n <odx-form-field *ngIf=\"item.filter\">\n <input placeholder=\"Filter\" [formControlName]=\"item.name\" type=\"text\" odxFormFieldControl />\n </odx-form-field>\n </th>\n </tr>\n</thead>\n<tbody class=\"odx-table__body\" role=\"rowgroup\">\n <ng-content select=\"tr\"></ng-content>\n</tbody>\n" }]
110
+ }, imports: [CommonModule, IconComponent, ReactiveFormsModule, FormFieldModule, HeaderTitleComponent], providers: [{ provide: TABLE, useExisting: TableComponent }], template: "<thead class=\"odx-table__head\" role=\"rowgroup\" [formGroup]=\"form\">\n <tr class=\"odx-table__header-row\" role=\"row\">\n @for (item of headerData; track $index) {\n <th class=\"odx-table__header-cell\" role=\"columnheader\" odxHeaderTitle [item]=\"item\">\n @if (item.filter) {\n <odx-form-field>\n <input placeholder=\"Filter\" [formControlName]=\"item.name\" type=\"text\" odxFormFieldControl />\n </odx-form-field>\n }\n </th>\n }\n </tr>\n</thead>\n<tbody class=\"odx-table__body\" role=\"rowgroup\">\n <ng-content select=\"tr\" />\n</tbody>\n" }]
112
111
  }], propDecorators: { variant: [{
113
112
  type: Input
114
113
  }], data: [{
@@ -125,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
125
124
  type: ViewChildren,
126
125
  args: [HeaderTitleComponent]
127
126
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUV2Qzs7Ozs7Ozs7O0dBU0c7QUFlSSxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBQXBCO1FBQ1ksdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7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QUFXLEVBQUU7OytDQUV1QjtBQVgxQixjQUFjO0lBZDFCLFlBQVksQ0FBQyxPQUFPLENBQUM7R0FjVCxjQUFjLENBMEcxQjs7NEZBMUdZLGNBQWM7a0JBYjFCLFNBQVM7K0JBRUUsaUJBQWlCLGNBQ2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGFBQWEsRUFBRSxTQUFTO3FCQUN6QixXQUVRLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsYUFDdkYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRSxDQUFDOzhCQWFyRCxPQUFPO3NCQURiLEtBQUs7Z0JBVUMsSUFBSTtzQkFEVixLQUFLO2dCQVVDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBY1UsTUFBTTtzQkFEckIsTUFBTTtnQkFTUyxRQUFRO3NCQUR2QixNQUFNO2dCQVNTLE9BQU87c0JBRHRCLE1BQU07Z0JBU0EsT0FBTztzQkFEYixZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIZWFkZXJUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb3J0U3RhdHVzLCBUYWJsZUJvZHlDZWxsLCBUYWJsZUhlYWRlckNlbGwsIFRhYmxlVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFRBQkxFIH0gZnJvbSAnLi90YWJsZS5jb25maWcnO1xuXG4vKipcbiAqIFRhYmxlQ29tcG9uZW50IGlzIGEgZHluYW1pYyB0YWJsZSBzdHJ1Y3R1cmUgYnVpbHQgZm9yIGRpc3BsYXlpbmcgY29tcGxleCBkYXRhIHNldHMgd2l0aCBzb3J0aW5nLCBmaWx0ZXJpbmcsXG4gKiBhbmQgY2hlY2thYmxlIGZ1bmN0aW9uYWxpdHkuIEl0IHByb3ZpZGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aHJvdWdoIHZhcmlvdXMgaW5wdXRzIHRoYXQgYWxsb3cgdGhlXG4gKiBjdXN0b21pemF0aW9uIG9mIHRhYmxlIGJlaGF2aW9yIGFuZCBwcmVzZW50YXRpb24uXG4gKlxuICogVGhpcyBjb21wb25lbnQgaXMgaGlnaGx5IG1vZHVsYXIsIGludGVncmF0aW5nIHdpdGggb3RoZXIgY29tcG9uZW50cyBzdWNoIGFzIGBIZWFkZXJUaXRsZUNvbXBvbmVudGAgZm9yIGhlYWRlclxuICogbWFuYWdlbWVudCwgYW5kIHVzaW5nIEFuZ3VsYXIgZm9ybXMgZm9yIGR5bmFtaWMgZGF0YSBmaWx0ZXJpbmcuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiBkYXRhIHRoYXQgdGhlIHRhYmxlIGRpc3BsYXlzLlxuICovXG5AQ1NTQ29tcG9uZW50KCd0YWJsZScpXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0YWJsZVtvZHhUYWJsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5yb2xlXSc6ICdcInRhYmxlXCInLFxuICB9LFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtRmllbGRNb2R1bGUsIEhlYWRlclRpdGxlQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUQUJMRSwgdXNlRXhpc3Rpbmc6IFRhYmxlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGFibGUgdmFyaWFudCBmb3IgQ1NTIHN0eWxpbmcuXG4gICAqXG4gICAqIEB0eXBlIHtUYWJsZVZhcmlhbnQgfCBudWxsfVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KClcbiAgcHVibGljIHZhcmlhbnQ/OiBUYWJsZVZhcmlhbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBEYXRhIGFycmF5IG9mIHR5cGUgVCB0aGF0IHRoZSB0YWJsZSBkaXNwbGF5cy5cbiAgICpcbiAgICogQHR5cGUge1RbXX1cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhOiBUW10gPSBbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGFibGUgaGVhZGVyIGRhdGEgd2hpY2ggY29udHJvbHMgc29ydGluZywgZmlsdGVyaW5nLCBhbmQgYWRkaXRpb25hbCBtZXRhZGF0YS5cbiAgICpcbiAgICogQHR5cGUge1RhYmxlSGVhZGVyQ2VsbFtdfVxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlckRhdGE6IFRhYmxlSGVhZGVyQ2VsbFtdID0gW107XG5cbiAgLyoqXG4gICAqIEZvcm1Hcm91cCB0byBoYW5kbGUgdGhlIGR5bmFtaWMgZmlsdGVyaW5nIGNvbnRyb2xzLCBlYWNoIHRpZWQgdG8gYSBoZWFkZXIgY2VsbCB0aGF0IGhhcyBmaWx0ZXJpbmcgZW5hYmxlZC5cbiAgICovXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciBmb3Igd2hlbiBhIGNvbHVtbidzIHNvcnRpbmcgc3RhdHVzIGNoYW5nZXMuXG4gICAqXG4gICAqIEBlbWl0cyB7U29ydFN0YXR1c31cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgc29ydGVkOiBFdmVudEVtaXR0ZXI8U29ydFN0YXR1cz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIHdoZW4gdGhlIHRhYmxlJ3MgZmlsdGVyaW5nIGNvbmRpdGlvbnMgY2hhbmdlLlxuICAgKlxuICAgKiBAZW1pdHMge3sgW2tleTogc3RyaW5nXTogc3RyaW5nIH19XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIHdoZW4gYSBjaGVja2JveCBjb2x1bW4ncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqXG4gICAqIEBlbWl0cyB7eyBjb2x1bW46IHN0cmluZzsgY2hlY2s6IGJvb2xlYW4gfX1cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZDogRXZlbnRFbWl0dGVyPHsgY29sdW1uOiBzdHJpbmc7IGNoZWNrOiBib29sZWFuIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBBIFF1ZXJ5TGlzdCBvZiBIZWFkZXJUaXRsZUNvbXBvbmVudCBpbnN0YW5jZXMsIGVhY2ggY29ycmVzcG9uZGluZyB0byBhIGhlYWRlciBjZWxsIGluIHRoZSB0YWJsZS5cbiAgICpcbiAgICogQHR5cGUge1F1ZXJ5TGlzdDxIZWFkZXJUaXRsZUNvbXBvbmVudD59XG4gICAqL1xuICBAVmlld0NoaWxkcmVuKEhlYWRlclRpdGxlQ29tcG9uZW50KVxuICBwdWJsaWMgaGVhZGVycyE6IFF1ZXJ5TGlzdDxIZWFkZXJUaXRsZUNvbXBvbmVudD47XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGVhZGVyRGF0YSgpO1xuICAgIHRoaXMuaGVhZGVyRGF0YS5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmZpbHRlciAmJiB0aGlzLmZvcm0uYWRkQ29udHJvbChpdGVtLm5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpKTtcbiAgICB0aGlzLmZvcm1MaXN0ZW5lcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgc29ydGluZyBzdGF0dXMgb2YgYWxsIGhlYWRlcnMuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IGhlYWRlci5jbGVhclNvcnRTdGF0dXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDYwMCksXG4gICAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZC5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzPy5maWx0ZXIoKGhlYWRlcikgPT4gISFoZWFkZXIuaXRlbS5jaGVjaykuZm9yRWFjaCgoaGVhZGVyKSA9PiBoZWFkZXIuY2hlY2soKSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIZWFkZXJEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVyRGF0YSA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YVswXSBhcyBUYWJsZUJvZHlDZWxsKS5tYXAoXG4gICAgICAoa2V5KSA9PlxuICAgICAgICB0aGlzLmhlYWRlckRhdGEuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBrZXkpIHx8IHtcbiAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgdGl0bGU6IGAke2tleVswXS50b1VwcGVyQ2FzZSgpfSR7a2V5LnNsaWNlKDEpfWAsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIiwiPHRoZWFkIGNsYXNzPVwib2R4LXRhYmxlX19oZWFkXCIgcm9sZT1cInJvd2dyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDx0ciBjbGFzcz1cIm9keC10YWJsZV9faGVhZGVyLXJvd1wiIHJvbGU9XCJyb3dcIj5cbiAgICA8dGggKm5nRm9yPVwibGV0IGl0ZW0gb2YgaGVhZGVyRGF0YVwiIGNsYXNzPVwib2R4LXRhYmxlX19oZWFkZXItY2VsbFwiIHJvbGU9XCJjb2x1bW5oZWFkZXJcIiBvZHhIZWFkZXJUaXRsZSBbaXRlbV09XCJpdGVtXCI+XG4gICAgICA8b2R4LWZvcm0tZmllbGQgKm5nSWY9XCJpdGVtLmZpbHRlclwiPlxuICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9XCJGaWx0ZXJcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ubmFtZVwiIHR5cGU9XCJ0ZXh0XCIgb2R4Rm9ybUZpZWxkQ29udHJvbCAvPlxuICAgICAgPC9vZHgtZm9ybS1maWVsZD5cbiAgICA8L3RoPlxuICA8L3RyPlxuPC90aGVhZD5cbjx0Ym9keSBjbGFzcz1cIm9keC10YWJsZV9fYm9keVwiIHJvbGU9XCJyb3dncm91cFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJ0clwiPjwvbmctY29udGVudD5cbjwvdGJvZHk+XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGFibGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWJsZS9zcmMvbGliL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXZDOzs7Ozs7Ozs7R0FTRztBQWVJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFBcEI7UUFDWSx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztR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QUFXLEVBQUU7OytDQUV1QjtBQVgxQixjQUFjO0lBZDFCLFlBQVksQ0FBQyxPQUFPLENBQUM7R0FjVCxjQUFjLENBMEcxQjs7NEZBMUdZLGNBQWM7a0JBYjFCLFNBQVM7K0JBRUUsaUJBQWlCLGNBQ2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGFBQWEsRUFBRSxTQUFTO3FCQUN6QixXQUVRLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsYUFDdkYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRSxDQUFDOzhCQWFyRCxPQUFPO3NCQURiLEtBQUs7Z0JBVUMsSUFBSTtzQkFEVixLQUFLO2dCQVVDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBY1UsTUFBTTtzQkFEckIsTUFBTTtnQkFTUyxRQUFRO3NCQUR2QixNQUFNO2dCQVNTLE9BQU87c0JBRHRCLE1BQU07Z0JBU0EsT0FBTztzQkFEYixZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIZWFkZXJUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb3J0U3RhdHVzLCBUYWJsZUJvZHlDZWxsLCBUYWJsZUhlYWRlckNlbGwsIFRhYmxlVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFRBQkxFIH0gZnJvbSAnLi90YWJsZS5jb25maWcnO1xuXG4vKipcbiAqIFRhYmxlQ29tcG9uZW50IGlzIGEgZHluYW1pYyB0YWJsZSBzdHJ1Y3R1cmUgYnVpbHQgZm9yIGRpc3BsYXlpbmcgY29tcGxleCBkYXRhIHNldHMgd2l0aCBzb3J0aW5nLCBmaWx0ZXJpbmcsXG4gKiBhbmQgY2hlY2thYmxlIGZ1bmN0aW9uYWxpdHkuIEl0IHByb3ZpZGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aHJvdWdoIHZhcmlvdXMgaW5wdXRzIHRoYXQgYWxsb3cgdGhlXG4gKiBjdXN0b21pemF0aW9uIG9mIHRhYmxlIGJlaGF2aW9yIGFuZCBwcmVzZW50YXRpb24uXG4gKlxuICogVGhpcyBjb21wb25lbnQgaXMgaGlnaGx5IG1vZHVsYXIsIGludGVncmF0aW5nIHdpdGggb3RoZXIgY29tcG9uZW50cyBzdWNoIGFzIGBIZWFkZXJUaXRsZUNvbXBvbmVudGAgZm9yIGhlYWRlclxuICogbWFuYWdlbWVudCwgYW5kIHVzaW5nIEFuZ3VsYXIgZm9ybXMgZm9yIGR5bmFtaWMgZGF0YSBmaWx0ZXJpbmcuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiBkYXRhIHRoYXQgdGhlIHRhYmxlIGRpc3BsYXlzLlxuICovXG5AQ1NTQ29tcG9uZW50KCd0YWJsZScpXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0YWJsZVtvZHhUYWJsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5yb2xlXSc6ICdcInRhYmxlXCInLFxuICB9LFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtRmllbGRNb2R1bGUsIEhlYWRlclRpdGxlQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUQUJMRSwgdXNlRXhpc3Rpbmc6IFRhYmxlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGFibGUgdmFyaWFudCBmb3IgQ1NTIHN0eWxpbmcuXG4gICAqXG4gICAqIEB0eXBlIHtUYWJsZVZhcmlhbnQgfCBudWxsfVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KClcbiAgcHVibGljIHZhcmlhbnQ/OiBUYWJsZVZhcmlhbnQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBEYXRhIGFycmF5IG9mIHR5cGUgVCB0aGF0IHRoZSB0YWJsZSBkaXNwbGF5cy5cbiAgICpcbiAgICogQHR5cGUge1RbXX1cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhOiBUW10gPSBbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGFibGUgaGVhZGVyIGRhdGEgd2hpY2ggY29udHJvbHMgc29ydGluZywgZmlsdGVyaW5nLCBhbmQgYWRkaXRpb25hbCBtZXRhZGF0YS5cbiAgICpcbiAgICogQHR5cGUge1RhYmxlSGVhZGVyQ2VsbFtdfVxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlckRhdGE6IFRhYmxlSGVhZGVyQ2VsbFtdID0gW107XG5cbiAgLyoqXG4gICAqIEZvcm1Hcm91cCB0byBoYW5kbGUgdGhlIGR5bmFtaWMgZmlsdGVyaW5nIGNvbnRyb2xzLCBlYWNoIHRpZWQgdG8gYSBoZWFkZXIgY2VsbCB0aGF0IGhhcyBmaWx0ZXJpbmcgZW5hYmxlZC5cbiAgICovXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciBmb3Igd2hlbiBhIGNvbHVtbidzIHNvcnRpbmcgc3RhdHVzIGNoYW5nZXMuXG4gICAqXG4gICAqIEBlbWl0cyB7U29ydFN0YXR1c31cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgc29ydGVkOiBFdmVudEVtaXR0ZXI8U29ydFN0YXR1cz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIHdoZW4gdGhlIHRhYmxlJ3MgZmlsdGVyaW5nIGNvbmRpdGlvbnMgY2hhbmdlLlxuICAgKlxuICAgKiBAZW1pdHMge3sgW2tleTogc3RyaW5nXTogc3RyaW5nIH19XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIHdoZW4gYSBjaGVja2JveCBjb2x1bW4ncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqXG4gICAqIEBlbWl0cyB7eyBjb2x1bW46IHN0cmluZzsgY2hlY2s6IGJvb2xlYW4gfX1cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZDogRXZlbnRFbWl0dGVyPHsgY29sdW1uOiBzdHJpbmc7IGNoZWNrOiBib29sZWFuIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBBIFF1ZXJ5TGlzdCBvZiBIZWFkZXJUaXRsZUNvbXBvbmVudCBpbnN0YW5jZXMsIGVhY2ggY29ycmVzcG9uZGluZyB0byBhIGhlYWRlciBjZWxsIGluIHRoZSB0YWJsZS5cbiAgICpcbiAgICogQHR5cGUge1F1ZXJ5TGlzdDxIZWFkZXJUaXRsZUNvbXBvbmVudD59XG4gICAqL1xuICBAVmlld0NoaWxkcmVuKEhlYWRlclRpdGxlQ29tcG9uZW50KVxuICBwdWJsaWMgaGVhZGVycyE6IFF1ZXJ5TGlzdDxIZWFkZXJUaXRsZUNvbXBvbmVudD47XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGVhZGVyRGF0YSgpO1xuICAgIHRoaXMuaGVhZGVyRGF0YS5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmZpbHRlciAmJiB0aGlzLmZvcm0uYWRkQ29udHJvbChpdGVtLm5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpKTtcbiAgICB0aGlzLmZvcm1MaXN0ZW5lcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgc29ydGluZyBzdGF0dXMgb2YgYWxsIGhlYWRlcnMuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IGhlYWRlci5jbGVhclNvcnRTdGF0dXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDYwMCksXG4gICAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZC5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzPy5maWx0ZXIoKGhlYWRlcikgPT4gISFoZWFkZXIuaXRlbS5jaGVjaykuZm9yRWFjaCgoaGVhZGVyKSA9PiBoZWFkZXIuY2hlY2soKSk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIZWFkZXJEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVyRGF0YSA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YVswXSBhcyBUYWJsZUJvZHlDZWxsKS5tYXAoXG4gICAgICAoa2V5KSA9PlxuICAgICAgICB0aGlzLmhlYWRlckRhdGEuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBrZXkpIHx8IHtcbiAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgdGl0bGU6IGAke2tleVswXS50b1VwcGVyQ2FzZSgpfSR7a2V5LnNsaWNlKDEpfWAsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIiwiPHRoZWFkIGNsYXNzPVwib2R4LXRhYmxlX19oZWFkXCIgcm9sZT1cInJvd2dyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDx0ciBjbGFzcz1cIm9keC10YWJsZV9faGVhZGVyLXJvd1wiIHJvbGU9XCJyb3dcIj5cbiAgICBAZm9yIChpdGVtIG9mIGhlYWRlckRhdGE7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHRoIGNsYXNzPVwib2R4LXRhYmxlX19oZWFkZXItY2VsbFwiIHJvbGU9XCJjb2x1bW5oZWFkZXJcIiBvZHhIZWFkZXJUaXRsZSBbaXRlbV09XCJpdGVtXCI+XG4gICAgICAgIEBpZiAoaXRlbS5maWx0ZXIpIHtcbiAgICAgICAgICA8b2R4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9XCJGaWx0ZXJcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0ubmFtZVwiIHR5cGU9XCJ0ZXh0XCIgb2R4Rm9ybUZpZWxkQ29udHJvbCAvPlxuICAgICAgICAgIDwvb2R4LWZvcm0tZmllbGQ+XG4gICAgICAgIH1cbiAgICAgIDwvdGg+XG4gICAgfVxuICA8L3RyPlxuPC90aGVhZD5cbjx0Ym9keSBjbGFzcz1cIm9keC10YWJsZV9fYm9keVwiIHJvbGU9XCJyb3dncm91cFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJ0clwiIC8+XG48L3Rib2R5PlxuIl19
@@ -50,7 +50,7 @@ let TimepickerOptionComponent = class TimepickerOptionComponent extends OptionCo
50
50
  this.selected.emit(this);
51
51
  }
52
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimepickerOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TimepickerOptionComponent, isStandalone: true, selector: "odx-timepicker-option", outputs: { selected: "selected" }, providers: [DisabledController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TimepickerOptionComponent, isStandalone: true, selector: "odx-timepicker-option", outputs: { selected: "selected" }, providers: [DisabledController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
54
54
  };
55
55
  TimepickerOptionComponent = __decorate([
56
56
  CSSComponent('timepicker-option'),
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
61
61
  type: Component,
62
62
  args: [{
63
63
  selector: 'odx-timepicker-option',
64
- template: `<ng-content></ng-content>`,
64
+ template: `<ng-content />`,
65
65
  standalone: true,
66
66
  encapsulation: ViewEncapsulation.None,
67
67
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
71
71
  }], ctorParameters: () => [], propDecorators: { selected: [{
72
72
  type: Output
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGltZXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFekQ7Ozs7OztHQU1HO0FBV0ksSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBMEIsU0FBUSxhQUFxQjtJQU9sRTs7OztPQUlHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7SUFDN0MsQ0FBQztJQVdEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF6Qk8sZUFBVSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBV2pDOzs7OztXQUtHO1FBRUksYUFBUSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBSTlELHVCQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBM0NVLHlCQUF5QjttR0FBekIseUJBQXlCLHVHQUh6QixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLHdHQUovQiwyQkFBMkI7O0FBTzFCLHlCQUF5QjtJQVZyQyxZQUFZLENBQUMsbUJBQW1CLENBQUM7O0dBVXJCLHlCQUF5QixDQTRDckM7OzRGQTVDWSx5QkFBeUI7a0JBVHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3pDLGNBQWMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUNwQzt3REF3QlEsUUFBUTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyLCBXaXRoRGlzYWJsZWRTdGF0ZSwgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IFRJTUVQSUNLRVJfQ09OVFJPTCB9IGZyb20gJy4uL3RpbWVwaWNrZXIudG9rZW4nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzZWxlY3RhYmxlIG9wdGlvbiB3aXRoaW4gYSB0aW1lcGlja2VyIGNvbXBvbmVudC4gVGhpcyBjb21wb25lbnQgYWxsb3dzIGZvclxuICogaW5kaXZpZHVhbCB0aW1lIHZhbHVlcyB0byBiZSBzZWxlY3RlZCBmcm9tIGEgZHJvcGRvd24gbWVudSBhcyBwYXJ0IG9mIHRoZSB0aW1lcGlja2VyIGludGVyZmFjZS5cbiAqIEl0IGludGVncmF0ZXMgd2l0aCB0aGUgdGltZXBpY2tlcidzIGNvbnRyb2wgdG8gbWFuYWdlIHNlbGVjdGlvbiBzdGF0ZSBhbmQgYWNjZXNzaWJpbGl0eS5cbiAqXG4gKiBAZXh0ZW5kcyB7T3B0aW9uQ29udHJvbDxzdHJpbmc+fVxuICovXG5AQ1NTQ29tcG9uZW50KCd0aW1lcGlja2VyLW9wdGlvbicpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdGltZXBpY2tlci1vcHRpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKV0sXG4gIGhvc3REaXJlY3RpdmVzOiBbV2l0aERpc2FibGVkU3RhdGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50IGV4dGVuZHMgT3B0aW9uQ29udHJvbDxzdHJpbmc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcGlja2VyID0gaW5qZWN0KFRJTUVQSUNLRVJfQ09OVFJPTCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgcHVibGljIG92ZXJyaWRlIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBkaXNhYmxlZC4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGFibGUuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLCBhbGxvd2luZyB0aGUgdGltZXBpY2tlciBjb21wb25lbnQgdG8gdXBkYXRlIGl0cyB2YWx1ZVxuICAgKiBhbmQgY2xvc2UgdGhlIGRyb3Bkb3duLlxuICAgKlxuICAgKiBAZW1pdHMge1RpbWVwaWNrZXJPcHRpb25Db21wb25lbnR9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXModGhpcy50aW1lcGlja2VyKS5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRoaXMudGltZXBpY2tlci5pc1RpbWVPcHRpb25TZWxlY3RlZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgc3R5bGVzIGZvciB0aGUgb3B0aW9uLCBpbmRpY2F0aW5nIHRoYXQgaXQgaXMgY3VycmVudGx5XG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdE9wdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcyk7XG4gIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGltZXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFekQ7Ozs7OztHQU1HO0FBV0ksSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBMEIsU0FBUSxhQUFxQjtJQU9sRTs7OztPQUlHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7SUFDN0MsQ0FBQztJQVdEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF6Qk8sZUFBVSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBV2pDOzs7OztXQUtHO1FBRUksYUFBUSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBSTlELHVCQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBM0NVLHlCQUF5QjttR0FBekIseUJBQXlCLHVHQUh6QixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLHdHQUovQixnQkFBZ0I7O0FBT2YseUJBQXlCO0lBVnJDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQzs7R0FVckIseUJBQXlCLENBNENyQzs7NEZBNUNZLHlCQUF5QjtrQkFUckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDekMsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQ3BDO3dEQXdCUSxRQUFRO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIsIFdpdGhEaXNhYmxlZFN0YXRlLCBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBPcHRpb25Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9vcHRpb24tY29udHJvbCc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgVElNRVBJQ0tFUl9DT05UUk9MIH0gZnJvbSAnLi4vdGltZXBpY2tlci50b2tlbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNlbGVjdGFibGUgb3B0aW9uIHdpdGhpbiBhIHRpbWVwaWNrZXIgY29tcG9uZW50LiBUaGlzIGNvbXBvbmVudCBhbGxvd3MgZm9yXG4gKiBpbmRpdmlkdWFsIHRpbWUgdmFsdWVzIHRvIGJlIHNlbGVjdGVkIGZyb20gYSBkcm9wZG93biBtZW51IGFzIHBhcnQgb2YgdGhlIHRpbWVwaWNrZXIgaW50ZXJmYWNlLlxuICogSXQgaW50ZWdyYXRlcyB3aXRoIHRoZSB0aW1lcGlja2VyJ3MgY29udHJvbCB0byBtYW5hZ2Ugc2VsZWN0aW9uIHN0YXRlIGFuZCBhY2Nlc3NpYmlsaXR5LlxuICpcbiAqIEBleHRlbmRzIHtPcHRpb25Db250cm9sPHN0cmluZz59XG4gKi9cbkBDU1NDb21wb25lbnQoJ3RpbWVwaWNrZXItb3B0aW9uJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10aW1lcGlja2VyLW9wdGlvbicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgLz5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKV0sXG4gIGhvc3REaXJlY3RpdmVzOiBbV2l0aERpc2FibGVkU3RhdGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50IGV4dGVuZHMgT3B0aW9uQ29udHJvbDxzdHJpbmc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lcGlja2VyID0gaW5qZWN0KFRJTUVQSUNLRVJfQ09OVFJPTCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgcHVibGljIG92ZXJyaWRlIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBkaXNhYmxlZC4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGFibGUuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLCBhbGxvd2luZyB0aGUgdGltZXBpY2tlciBjb21wb25lbnQgdG8gdXBkYXRlIGl0cyB2YWx1ZVxuICAgKiBhbmQgY2xvc2UgdGhlIGRyb3Bkb3duLlxuICAgKlxuICAgKiBAZW1pdHMge1RpbWVwaWNrZXJPcHRpb25Db21wb25lbnR9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXModGhpcy50aW1lcGlja2VyKS5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRoaXMudGltZXBpY2tlci5pc1RpbWVPcHRpb25TZWxlY3RlZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgc3R5bGVzIGZvciB0aGUgb3B0aW9uLCBpbmRpY2F0aW5nIHRoYXQgaXQgaXMgY3VycmVudGx5XG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdE9wdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcyk7XG4gIH1cbn1cbiJdfQ==
@@ -8,16 +8,15 @@ import { ButtonComponent } from '@odx/angular/components/button';
8
8
  import { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';
9
9
  import { IconComponent } from '@odx/angular/components/icon';
10
10
  import { CSSComponent } from '@odx/angular/internal';
11
- import { injectElement, isFunction, trackByIndex, untilDestroyed } from '@odx/angular/utils';
11
+ import { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';
12
12
  import { TimepickerOptionComponent } from './components/timepicker-option.component';
13
13
  import { TimepickerInputControlDirective } from './directives/timepicker-input-control.directive';
14
14
  import { TimepickerService } from './timepicker.service';
15
15
  import { TIMEPICKER_CONTROL } from './timepicker.token';
16
16
  import { generateTimeStamps } from './utils/generate-time-stamps';
17
17
  import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/common";
19
- import * as i2 from "@odx/angular";
20
- import * as i3 from "@odx/angular/components/dropdown";
18
+ import * as i1 from "@odx/angular";
19
+ import * as i2 from "@odx/angular/components/dropdown";
21
20
  /**
22
21
  * Represents a time picker component allowing users to select a time from a dropdown list.
23
22
  * This component integrates with Angular forms and supports customization for locale, time range, and step intervals.
@@ -52,7 +51,6 @@ let TimepickerComponent = class TimepickerComponent extends CustomFormControl {
52
51
  this.timepickerService = inject(TimepickerService);
53
52
  this._useLocale = false;
54
53
  this.takeUntilDestroyed = untilDestroyed();
55
- this.trackByIndex = trackByIndex;
56
54
  this.element = injectElement();
57
55
  /**
58
56
  * Controls the step interval between time options in minutes.
@@ -176,14 +174,14 @@ let TimepickerComponent = class TimepickerComponent extends CustomFormControl {
176
174
  }
177
175
  }
178
176
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: TimepickerComponent, isStandalone: true, selector: "odx-timepicker", inputs: { useLocale: ["useLocale", "useLocale", booleanAttribute], step: ["step", "step", numberAttribute], min: "min", max: "max" }, host: { listeners: { "click": "handleControllerEvent($event)", "keydown": "handleControllerEvent($event)" }, properties: { "attr.readonly": "readonlyController?.readonly || null" } }, providers: [
177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TimepickerComponent, isStandalone: true, selector: "odx-timepicker", inputs: { useLocale: ["useLocale", "useLocale", booleanAttribute], step: ["step", "step", numberAttribute], min: "min", max: "max" }, host: { listeners: { "click": "handleControllerEvent($event)", "keydown": "handleControllerEvent($event)" }, properties: { "attr.readonly": "readonlyController?.readonly || null" } }, providers: [
180
178
  DisabledController.connect(),
181
179
  ReadonlyController.connect(),
182
180
  {
183
181
  provide: TIMEPICKER_CONTROL,
184
182
  useExisting: forwardRef(() => TimepickerComponent),
185
183
  },
186
- ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dateField", first: true, predicate: TimepickerInputControlDirective, descendants: true }, { propertyName: "options", predicate: TimepickerOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start' }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: TimepickerOptionComponent, selector: "odx-timepicker-option", outputs: ["selected"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: TimepickerInputControlDirective, selector: "input[odxTimepickerControl]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
184
+ ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dateField", first: true, predicate: TimepickerInputControlDirective, descendants: true }, { propertyName: "options", predicate: TimepickerOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start' }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n @for (time of timeStampsList; track $index) {\n <odx-timepicker-option [value]=\"time\" [disabled]=\"!inTimeRange(time)\" (selected)=\"timeSelected($event)\">{{ time }}</odx-timepicker-option>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i1.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i2.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: TimepickerOptionComponent, selector: "odx-timepicker-option", outputs: ["selected"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: TimepickerInputControlDirective, selector: "input[odxTimepickerControl]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
187
185
  };
188
186
  TimepickerComponent = __decorate([
189
187
  CSSComponent('timepicker'),
@@ -201,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
201
199
  },
202
200
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [A11yModule, ActionGroupComponent, ButtonComponent, DropdownModule, TimepickerOptionComponent, IconComponent, TimepickerInputControlDirective], host: {
203
201
  '[attr.readonly]': 'readonlyController?.readonly || null',
204
- }, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start' }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n <odx-timepicker-option\n [value]=\"time\"\n [disabled]=\"!inTimeRange(time)\"\n *ngFor=\"let time of timeStampsList; trackBy: trackByIndex\"\n (selected)=\"timeSelected($event)\"\n >{{ time }}</odx-timepicker-option\n >\n </div>\n</ng-template>\n" }]
202
+ }, template: "<div class=\"odx-timepicker__wrapper\">\n <input [value]=\"value\" odxTimepickerControl type=\"text\" />\n</div>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-timepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n aria-label=\"Select time\"\n [odxDropdown]=\"timeList\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, position: 'bottom-start' }\"\n [odxDropdownTriggerElement]=\"dropdownTrigger.element.nativeElement\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n (odxDropdownAfterOpen)=\"onOpen()\"\n >\n <odx-icon name=\"chevron-down\" />\n </button>\n</odx-action-group>\n\n<ng-template #timeList>\n <div class=\"odx-timepicker__option-list\" role=\"listbox\">\n @for (time of timeStampsList; track $index) {\n <odx-timepicker-option [value]=\"time\" [disabled]=\"!inTimeRange(time)\" (selected)=\"timeSelected($event)\">{{ time }}</odx-timepicker-option>\n }\n </div>\n</ng-template>\n" }]
205
203
  }], ctorParameters: () => [], propDecorators: { dropdown: [{
206
204
  type: ViewChild,
207
205
  args: [DropdownDirective]
@@ -228,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
228
226
  type: HostListener,
229
227
  args: ['keydown', ['$event']]
230
228
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFD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USxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSwgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBpc0Z1bmN0aW9uLCB0cmFja0J5SW5kZXgsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGltZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lcGlja2VyU2VydmljZSB9IGZyb20gJy4vdGltZXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRJTUVQSUNLRVJfQ09OVFJPTCB9IGZyb20gJy4vdGltZXBpY2tlci50b2tlbic7XG5pbXBvcnQgeyBnZW5lcmF0ZVRpbWVTdGFtcHMgfSBmcm9tICcuL3V0aWxzL2dlbmVyYXRlLXRpbWUtc3RhbXBzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdGltZSBwaWNrZXIgY29tcG9uZW50IGFsbG93aW5nIHVzZXJzIHRvIHNlbGVjdCBhIHRpbWUgZnJvbSBhIGRyb3Bkb3duIGxpc3QuXG4gKiBUaGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggQW5ndWxhciBmb3JtcyBhbmQgc3VwcG9ydHMgY3VzdG9taXphdGlvbiBmb3IgbG9jYWxlLCB0aW1lIHJhbmdlLCBhbmQgc3RlcCBpbnRlcnZhbHMuXG4gKlxuICogQHNlZSB7Q3VzdG9tRm9ybUNvbnRyb2x9XG4gKi9cbkBDU1NDb21wb25lbnQoJ3RpbWVwaWNrZXInKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJ3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpLFxuICAgIFJlYWRvbmx5Q29udHJvbGxlci5jb25uZWN0KCksXG4gICAge1xuICAgICAgcHJvdmlkZTogVElNRVBJQ0tFUl9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZXBpY2tlckNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBMTF5TW9kdWxlLCBBY3Rpb25Hcm91cENvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSwgVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgVGltZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIucmVhZG9ubHldJzogJ3JlYWRvbmx5Q29udHJvbGxlcj8ucmVhZG9ubHkgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVwaWNrZXJTZXJ2aWNlID0gaW5qZWN0KFRpbWVwaWNrZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdXNlTG9jYWxlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxzdHJpbmc+PjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWNrQnlJbmRleCA9IHRyYWNrQnlJbmRleDtcblxuICBAVmlld0NoaWxkKERyb3Bkb3duRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd24/OiBEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkcmVuKFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQsIHsgZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWUgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbnMhOiBRdWVyeUxpc3Q8VGltZXBpY2tlck9wdGlvbkNvbXBvbmVudD47XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRpbWVwaWNrZXIgc2hvdWxkIHVzZSBsb2NhbGUtc3BlY2lmaWMgdGltZSBmb3JtYXRzIEFNL1BNLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHVzZUxvY2FsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB2YWwpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aW1lKTtcbiAgICAgIHRoaXMuZGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IHRpbWU7XG4gICAgfVxuICAgIHRoaXMuX3VzZUxvY2FsZSA9IHZhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGxvY2FsZSBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgbG9jYWxlIGlzIGJlaW5nIHVzZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHVzZUxvY2FsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdXNlTG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHRoZSBzdGVwIGludGVydmFsIGJldHdlZW4gdGltZSBvcHRpb25zIGluIG1pbnV0ZXMuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDMwXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc3RlcCA9IDMwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltdW0gdGltZSB2YWx1ZSB0aGF0IGNhbiBiZSBzZWxlY3RlZCAoJzA1OjAwJyBvciAnMDU6MDAgQU0nKS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJzAwOjAwJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1pbiA9ICcwMDowMCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSB0aW1lIHZhbHVlIHRoYXQgY2FuIGJlIHNlbGVjdGVkICgnMjI6MDAnIG9yICcxMDowMCBQTScpLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnMjM6NTknXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4ID0gJzIzOjU5JztcblxuICAvKipcbiAgICogVGhlIGRpcmVjdGl2ZSBmb3IgdGhlIHRpbWVwaWNrZXIgaW5wdXQgY29udHJvbC5cbiAgICpcbiAgICogQHR5cGUge1RpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWR9XG4gICAqL1xuICBAVmlld0NoaWxkKFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBkYXRlRmllbGQ/OiBUaW1lcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZURhdGVGaWVsZENoYW5nZXMoKTtcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGdpdmVuIHRpbWUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1RpbWVwaWNrZXJPcHRpb25Db21wb25lbnR9IG9wdGlvbiAtIFRoZSB0aW1lIG9wdGlvbiB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzVGltZU9wdGlvblNlbGVjdGVkKG9wdGlvbjogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgc2VsZWN0aW9uIG9mIGEgdGltZSBvcHRpb24gZnJvbSB0aGUgZHJvcGRvd24sIHVwZGF0aW5nIHRoZSBpbnB1dCBmaWVsZCBhbmQgY2xvc2luZyB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSB7VGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZH0gb3B0aW9uIC0gVGhlIHNlbGVjdGVkIHRpbWUgb3B0aW9uIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB0aW1lU2VsZWN0ZWQob3B0aW9uPzogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHRpbWUgPSB0aGlzLnRpbWVwaWNrZXJTZXJ2aWNlLmdldExvY2FsaXplZFRpbWVGb3JtYXQob3B0aW9uLmdldExhYmVsKCksIHRoaXMudXNlTG9jYWxlKTtcbiAgICB0aGlzLmRhdGVGaWVsZCAmJiAodGhpcy5kYXRlRmllbGQubmF0aXZlRWxlbWVudFZhbHVlID0gdGltZSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aW1lKTtcbiAgICB0aGlzLmRyb3Bkb3duPy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIHRpbWUgaXMgd2l0aGluIHRoZSBhbGxvd2VkIHRpbWUgcmFuZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0aW1lIC0gVGhlIHRpbWUgdG8gY2hlY2ssIGluICdISDptbScgb3IgJ0hIOm1tIEFNL1BNJyBmb3JtYXQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSB0aW1lIGlzIHdpdGhpbiB0aGUgcmFuZ2U7IG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaW5UaW1lUmFuZ2UodGltZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXBpY2tlclNlcnZpY2UubWF4VmFsaWRhdGlvbih0aW1lLCB0aGlzLm1heCkgJiYgdGhpcy50aW1lcGlja2VyU2VydmljZS5taW5WYWxpZGF0aW9uKHRpbWUsIHRoaXMubWluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGxpc3Qgb2YgdGltZSBvcHRpb25zIGJhc2VkIG9uIHRoZSBjb25maWd1cmVkIHN0ZXAgaW50ZXJ2YWwgYW5kIGxvY2FsZSBzZXR0aW5ncyBBTS9QTS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ1tdfSBBbiBhcnJheSBvZiB0aW1lIHN0cmluZ3MgaW4gJ0hIOm1tJyBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRpbWVTdGFtcHNMaXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZ2VuZXJhdGVUaW1lU3RhbXBzKHRoaXMuc3RlcCwgdGhpcy51c2VMb2NhbGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxzdHJpbmc+Pih0aGlzLm9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCk7XG4gICAgdGhpcy5zZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSkgcmV0dXJuO1xuXG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSBhcyBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50O1xuICAgIGFjdGl2ZU9wdGlvbiAmJiB0aGlzLnNjcm9sbFRvQWN0aXZlT3B0aW9uKGFjdGl2ZU9wdGlvbiwgeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnIHx8IGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50aW1lU2VsZWN0ZWQoYWN0aXZlT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh0aW1lKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHRpbWUgPz8gbnVsbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCk7XG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVPcHRpb24oaXNTZWxlY3RlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmF0ZU5lYXJlc3RUaW1lT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlT3B0aW9uKG9wdGlvbjogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciAmJiB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVOZWFyZXN0VGltZU9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IGlzTmVhcmVzdCA9IHRoaXMuZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlKTtcbiAgICAgIGlmIChpc05lYXJlc3QpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZU9wdGlvbihpc05lYXJlc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlOiBEYXRlKTogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXZhaWxhYmxlVGltZVNsb3RzID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKTtcbiAgICBjb25zdCBuZWFyZXN0VGltZVZhbHVlID0gdGhpcy50aW1lcGlja2VyU2VydmljZS5maW5kQ2xvc2VzdERhdGUoXG4gICAgICBhdmFpbGFibGVUaW1lU2xvdHMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkgYXMgc3RyaW5nW10sXG4gICAgICBgJHtjdXJyZW50RGF0ZS5nZXRIb3VycygpfToke2N1cnJlbnREYXRlLmdldE1pbnV0ZXMoKX1gLFxuICAgICk7XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlVGltZVNsb3RzLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBuZWFyZXN0VGltZVZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB0aGlzLnVzZUxvY2FsZSk7XG4gICAgICB0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aW1lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uOiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50LCBfb3B0czogU2Nyb2xsSW50b1ZpZXdPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBpZiAoaXNGdW5jdGlvbihvcHRpb24uZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KSkge1xuICAgICAgb3B0aW9uLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgLi4uX29wdHMgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LXRpbWVwaWNrZXJfX3dyYXBwZXJcIj5cbiAgPGlucHV0IFt2YWx1ZV09XCJ2YWx1ZVwiIG9keFRpbWVwaWNrZXJDb250cm9sIHR5cGU9XCJ0ZXh0XCIgLz5cbjwvZGl2PlxuXG48b2R4LWFjdGlvbi1ncm91cCBjbGFzcz1cIm9keC1uby1tYXJnaW5cIj5cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBjbGFzcz1cIm9keC10aW1lcGlja2VyX190cmlnZ2VyXCJcbiAgICBvZHhCdXR0b25cbiAgICBzaXplPVwic21hbGxcIlxuICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgYXJpYS1sYWJlbD1cIlNlbGVjdCB0aW1lXCJcbiAgICBbb2R4RHJvcGRvd25dPVwidGltZUxpc3RcIlxuICAgIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcgfVwiXG4gICAgW29keERyb3Bkb3duVHJpZ2dlckVsZW1lbnRdPVwiZHJvcGRvd25UcmlnZ2VyLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJlbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIlxuICAgIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwib25PcGVuKClcIlxuICA+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIiAvPlxuICA8L2J1dHRvbj5cbjwvb2R4LWFjdGlvbi1ncm91cD5cblxuPG5nLXRlbXBsYXRlICN0aW1lTGlzdD5cbiAgPGRpdiBjbGFzcz1cIm9keC10aW1lcGlja2VyX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPG9keC10aW1lcGlja2VyLW9wdGlvblxuICAgICAgW3ZhbHVlXT1cInRpbWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFpblRpbWVSYW5nZSh0aW1lKVwiXG4gICAgICAqbmdGb3I9XCJsZXQgdGltZSBvZiB0aW1lU3RhbXBzTGlzdDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgIChzZWxlY3RlZCk9XCJ0aW1lU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICA+e3sgdGltZSB9fTwvb2R4LXRpbWVwaWNrZXItb3B0aW9uXG4gICAgPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90aW1lcGlja2VyL3NyYy9saWIvdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVB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TW9kdWxlLCBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIsIFJlYWRvbmx5Q29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDdXN0b21Gb3JtQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBPcHRpb25Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9vcHRpb24tY29udHJvbCc7XG5pbXBvcnQgeyBBY3Rpb25Hcm91cENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2FjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUsIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIGlzRnVuY3Rpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZXBpY2tlci1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGltZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaW1lcGlja2VyU2VydmljZSB9IGZyb20gJy4vdGltZXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRJTUVQSUNLRVJfQ09OVFJPTCB9IGZyb20gJy4vdGltZXBpY2tlci50b2tlbic7XG5pbXBvcnQgeyBnZW5lcmF0ZVRpbWVTdGFtcHMgfSBmcm9tICcuL3V0aWxzL2dlbmVyYXRlLXRpbWUtc3RhbXBzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdGltZSBwaWNrZXIgY29tcG9uZW50IGFsbG93aW5nIHVzZXJzIHRvIHNlbGVjdCBhIHRpbWUgZnJvbSBhIGRyb3Bkb3duIGxpc3QuXG4gKiBUaGlzIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggQW5ndWxhciBmb3JtcyBhbmQgc3VwcG9ydHMgY3VzdG9taXphdGlvbiBmb3IgbG9jYWxlLCB0aW1lIHJhbmdlLCBhbmQgc3RlcCBpbnRlcnZhbHMuXG4gKlxuICogQHNlZSB7Q3VzdG9tRm9ybUNvbnRyb2x9XG4gKi9cbkBDU1NDb21wb25lbnQoJ3RpbWVwaWNrZXInKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJ3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpLFxuICAgIFJlYWRvbmx5Q29udHJvbGxlci5jb25uZWN0KCksXG4gICAge1xuICAgICAgcHJvdmlkZTogVElNRVBJQ0tFUl9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZXBpY2tlckNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBMTF5TW9kdWxlLCBBY3Rpb25Hcm91cENvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSwgVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgVGltZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZV0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIucmVhZG9ubHldJzogJ3JlYWRvbmx5Q29udHJvbGxlcj8ucmVhZG9ubHkgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVwaWNrZXJTZXJ2aWNlID0gaW5qZWN0KFRpbWVwaWNrZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdXNlTG9jYWxlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxzdHJpbmc+PjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBAVmlld0NoaWxkKERyb3Bkb3duRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd24/OiBEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkcmVuKFRpbWVwaWNrZXJPcHRpb25Db21wb25lbnQsIHsgZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWUgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbnMhOiBRdWVyeUxpc3Q8VGltZXBpY2tlck9wdGlvbkNvbXBvbmVudD47XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRpbWVwaWNrZXIgc2hvdWxkIHVzZSBsb2NhbGUtc3BlY2lmaWMgdGltZSBmb3JtYXRzIEFNL1BNLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHVzZUxvY2FsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB2YWwpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aW1lKTtcbiAgICAgIHRoaXMuZGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IHRpbWU7XG4gICAgfVxuICAgIHRoaXMuX3VzZUxvY2FsZSA9IHZhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGxvY2FsZSBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgbG9jYWxlIGlzIGJlaW5nIHVzZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHVzZUxvY2FsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdXNlTG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHRoZSBzdGVwIGludGVydmFsIGJldHdlZW4gdGltZSBvcHRpb25zIGluIG1pbnV0ZXMuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDMwXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc3RlcCA9IDMwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltdW0gdGltZSB2YWx1ZSB0aGF0IGNhbiBiZSBzZWxlY3RlZCAoJzA1OjAwJyBvciAnMDU6MDAgQU0nKS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJzAwOjAwJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1pbiA9ICcwMDowMCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSB0aW1lIHZhbHVlIHRoYXQgY2FuIGJlIHNlbGVjdGVkICgnMjI6MDAnIG9yICcxMDowMCBQTScpLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCAnMjM6NTknXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4ID0gJzIzOjU5JztcblxuICAvKipcbiAgICogVGhlIGRpcmVjdGl2ZSBmb3IgdGhlIHRpbWVwaWNrZXIgaW5wdXQgY29udHJvbC5cbiAgICpcbiAgICogQHR5cGUge1RpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWR9XG4gICAqL1xuICBAVmlld0NoaWxkKFRpbWVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBkYXRlRmllbGQ/OiBUaW1lcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZURhdGVGaWVsZENoYW5nZXMoKTtcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGdpdmVuIHRpbWUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1RpbWVwaWNrZXJPcHRpb25Db21wb25lbnR9IG9wdGlvbiAtIFRoZSB0aW1lIG9wdGlvbiB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzVGltZU9wdGlvblNlbGVjdGVkKG9wdGlvbjogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgc2VsZWN0aW9uIG9mIGEgdGltZSBvcHRpb24gZnJvbSB0aGUgZHJvcGRvd24sIHVwZGF0aW5nIHRoZSBpbnB1dCBmaWVsZCBhbmQgY2xvc2luZyB0aGUgZHJvcGRvd24uXG4gICAqXG4gICAqIEBwYXJhbSB7VGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZH0gb3B0aW9uIC0gVGhlIHNlbGVjdGVkIHRpbWUgb3B0aW9uIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyB0aW1lU2VsZWN0ZWQob3B0aW9uPzogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHRpbWUgPSB0aGlzLnRpbWVwaWNrZXJTZXJ2aWNlLmdldExvY2FsaXplZFRpbWVGb3JtYXQob3B0aW9uLmdldExhYmVsKCksIHRoaXMudXNlTG9jYWxlKTtcbiAgICB0aGlzLmRhdGVGaWVsZCAmJiAodGhpcy5kYXRlRmllbGQubmF0aXZlRWxlbWVudFZhbHVlID0gdGltZSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aW1lKTtcbiAgICB0aGlzLmRyb3Bkb3duPy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIHRpbWUgaXMgd2l0aGluIHRoZSBhbGxvd2VkIHRpbWUgcmFuZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0aW1lIC0gVGhlIHRpbWUgdG8gY2hlY2ssIGluICdISDptbScgb3IgJ0hIOm1tIEFNL1BNJyBmb3JtYXQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSB0aW1lIGlzIHdpdGhpbiB0aGUgcmFuZ2U7IG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaW5UaW1lUmFuZ2UodGltZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGltZXBpY2tlclNlcnZpY2UubWF4VmFsaWRhdGlvbih0aW1lLCB0aGlzLm1heCkgJiYgdGhpcy50aW1lcGlja2VyU2VydmljZS5taW5WYWxpZGF0aW9uKHRpbWUsIHRoaXMubWluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGxpc3Qgb2YgdGltZSBvcHRpb25zIGJhc2VkIG9uIHRoZSBjb25maWd1cmVkIHN0ZXAgaW50ZXJ2YWwgYW5kIGxvY2FsZSBzZXR0aW5ncyBBTS9QTS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ1tdfSBBbiBhcnJheSBvZiB0aW1lIHN0cmluZ3MgaW4gJ0hIOm1tJyBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRpbWVTdGFtcHNMaXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZ2VuZXJhdGVUaW1lU3RhbXBzKHRoaXMuc3RlcCwgdGhpcy51c2VMb2NhbGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxzdHJpbmc+Pih0aGlzLm9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCk7XG4gICAgdGhpcy5zZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSkgcmV0dXJuO1xuXG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSBhcyBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50O1xuICAgIGFjdGl2ZU9wdGlvbiAmJiB0aGlzLnNjcm9sbFRvQWN0aXZlT3B0aW9uKGFjdGl2ZU9wdGlvbiwgeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnIHx8IGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy50aW1lU2VsZWN0ZWQoYWN0aXZlT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh0aW1lKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHRpbWUgPz8gbnVsbCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVPcHRpb25CYXNlZE9uQ3VycmVudFZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCk7XG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVPcHRpb24oaXNTZWxlY3RlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmF0ZU5lYXJlc3RUaW1lT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlT3B0aW9uKG9wdGlvbjogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciAmJiB0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVOZWFyZXN0VGltZU9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGNvbnN0IGlzTmVhcmVzdCA9IHRoaXMuZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlKTtcbiAgICAgIGlmIChpc05lYXJlc3QpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZU9wdGlvbihpc05lYXJlc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZE5lYXJlc3RUaW1lT3B0aW9uKGN1cnJlbnREYXRlOiBEYXRlKTogVGltZXBpY2tlck9wdGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXZhaWxhYmxlVGltZVNsb3RzID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKTtcbiAgICBjb25zdCBuZWFyZXN0VGltZVZhbHVlID0gdGhpcy50aW1lcGlja2VyU2VydmljZS5maW5kQ2xvc2VzdERhdGUoXG4gICAgICBhdmFpbGFibGVUaW1lU2xvdHMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkgYXMgc3RyaW5nW10sXG4gICAgICBgJHtjdXJyZW50RGF0ZS5nZXRIb3VycygpfToke2N1cnJlbnREYXRlLmdldE1pbnV0ZXMoKX1gLFxuICAgICk7XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlVGltZVNsb3RzLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBuZWFyZXN0VGltZVZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLmRhdGVGaWVsZCkge1xuICAgICAgY29uc3QgdGltZSA9IHRoaXMudGltZXBpY2tlclNlcnZpY2UuZ2V0TG9jYWxpemVkVGltZUZvcm1hdCh0aGlzLnZhbHVlLCB0aGlzLnVzZUxvY2FsZSk7XG4gICAgICB0aGlzLmRhdGVGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aW1lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9BY3RpdmVPcHRpb24ob3B0aW9uOiBUaW1lcGlja2VyT3B0aW9uQ29tcG9uZW50LCBfb3B0czogU2Nyb2xsSW50b1ZpZXdPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBpZiAoaXNGdW5jdGlvbihvcHRpb24uZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KSkge1xuICAgICAgb3B0aW9uLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgLi4uX29wdHMgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LXRpbWVwaWNrZXJfX3dyYXBwZXJcIj5cbiAgPGlucHV0IFt2YWx1ZV09XCJ2YWx1ZVwiIG9keFRpbWVwaWNrZXJDb250cm9sIHR5cGU9XCJ0ZXh0XCIgLz5cbjwvZGl2PlxuXG48b2R4LWFjdGlvbi1ncm91cCBjbGFzcz1cIm9keC1uby1tYXJnaW5cIj5cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBjbGFzcz1cIm9keC10aW1lcGlja2VyX190cmlnZ2VyXCJcbiAgICBvZHhCdXR0b25cbiAgICBzaXplPVwic21hbGxcIlxuICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgYXJpYS1sYWJlbD1cIlNlbGVjdCB0aW1lXCJcbiAgICBbb2R4RHJvcGRvd25dPVwidGltZUxpc3RcIlxuICAgIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcgfVwiXG4gICAgW29keERyb3Bkb3duVHJpZ2dlckVsZW1lbnRdPVwiZHJvcGRvd25UcmlnZ2VyLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJlbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIlxuICAgIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwib25PcGVuKClcIlxuICA+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIiAvPlxuICA8L2J1dHRvbj5cbjwvb2R4LWFjdGlvbi1ncm91cD5cblxuPG5nLXRlbXBsYXRlICN0aW1lTGlzdD5cbiAgPGRpdiBjbGFzcz1cIm9keC10aW1lcGlja2VyX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgQGZvciAodGltZSBvZiB0aW1lU3RhbXBzTGlzdDsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8b2R4LXRpbWVwaWNrZXItb3B0aW9uIFt2YWx1ZV09XCJ0aW1lXCIgW2Rpc2FibGVkXT1cIiFpblRpbWVSYW5nZSh0aW1lKVwiIChzZWxlY3RlZCk9XCJ0aW1lU2VsZWN0ZWQoJGV2ZW50KVwiPnt7IHRpbWUgfX08L29keC10aW1lcGlja2VyLW9wdGlvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -9,7 +9,7 @@ import { collapse, expand, fadeIn, slideInRight } from '@odx/angular/animations'
9
9
  import { ChipComponent } from '@odx/angular/components/chip';
10
10
  import { HeaderComponent } from '@odx/angular/components/header';
11
11
  import { CSSComponent } from '@odx/angular/internal';
12
- import { deferFn, injectElement, px, setAttribute, trackById } from '@odx/angular/utils';
12
+ import { deferFn, injectElement, px, setAttribute } from '@odx/angular/utils';
13
13
  import { map } from 'rxjs';
14
14
  import { ToastService } from '../../toast.service';
15
15
  import { ToastItemComponent } from '../toast-item/toast-item.component';
@@ -30,7 +30,6 @@ let ToastContainerComponent = class ToastContainerComponent {
30
30
  this.windowRef = inject(WindowRef);
31
31
  this.renderer = inject(Renderer2);
32
32
  this.toastService = inject(ToastService);
33
- this.trackById = trackById;
34
33
  this.element = injectElement();
35
34
  this.items$ = this.toastService.toasts$.pipe(map((refs) => refs.slice(0, this.maxItems)));
36
35
  this.hiddenToasts$ = this.toastService.toasts$.pipe(map((refs) => Math.max(0, refs.length - this.maxItems)));
@@ -75,7 +74,7 @@ let ToastContainerComponent = class ToastContainerComponent {
75
74
  deferFn(() => this.element.nativeElement?.showPopover?.());
76
75
  }
77
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "descriptionContext", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "@for (toastRef of items$ | async; track toastRef.id) {\n <odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n />\n}\n@if (hiddenToasts$ | async; as more) {\n <odx-chip class=\"odx-toast-container__counter\">{{ more }} more Notifications</odx-chip>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "descriptionContext", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
79
78
  trigger('slide', [
80
79
  transition(':enter', group([
81
80
  useAnimation(expand),
@@ -101,11 +100,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
101
100
  ])),
102
101
  transition(':leave', group([useAnimation(collapse)])),
103
102
  ]),
104
- ], template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n" }]
103
+ ], template: "@for (toastRef of items$ | async; track toastRef.id) {\n <odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n />\n}\n@if (hiddenToasts$ | async; as more) {\n <odx-chip class=\"odx-toast-container__counter\">{{ more }} more Notifications</odx-chip>\n}\n" }]
105
104
  }], propDecorators: { maxItems: [{
106
105
  type: Input,
107
106
  args: [{ transform: numberAttribute }]
108
107
  }], dismiss: [{
109
108
  type: Output
110
109
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxP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LEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztnQ0FDcEUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7NkJBQ3pFLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RELENBQUM7cUJBQ0g7OEJBdUJNLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBU3JCLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncm91cCwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgY29sbGFwc2UsIGV4cGFuZCwgZmFkZUluLCBzbGlkZUluUmlnaHQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGlwQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2hpcCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGRlZmVyRm4sIGluamVjdEVsZW1lbnQsIHB4LCBzZXRBdHRyaWJ1dGUsIHRyYWNrQnlJZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0UmVmIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9hc3QtaXRlbS90b2FzdC1pdGVtLmNvbXBvbmVudCc7XG5cbmNvbnN0IFRPQVNUX0FOSU1BVElPTl9ERUxBWSA9ICcxMjVtcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgdG9hc3Qgbm90aWZpY2F0aW9ucy4gVGhpcyBjb21wb25lbnQgbWFuYWdlcyBhbmQgYXJyYW5nZXMgdG9hc3QgbWVzc2FnZXMsXG4gKiBoYW5kbGluZyBhbmltYXRpb25zIGZvciBlbnRlcmluZyBhbmQgbGVhdmluZyB0b2FzdHMuIEl0IGVuc3VyZXMgdGhhdCBvbmx5IGEgbGltaXRlZCBudW1iZXIgb2YgdG9hc3RzIGFyZSBzaG93biBhdCB0aGUgc2FtZSB0aW1lLFxuICogYmFzZWQgb24gdGhlIGBtYXhJdGVtc2AgaW5wdXQuIFRoZSBjb250YWluZXIgbGlzdGVucyBmb3IgdG9hc3QgZXZlbnRzIGZyb20gdGhlIGBUb2FzdFNlcnZpY2VgIHRvIHVwZGF0ZSBpdHMgbGlzdCBvZiB0b2FzdHMgZHluYW1pY2FsbHkuXG4gKlxuICogVGhlIGNvbXBvbmVudCB1c2VzIGEgZ3JvdXAgb2YgYW5pbWF0aW9ucyB0byBzbGlkZSB0b2FzdHMgaW4gYW5kIG91dCBzbW9vdGhseSBhbmQgYWxzbyBwcm92aWRlcyBhbiBvdXRwdXQgZm9yIHdoZW4gYSB0b2FzdCBpcyBkaXNtaXNzZWQuXG4gKiBJdCdzIGRlc2lnbmVkIHRvIGludGVncmF0ZSB3aXRoIGEgc2luZ2xlIGluc3RhbmNlIHBlciBhcHBsaWNhdGlvbiwgZW5zdXJpbmcgbm8gbW9yZSB0aGFuIG9uZSB0b2FzdCBjb250YWluZXIgaXMgaW5pdGlhbGl6ZWQuXG4gKi9cbkBDU1NDb21wb25lbnQoJ3RvYXN0LWNvbnRhaW5lcicpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdG9hc3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGlwQ29tcG9uZW50LCBUb2FzdEl0ZW1Db21wb25lbnRdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2xpZGUnLCBbXG4gICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgZ3JvdXAoW1xuICAgICAgICAgIHVzZUFuaW1hdGlvbihleHBhbmQpLFxuICAgICAgICAgIHVzZUFuaW1hdGlvbihmYWRlSW4oKSwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICAgIHVzZUFuaW1hdGlvbihzbGlkZUluUmlnaHQsIHsgcGFyYW1zOiB7IGRlbGF5OiBUT0FTVF9BTklNQVRJT05fREVMQVkgfSB9KSxcbiAgICAgICAgXSksXG4gICAgICApLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihjb2xsYXBzZSldKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgSU5JVElBTElaRUQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhY2tCeUlkID0gdHJhY2tCeUlkO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPFRvYXN0UmVmW10+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gcmVmcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1zKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuVG9hc3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gTWF0aC5tYXgoMCwgcmVmcy5sZW5ndGggLSB0aGlzLm1heEl0ZW1zKSkpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB0b2FzdHMgdGhhdCBjYW4gYmUgZGlzcGxheWVkIGF0IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXhJdGVtcyA9IDM7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYSB0b2FzdCBpcyBkaXNtaXNzZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7VG9hc3RSZWZ9IC0gVGhlIHRvYXN0IHJlZmVyZW5jZSB0aGF0IHdhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSB0aGlzLnRvYXN0U2VydmljZS5vblRvYXN0UmVtb3ZlJDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BvcG92ZXInLCAnbWFudWFsJyk7XG4gICAgaWYgKFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIHRvYXN0IGNvbnRhaW5lciBwZXIgYXBwbGljYXRpb24gYWxsb3dlZCcpO1xuICAgIH1cbiAgICBUb2FzdENvbnRhaW5lckNvbXBvbmVudC5JTklUSUFMSVpFRCA9IHRydWU7XG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IHRoaXMud2luZG93UmVmLnF1ZXJ5QnlDb21wb25lbnQoSGVhZGVyQ29tcG9uZW50KTtcbiAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHB4KGhlYWRlckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVBvcHZlclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EaXNtaXNzKGl0ZW1SZWY6IFRvYXN0UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzcyhpdGVtUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9wdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgYW55KT8uaGlkZVBvcG92ZXI/LigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZGVmZXJGbigoKSA9PiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgYW55KT8uc2hvd1BvcG92ZXI/LigpKTtcbiAgfVxufVxuIiwiPG9keC10b2FzdFxuICBAc2xpZGVcbiAgW2lkXT1cInRvYXN0UmVmLmlkXCJcbiAgW3RpdGxlXT1cInRvYXN0UmVmLml0ZW0udGl0bGVcIlxuICBbZGVzY3JpcHRpb25dPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvblwiXG4gIFtkZXNjcmlwdGlvbkNvbnRleHRdPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvbkNvbnRleHRcIlxuICBbYWN0aW9uc109XCJ0b2FzdFJlZi5pdGVtLmFjdGlvbnMgPz8gW11cIlxuICBbdmFyaWFudF09XCJ0b2FzdFJlZi5pdGVtLnZhcmlhbnRcIlxuICBbb3B0aW9uc109XCJ0b2FzdFJlZi5vcHRpb25zXCJcbiAgKGRpc21pc3MpPVwib25EaXNtaXNzKHRvYXN0UmVmKVwiXG4gICpuZ0Zvcj1cImxldCB0b2FzdFJlZiBvZiBpdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUlkXCJcbj48L29keC10b2FzdD5cbjxvZHgtY2hpcCBjbGFzcz1cIm9keC10b2FzdC1jb250YWluZXJfX2NvdW50ZXJcIiAqbmdJZj1cImhpZGRlblRvYXN0cyQgfCBhc3luYyBhcyBtb3JlXCI+e3sgbW9yZSB9fSBtb3JlIE5vdGlmaWNhdGlvbnM8L29keC1jaGlwPlxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBRXhFLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDO0FBRXRDOzs7Ozs7O0dBT0c7QUF1QkksSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUFBN0I7UUFHWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUEyQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLGtCQUFhLEdBQXVCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1STs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFcEI7Ozs7V0FJRztRQUVhLFlBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztLQTZCNUQ7O2FBdkRnQixnQkFBVyxHQUFHLEtBQUssQUFBUixDQUFTO0lBNEI1QixlQUFlO1FBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSx5QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELHlCQUF1QixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2RSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFTSxXQUFXO1FBQ2hCLHlCQUF1QixDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxPQUFpQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLDhEQUE4RDtRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQXFCLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNyRCw4REFBOEQ7UUFDOUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBcUIsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0F2RFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsb0dBa0JkLGVBQWUsOERDN0VyQyx1akJBZ0JBLDJDRDRCWSxZQUFZLG9GQUFFLGFBQWEsb0hBQUUsa0JBQWtCLDZKQUM3QztZQUNWLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsVUFBVSxDQUNSLFFBQVEsRUFDUixLQUFLLENBQUM7b0JBQ0osWUFBWSxDQUFDLE1BQU0sQ0FBQztvQkFDcEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztvQkFDcEUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7aUJBQ3pFLENBQUMsQ0FDSDtnQkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEQsQ0FBQztTQUNIOztBQUVVLHVCQUF1QjtJQXRCbkMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO0dBc0JuQix1QkFBdUIsQ0F3RG5DOzs0RkF4RFksdUJBQXVCO2tCQXJCbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FFbkIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxjQUM5Qzt3QkFDVixPQUFPLENBQUMsT0FBTyxFQUFFOzRCQUNmLFVBQVUsQ0FDUixRQUFRLEVBQ1IsS0FBSyxDQUFDO2dDQUNKLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0NBQ3BCLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7Z0NBQ3BFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDOzZCQUN6RSxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN0RCxDQUFDO3FCQUNIOzhCQXFCTSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVNyQixPQUFPO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JvdXAsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGNvbGxhcHNlLCBleHBhbmQsIGZhZGVJbiwgc2xpZGVJblJpZ2h0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hpcENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NoaXAnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaGVhZGVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBweCwgc2V0QXR0cmlidXRlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RSZWYgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50JztcblxuY29uc3QgVE9BU1RfQU5JTUFUSU9OX0RFTEFZID0gJzEyNW1zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGFpbmVyIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyB0b2FzdCBub3RpZmljYXRpb25zLiBUaGlzIGNvbXBvbmVudCBtYW5hZ2VzIGFuZCBhcnJhbmdlcyB0b2FzdCBtZXNzYWdlcyxcbiAqIGhhbmRsaW5nIGFuaW1hdGlvbnMgZm9yIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRvYXN0cy4gSXQgZW5zdXJlcyB0aGF0IG9ubHkgYSBsaW1pdGVkIG51bWJlciBvZiB0b2FzdHMgYXJlIHNob3duIGF0IHRoZSBzYW1lIHRpbWUsXG4gKiBiYXNlZCBvbiB0aGUgYG1heEl0ZW1zYCBpbnB1dC4gVGhlIGNvbnRhaW5lciBsaXN0ZW5zIGZvciB0b2FzdCBldmVudHMgZnJvbSB0aGUgYFRvYXN0U2VydmljZWAgdG8gdXBkYXRlIGl0cyBsaXN0IG9mIHRvYXN0cyBkeW5hbWljYWxseS5cbiAqXG4gKiBUaGUgY29tcG9uZW50IHVzZXMgYSBncm91cCBvZiBhbmltYXRpb25zIHRvIHNsaWRlIHRvYXN0cyBpbiBhbmQgb3V0IHNtb290aGx5IGFuZCBhbHNvIHByb3ZpZGVzIGFuIG91dHB1dCBmb3Igd2hlbiBhIHRvYXN0IGlzIGRpc21pc3NlZC5cbiAqIEl0J3MgZGVzaWduZWQgdG8gaW50ZWdyYXRlIHdpdGggYSBzaW5nbGUgaW5zdGFuY2UgcGVyIGFwcGxpY2F0aW9uLCBlbnN1cmluZyBubyBtb3JlIHRoYW4gb25lIHRvYXN0IGNvbnRhaW5lciBpcyBpbml0aWFsaXplZC5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9hc3QtY29udGFpbmVyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10b2FzdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoaXBDb21wb25lbnQsIFRvYXN0SXRlbUNvbXBvbmVudF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZScsIFtcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGV4cGFuZCksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGZhZGVJbigpLCB7IHBhcmFtczogeyBkZWxheTogVE9BU1RfQU5JTUFUSU9OX0RFTEFZIH0gfSksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKHNsaWRlSW5SaWdodCwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBncm91cChbdXNlQW5pbWF0aW9uKGNvbGxhcHNlKV0pKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBJTklUSUFMSVpFRCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWYgPSBpbmplY3QoV2luZG93UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPFRvYXN0UmVmW10+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gcmVmcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1zKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuVG9hc3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gTWF0aC5tYXgoMCwgcmVmcy5sZW5ndGggLSB0aGlzLm1heEl0ZW1zKSkpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB0b2FzdHMgdGhhdCBjYW4gYmUgZGlzcGxheWVkIGF0IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXhJdGVtcyA9IDM7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYSB0b2FzdCBpcyBkaXNtaXNzZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7VG9hc3RSZWZ9IC0gVGhlIHRvYXN0IHJlZmVyZW5jZSB0aGF0IHdhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSB0aGlzLnRvYXN0U2VydmljZS5vblRvYXN0UmVtb3ZlJDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BvcG92ZXInLCAnbWFudWFsJyk7XG4gICAgaWYgKFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIHRvYXN0IGNvbnRhaW5lciBwZXIgYXBwbGljYXRpb24gYWxsb3dlZCcpO1xuICAgIH1cbiAgICBUb2FzdENvbnRhaW5lckNvbXBvbmVudC5JTklUSUFMSVpFRCA9IHRydWU7XG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IHRoaXMud2luZG93UmVmLnF1ZXJ5QnlDb21wb25lbnQoSGVhZGVyQ29tcG9uZW50KTtcbiAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHB4KGhlYWRlckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVBvcHZlclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EaXNtaXNzKGl0ZW1SZWY6IFRvYXN0UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzcyhpdGVtUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9wdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgYW55KT8uaGlkZVBvcG92ZXI/LigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZGVmZXJGbigoKSA9PiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgYW55KT8uc2hvd1BvcG92ZXI/LigpKTtcbiAgfVxufVxuIiwiQGZvciAodG9hc3RSZWYgb2YgaXRlbXMkIHwgYXN5bmM7IHRyYWNrIHRvYXN0UmVmLmlkKSB7XG4gIDxvZHgtdG9hc3RcbiAgICBAc2xpZGVcbiAgICBbaWRdPVwidG9hc3RSZWYuaWRcIlxuICAgIFt0aXRsZV09XCJ0b2FzdFJlZi5pdGVtLnRpdGxlXCJcbiAgICBbZGVzY3JpcHRpb25dPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ29udGV4dF09XCJ0b2FzdFJlZi5pdGVtLmRlc2NyaXB0aW9uQ29udGV4dFwiXG4gICAgW2FjdGlvbnNdPVwidG9hc3RSZWYuaXRlbS5hY3Rpb25zID8/IFtdXCJcbiAgICBbdmFyaWFudF09XCJ0b2FzdFJlZi5pdGVtLnZhcmlhbnRcIlxuICAgIFtvcHRpb25zXT1cInRvYXN0UmVmLm9wdGlvbnNcIlxuICAgIChkaXNtaXNzKT1cIm9uRGlzbWlzcyh0b2FzdFJlZilcIlxuICAvPlxufVxuQGlmIChoaWRkZW5Ub2FzdHMkIHwgYXN5bmM7IGFzIG1vcmUpIHtcbiAgPG9keC1jaGlwIGNsYXNzPVwib2R4LXRvYXN0LWNvbnRhaW5lcl9fY291bnRlclwiPnt7IG1vcmUgfX0gbW9yZSBOb3RpZmljYXRpb25zPC9vZHgtY2hpcD5cbn1cbiJdfQ==
@@ -10,7 +10,6 @@ import { injectElement, untilDestroyed } from '@odx/angular/utils';
10
10
  import { tap, timer } from 'rxjs';
11
11
  import { ToastVariant } from '../../models';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common";
14
13
  /**
15
14
  * A component that represents a single toast notification. This component is responsible for displaying
16
15
  * message content, handling toast actions, and managing the automatic dismissal of the toast based on a duration.
@@ -65,7 +64,7 @@ let ToastItemComponent = class ToastItemComponent {
65
64
  this.dismiss.next();
66
65
  }
67
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToastItemComponent, isStandalone: true, selector: "odx-toast", inputs: { id: "id", title: "title", description: "description", descriptionContext: "descriptionContext", variant: "variant", actions: "actions", options: "options" }, outputs: { dismiss: "dismiss" }, host: { properties: { "attr.id": "id" } }, ngImport: i0, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\"></odx-icon>\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\"> </ng-template>\n </p>\n <p class=\"odx-toast-item__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\"> </ng-template>\n </p>\n </div>\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\" *ngIf=\"options?.dismissable\">\n <odx-icon name=\"close\" iconSet=\"core\"></odx-icon>\n </button>\n</div>\n<odx-action-group class=\"odx-toast-item__buttons\" *ngIf=\"!!actions?.length\">\n <button odxButton (click)=\"action.action()\" *ngFor=\"let action of actions\">\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft *ngIf=\"action.leftIcon\"></odx-icon>\n <ng-template [odxDynamicView]=\"action.label\"> </ng-template>\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight *ngIf=\"action.rightIcon\"></odx-icon>\n </button>\n</odx-action-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToastItemComponent, isStandalone: true, selector: "odx-toast", inputs: { id: "id", title: "title", description: "description", descriptionContext: "descriptionContext", variant: "variant", actions: "actions", options: "options" }, outputs: { dismiss: "dismiss" }, host: { properties: { "attr.id": "id" } }, ngImport: i0, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\" />\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\" />\n </p>\n @if (description) {\n <p class=\"odx-toast-item__description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\" />\n </p>\n }\n </div>\n @if (options.dismissable) {\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\"><odx-icon name=\"close\" iconSet=\"core\" /></button>\n }\n</div>\n@if (!!actions?.length) {\n <odx-action-group class=\"odx-toast-item__buttons\">\n @for (action of actions; track $index) {\n <button odxButton (click)=\"action.action()\">\n @if (action.leftIcon) {\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft />\n }\n <ng-template [odxDynamicView]=\"action.label\" />\n @if (action.rightIcon) {\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight />\n }\n </button>\n }\n </odx-action-group>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
69
68
  };
70
69
  __decorate([
71
70
  CSSModifier(),
@@ -79,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
79
78
  type: Component,
80
79
  args: [{ selector: 'odx-toast', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CommonModule, IconComponent, ButtonComponent, DynamicViewDirective, ActionGroupComponent], host: {
81
80
  '[attr.id]': 'id',
82
- }, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\"></odx-icon>\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\"> </ng-template>\n </p>\n <p class=\"odx-toast-item__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\"> </ng-template>\n </p>\n </div>\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\" *ngIf=\"options?.dismissable\">\n <odx-icon name=\"close\" iconSet=\"core\"></odx-icon>\n </button>\n</div>\n<odx-action-group class=\"odx-toast-item__buttons\" *ngIf=\"!!actions?.length\">\n <button odxButton (click)=\"action.action()\" *ngFor=\"let action of actions\">\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft *ngIf=\"action.leftIcon\"></odx-icon>\n <ng-template [odxDynamicView]=\"action.label\"> </ng-template>\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight *ngIf=\"action.rightIcon\"></odx-icon>\n </button>\n</odx-action-group>\n" }]
81
+ }, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\" />\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\" />\n </p>\n @if (description) {\n <p class=\"odx-toast-item__description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\" />\n </p>\n }\n </div>\n @if (options.dismissable) {\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\"><odx-icon name=\"close\" iconSet=\"core\" /></button>\n }\n</div>\n@if (!!actions?.length) {\n <odx-action-group class=\"odx-toast-item__buttons\">\n @for (action of actions; track $index) {\n <button odxButton (click)=\"action.action()\">\n @if (action.leftIcon) {\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft />\n }\n <ng-template [odxDynamicView]=\"action.label\" />\n @if (action.rightIcon) {\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight />\n }\n </button>\n }\n </odx-action-group>\n}\n" }]
83
82
  }], propDecorators: { id: [{
84
83
  type: Input
85
84
  }], title: [{
@@ -97,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
97
96
  }], dismiss: [{
98
97
  type: Output
99
98
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QtaXRlbS90b2FzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFRLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBc0Msb0JBQW9CLEVBQXlCLE1BQU0sK0JBQStCLENBQUM7QUFDaEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUE2QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUV2RTs7OztHQUlHO0FBYUksSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBa0I7SUFBeEI7UUFDWSx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV2QyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUF3RDFDOzs7OztXQUtHO1FBR0ksWUFBTyxHQUF5QixZQUFZLENBQUMsT0FBTyxDQUFDO1FBbUI1RDs7OztXQUlHO1FBRWEsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FpQnBEO0lBeEdDOzs7Ozs7T0FNRztJQUNILElBQVcsSUFBSTtRQUNiLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLEtBQUssWUFBWSxDQUFDLE9BQU87Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssWUFBWSxDQUFDLE1BQU07Z0JBQ3RCLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssWUFBWSxDQUFDLE9BQU87Z0JBQ3ZCLE9BQU8sT0FBTyxDQUFDO1lBQ2pCO2dCQUNFLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBdUVNLFFBQVE7UUFDYixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsUUFBUSxDQUFDO2lCQUNaLElBQUksQ0FDSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFDekIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUM1QjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVTLFNBQVM7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQTVHVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix5VEM1Qi9CLHFuQ0FxQkEsMkNERVksWUFBWSxnUUFBRSxhQUFhLGtIQUFFLGVBQWUseUdBQUUsb0JBQW9CLHVKQUFFLG9CQUFvQjs7QUF3RTNGO0lBRk4sV0FBVyxFQUFFOzttREFFOEM7QUFuRWpELGtCQUFrQjtJQVo5QixZQUFZLENBQUMsWUFBWSxDQUFDO0dBWWQsa0JBQWtCLENBNkc5Qjs7NEZBN0dZLGtCQUFrQjtrQkFYOUIsU0FBUzsrQkFDRSxXQUFXLGNBRVQsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsUUFDN0Y7d0JBQ0osV0FBVyxFQUFFLElBQUk7cUJBQ2xCOzhCQWtDTSxFQUFFO3NCQURSLEtBQUs7Z0JBVUMsS0FBSztzQkFEWCxLQUFLO2dCQVNDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQVdDLE9BQU87c0JBRGIsS0FBSztnQkFTQyxPQUFPO3NCQURiLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLO2dCQVNVLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFR5cGUsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljQ29udGVudCwgRHluYW1pY1RleHRDb250ZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSwgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb24sIFRvYXN0T3B0aW9ucywgVG9hc3RWYXJpYW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSBzaW5nbGUgdG9hc3Qgbm90aWZpY2F0aW9uLiBUaGlzIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSBmb3IgZGlzcGxheWluZ1xuICogbWVzc2FnZSBjb250ZW50LCBoYW5kbGluZyB0b2FzdCBhY3Rpb25zLCBhbmQgbWFuYWdpbmcgdGhlIGF1dG9tYXRpYyBkaXNtaXNzYWwgb2YgdGhlIHRvYXN0IGJhc2VkIG9uIGEgZHVyYXRpb24uXG4gKiBJdCBzdXBwb3J0cyBkeW5hbWljIGNvbnRlbnQgZm9yIGRlc2NyaXB0aW9ucyBhbmQgY2FuIHNob3cgYW4gb3B0aW9uYWwgc2V0IG9mIGFjdGlvbnMuXG4gKi9cbkBDU1NDb21wb25lbnQoJ3RvYXN0LWl0ZW0nKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LXRvYXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSwgQWN0aW9uR3JvdXBDb21wb25lbnRdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgaWNvbiB0byBkaXNwbGF5IGJhc2VkIG9uIHRoZSB0b2FzdCdzIHZhcmlhbnQuXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBpY29uIGNsYXNzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBpY29uIGNsYXNzIG5hbWUuXG4gICAqIEBkZWZhdWx0ICdpbmZvJ1xuICAgKi9cbiAgcHVibGljIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnZhcmlhbnQpIHtcbiAgICAgIGNhc2UgVG9hc3RWYXJpYW50LldBUk5JTkc6XG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XG4gICAgICBjYXNlIFRvYXN0VmFyaWFudC5EQU5HRVI6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgY2FzZSBUb2FzdFZhcmlhbnQuU1VDQ0VTUzpcbiAgICAgICAgcmV0dXJuICdjaGVjayc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2luZm8nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRvYXN0IGl0ZW0sIHR5cGljYWxseSBwcm92aWRlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHJlcXVpcmVkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWluIHRpdGxlIG9mIHRoZSB0b2FzdCwgZGlzcGxheWVkIHByb21pbmVudGx5LlxuICAgKlxuICAgKiBAcmVxdWlyZWRcbiAgICogQHR5cGUge0R5bmFtaWNUZXh0Q29udGVudH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aXRsZSE6IER5bmFtaWNUZXh0Q29udGVudDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoZSB0b2FzdC4gVGhpcyBjYW4gYmUgcGxhaW4gdGV4dCBvciBhIGR5bmFtaWMgdGVtcGxhdGUuXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljQ29udGVudCB8IG51bGx9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVzY3JpcHRpb24/OiBEeW5hbWljQ29udGVudCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIENvbnRleHQgZm9yIHJlbmRlcmluZyB0aGUgZHluYW1pYyBjb21wb25lbnQgb2YgdGhlIGRlc2NyaXB0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7R2V0RHluYW1pY1ZpZXdDb250ZXh0PFR5cGU8dW5rbm93bj4+IHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRlc2NyaXB0aW9uQ29udGV4dD86IEdldER5bmFtaWNWaWV3Q29udGV4dDxUeXBlPHVua25vd24+PjtcblxuICAvKipcbiAgICogVGhlIHZhcmlhbnQgb2YgdGhlIHRvYXN0IHdoaWNoIGluZmx1ZW5jZXMgdGhlIGljb24gYW5kIHN0eWxpbmcuXG4gICAqXG4gICAqIEB0eXBlIHtUb2FzdFZhcmlhbnQgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBUb2FzdFZhcmlhbnQuREVGQVVMVFxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KClcbiAgcHVibGljIHZhcmlhbnQ/OiBUb2FzdFZhcmlhbnQgfCBudWxsID0gVG9hc3RWYXJpYW50LkRFRkFVTFQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFjdGlvbnMgcmVsYXRlZCB0byB0aGUgdG9hc3QsIHN1Y2ggYXMgJ3JldHJ5JyBvciAnZGlzbWlzcycuXG4gICAqXG4gICAqIEB0eXBlIHtUb2FzdEFjdGlvbltdIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGlvbnM/OiBUb2FzdEFjdGlvbltdO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB0b2FzdCwgaW5jbHVkaW5nIGl0cyBkdXJhdGlvbiBhbmQgZGlzbWlzc2FsIGJlaGF2aW9yLlxuICAgKlxuICAgKiBAcmVxdWlyZWRcbiAgICogQHR5cGUge1RvYXN0T3B0aW9uc31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zITogVG9hc3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSB0b2FzdCBpcyBkaXNtaXNzZWQsIGVpdGhlciB0aHJvdWdoIGFjdGlvbiBvciBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZW1pdHMge3ZvaWR9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZHVyYXRpb24gfSA9IHRoaXMub3B0aW9ucztcbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICB0aW1lcihkdXJhdGlvbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5vbkRpc21pc3MoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9keC10b2FzdC1pdGVtX19jb250ZW50XCI+XG4gIDxvZHgtaWNvbiBbbmFtZV09XCJpY29uXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuICA8ZGl2IGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX3RleHQtY29udGVudFwiPlxuICAgIDxwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX3RpdGxlXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInRpdGxlXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2Rlc2NyaXB0aW9uXCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJkZXNjcmlwdGlvblwiIFtvZHhEeW5hbWljVmlld0NvbnRleHRdPVwiZGVzY3JpcHRpb25Db250ZXh0XCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPC9wPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiBvZHhCdXR0b24gY2xhc3M9XCJvZHgtdG9hc3QtaXRlbV9fY2xvc2VcIiAoY2xpY2spPVwib25EaXNtaXNzKClcIiAqbmdJZj1cIm9wdGlvbnM/LmRpc21pc3NhYmxlXCI+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjbG9zZVwiIGljb25TZXQ9XCJjb3JlXCI+PC9vZHgtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxvZHgtYWN0aW9uLWdyb3VwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2J1dHRvbnNcIiAqbmdJZj1cIiEhYWN0aW9ucz8ubGVuZ3RoXCI+XG4gIDxidXR0b24gb2R4QnV0dG9uIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKClcIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICA8b2R4LWljb24gW25hbWVdPVwiYWN0aW9uLmxlZnRJY29uXCIgaWNvblNldD1cImNvcmVcIiBhbGlnbkxlZnQgKm5nSWY9XCJhY3Rpb24ubGVmdEljb25cIj48L29keC1pY29uPlxuICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwiYWN0aW9uLmxhYmVsXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG9keC1pY29uIFtuYW1lXT1cImFjdGlvbi5yaWdodEljb25cIiBpY29uU2V0PVwiY29yZVwiIGFsaWduUmlnaHQgKm5nSWY9XCJhY3Rpb24ucmlnaHRJY29uXCI+PC9vZHgtaWNvbj5cbiAgPC9idXR0b24+XG48L29keC1hY3Rpb24tZ3JvdXA+XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QtaXRlbS90b2FzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFRLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBc0Msb0JBQW9CLEVBQXlCLE1BQU0sK0JBQStCLENBQUM7QUFDaEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUE2QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXZFOzs7O0dBSUc7QUFhSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUF4QjtRQUNZLHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXZDLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQXdEMUM7Ozs7O1dBS0c7UUFHSSxZQUFPLEdBQXlCLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFtQjVEOzs7O1dBSUc7UUFFYSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQWlCcEQ7SUF4R0M7Ozs7OztPQU1HO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxZQUFZLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTyxPQUFPLENBQUM7WUFDakI7Z0JBQ0UsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUF1RU0sUUFBUTtRQUNiLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2xDLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxRQUFRLENBQUM7aUJBQ1osSUFBSSxDQUNILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUN6QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQzVCO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRVMsU0FBUztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBNUdVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHlUQzVCL0IsNm9DQStCQSwyQ0RSWSxZQUFZLCtCQUFFLGFBQWEsa0hBQUUsZUFBZSx5R0FBRSxvQkFBb0IsdUpBQUUsb0JBQW9COztBQXdFM0Y7SUFGTixXQUFXLEVBQUU7O21EQUU4QztBQW5FakQsa0JBQWtCO0lBWjlCLFlBQVksQ0FBQyxZQUFZLENBQUM7R0FZZCxrQkFBa0IsQ0E2RzlCOzs0RkE3R1ksa0JBQWtCO2tCQVg5QixTQUFTOytCQUNFLFdBQVcsY0FFVCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxRQUM3Rjt3QkFDSixXQUFXLEVBQUUsSUFBSTtxQkFDbEI7OEJBa0NNLEVBQUU7c0JBRFIsS0FBSztnQkFVQyxLQUFLO3NCQURYLEtBQUs7Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBV0MsT0FBTztzQkFEYixLQUFLO2dCQVNDLE9BQU87c0JBRGIsS0FBSztnQkFVQyxPQUFPO3NCQURiLEtBQUs7Z0JBU1UsT0FBTztzQkFEdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVHlwZSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNDb250ZW50LCBEeW5hbWljVGV4dENvbnRlbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlLCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBBY3Rpb25Hcm91cENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2FjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdEFjdGlvbiwgVG9hc3RPcHRpb25zLCBUb2FzdFZhcmlhbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIHNpbmdsZSB0b2FzdCBub3RpZmljYXRpb24uIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIGZvciBkaXNwbGF5aW5nXG4gKiBtZXNzYWdlIGNvbnRlbnQsIGhhbmRsaW5nIHRvYXN0IGFjdGlvbnMsIGFuZCBtYW5hZ2luZyB0aGUgYXV0b21hdGljIGRpc21pc3NhbCBvZiB0aGUgdG9hc3QgYmFzZWQgb24gYSBkdXJhdGlvbi5cbiAqIEl0IHN1cHBvcnRzIGR5bmFtaWMgY29udGVudCBmb3IgZGVzY3JpcHRpb25zIGFuZCBjYW4gc2hvdyBhbiBvcHRpb25hbCBzZXQgb2YgYWN0aW9ucy5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9hc3QtaXRlbScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdG9hc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlLCBBY3Rpb25Hcm91cENvbXBvbmVudF0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBpY29uIHRvIGRpc3BsYXkgYmFzZWQgb24gdGhlIHRvYXN0J3MgdmFyaWFudC5cbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGljb24gY2xhc3MuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGljb24gY2xhc3MgbmFtZS5cbiAgICogQGRlZmF1bHQgJ2luZm8nXG4gICAqL1xuICBwdWJsaWMgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgY2FzZSBUb2FzdFZhcmlhbnQuV0FSTklORzpcbiAgICAgICAgcmV0dXJuICd3YXJuaW5nJztcbiAgICAgIGNhc2UgVG9hc3RWYXJpYW50LkRBTkdFUjpcbiAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICBjYXNlIFRvYXN0VmFyaWFudC5TVUNDRVNTOlxuICAgICAgICByZXR1cm4gJ2NoZWNrJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdG9hc3QgaXRlbSwgdHlwaWNhbGx5IHByb3ZpZGVkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcmVxdWlyZWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZCE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1haW4gdGl0bGUgb2YgdGhlIHRvYXN0LCBkaXNwbGF5ZWQgcHJvbWluZW50bHkuXG4gICAqXG4gICAqIEByZXF1aXJlZFxuICAgKiBAdHlwZSB7RHluYW1pY1RleHRDb250ZW50fVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRpdGxlITogRHluYW1pY1RleHRDb250ZW50O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIHRvYXN0LiBUaGlzIGNhbiBiZSBwbGFpbiB0ZXh0IG9yIGEgZHluYW1pYyB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHR5cGUge0R5bmFtaWNDb250ZW50IHwgbnVsbH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZXNjcmlwdGlvbj86IER5bmFtaWNDb250ZW50IHwgbnVsbDtcblxuICAvKipcbiAgICogQ29udGV4dCBmb3IgcmVuZGVyaW5nIHRoZSBkeW5hbWljIGNvbXBvbmVudCBvZiB0aGUgZGVzY3JpcHRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtHZXREeW5hbWljVmlld0NvbnRleHQ8VHlwZTx1bmtub3duPj4gfCB1bmRlZmluZWR9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVzY3JpcHRpb25Db250ZXh0PzogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFR5cGU8dW5rbm93bj4+O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFyaWFudCBvZiB0aGUgdG9hc3Qgd2hpY2ggaW5mbHVlbmNlcyB0aGUgaWNvbiBhbmQgc3R5bGluZy5cbiAgICpcbiAgICogQHR5cGUge1RvYXN0VmFyaWFudCB8IG51bGx9XG4gICAqIEBkZWZhdWx0IFRvYXN0VmFyaWFudC5ERUZBVUxUXG4gICAqL1xuICBAQ1NTTW9kaWZpZXIoKVxuICBASW5wdXQoKVxuICBwdWJsaWMgdmFyaWFudD86IFRvYXN0VmFyaWFudCB8IG51bGwgPSBUb2FzdFZhcmlhbnQuREVGQVVMVDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYWN0aW9ucyByZWxhdGVkIHRvIHRoZSB0b2FzdCwgc3VjaCBhcyAncmV0cnknIG9yICdkaXNtaXNzJy5cbiAgICpcbiAgICogQHR5cGUge1RvYXN0QWN0aW9uW10gfCB1bmRlZmluZWR9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aW9ucz86IFRvYXN0QWN0aW9uW107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRvYXN0LCBpbmNsdWRpbmcgaXRzIGR1cmF0aW9uIGFuZCBkaXNtaXNzYWwgYmVoYXZpb3IuXG4gICAqXG4gICAqIEByZXF1aXJlZFxuICAgKiBAdHlwZSB7VG9hc3RPcHRpb25zfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG9wdGlvbnMhOiBUb2FzdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHRvYXN0IGlzIGRpc21pc3NlZCwgZWl0aGVyIHRocm91Z2ggYWN0aW9uIG9yIGF1dG9tYXRpY2FsbHkuXG4gICAqXG4gICAqIEBlbWl0cyB7dm9pZH1cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZGlzbWlzcyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiB9ID0gdGhpcy5vcHRpb25zO1xuICAgIGlmIChkdXJhdGlvbiA+IDApIHtcbiAgICAgIHRpbWVyKGR1cmF0aW9uKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLm9uRGlzbWlzcygpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MubmV4dCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2NvbnRlbnRcIj5cbiAgPG9keC1pY29uIFtuYW1lXT1cImljb25cIiBpY29uU2V0PVwiY29yZVwiIC8+XG4gIDxkaXYgY2xhc3M9XCJvZHgtdG9hc3QtaXRlbV9fdGV4dC1jb250ZW50XCI+XG4gICAgPHAgY2xhc3M9XCJvZHgtdG9hc3QtaXRlbV9fdGl0bGVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwidGl0bGVcIiAvPlxuICAgIDwvcD5cbiAgICBAaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICA8cCBjbGFzcz1cIm9keC10b2FzdC1pdGVtX19kZXNjcmlwdGlvblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cImRlc2NyaXB0aW9uXCIgW29keER5bmFtaWNWaWV3Q29udGV4dF09XCJkZXNjcmlwdGlvbkNvbnRleHRcIiAvPlxuICAgICAgPC9wPlxuICAgIH1cbiAgPC9kaXY+XG4gIEBpZiAob3B0aW9ucy5kaXNtaXNzYWJsZSkge1xuICAgIDxidXR0b24gb2R4QnV0dG9uIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2Nsb3NlXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCI+PG9keC1pY29uIG5hbWU9XCJjbG9zZVwiIGljb25TZXQ9XCJjb3JlXCIgLz48L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG5AaWYgKCEhYWN0aW9ucz8ubGVuZ3RoKSB7XG4gIDxvZHgtYWN0aW9uLWdyb3VwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2J1dHRvbnNcIj5cbiAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8YnV0dG9uIG9keEJ1dHRvbiAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbigpXCI+XG4gICAgICAgIEBpZiAoYWN0aW9uLmxlZnRJY29uKSB7XG4gICAgICAgICAgPG9keC1pY29uIFtuYW1lXT1cImFjdGlvbi5sZWZ0SWNvblwiIGljb25TZXQ9XCJjb3JlXCIgYWxpZ25MZWZ0IC8+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJhY3Rpb24ubGFiZWxcIiAvPlxuICAgICAgICBAaWYgKGFjdGlvbi5yaWdodEljb24pIHtcbiAgICAgICAgICA8b2R4LWljb24gW25hbWVdPVwiYWN0aW9uLnJpZ2h0SWNvblwiIGljb25TZXQ9XCJjb3JlXCIgYWxpZ25SaWdodCAvPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvb2R4LWFjdGlvbi1ncm91cD5cbn1cbiJdfQ==