@tetacom/ng-components 1.4.18 → 1.4.19

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 (110) hide show
  1. package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +2 -2
  2. package/esm2022/common/contract/teta-content-ref.mjs +1 -1
  3. package/esm2022/common/service/dynamic-component.service.mjs +1 -1
  4. package/esm2022/common/util/array-util.mjs +1 -1
  5. package/esm2022/common/util/position-util.mjs +1 -1
  6. package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +3 -3
  7. package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +3 -3
  8. package/esm2022/component/avatar/avatar/avatar.component.mjs +3 -3
  9. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +1 -1
  10. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  11. package/esm2022/component/date-picker/base-calendar.mjs +1 -1
  12. package/esm2022/component/date-picker/base-picker.mjs +1 -1
  13. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +3 -3
  14. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +3 -3
  15. package/esm2022/component/date-picker/date-range/date-range.component.mjs +3 -3
  16. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +3 -3
  17. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +3 -3
  18. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +3 -3
  19. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +3 -3
  20. package/esm2022/component/divider/divider/divider.component.mjs +3 -3
  21. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +1 -1
  22. package/esm2022/component/dropdown/dropdown-base.mjs +1 -1
  23. package/esm2022/component/dropdown/dropdown.directive.mjs +1 -1
  24. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +3 -3
  25. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +3 -3
  26. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
  27. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +3 -3
  28. package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -3
  29. package/esm2022/component/filter/list-filter/list-filter.component.mjs +3 -3
  30. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -3
  31. package/esm2022/component/filter/string-filter/string-filter.component.mjs +1 -1
  32. package/esm2022/component/icon/icon.service.mjs +1 -1
  33. package/esm2022/component/input/input/input.component.mjs +3 -3
  34. package/esm2022/component/input/text-field/text-field.component.mjs +3 -3
  35. package/esm2022/component/message/message/message.component.mjs +3 -3
  36. package/esm2022/component/message/message-host/message-host.component.mjs +3 -3
  37. package/esm2022/component/modal/dialog/dialog.component.mjs +3 -3
  38. package/esm2022/component/modal/dialog.service.mjs +1 -1
  39. package/esm2022/component/modal/modal.service.mjs +1 -1
  40. package/esm2022/component/modal/model/modal-instance.mjs +1 -1
  41. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +1 -1
  42. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +3 -3
  43. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +4 -4
  44. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +16 -7
  45. package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
  46. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +1 -1
  47. package/esm2022/component/select/select/select.component.mjs +3 -3
  48. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +3 -3
  49. package/esm2022/component/stepper/stepper/stepper.component.mjs +3 -3
  50. package/esm2022/component/switch/switch/switch.component.mjs +1 -1
  51. package/esm2022/component/switch/switch-button/switch-button.component.mjs +1 -1
  52. package/esm2022/component/table/base/cell-component-base.mjs +1 -1
  53. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +3 -3
  54. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +3 -3
  55. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +3 -3
  56. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +3 -3
  57. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +3 -3
  58. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +3 -3
  59. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +3 -3
  60. package/esm2022/component/table/head-cell/head-cell.component.mjs +3 -3
  61. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +3 -3
  62. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +1 -1
  63. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
  64. package/esm2022/component/table/service/table.service.mjs +1 -1
  65. package/esm2022/component/table/table/table.component.mjs +1 -1
  66. package/esm2022/component/table/table-body/table-body.component.mjs +3 -3
  67. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +3 -3
  68. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +3 -3
  69. package/esm2022/component/table/table-head/table-head.component.mjs +3 -3
  70. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +3 -3
  71. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +3 -3
  72. package/esm2022/component/table/util/state-util.mjs +1 -1
  73. package/esm2022/component/tabs/tabs/tabs.component.mjs +3 -3
  74. package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
  75. package/esm2022/component/tree/tree/tree.component.mjs +3 -3
  76. package/esm2022/component/tree/tree-item/tree-item.component.mjs +1 -1
  77. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +1 -1
  78. package/esm2022/directive/auto-position/auto-position.directive.mjs +1 -1
  79. package/esm2022/directive/click-outside/click-outside.directive.mjs +1 -1
  80. package/esm2022/directive/context-menu/context-menu.directive.mjs +1 -1
  81. package/esm2022/directive/drag-drop/drag-container.directive.mjs +1 -1
  82. package/esm2022/directive/drag-drop/drag-drop.service.mjs +1 -1
  83. package/esm2022/directive/drag-drop/drag.directive.mjs +1 -1
  84. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +1 -1
  85. package/esm2022/directive/dynamic-content-base.directive.mjs +1 -1
  86. package/esm2022/directive/highlight/highlight.directive.mjs +1 -1
  87. package/esm2022/directive/hint/hint.directive.mjs +1 -1
  88. package/esm2022/directive/let/let.directive.mjs +1 -1
  89. package/esm2022/directive/loader/loader.directive.mjs +1 -1
  90. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
  91. package/esm2022/directive/only-number/only-number.directive.mjs +1 -1
  92. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +1 -1
  93. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +1 -1
  94. package/esm2022/directive/tooltip/tooltip.directive.mjs +1 -1
  95. package/esm2022/observable/animation-frame.mjs +1 -1
  96. package/esm2022/observable/zone-observable.mjs +1 -1
  97. package/esm2022/pipe/number-pipe/number.pipe.mjs +1 -1
  98. package/esm2022/pipe/util/number-helper.mjs +1 -1
  99. package/esm2022/util/date-util.mjs +1 -1
  100. package/esm2022/util/forms-util.mjs +1 -1
  101. package/fesm2022/tetacom-ng-components.mjs +111 -103
  102. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  103. package/package.json +1 -1
  104. package/style/accordion.scss +3 -1
  105. package/style/chips.scss +5 -1
  106. package/style/datepicker.scss +3 -1
  107. package/style/input.scss +3 -1
  108. package/style/select.scss +3 -1
  109. package/style/tabs.scss +3 -1
  110. package/style/tag.scss +3 -1
@@ -181,7 +181,7 @@ export class DateRangeComponent extends BasePicker {
181
181
  }
182
182
  onChange(date) { }
183
183
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.DatePipe }, { token: i2.TetaConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
184
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DateRangeComponent, isStandalone: true, selector: "teta-date-range", inputs: { date: "date", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, host: { properties: { "class.daterange": "this.classDaterange" } }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if ({ selectedDate: selectedDate | async }; as data) {\n <teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n >\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate || allowNull) {\n <div\n (click)=\"input.focus()\"\n class=\"position-absolute color-text-10\"\n style=\"cursor: text; user-select: none\"\n >\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n </teta-dropdown>\n}\n", styles: [""], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MaskitoModule }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i4.MaskitoCVA, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
185
185
  }
186
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DateRangeComponent, decorators: [{
187
187
  type: Component,
@@ -196,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
196
196
  DropdownContentDirective,
197
197
  RangeCalendarComponent,
198
198
  AsyncPipe,
199
- ], template: "@if ({selectedDate:selectedDate|async};as data) {\n<teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n>\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate||allowNull) {\n <div (click)=\"input.focus()\" class=\"position-absolute color-text-10\" style=\"cursor: text; user-select: none\">\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n</teta-dropdown>\n}\n" }]
199
+ ], template: "@if ({ selectedDate: selectedDate | async }; as data) {\n <teta-dropdown\n [appendToBody]=\"appendToBody\"\n [backdrop]=\"backdrop\"\n class=\"row row_auto\"\n [(open)]=\"open\"\n (openChange)=\"openChange($event)\"\n [viewType]=\"viewType\"\n [disabled]=\"disabled\"\n [verticalAlign]=\"verticalAlign\"\n [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside', 'enter']\"\n >\n <div\n tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_' + viewType\"\n [ngClass]=\"{ 'datepicker-head_invalid': invalid, 'datepicker-head_disabled': disabled }\"\n >\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_' + viewType\">\n <div class=\"row row_auto position-relative font-body-3 align-center\">\n <input\n [ngClass]=\"{ 'color-text-90': !disabled }\"\n [disabled]=\"disabled\"\n #input\n style=\"z-index: 1\"\n class=\"border-0 color-text-90\"\n (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\"\n />\n @if (data.selectedDate || allowNull) {\n <div\n (click)=\"input.focus()\"\n class=\"position-absolute color-text-10\"\n style=\"cursor: text; user-select: none\"\n >\n {{ placeholder }}\n </div>\n }\n </div>\n <teta-icon [name]=\"'calendar'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n @if (open) {\n <div class=\"row\">\n <teta-range-calendar\n [isDateNull]=\"date === null || (date?.from === null && date?.to === null)\"\n [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event, data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\"\n [locale]=\"locale | async\"\n ></teta-range-calendar>\n </div>\n }\n </div>\n </teta-dropdown>\n}\n" }]
200
200
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.DatePipe }, { type: i2.TetaConfigService }], propDecorators: { date: [{
201
201
  type: Input
202
202
  }], showTime: [{
@@ -230,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
230
230
  type: HostBinding,
231
231
  args: ['class.daterange']
232
232
  }] } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFjLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNB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TUFBTTtnQkFHMEMsY0FBYztzQkFBOUQsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSwgTmdDbGFzcywgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3IgfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHRha2UgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7IFZlcnRpY2FsQWxpZ24gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7IHZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL21vZGVsL3ZpZXctdHlwZS5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlUGlja2VyIH0gZnJvbSAnLi4vYmFzZS1waWNrZXInO1xuaW1wb3J0IHsgRGF0ZUZyb21Ub01vZGVsIH0gZnJvbSAnLi4vbW9kZWwvZnJvbS10by5tb2RlbCc7XG5pbXBvcnQgeyBUZXRhQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFRldGFMb2NhbGlzYXRpb24gfSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuaW1wb3J0IHsgcnVMb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvcnUnO1xuaW1wb3J0IHsgUmFuZ2VDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vcmFuZ2UtY2FsZW5kYXIvcmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFza2l0b01vZHVsZSB9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25IZWFkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24taGVhZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgREFURV9SYW5nZV9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUmFuZ2VDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF0ZS1yYW5nZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtEQVRFX1JhbmdlX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IsIERhdGVQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93bkhlYWREaXJlY3RpdmUsXG4gICAgTmdDbGFzcyxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXNraXRvTW9kdWxlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgRHJvcGRvd25Db250ZW50RGlyZWN0aXZlLFxuICAgIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlUGlja2VyIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGRhdGU6IERhdGVGcm9tVG9Nb2RlbCA9IHsgZnJvbTogbnVsbCwgdG86IG51bGwgfTtcbiAgcHVibGljIGxvY2FsZTogT2JzZXJ2YWJsZTxUZXRhTG9jYWxpc2F0aW9uPjtcbiAgQElucHV0KCkgc2hvd1RpbWUgPSBmYWxzZTtcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciA9IG51bGw7XG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsaWduOiBBbGlnbiA9IEFsaWduLmxlZnQ7XG4gIEBJbnB1dCgpIHZlcnRpY2FsQWxpZ246IFZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLmF1dG87XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZSA9ICdyb3VuZGVkJztcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5OiBib29sZWFuO1xuICBASW5wdXQoKSBiYWNrZHJvcDogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dOdWxsID0gdHJ1ZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIHNlbGVjdERhdGU6IEV2ZW50RW1pdHRlcjxEYXRlRnJvbVRvTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlRnJvbVRvTW9kZWw+KCk7XG4gIHB1YmxpYyBtYXNrID0gJyc7XG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IFJlcGxheVN1YmplY3Q8RGF0ZUZyb21Ub01vZGVsPiA9IG5ldyBSZXBsYXlTdWJqZWN0PERhdGVGcm9tVG9Nb2RlbD4oMSk7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGF0ZXJhbmdlJykgcHJpdmF0ZSByZWFkb25seSBjbGFzc0RhdGVyYW5nZSA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJyaWRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIG92ZXJyaWRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIG92ZXJyaWRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IFRldGFDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfY2RyLCBkYXRlUGlwZSk7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmxvY2FsZVNlcnZpY2UubG9jYWxlO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2hhbmdlU2VsZWN0ZWREYXRlKGRhdGU6IERhdGUsIHNlbGVjdGVkRGF0ZTogRGF0ZUZyb21Ub01vZGVsKSB7XG4gICAgaWYgKHNlbGVjdGVkRGF0ZS5mcm9tKSB7XG4gICAgICBjb25zdCBmcm9tID0gbmV3IERhdGUoTWF0aC5taW4obmV3IERhdGUoc2VsZWN0ZWREYXRlLmZyb20pLmdldFRpbWUoKSwgZGF0ZS5nZXRUaW1lKCkpKTtcbiAgICAgIGNvbnN0IHRvID0gbmV3IERhdGUoTWF0aC5tYXgobmV3IERhdGUoc2VsZWN0ZWREYXRlLmZyb20pLmdldFRpbWUoKSwgZGF0ZS5nZXRUaW1lKCkpKTtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7IGZyb20sIHRvIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7IGZyb206IG51bGwsIHRvOiBudWxsIH0pO1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldERhdGUoeyBmcm9tOiBkYXRlLCB0bzogbnVsbCB9KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoeyBmcm9tOiBkYXRlLCB0bzogbnVsbCB9KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBjaGVja051bGwoKSB7XG4gICAgaWYgKHRoaXMuYWxsb3dOdWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICdkZC5NTS55eXl5JykgKyAnIC0gJyArIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICdkZC5NTS55eXl5JylcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcHJlcGFyZUlucHV0KCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5sb2NhbGVTZXJ2aWNlLmxvY2FsZS5waXBlKHRha2UoMSkpKTtcbiAgICBsZXQgc3RyID0gdGhpcy5nZXRMb2NhbGVTdHJpbmcodGhpcy5kYXRlLmZyb20pICsgJyAtICcgKyB0aGlzLmdldExvY2FsZVN0cmluZyh0aGlzLmRhdGUudG8pO1xuICAgIGlmICghdGhpcy5kYXRlPy5mcm9tKSB7XG4gICAgICBzdHIgPSB0aGlzLmFsbG93TnVsbCA/ICcnIDogdGhpcy5nZXRMb2NhbGVTdHJpbmcobmV3IERhdGUoKSkgKyAnIC0gJyArIHRoaXMuZ2V0TG9jYWxlU3RyaW5nKG5ldyBEYXRlKCkpO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb246IHsgbW9kZTsgc2VwYXJhdG9yOyBtaW4/OyBtYXg/OyBtaW5MZW5ndGg/OyBtYXhMZW5ndGg/IH0gPSB7XG4gICAgICBtb2RlOiAnZGQvbW0veXl5eScsXG4gICAgICBzZXBhcmF0b3I6ICcuJyxcbiAgICB9O1xuICAgIHRoaXMubWFzayA9IGNvbmZpZy5kYXRlUmFuZ2VNYXNrO1xuICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcbiAgICAgIG9wdGlvbi5taW4gPSBkYXlqcyhuZXcgRGF0ZSh0aGlzLm1pbkRhdGUpKS5zdGFydE9mKCdkYXknKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4RGF0ZSkge1xuICAgICAgb3B0aW9uLm1heCA9IGRheWpzKG5ldyBEYXRlKHRoaXMubWF4RGF0ZSkpLmVuZE9mKCdkYXknKTtcbiAgICB9XG4gICAgdGhpcy5tYXNraXRvT3B0aW9ucyA9IG1hc2tpdG9EYXRlUmFuZ2VPcHRpb25zR2VuZXJhdG9yKG9wdGlvbik7XG4gICAgdGhpcy5jaGFuZ2VQbGFjZWhvbGRlcihzdHIpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLmFsbG93TnVsbCAmJiB0aGlzLmlucHV0VGV4dC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLnNldERhdGUoeyBmcm9tOiBudWxsLCB0bzogbnVsbCB9KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoeyBmcm9tOiBudWxsLCB0bzogbnVsbCB9KTtcbiAgICAgIHRoaXMuZW1pdFZhbHVlKHsgZnJvbTogbnVsbCwgdG86IG51bGwgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMuaW5wdXRUZXh0LnJlcGxhY2UoJ+KAkycsICctJykuc3BsaXQoJy0nKTtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLmdldERhdGVGcm9tU3RyKHZhbFswXS50cmltKCkpO1xuICAgICAgY29uc3QgdG8gPSB0aGlzLmdldERhdGVGcm9tU3RyKHZhbFsxXT8udHJpbSgpKTtcbiAgICAgIGlmICh0by5kYXkgJiYgdG8ueWVhciAmJiB0by5tb250aCkge1xuICAgICAgICBsZXQgZnJvbURhdGUgPSB0aGlzLmdldEF2YWlsYWJsZURhdGUodGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsIG5ldyBEYXRlKGZyb20ueWVhciwgZnJvbS5tb250aCAtIDEsIGZyb20uZGF5KSk7XG4gICAgICAgIGxldCB0b0RhdGUgPSB0aGlzLmdldEF2YWlsYWJsZURhdGUodGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsIG5ldyBEYXRlKHRvLnllYXIsIHRvLm1vbnRoIC0gMSwgdG8uZGF5KSk7XG4gICAgICAgIGlmIChmcm9tRGF0ZS5nZXRUaW1lKCkgPiB0b0RhdGUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgW2Zyb21EYXRlLCB0b0RhdGVdID0gW3RvRGF0ZSwgZnJvbURhdGVdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXREYXRlKHsgZnJvbTogZnJvbURhdGUsIHRvOiB0b0RhdGUgfSk7XG4gICAgICAgIHRoaXMuZW1pdFZhbHVlKHsgZnJvbTogZnJvbURhdGUsIHRvOiB0b0RhdGUgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoeyBmcm9tOiBudWxsLCB0bzogbnVsbCB9KTtcbiAgICAgICAgaWYgKHRvRGF0ZSAmJiBmcm9tRGF0ZSkge1xuICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldERhdGUodGhpcy5kYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7IGZyb206IG51bGwsIHRvOiBudWxsIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldERhdGUocmFuZ2U6IERhdGVGcm9tVG9Nb2RlbCkge1xuICAgIGlmICghcmFuZ2U/LmZyb20gJiYgIXJhbmdlPy50byAmJiB0aGlzLmFsbG93TnVsbCkge1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSAnJztcblxuICAgICAgdGhpcy5jaGFuZ2VQbGFjZWhvbGRlcignJyk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHtcbiAgICAgICAgZnJvbTogcmFuZ2U/LmZyb20gfHwgbnVsbCxcbiAgICAgICAgdG86IHJhbmdlPy50byB8fCBudWxsLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLmdldExvY2FsZVN0cmluZyhyYW5nZS5mcm9tKTtcbiAgICAgIGNvbnN0IHRvID0gcmFuZ2UuZnJvbSAmJiAhcmFuZ2UudG8gPyAnJyA6IHRoaXMuZ2V0TG9jYWxlU3RyaW5nKHJhbmdlLnRvKTtcbiAgICAgIHRoaXMuaW5wdXRUZXh0ID0gZnJvbSArICcgLSAnICsgdG87XG4gICAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKGZyb20gKyAnIC0gJyArIHRvKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogRGF0ZUZyb21Ub01vZGVsKTogdm9pZCB7XG4gICAgaWYgKG9iaj8uZnJvbSkge1xuICAgICAgdGhpcy5kYXRlID0ge1xuICAgICAgICBmcm9tOiBuZXcgRGF0ZShvYmouZnJvbSksXG4gICAgICAgIHRvOiBuZXcgRGF0ZShvYmoudG8pLFxuICAgICAgfTtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7XG4gICAgICAgIGZyb206IG5ldyBEYXRlKG9iai5mcm9tKSxcbiAgICAgICAgdG86IG5ldyBEYXRlKG9iai50byksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlID0geyBmcm9tOiBudWxsLCB0bzogbnVsbCB9O1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHtcbiAgICAgIGZyb206IG51bGwsXG4gICAgICB0bzogbnVsbCxcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGlzVmFsdWVDaGFuZ2UodmFsdWUpIHtcbiAgICByZXR1cm4gIShcbiAgICAgIG5ldyBEYXRlKHZhbHVlLmZyb20pLmdldFRpbWUoKSA9PT0gbmV3IERhdGUodGhpcy5kYXRlLmZyb20pLmdldFRpbWUoKSAmJlxuICAgICAgbmV3IERhdGUodmFsdWUudG8pLmdldFRpbWUoKSA9PT0gbmV3IERhdGUodGhpcy5kYXRlLnRvKS5nZXRUaW1lKClcbiAgICApO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRlPy5mcm9tKSB7XG4gICAgICB0aGlzLnNldERhdGUoe1xuICAgICAgICBmcm9tOiB0aGlzLmFsbG93TnVsbCA/IG51bGwgOiBuZXcgRGF0ZSh0aGlzLmRhdGU/LmZyb20pLFxuICAgICAgICB0bzogdGhpcy5hbGxvd051bGwgPyBudWxsIDogbmV3IERhdGUodGhpcy5kYXRlPy50byksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXREYXRlKHtcbiAgICAgICAgZnJvbTogdGhpcy5hbGxvd051bGwgPyBudWxsIDogbmV3IERhdGUoKSxcbiAgICAgICAgdG86IHRoaXMuYWxsb3dOdWxsID8gbnVsbCA6IG5ldyBEYXRlKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHtcbiAgICAgIGZyb206IG51bGwsXG4gICAgICB0bzogbnVsbCxcbiAgICB9KTtcblxuICAgIHRoaXMucHJlcGFyZUlucHV0KCk7XG4gIH1cblxuICBvbkNoYW5nZShkYXRlKSB7fVxufVxuIiwiQGlmICh7c2VsZWN0ZWREYXRlOnNlbGVjdGVkRGF0ZXxhc3luY307YXMgZGF0YSkge1xuPHRldGEtZHJvcGRvd25cbiAgW2FwcGVuZFRvQm9keV09XCJhcHBlbmRUb0JvZHlcIlxuICBbYmFja2Ryb3BdPVwiYmFja2Ryb3BcIlxuICBjbGFzcz1cInJvdyByb3dfYXV0b1wiXG4gIFsob3BlbildPVwib3BlblwiXG4gIChvcGVuQ2hhbmdlKT1cIm9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gIFt2aWV3VHlwZV09XCJ2aWV3VHlwZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFt2ZXJ0aWNhbEFsaWduXT1cInZlcnRpY2FsQWxpZ25cIlxuICBbYWxpZ25dPVwiYWxpZ25cIlxuICBbYXV0b0Nsb3NlSWdub3JlXT1cIlsnZXNjJywgJ2luc2lkZScsICdlbnRlciddXCJcbj5cbiAgPGRpdlxuICAgIHRldGFEcm9wZG93bkhlYWRcbiAgICBbY2xhc3NdPVwiJ2RhdGVwaWNrZXItaGVhZCBmb250LWJvZHktMyBnYXAtOCBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgW25nQ2xhc3NdPVwieyAnZGF0ZXBpY2tlci1oZWFkX2ludmFsaWQnOiBpbnZhbGlkLCAnZGF0ZXBpY2tlci1oZWFkX2Rpc2FibGVkJzogZGlzYWJsZWQgfVwiXG4gID5cbiAgICA8dGV0YS1pbnB1dCBjbGFzcz1cInJvdyByb3dfYXV0byBmbGV4XCI+XG4gICAgICA8ZGl2IFtjbGFzc109XCIncm93X2F1dG8gcm93IGRhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93X2F1dG8gcG9zaXRpb24tcmVsYXRpdmUgZm9udC1ib2R5LTMgYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjb2xvci10ZXh0LTkwJzogIWRpc2FibGVkIH1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgc3R5bGU9XCJ6LWluZGV4OiAxXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLTAgY29sb3ItdGV4dC05MFwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJjaGVja0VudGVyKCRldmVudClcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbbWFza2l0b109XCJtYXNraXRvT3B0aW9uc1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKGRhdGEuc2VsZWN0ZWREYXRlfHxhbGxvd051bGwpIHtcbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJpbnB1dC5mb2N1cygpXCIgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBjb2xvci10ZXh0LTEwXCIgc3R5bGU9XCJjdXJzb3I6IHRleHQ7IHVzZXItc2VsZWN0OiBub25lXCI+XG4gICAgICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2NhbGVuZGFyJ1wiIFtwYWxldHRlXT1cIid0ZXh0J1wiPjwvdGV0YS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC90ZXRhLWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiB0ZXRhRHJvcGRvd25Db250ZW50IGNsYXNzPVwic2Nyb2xsYWJsZVwiIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiPlxuICAgIEBpZiAob3Blbikge1xuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDx0ZXRhLXJhbmdlLWNhbGVuZGFyXG4gICAgICAgIFtpc0RhdGVOdWxsXT1cImRhdGUgPT09IG51bGwgfHwgKGRhdGU/LmZyb20gPT09IG51bGwgJiYgZGF0ZT8udG8gPT09IG51bGwpXCJcbiAgICAgICAgW29wZW5dPVwib3BlblwiXG4gICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXG4gICAgICAgIFthbGxvd051bGxdPVwiYWxsb3dOdWxsXCJcbiAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgKHNldERhdGUpPVwiY2hhbmdlU2VsZWN0ZWREYXRlKCRldmVudCwgZGF0YS5zZWxlY3RlZERhdGUpXCJcbiAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJkYXRhLnNlbGVjdGVkRGF0ZVwiXG4gICAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgICBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZSB8IGFzeW5jXCJcbiAgICAgID48L3RldGEtcmFuZ2UtY2FsZW5kYXI+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvdGV0YS1kcm9wZG93bj5cbn1cbiJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFjLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNB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LE1BQU07Z0JBRzBDLGNBQWM7c0JBQTlELFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUsIE5nQ2xhc3MsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1hc2tpdG9EYXRlUmFuZ2VPcHRpb25zR2VuZXJhdG9yIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFsaWduIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWduIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgQmFzZVBpY2tlciB9IGZyb20gJy4uL2Jhc2UtcGlja2VyJztcbmltcG9ydCB7IERhdGVGcm9tVG9Nb2RlbCB9IGZyb20gJy4uL21vZGVsL2Zyb20tdG8ubW9kZWwnO1xuaW1wb3J0IHsgVGV0YUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvdGV0YS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBUZXRhTG9jYWxpc2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uJztcbmltcG9ydCB7IHJ1TG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3J1JztcbmltcG9ydCB7IFJhbmdlQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL3JhbmdlLWNhbGVuZGFyL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hc2tpdG9Nb2R1bGUgfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duSGVhZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLWhlYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERBVEVfUmFuZ2VfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWRhdGUtcmFuZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbREFURV9SYW5nZV9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SLCBEYXRlUGlwZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRHJvcGRvd25Db21wb25lbnQsXG4gICAgRHJvcGRvd25IZWFkRGlyZWN0aXZlLFxuICAgIE5nQ2xhc3MsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWFza2l0b01vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSxcbiAgICBSYW5nZUNhbGVuZGFyQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBpY2tlciBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBkYXRlOiBEYXRlRnJvbVRvTW9kZWwgPSB7IGZyb206IG51bGwsIHRvOiBudWxsIH07XG4gIHB1YmxpYyBsb2NhbGU6IE9ic2VydmFibGU8VGV0YUxvY2FsaXNhdGlvbj47XG4gIEBJbnB1dCgpIHNob3dUaW1lID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbnVsbDtcbiAgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBhbGlnbjogQWxpZ24gPSBBbGlnbi5sZWZ0O1xuICBASW5wdXQoKSB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5hdXRvO1xuICBASW5wdXQoKSB2aWV3VHlwZTogdmlld1R5cGUgPSAncm91bmRlZCc7XG4gIEBJbnB1dCgpIGFwcGVuZFRvQm9keTogYm9vbGVhbjtcbiAgQElucHV0KCkgYmFja2Ryb3A6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFsbG93TnVsbCA9IHRydWU7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBzZWxlY3REYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZUZyb21Ub01vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZUZyb21Ub01vZGVsPigpO1xuICBwdWJsaWMgbWFzayA9ICcnO1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBSZXBsYXlTdWJqZWN0PERhdGVGcm9tVG9Nb2RlbD4gPSBuZXcgUmVwbGF5U3ViamVjdDxEYXRlRnJvbVRvTW9kZWw+KDEpO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhdGVyYW5nZScpIHByaXZhdGUgcmVhZG9ubHkgY2xhc3NEYXRlcmFuZ2UgPSB0cnVlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBvdmVycmlkZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBvdmVycmlkZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBvdmVycmlkZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBUZXRhQ29uZmlnU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9jZHIsIGRhdGVQaXBlKTtcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMubG9jYWxlU2VydmljZS5sb2NhbGU7XG4gIH1cblxuICBvdmVycmlkZSBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZTogRGF0ZSwgc2VsZWN0ZWREYXRlOiBEYXRlRnJvbVRvTW9kZWwpIHtcbiAgICBpZiAoc2VsZWN0ZWREYXRlLmZyb20pIHtcbiAgICAgIGNvbnN0IGZyb20gPSBuZXcgRGF0ZShNYXRoLm1pbihuZXcgRGF0ZShzZWxlY3RlZERhdGUuZnJvbSkuZ2V0VGltZSgpLCBkYXRlLmdldFRpbWUoKSkpO1xuICAgICAgY29uc3QgdG8gPSBuZXcgRGF0ZShNYXRoLm1heChuZXcgRGF0ZShzZWxlY3RlZERhdGUuZnJvbSkuZ2V0VGltZSgpLCBkYXRlLmdldFRpbWUoKSkpO1xuICAgICAgdGhpcy5zZXREYXRlKHsgZnJvbSwgdG8gfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHsgZnJvbTogbnVsbCwgdG86IG51bGwgfSk7XG4gICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7IGZyb206IGRhdGUsIHRvOiBudWxsIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7IGZyb206IGRhdGUsIHRvOiBudWxsIH0pO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGNoZWNrTnVsbCgpIHtcbiAgICBpZiAodGhpcy5hbGxvd051bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ2RkLk1NLnl5eXknKSArICcgLSAnICsgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ2RkLk1NLnl5eXknKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBwcmVwYXJlSW5wdXQoKSB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmxvY2FsZVNlcnZpY2UubG9jYWxlLnBpcGUodGFrZSgxKSkpO1xuICAgIGxldCBzdHIgPSB0aGlzLmdldExvY2FsZVN0cmluZyh0aGlzLmRhdGUuZnJvbSkgKyAnIC0gJyArIHRoaXMuZ2V0TG9jYWxlU3RyaW5nKHRoaXMuZGF0ZS50byk7XG4gICAgaWYgKCF0aGlzLmRhdGU/LmZyb20pIHtcbiAgICAgIHN0ciA9IHRoaXMuYWxsb3dOdWxsID8gJycgOiB0aGlzLmdldExvY2FsZVN0cmluZyhuZXcgRGF0ZSgpKSArICcgLSAnICsgdGhpcy5nZXRMb2NhbGVTdHJpbmcobmV3IERhdGUoKSk7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbjogeyBtb2RlOyBzZXBhcmF0b3I7IG1pbj87IG1heD87IG1pbkxlbmd0aD87IG1heExlbmd0aD8gfSA9IHtcbiAgICAgIG1vZGU6ICdkZC9tbS95eXl5JyxcbiAgICAgIHNlcGFyYXRvcjogJy4nLFxuICAgIH07XG4gICAgdGhpcy5tYXNrID0gY29uZmlnLmRhdGVSYW5nZU1hc2s7XG4gICAgaWYgKHRoaXMubWluRGF0ZSkge1xuICAgICAgb3B0aW9uLm1pbiA9IGRheWpzKG5ldyBEYXRlKHRoaXMubWluRGF0ZSkpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXhEYXRlKSB7XG4gICAgICBvcHRpb24ubWF4ID0gZGF5anMobmV3IERhdGUodGhpcy5tYXhEYXRlKSkuZW5kT2YoJ2RheScpO1xuICAgIH1cbiAgICB0aGlzLm1hc2tpdG9PcHRpb25zID0gbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3Iob3B0aW9uKTtcbiAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKHN0cik7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgaWYgKHRoaXMuYWxsb3dOdWxsICYmIHRoaXMuaW5wdXRUZXh0LnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7IGZyb206IG51bGwsIHRvOiBudWxsIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7IGZyb206IG51bGwsIHRvOiBudWxsIH0pO1xuICAgICAgdGhpcy5lbWl0VmFsdWUoeyBmcm9tOiBudWxsLCB0bzogbnVsbCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsID0gdGhpcy5pbnB1dFRleHQucmVwbGFjZSgn4oCTJywgJy0nKS5zcGxpdCgnLScpO1xuICAgICAgY29uc3QgZnJvbSA9IHRoaXMuZ2V0RGF0ZUZyb21TdHIodmFsWzBdLnRyaW0oKSk7XG4gICAgICBjb25zdCB0byA9IHRoaXMuZ2V0RGF0ZUZyb21TdHIodmFsWzFdPy50cmltKCkpO1xuICAgICAgaWYgKHRvLmRheSAmJiB0by55ZWFyICYmIHRvLm1vbnRoKSB7XG4gICAgICAgIGxldCBmcm9tRGF0ZSA9IHRoaXMuZ2V0QXZhaWxhYmxlRGF0ZSh0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSwgbmV3IERhdGUoZnJvbS55ZWFyLCBmcm9tLm1vbnRoIC0gMSwgZnJvbS5kYXkpKTtcbiAgICAgICAgbGV0IHRvRGF0ZSA9IHRoaXMuZ2V0QXZhaWxhYmxlRGF0ZSh0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSwgbmV3IERhdGUodG8ueWVhciwgdG8ubW9udGggLSAxLCB0by5kYXkpKTtcbiAgICAgICAgaWYgKGZyb21EYXRlLmdldFRpbWUoKSA+IHRvRGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICBbZnJvbURhdGUsIHRvRGF0ZV0gPSBbdG9EYXRlLCBmcm9tRGF0ZV07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldERhdGUoeyBmcm9tOiBmcm9tRGF0ZSwgdG86IHRvRGF0ZSB9KTtcbiAgICAgICAgdGhpcy5lbWl0VmFsdWUoeyBmcm9tOiBmcm9tRGF0ZSwgdG86IHRvRGF0ZSB9KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7IGZyb206IG51bGwsIHRvOiBudWxsIH0pO1xuICAgICAgICBpZiAodG9EYXRlICYmIGZyb21EYXRlKSB7XG4gICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0RGF0ZSh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHsgZnJvbTogbnVsbCwgdG86IG51bGwgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0RGF0ZShyYW5nZTogRGF0ZUZyb21Ub01vZGVsKSB7XG4gICAgaWYgKCFyYW5nZT8uZnJvbSAmJiAhcmFuZ2U/LnRvICYmIHRoaXMuYWxsb3dOdWxsKSB7XG4gICAgICB0aGlzLmlucHV0VGV4dCA9ICcnO1xuXG4gICAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKCcnKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoe1xuICAgICAgICBmcm9tOiByYW5nZT8uZnJvbSB8fCBudWxsLFxuICAgICAgICB0bzogcmFuZ2U/LnRvIHx8IG51bGwsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZnJvbSA9IHRoaXMuZ2V0TG9jYWxlU3RyaW5nKHJhbmdlLmZyb20pO1xuICAgICAgY29uc3QgdG8gPSByYW5nZS5mcm9tICYmICFyYW5nZS50byA/ICcnIDogdGhpcy5nZXRMb2NhbGVTdHJpbmcocmFuZ2UudG8pO1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSBmcm9tICsgJyAtICcgKyB0bztcbiAgICAgIHRoaXMuY2hhbmdlUGxhY2Vob2xkZXIoZnJvbSArICcgLSAnICsgdG8pO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBEYXRlRnJvbVRvTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAob2JqPy5mcm9tKSB7XG4gICAgICB0aGlzLmRhdGUgPSB7XG4gICAgICAgIGZyb206IG5ldyBEYXRlKG9iai5mcm9tKSxcbiAgICAgICAgdG86IG5ldyBEYXRlKG9iai50byksXG4gICAgICB9O1xuICAgICAgdGhpcy5zZXREYXRlKHtcbiAgICAgICAgZnJvbTogbmV3IERhdGUob2JqLmZyb20pLFxuICAgICAgICB0bzogbmV3IERhdGUob2JqLnRvKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGUgPSB7IGZyb206IG51bGwsIHRvOiBudWxsIH07XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoe1xuICAgICAgZnJvbTogbnVsbCxcbiAgICAgIHRvOiBudWxsLFxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgaXNWYWx1ZUNoYW5nZSh2YWx1ZSkge1xuICAgIHJldHVybiAhKFxuICAgICAgbmV3IERhdGUodmFsdWUuZnJvbSkuZ2V0VGltZSgpID09PSBuZXcgRGF0ZSh0aGlzLmRhdGUuZnJvbSkuZ2V0VGltZSgpICYmXG4gICAgICBuZXcgRGF0ZSh2YWx1ZS50bykuZ2V0VGltZSgpID09PSBuZXcgRGF0ZSh0aGlzLmRhdGUudG8pLmdldFRpbWUoKVxuICAgICk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGU/LmZyb20pIHtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7XG4gICAgICAgIGZyb206IHRoaXMuYWxsb3dOdWxsID8gbnVsbCA6IG5ldyBEYXRlKHRoaXMuZGF0ZT8uZnJvbSksXG4gICAgICAgIHRvOiB0aGlzLmFsbG93TnVsbCA/IG51bGwgOiBuZXcgRGF0ZSh0aGlzLmRhdGU/LnRvKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldERhdGUoe1xuICAgICAgICBmcm9tOiB0aGlzLmFsbG93TnVsbCA/IG51bGwgOiBuZXcgRGF0ZSgpLFxuICAgICAgICB0bzogdGhpcy5hbGxvd051bGwgPyBudWxsIDogbmV3IERhdGUoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoe1xuICAgICAgZnJvbTogbnVsbCxcbiAgICAgIHRvOiBudWxsLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcmVwYXJlSW5wdXQoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGRhdGUpIHt9XG59XG4iLCJAaWYgKHsgc2VsZWN0ZWREYXRlOiBzZWxlY3RlZERhdGUgfCBhc3luYyB9OyBhcyBkYXRhKSB7XG4gIDx0ZXRhLWRyb3Bkb3duXG4gICAgW2FwcGVuZFRvQm9keV09XCJhcHBlbmRUb0JvZHlcIlxuICAgIFtiYWNrZHJvcF09XCJiYWNrZHJvcFwiXG4gICAgY2xhc3M9XCJyb3cgcm93X2F1dG9cIlxuICAgIFsob3BlbildPVwib3BlblwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnblwiXG4gICAgW2FsaWduXT1cImFsaWduXCJcbiAgICBbYXV0b0Nsb3NlSWdub3JlXT1cIlsnZXNjJywgJ2luc2lkZScsICdlbnRlciddXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIHRldGFEcm9wZG93bkhlYWRcbiAgICAgIFtjbGFzc109XCInZGF0ZXBpY2tlci1oZWFkIGZvbnQtYm9keS0zIGdhcC04IGRhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2RhdGVwaWNrZXItaGVhZF9pbnZhbGlkJzogaW52YWxpZCwgJ2RhdGVwaWNrZXItaGVhZF9kaXNhYmxlZCc6IGRpc2FibGVkIH1cIlxuICAgID5cbiAgICAgIDx0ZXRhLWlucHV0IGNsYXNzPVwicm93IHJvd19hdXRvIGZsZXhcIj5cbiAgICAgICAgPGRpdiBbY2xhc3NdPVwiJ3Jvd19hdXRvIHJvdyBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93X2F1dG8gcG9zaXRpb24tcmVsYXRpdmUgZm9udC1ib2R5LTMgYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sb3ItdGV4dC05MCc6ICFkaXNhYmxlZCB9XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICAgIHN0eWxlPVwiei1pbmRleDogMVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLTAgY29sb3ItdGV4dC05MFwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImNoZWNrRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFttYXNraXRvXT1cIm1hc2tpdG9PcHRpb25zXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKGRhdGEuc2VsZWN0ZWREYXRlIHx8IGFsbG93TnVsbCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImlucHV0LmZvY3VzKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgY29sb3ItdGV4dC0xMFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHRleHQ7IHVzZXItc2VsZWN0OiBub25lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2NhbGVuZGFyJ1wiIFtwYWxldHRlXT1cIid0ZXh0J1wiPjwvdGV0YS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGV0YS1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHRldGFEcm9wZG93bkNvbnRlbnQgY2xhc3M9XCJzY3JvbGxhYmxlXCIgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICBAaWYgKG9wZW4pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDx0ZXRhLXJhbmdlLWNhbGVuZGFyXG4gICAgICAgICAgICBbaXNEYXRlTnVsbF09XCJkYXRlID09PSBudWxsIHx8IChkYXRlPy5mcm9tID09PSBudWxsICYmIGRhdGU/LnRvID09PSBudWxsKVwiXG4gICAgICAgICAgICBbb3Blbl09XCJvcGVuXCJcbiAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgICAgICAgICBbbWluXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgKHNldERhdGUpPVwiY2hhbmdlU2VsZWN0ZWREYXRlKCRldmVudCwgZGF0YS5zZWxlY3RlZERhdGUpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwiZGF0YS5zZWxlY3RlZERhdGVcIlxuICAgICAgICAgICAgW2RhdGVdPVwiZGF0ZVwiXG4gICAgICAgICAgICBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGUgfCBhc3luY1wiXG4gICAgICAgICAgPjwvdGV0YS1yYW5nZS1jYWxlbmRhcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvdGV0YS1kcm9wZG93bj5cbn1cbiJdfQ==
@@ -79,7 +79,7 @@ export class RangeCalendarComponent extends BaseCalendar {
79
79
  }
80
80
  }
81
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (\n {\n currentMonth: currentMonth | async,\n currentYear: currentYear | async,\n selectedPicker: selectedPicker | async,\n minMax: minMax | async,\n };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth + 1, data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
83
  }
84
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, decorators: [{
85
85
  type: Component,
@@ -91,7 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
91
91
  MonthPickerComponent,
92
92
  YearPickerComponent,
93
93
  AsyncPipe,
94
- ], template: "@if\n({currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async};\nas data) {\n<div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker==='day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth+1,data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{ 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max) }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n } @if (data.selectedPicker==='month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n } @if (data.selectedPicker==='year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n</div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
94
+ ], template: "@if (\n {\n currentMonth: currentMonth | async,\n currentYear: currentYear | async,\n selectedPicker: selectedPicker | async,\n minMax: minMax | async,\n };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth + 1, data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
95
95
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { locale: [{
96
96
  type: Input
97
97
  }], open: [{
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
115
115
  }], setDate: [{
116
116
  type: Output
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXJhbmdlL3JhbmdlLWNhbGVuZGFyL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS9yYW5nZS1jYWxlbmRhci9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUluRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBa0IxRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQWN0RCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZ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R0FDYixrQkFBa0Isb01BQ2xCLG9CQUFvQiwyS0FDcEIsbUJBQW1CLDJJQUNuQixTQUFTOzsyRkFHQSxzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixTQUFTO3FCQUNWO3NGQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUNhbGVuZGFyIH0gZnJvbSAnLi4vLi4vYmFzZS1jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCB7IFRldGFMb2NhbGlzYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuaW1wb3J0IHsgWWVhclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3llYXItcGlja2VyL3llYXItcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb250aFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERheVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb24vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1yYW5nZS1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBEYXlQaWNrZXJDb21wb25lbnQsXG4gICAgTW9udGhQaWNrZXJDb21wb25lbnQsXG4gICAgWWVhclBpY2tlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2FsZW5kYXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxvY2FsZTogVGV0YUxvY2FsaXNhdGlvbjtcbiAgQElucHV0KCkgb3BlbjogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSB2aWV3VHlwZTogdmlld1R5cGU7XG4gIEBJbnB1dCgpIGFsbG93TnVsbCA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSBtaW46IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIGlzRGF0ZU51bGw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heDogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIHB1YmxpYyBjYWxlbmRhcjogeyBjdXJyZW50TW9udGg6IERheU1vZGVsW107IG5leHRNb250aDogRGF5TW9kZWxbXSB9O1xuICBwdWJsaWMgX2hvdmVyZWREYXRlOiBEYXRlID0gbnVsbDtcbiAgZ2V0IGhvdmVyZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlcmVkRGF0ZTtcbiAgfVxuXG4gIHNldCBob3ZlcmVkRGF0ZShlKSB7XG4gICAgdGhpcy5faG92ZXJlZERhdGUgPSBlO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9jZHIpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCB0aGlzLm1pbk1heF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiBmYWxzZSB9KSxcbiAgICAgICAgZmlsdGVyKChbY3VycmVudFllYXIsIGN1cnJlbnRNb250aF0pID0+IGN1cnJlbnRNb250aCAhPT0gbnVsbCAmJiBjdXJyZW50WWVhciAhPT0gbnVsbCksXG4gICAgICAgIG1hcCgoW3llYXIsIG1vbnRoLCBtaW5NYXhdKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCB9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIobW9udGggKyAxLCB5ZWFyKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3VycmVudE1vbnRoOiB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoXG4gICAgICAgICAgICAgIGRheWpzKG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gfHwgbmV3IERhdGUoKSkpLmxvY2FsZSgncnUnLCB7IHdlZWtTdGFydDogMSB9KSxcbiAgICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICAgIG1pbk1heFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5leHRNb250aDogdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKFxuICAgICAgICAgICAgICBkYXlqcyhuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tIHx8IG5ldyBEYXRlKCkpKS5sb2NhbGUoJ3J1JywgeyB3ZWVrU3RhcnQ6IDEgfSksXG4gICAgICAgICAgICAgIGF2YWlsYWJsZVllYXIsXG4gICAgICAgICAgICAgIGF2YWlsYWJsZU1vbnRoLFxuICAgICAgICAgICAgICBtaW5NYXhcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5jYWxlbmRhciA9IF87XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldEZyb21UbygpIHtcbiAgICBsZXQgZGF0ZUZyb207XG4gICAgbGV0IGRhdGVUbztcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGU/LmZyb20pIHtcbiAgICAgIGRhdGVGcm9tID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZnJvbSk7XG4gICAgICBkYXRlVG8gPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgZGF0ZUZyb20gPSB0aGlzLmRhdGU/LmZyb20gPyBuZXcgRGF0ZSh0aGlzLmRhdGUuZnJvbSkgOiBudWxsO1xuICAgICAgICBkYXRlVG8gPSB0aGlzLmRhdGU/LnRvID8gbmV3IERhdGUodGhpcy5kYXRlLnRvKSA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlRnJvbSA9IHRoaXMuZGF0ZT8uZnJvbSA/IG5ldyBEYXRlKHRoaXMuZGF0ZS5mcm9tKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIGRhdGVUbyA9IHRoaXMuZGF0ZT8udG8gPyBuZXcgRGF0ZSh0aGlzLmRhdGUudG8pIDogbmV3IERhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBmcm9tOiBkYXRlRnJvbSwgdG86IGRhdGVUbyB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgaXNTZWxlY3RlZChkOiBEYXRlLCBzZWxlY3RlZERhdGU6IERhdGUpIHtcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPSB0aGlzLmdldEZyb21UbygpO1xuICAgIHJldHVybiB0aGlzLmNoZWNrU2VsZWN0ZWQoZCwgZnJvbSkgfHwgdGhpcy5jaGVja1NlbGVjdGVkKGQsIHRvKTtcbiAgfVxuXG4gIGNoZWNrU2VsZWN0ZWQoZGF0ZTogRGF0ZSwgc2VsZWN0ZWREYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgaXNTZWxlY3RlZERhdGUgPSBkYXRlLmdldERhdGUoKSA9PT0gc2VsZWN0ZWREYXRlPy5nZXREYXRlKCk7XG4gICAgY29uc3QgaXNTZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBpc1NlbGVjdGVkTW9udGggPSBkYXRlLmdldE1vbnRoKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0TW9udGgoKTtcbiAgICByZXR1cm4gaXNTZWxlY3RlZERhdGUgJiYgaXNTZWxlY3RlZE1vbnRoICYmIGlzU2VsZWN0ZWRZZWFyO1xuICB9XG5cbiAgaXNGaXJzdERheVN1aXRhYmxlKG06IG51bWJlciwgeTogbnVtYmVyLCBtYXg6IHN0cmluZyB8IG51bWJlciB8IERhdGUpIHtcbiAgICBjb25zdCB7IGF2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRoIH0gPSB0aGlzLmdldEF2YWlsYWJsZU1vbnRoWWVhcihtLCB5KTtcbiAgICByZXR1cm4gdGhpcy5pc1N1aXRhYmxlTWF4RGF0ZShkYXlqcyhuZXcgRGF0ZShhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCkpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCksIG1heCk7XG4gIH1cblxuICBpc0xhc3REYXlTdWl0YWJsZShtOiBudW1iZXIsIHk6IG51bWJlciwgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKSB7XG4gICAgY29uc3QgeyBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCB9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIobSwgeSk7XG4gICAgcmV0dXJuIHRoaXMuaXNTdWl0YWJsZU1pbkRhdGUoZGF5anMobmV3IERhdGUoYXZhaWxhYmxlWWVhciwgYXZhaWxhYmxlTW9udGgpKS5lbmRPZignbW9udGgnKS50b0RhdGUoKSwgbWluKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXM/LlsnaG92ZXJlZERhdGUnXSkge1xuICAgICAgdGhpcy5jaGFuZ2VDYWxlbmRhckRhdGEodGhpcy5zZWxlY3RlZERhdGUuZnJvbSB8fCB0aGlzLmRhdGUuZnJvbSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWZcbih7Y3VycmVudE1vbnRoOmN1cnJlbnRNb250aHxhc3luYyxjdXJyZW50WWVhcjpjdXJyZW50WWVhcnxhc3luYyxzZWxlY3RlZFBpY2tlcjpzZWxlY3RlZFBpY2tlcnxhc3luYyxtaW5NYXg6bWluTWF4fGFzeW5jfTtcbmFzIGRhdGEpIHtcbjxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRlbnQgb3ZlcmZsb3cteS1hdXRvXCI+XG4gIEBpZiAoZGF0YS5zZWxlY3RlZFBpY2tlcj09PSdkYXknKSB7XG4gIDxkaXYgY2xhc3M9XCJyb3dcIiAod2hlZWwpPVwic2Nyb2xsTW9udGgoJGV2ZW50LCBkYXRhLmN1cnJlbnRNb250aCwgZGF0YS5jdXJyZW50WWVhcilcIj5cbiAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy1oLTMgcGFkZGluZy12LTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDx0ZXRhLWJ1dHRvblxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2RhdGVwaWNrZXItYXJyb3dfaGlkZGVuJzogIWlzTGFzdERheVN1aXRhYmxlKGRhdGEuY3VycmVudE1vbnRoIC0gMSwgZGF0YS5jdXJyZW50WWVhciwgbWluKSB9XCJcbiAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1vbnRoKGRhdGEuY3VycmVudE1vbnRoIC0gMSwgZGF0YS5jdXJyZW50WWVhcilcIlxuICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgIDwvdGV0YS1idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZ2FwLTQgZm9udC1idXR0b24tMiBhbGlnbi1jZW50ZXIgcGFkZGluZy1sZWZ0LTFcIj5cbiAgICAgICAgICA8cD57eyBnZXRNb3RoTmFtZShkYXRhLmN1cnJlbnRNb250aCkgfX08L3A+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgW2NsYXNzXT1cIidkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgICAgICAgICB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgdmlldz1cImdob3N0XCJcbiAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQaWNrZXIoJ3llYXInKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZGF0YS5jdXJyZW50WWVhciB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRldGEtYnV0dG9uXG4gICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlci1hcnJvd19oaWRkZW4gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dSaWdodEtleVwiIFtwYWxldHRlXT1cIid0ZXh0J1wiPjwvdGV0YS1pY29uPlxuICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8dGV0YS1kYXktcGlja2VyXG4gICAgICAgICAgWyhob3ZlcmVkRGF0ZSldPVwiaG92ZXJlZERhdGVcIlxuICAgICAgICAgIFtyYW5nZV09XCJnZXRGcm9tVG8oKVwiXG4gICAgICAgICAgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAgICAgICAoc2VsZWN0RGF0ZSk9XCJzZWxlY3REYXRlKCRldmVudClcIlxuICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICBbY2FsZW5kYXJdPVwiY2FsZW5kYXIuY3VycmVudE1vbnRoXCJcbiAgICAgICAgPjwvdGV0YS1kYXktcGlja2VyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmIChnZXRBdmFpbGFibGVNb250aFllYXIoZGF0YS5jdXJyZW50TW9udGgrMSxkYXRhLmN1cnJlbnRZZWFyKTsgYXMgYXZhaWxhYmxlTW9udGhZZWFyKSB7XG4gICAgPGRpdiBjbGFzcz1cInBhZGRpbmctaC0zIHBhZGRpbmctdi0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgIFtjbGFzc109XCInY2hhbmdlLW1vbnRoLWJ1dHRvbiBkYXRlcGlja2VyLWFycm93X2hpZGRlbiBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd0xlZnRLZXlcIiBbcGFsZXR0ZV09XCIndGV4dCdcIj48L3RldGEtaWNvbj5cbiAgICAgICAgPC90ZXRhLWJ1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtNCBmb250LWJ1dHRvbi0yIGFsaWduLWNlbnRlciBwYWRkaW5nLWxlZnQtMVwiPlxuICAgICAgICAgIDxwPnt7IGdldE1vdGhOYW1lKGF2YWlsYWJsZU1vbnRoWWVhci5hdmFpbGFibGVNb250aCkgfX08L3A+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgW2NsYXNzXT1cIidkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgICAgICAgICB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgdmlldz1cImdob3N0XCJcbiAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQaWNrZXIoJ3llYXInKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgYXZhaWxhYmxlTW9udGhZZWFyLmF2YWlsYWJsZVllYXIgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXRhLWJ1dHRvblxuICAgICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGF0ZXBpY2tlci1hcnJvd19oaWRkZW4nOiAhaXNGaXJzdERheVN1aXRhYmxlKGRhdGEuY3VycmVudE1vbnRoICsgMiwgZGF0YS5jdXJyZW50WWVhciwgbWF4KSB9XCJcbiAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VNb250aChkYXRhLmN1cnJlbnRNb250aCArIDEsIGRhdGEuY3VycmVudFllYXIpXCJcbiAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgdmlldz1cImdob3N0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZXRhLWljb24gbmFtZT1cImFycm93UmlnaHRLZXlcIiBbcGFsZXR0ZV09XCIndGV4dCdcIj48L3RldGEtaWNvbj5cbiAgICAgICAgPC90ZXRhLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPHRldGEtZGF5LXBpY2tlclxuICAgICAgICAgIFsoaG92ZXJlZERhdGUpXT1cImhvdmVyZWREYXRlXCJcbiAgICAgICAgICBbcmFuZ2VdPVwiZ2V0RnJvbVRvKClcIlxuICAgICAgICAgIFt2aWV3VHlwZV09XCJ2aWV3VHlwZVwiXG4gICAgICAgICAgKHNlbGVjdERhdGUpPVwic2VsZWN0RGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgW2NhbGVuZGFyXT1cImNhbGVuZGFyLm5leHRNb250aFwiXG4gICAgICAgID48L3RldGEtZGF5LXBpY2tlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIH0gQGlmIChkYXRhLnNlbGVjdGVkUGlja2VyPT09J21vbnRoJykge1xuICA8dGV0YS1tb250aC1waWNrZXJcbiAgICBbbG9jYWxlTW90aHNdPVwibG9jYWxlLm1vbnRoc1wiXG4gICAgW2N1cnJlbnRZZWFyXT1cImRhdGEuY3VycmVudFllYXJcIlxuICAgIChjaGFuZ2VZZWFyKT1cInNldFllYXIoJGV2ZW50KVwiXG4gICAgW3NlbGVjdGVkTW9udGhdPVwiZGF0YS5jdXJyZW50TW9udGhcIlxuICAgIFt2aWV3VHlwZV09XCJ2aWV3VHlwZVwiXG4gICAgKHNlbGVjdE1vbnRoKT1cInNlbGVjdE1vbnRoKCRldmVudClcIlxuICA+PC90ZXRhLW1vbnRoLXBpY2tlcj5cbiAgfSBAaWYgKGRhdGEuc2VsZWN0ZWRQaWNrZXI9PT0neWVhcicpIHtcbiAgPHRldGEteWVhci1waWNrZXJcbiAgICBbbWluTWF4XT1cImRhdGEubWluTWF4XCJcbiAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAoc2VsZWN0WWVhcik9XCJzZWxlY3RZZWFyKCRldmVudClcIlxuICAgIFtzZWxlY3RlZFllYXJdPVwiZGF0YS5jdXJyZW50WWVhclwiXG4gID48L3RldGEteWVhci1waWNrZXI+XG4gIH1cbjwvZGl2PlxufVxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXJhbmdlL3JhbmdlLWNhbGVuZGFyL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS9yYW5nZS1jYWxlbmRhci9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUluRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBa0IxRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQWN0RCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZ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R0FDYixrQkFBa0Isb01BQ2xCLG9CQUFvQiwyS0FDcEIsbUJBQW1CLDJJQUNuQixTQUFTOzsyRkFHQSxzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixTQUFTO3FCQUNWO3NGQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUNhbGVuZGFyIH0gZnJvbSAnLi4vLi4vYmFzZS1jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCB7IFRldGFMb2NhbGlzYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuaW1wb3J0IHsgWWVhclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3llYXItcGlja2VyL3llYXItcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb250aFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERheVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb24vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1yYW5nZS1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBEYXlQaWNrZXJDb21wb25lbnQsXG4gICAgTW9udGhQaWNrZXJDb21wb25lbnQsXG4gICAgWWVhclBpY2tlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2FsZW5kYXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxvY2FsZTogVGV0YUxvY2FsaXNhdGlvbjtcbiAgQElucHV0KCkgb3BlbjogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSB2aWV3VHlwZTogdmlld1R5cGU7XG4gIEBJbnB1dCgpIGFsbG93TnVsbCA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSBtaW46IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIGlzRGF0ZU51bGw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heDogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIHB1YmxpYyBjYWxlbmRhcjogeyBjdXJyZW50TW9udGg6IERheU1vZGVsW107IG5leHRNb250aDogRGF5TW9kZWxbXSB9O1xuICBwdWJsaWMgX2hvdmVyZWREYXRlOiBEYXRlID0gbnVsbDtcbiAgZ2V0IGhvdmVyZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlcmVkRGF0ZTtcbiAgfVxuXG4gIHNldCBob3ZlcmVkRGF0ZShlKSB7XG4gICAgdGhpcy5faG92ZXJlZERhdGUgPSBlO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9jZHIpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCB0aGlzLm1pbk1heF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiBmYWxzZSB9KSxcbiAgICAgICAgZmlsdGVyKChbY3VycmVudFllYXIsIGN1cnJlbnRNb250aF0pID0+IGN1cnJlbnRNb250aCAhPT0gbnVsbCAmJiBjdXJyZW50WWVhciAhPT0gbnVsbCksXG4gICAgICAgIG1hcCgoW3llYXIsIG1vbnRoLCBtaW5NYXhdKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCB9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIobW9udGggKyAxLCB5ZWFyKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3VycmVudE1vbnRoOiB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoXG4gICAgICAgICAgICAgIGRheWpzKG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gfHwgbmV3IERhdGUoKSkpLmxvY2FsZSgncnUnLCB7IHdlZWtTdGFydDogMSB9KSxcbiAgICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICAgIG1pbk1heCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXh0TW9udGg6IHRoaXMuZ2VuZXJhdGVDYWxlbmRhcihcbiAgICAgICAgICAgICAgZGF5anMobmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZnJvbSB8fCBuZXcgRGF0ZSgpKSkubG9jYWxlKCdydScsIHsgd2Vla1N0YXJ0OiAxIH0pLFxuICAgICAgICAgICAgICBhdmFpbGFibGVZZWFyLFxuICAgICAgICAgICAgICBhdmFpbGFibGVNb250aCxcbiAgICAgICAgICAgICAgbWluTWF4LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5jYWxlbmRhciA9IF87XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldEZyb21UbygpIHtcbiAgICBsZXQgZGF0ZUZyb207XG4gICAgbGV0IGRhdGVUbztcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGU/LmZyb20pIHtcbiAgICAgIGRhdGVGcm9tID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZnJvbSk7XG4gICAgICBkYXRlVG8gPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgZGF0ZUZyb20gPSB0aGlzLmRhdGU/LmZyb20gPyBuZXcgRGF0ZSh0aGlzLmRhdGUuZnJvbSkgOiBudWxsO1xuICAgICAgICBkYXRlVG8gPSB0aGlzLmRhdGU/LnRvID8gbmV3IERhdGUodGhpcy5kYXRlLnRvKSA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlRnJvbSA9IHRoaXMuZGF0ZT8uZnJvbSA/IG5ldyBEYXRlKHRoaXMuZGF0ZS5mcm9tKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIGRhdGVUbyA9IHRoaXMuZGF0ZT8udG8gPyBuZXcgRGF0ZSh0aGlzLmRhdGUudG8pIDogbmV3IERhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBmcm9tOiBkYXRlRnJvbSwgdG86IGRhdGVUbyB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgaXNTZWxlY3RlZChkOiBEYXRlLCBzZWxlY3RlZERhdGU6IERhdGUpIHtcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPSB0aGlzLmdldEZyb21UbygpO1xuICAgIHJldHVybiB0aGlzLmNoZWNrU2VsZWN0ZWQoZCwgZnJvbSkgfHwgdGhpcy5jaGVja1NlbGVjdGVkKGQsIHRvKTtcbiAgfVxuXG4gIGNoZWNrU2VsZWN0ZWQoZGF0ZTogRGF0ZSwgc2VsZWN0ZWREYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgaXNTZWxlY3RlZERhdGUgPSBkYXRlLmdldERhdGUoKSA9PT0gc2VsZWN0ZWREYXRlPy5nZXREYXRlKCk7XG4gICAgY29uc3QgaXNTZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBpc1NlbGVjdGVkTW9udGggPSBkYXRlLmdldE1vbnRoKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0TW9udGgoKTtcbiAgICByZXR1cm4gaXNTZWxlY3RlZERhdGUgJiYgaXNTZWxlY3RlZE1vbnRoICYmIGlzU2VsZWN0ZWRZZWFyO1xuICB9XG5cbiAgaXNGaXJzdERheVN1aXRhYmxlKG06IG51bWJlciwgeTogbnVtYmVyLCBtYXg6IHN0cmluZyB8IG51bWJlciB8IERhdGUpIHtcbiAgICBjb25zdCB7IGF2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRoIH0gPSB0aGlzLmdldEF2YWlsYWJsZU1vbnRoWWVhcihtLCB5KTtcbiAgICByZXR1cm4gdGhpcy5pc1N1aXRhYmxlTWF4RGF0ZShkYXlqcyhuZXcgRGF0ZShhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCkpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCksIG1heCk7XG4gIH1cblxuICBpc0xhc3REYXlTdWl0YWJsZShtOiBudW1iZXIsIHk6IG51bWJlciwgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKSB7XG4gICAgY29uc3QgeyBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCB9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIobSwgeSk7XG4gICAgcmV0dXJuIHRoaXMuaXNTdWl0YWJsZU1pbkRhdGUoZGF5anMobmV3IERhdGUoYXZhaWxhYmxlWWVhciwgYXZhaWxhYmxlTW9udGgpKS5lbmRPZignbW9udGgnKS50b0RhdGUoKSwgbWluKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXM/LlsnaG92ZXJlZERhdGUnXSkge1xuICAgICAgdGhpcy5jaGFuZ2VDYWxlbmRhckRhdGEodGhpcy5zZWxlY3RlZERhdGUuZnJvbSB8fCB0aGlzLmRhdGUuZnJvbSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKFxuICB7XG4gICAgY3VycmVudE1vbnRoOiBjdXJyZW50TW9udGggfCBhc3luYyxcbiAgICBjdXJyZW50WWVhcjogY3VycmVudFllYXIgfCBhc3luYyxcbiAgICBzZWxlY3RlZFBpY2tlcjogc2VsZWN0ZWRQaWNrZXIgfCBhc3luYyxcbiAgICBtaW5NYXg6IG1pbk1heCB8IGFzeW5jLFxuICB9O1xuICBhcyBkYXRhXG4pIHtcbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGVudCBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICBAaWYgKGRhdGEuc2VsZWN0ZWRQaWNrZXIgPT09ICdkYXknKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKHdoZWVsKT1cInNjcm9sbE1vbnRoKCRldmVudCwgZGF0YS5jdXJyZW50TW9udGgsIGRhdGEuY3VycmVudFllYXIpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLWgtMyBwYWRkaW5nLXYtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdkYXRlcGlja2VyLWFycm93X2hpZGRlbic6ICFpc0xhc3REYXlTdWl0YWJsZShkYXRhLmN1cnJlbnRNb250aCAtIDEsIGRhdGEuY3VycmVudFllYXIsIG1pbiksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTW9udGgoZGF0YS5jdXJyZW50TW9udGggLSAxLCBkYXRhLmN1cnJlbnRZZWFyKVwiXG4gICAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmlldz1cImdob3N0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtNCBmb250LWJ1dHRvbi0yIGFsaWduLWNlbnRlciBwYWRkaW5nLWxlZnQtMVwiPlxuICAgICAgICAgICAgICA8cD57eyBnZXRNb3RoTmFtZShkYXRhLmN1cnJlbnRNb250aCkgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2RhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQaWNrZXIoJ3llYXInKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBkYXRhLmN1cnJlbnRZZWFyIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cIidjaGFuZ2UtbW9udGgtYnV0dG9uIGRhdGVwaWNrZXItYXJyb3dfaGlkZGVuIGRhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd1JpZ2h0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8dGV0YS1kYXktcGlja2VyXG4gICAgICAgICAgICAgIFsoaG92ZXJlZERhdGUpXT1cImhvdmVyZWREYXRlXCJcbiAgICAgICAgICAgICAgW3JhbmdlXT1cImdldEZyb21UbygpXCJcbiAgICAgICAgICAgICAgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdERhdGUpPVwic2VsZWN0RGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICBbY2FsZW5kYXJdPVwiY2FsZW5kYXIuY3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgID48L3RldGEtZGF5LXBpY2tlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoZ2V0QXZhaWxhYmxlTW9udGhZZWFyKGRhdGEuY3VycmVudE1vbnRoICsgMSwgZGF0YS5jdXJyZW50WWVhcik7IGFzIGF2YWlsYWJsZU1vbnRoWWVhcikge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLWgtMyBwYWRkaW5nLXYtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgPHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlci1hcnJvd19oaWRkZW4gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgICAgIDwvdGV0YS1idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZ2FwLTQgZm9udC1idXR0b24tMiBhbGlnbi1jZW50ZXIgcGFkZGluZy1sZWZ0LTFcIj5cbiAgICAgICAgICAgICAgICA8cD57eyBnZXRNb3RoTmFtZShhdmFpbGFibGVNb250aFllYXIuYXZhaWxhYmxlTW9udGgpIH19PC9wPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgICAgICAgICAgdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGlja2VyKCd5ZWFyJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGF2YWlsYWJsZU1vbnRoWWVhci5hdmFpbGFibGVZZWFyIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdkYXRlcGlja2VyLWFycm93X2hpZGRlbic6ICFpc0ZpcnN0RGF5U3VpdGFibGUoZGF0YS5jdXJyZW50TW9udGggKyAyLCBkYXRhLmN1cnJlbnRZZWFyLCBtYXgpLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCInY2hhbmdlLW1vbnRoLWJ1dHRvbiBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1vbnRoKGRhdGEuY3VycmVudE1vbnRoICsgMSwgZGF0YS5jdXJyZW50WWVhcilcIlxuICAgICAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dSaWdodEtleVwiIFtwYWxldHRlXT1cIid0ZXh0J1wiPjwvdGV0YS1pY29uPlxuICAgICAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8dGV0YS1kYXktcGlja2VyXG4gICAgICAgICAgICAgICAgWyhob3ZlcmVkRGF0ZSldPVwiaG92ZXJlZERhdGVcIlxuICAgICAgICAgICAgICAgIFtyYW5nZV09XCJnZXRGcm9tVG8oKVwiXG4gICAgICAgICAgICAgICAgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0RGF0ZSk9XCJzZWxlY3REYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICAgICAgICBbY2FsZW5kYXJdPVwiY2FsZW5kYXIubmV4dE1vbnRoXCJcbiAgICAgICAgICAgICAgPjwvdGV0YS1kYXktcGlja2VyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGRhdGEuc2VsZWN0ZWRQaWNrZXIgPT09ICdtb250aCcpIHtcbiAgICAgIDx0ZXRhLW1vbnRoLXBpY2tlclxuICAgICAgICBbbG9jYWxlTW90aHNdPVwibG9jYWxlLm1vbnRoc1wiXG4gICAgICAgIFtjdXJyZW50WWVhcl09XCJkYXRhLmN1cnJlbnRZZWFyXCJcbiAgICAgICAgKGNoYW5nZVllYXIpPVwic2V0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgW3NlbGVjdGVkTW9udGhdPVwiZGF0YS5jdXJyZW50TW9udGhcIlxuICAgICAgICBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgICAgICAoc2VsZWN0TW9udGgpPVwic2VsZWN0TW9udGgoJGV2ZW50KVwiXG4gICAgICA+PC90ZXRhLW1vbnRoLXBpY2tlcj5cbiAgICB9XG4gICAgQGlmIChkYXRhLnNlbGVjdGVkUGlja2VyID09PSAneWVhcicpIHtcbiAgICAgIDx0ZXRhLXllYXItcGlja2VyXG4gICAgICAgIFttaW5NYXhdPVwiZGF0YS5taW5NYXhcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFt2aWV3VHlwZV09XCJ2aWV3VHlwZVwiXG4gICAgICAgIChzZWxlY3RZZWFyKT1cInNlbGVjdFllYXIoJGV2ZW50KVwiXG4gICAgICAgIFtzZWxlY3RlZFllYXJdPVwiZGF0YS5jdXJyZW50WWVhclwiXG4gICAgICA+PC90ZXRhLXllYXItcGlja2VyPlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -89,11 +89,11 @@ export class DayPickerComponent {
89
89
  this.dayOrder = arr;
90
90
  }
91
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day),\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
93
  }
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, decorators: [{
95
95
  type: Component,
96
- args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
96
+ args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day),\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
97
97
  }], ctorParameters: () => [], propDecorators: { date: [{
98
98
  type: Input
99
99
  }], calendar: [{
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
115
115
  }], selectDate: [{
116
116
  type: Output
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFHMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCO1FBWFMsU0FBSSxHQUEyQixJQUFJLElBQUksRUFBRSxDQUFDO1FBUXpDLHNCQUFpQixHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xFLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVyRCxDQUFDO0lBRWhCLFNBQVMsQ0FBQyxHQUFhLEVBQUUsSUFBNEIsRUFBRSxFQUEwQjtRQUMvRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUs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Q0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7OEdBckdVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJVQ3pCL0IsMDhCQTBCQSwwRERIWSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXhCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBRzNCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgVGV0YUxvY2FsaXNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQgeyBEYXlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF5LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF5LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIERheUl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXlQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgY2FsZW5kYXI6IERheU1vZGVsW107XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZTtcbiAgQElucHV0KCkgcmFuZ2U/OiBEYXRlRnJvbVRvTW9kZWw7XG4gIEBJbnB1dCgpIG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGU6IFRldGFMb2NhbGlzYXRpb247XG4gIEBJbnB1dCgpIGhvdmVyZWREYXRlPzogRGF0ZTtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlPzogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBwdWJsaWMgZGF5T3JkZXI6IHN0cmluZ1tdO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgaXNJblJhbmdlKGRheTogRGF5TW9kZWwsIGZyb206IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsIHRvOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlc01pbkRhdGUgPSBkYXlqcyhuZXcgRGF0ZShmcm9tKSkuc3RhcnRPZignZGF0ZScpLnRvRGF0ZSgpIDw9IGRheS5kYXRlO1xuICAgIGNvbnN0IG1hdGNoZXNNYXhEYXRlID0gZGF5LmRhdGUgPCBkYXlqcyhuZXcgRGF0ZSh0bykpLmVuZE9mKCdkYXRlJykudG9EYXRlKCk7XG4gICAgcmV0dXJuIG1hdGNoZXNNaW5EYXRlICYmIG1hdGNoZXNNYXhEYXRlO1xuICB9XG5cbiAgaXNIb3ZlcmVkUmFuZ2UoZGF5OiBEYXlNb2RlbCkge1xuICAgIGlmICghdGhpcy5yYW5nZT8udG8gJiYgdGhpcy5yYW5nZT8uZnJvbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5pc0luUmFuZ2UoZGF5LCB0aGlzLnJhbmdlLmZyb20sIHRoaXMuaG92ZXJlZERhdGUpIHx8IHRoaXMuaXNJblJhbmdlKGRheSwgdGhpcy5ob3ZlcmVkRGF0ZSwgdGhpcy5yYW5nZS5mcm9tKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNBY3RpdmVSYW5nZShkYXk6IERheU1vZGVsKSB7XG4gICAgaWYgKHRoaXMucmFuZ2U/LmZyb20gJiYgdGhpcy5yYW5nZT8udG8pIHtcbiAgICAgIHJldHVybiB0aGlzLmlzSW5SYW5nZShkYXksIHRoaXMucmFuZ2UuZnJvbSwgdGhpcy5yYW5nZS50byk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHBpY2tEYXRlKGRheTogRGF5TW9kZWwpIHtcbiAgICBpZiAoIWRheS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoZGF5LmRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlQWN0aXZlQ2xhc3MoZDogRGF5TW9kZWwpIHtcbiAgICBpZiAodGhpcy5yYW5nZSAmJiBuZXcgRGF0ZSh0aGlzLnJhbmdlPy5mcm9tKS5nZXRUaW1lKCkgIT09IG5ldyBEYXRlKHRoaXMucmFuZ2U/LnRvKS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICh0aGlzLnJhbmdlLnRvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzU3RhdGljSXRlbShkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWREYXRlLmdldFRpbWUoKSA9PT0gZC5kYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzSG92ZXJlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc1NlbGVjdGVkSXRlbShkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBob3ZlcihkYXRlOiBEYXRlKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5ob3ZlcmVkRGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmhvdmVyZWREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuaG92ZXJlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXRDbGFzc1N0YXRpY0l0ZW0oZDogRGF5TW9kZWwpIHtcbiAgICBjb25zdCBmcm9tID0gZGF5anMobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgdG8gPSBkYXlqcyhuZXcgRGF0ZSh0aGlzLnJhbmdlLnRvKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgaXRlbURhdGUgPSBkYXlqcyhuZXcgRGF0ZShkLmRhdGUpKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICBpZiAoZnJvbS5nZXRUaW1lKCkgPT09IGl0ZW1EYXRlLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKHRvLmdldFRpbWUoKSA9PT0gaXRlbURhdGUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUtc2Vjb25kJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0Q2xhc3NIb3ZlcmVkSXRlbSgpIHtcbiAgICBpZiAobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSA+IHRoaXMuaG92ZXJlZERhdGUpIHtcbiAgICAgIHJldHVybiAnZGF0ZXBpY2tlci1kYXRlX2FjdGl2ZS1maXJzdCc7XG4gICAgfVxuICAgIGlmIChuZXcgRGF0ZSh0aGlzLnJhbmdlLmZyb20pIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldENsYXNzU2VsZWN0ZWRJdGVtKGQ6IERheU1vZGVsKSB7XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlID4gdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5sb2NhbGUuZGF5c1Nob3J0XTtcbiAgICBhcnIucHVzaChhcnIuc2hpZnQoKSk7XG4gICAgdGhpcy5kYXlPcmRlciA9IGFycjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItd2VlayBmb250LWNhcHRpb25cIj5cbiAgQGZvciAoZGF5IG9mIGRheU9yZGVyOyB0cmFjayBkYXkpIHtcbiAgPHAgY2xhc3M9XCJkYXRlcGlja2VyLWRheVwiPlxuICAgIHt7IGRheSB9fVxuICA8L3A+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItcGlja2VyIGNvbG9yLXRleHQtOTAgZm9udC1ib2R5LTNcIj5cbiAgQGZvciAoZGF5IG9mIGNhbGVuZGFyOyB0cmFjayBkYXkuZGF0ZS5nZXRUaW1lKCkpIHtcbiAgPGRpdlxuICAgIFtjbGFzc109XCJnZXRSYW5nZUFjdGl2ZUNsYXNzKGRheSkgKyAnIGRhdGVwaWNrZXItZGF0ZSBmb250LWJvZHktMyBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaG92ZXIoZGF5LmRhdGUpXCJcbiAgICAoY2xpY2spPVwicGlja0RhdGUoZGF5KVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUnOiBkYXkuc2VsZWN0ZWQgfHwgKGRheS5kYXRlID09PSBob3ZlcmVkRGF0ZSAmJiByYW5nZSAmJiAhcmFuZ2UudG8pLFxuICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9ob3Zlcic6IHJhbmdlICYmIGlzSG92ZXJlZFJhbmdlKGRheSksXG4gICAgICAnZGF0ZXBpY2tlci1kYXRlX2Rpc2FibGVkJzogZGF5LmRpc2FibGVkLFxuICAgICAgJ2NvbG9yLXRleHQtMzAnOiBkYXkuZGlzYWJsZWQgfHwgKCFyYW5nZSAmJiAhZGF5LmlzQ3VycmVudE1vbnRoKSxcbiAgICAgICdkYXRlcGlja2VyLWRhdGUtcmFuZ2VfZGlzYWJsZWQnOiAhZGF5LmlzQ3VycmVudE1vbnRoICYmIHJhbmdlLFxuICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9hY3RpdmUnOiBpc0FjdGl2ZVJhbmdlKGRheSlcbiAgICB9XCJcbiAgPlxuICAgIDx0ZXRhLWRheS1pdGVtIFtkYXldPVwiZGF5XCI+PC90ZXRhLWRheS1pdGVtPlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFHMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCO1FBWFMsU0FBSSxHQUEyQixJQUFJLElBQUksRUFBRSxDQUFDO1FBUXpDLHNCQUFpQixHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xFLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVyRCxDQUFDO0lBRWhCLFNBQVMsQ0FBQyxHQUFhLEVBQUUsSUFBNEIsRUFBRSxFQUEwQjtRQUMvRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUs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Q0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7OEdBckdVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJVQ3pCL0IsKytCQTBCQSwwRERIWSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXhCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBRzNCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgVGV0YUxvY2FsaXNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQgeyBEYXlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF5LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF5LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIERheUl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXlQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgY2FsZW5kYXI6IERheU1vZGVsW107XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZTtcbiAgQElucHV0KCkgcmFuZ2U/OiBEYXRlRnJvbVRvTW9kZWw7XG4gIEBJbnB1dCgpIG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGU6IFRldGFMb2NhbGlzYXRpb247XG4gIEBJbnB1dCgpIGhvdmVyZWREYXRlPzogRGF0ZTtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlPzogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBwdWJsaWMgZGF5T3JkZXI6IHN0cmluZ1tdO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgaXNJblJhbmdlKGRheTogRGF5TW9kZWwsIGZyb206IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsIHRvOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlc01pbkRhdGUgPSBkYXlqcyhuZXcgRGF0ZShmcm9tKSkuc3RhcnRPZignZGF0ZScpLnRvRGF0ZSgpIDw9IGRheS5kYXRlO1xuICAgIGNvbnN0IG1hdGNoZXNNYXhEYXRlID0gZGF5LmRhdGUgPCBkYXlqcyhuZXcgRGF0ZSh0bykpLmVuZE9mKCdkYXRlJykudG9EYXRlKCk7XG4gICAgcmV0dXJuIG1hdGNoZXNNaW5EYXRlICYmIG1hdGNoZXNNYXhEYXRlO1xuICB9XG5cbiAgaXNIb3ZlcmVkUmFuZ2UoZGF5OiBEYXlNb2RlbCkge1xuICAgIGlmICghdGhpcy5yYW5nZT8udG8gJiYgdGhpcy5yYW5nZT8uZnJvbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5pc0luUmFuZ2UoZGF5LCB0aGlzLnJhbmdlLmZyb20sIHRoaXMuaG92ZXJlZERhdGUpIHx8IHRoaXMuaXNJblJhbmdlKGRheSwgdGhpcy5ob3ZlcmVkRGF0ZSwgdGhpcy5yYW5nZS5mcm9tKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNBY3RpdmVSYW5nZShkYXk6IERheU1vZGVsKSB7XG4gICAgaWYgKHRoaXMucmFuZ2U/LmZyb20gJiYgdGhpcy5yYW5nZT8udG8pIHtcbiAgICAgIHJldHVybiB0aGlzLmlzSW5SYW5nZShkYXksIHRoaXMucmFuZ2UuZnJvbSwgdGhpcy5yYW5nZS50byk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHBpY2tEYXRlKGRheTogRGF5TW9kZWwpIHtcbiAgICBpZiAoIWRheS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoZGF5LmRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlQWN0aXZlQ2xhc3MoZDogRGF5TW9kZWwpIHtcbiAgICBpZiAodGhpcy5yYW5nZSAmJiBuZXcgRGF0ZSh0aGlzLnJhbmdlPy5mcm9tKS5nZXRUaW1lKCkgIT09IG5ldyBEYXRlKHRoaXMucmFuZ2U/LnRvKS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICh0aGlzLnJhbmdlLnRvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzU3RhdGljSXRlbShkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWREYXRlLmdldFRpbWUoKSA9PT0gZC5kYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzSG92ZXJlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc1NlbGVjdGVkSXRlbShkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBob3ZlcihkYXRlOiBEYXRlKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5ob3ZlcmVkRGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmhvdmVyZWREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuaG92ZXJlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXRDbGFzc1N0YXRpY0l0ZW0oZDogRGF5TW9kZWwpIHtcbiAgICBjb25zdCBmcm9tID0gZGF5anMobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgdG8gPSBkYXlqcyhuZXcgRGF0ZSh0aGlzLnJhbmdlLnRvKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgaXRlbURhdGUgPSBkYXlqcyhuZXcgRGF0ZShkLmRhdGUpKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICBpZiAoZnJvbS5nZXRUaW1lKCkgPT09IGl0ZW1EYXRlLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKHRvLmdldFRpbWUoKSA9PT0gaXRlbURhdGUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUtc2Vjb25kJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0Q2xhc3NIb3ZlcmVkSXRlbSgpIHtcbiAgICBpZiAobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSA+IHRoaXMuaG92ZXJlZERhdGUpIHtcbiAgICAgIHJldHVybiAnZGF0ZXBpY2tlci1kYXRlX2FjdGl2ZS1maXJzdCc7XG4gICAgfVxuICAgIGlmIChuZXcgRGF0ZSh0aGlzLnJhbmdlLmZyb20pIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldENsYXNzU2VsZWN0ZWRJdGVtKGQ6IERheU1vZGVsKSB7XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlID4gdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5sb2NhbGUuZGF5c1Nob3J0XTtcbiAgICBhcnIucHVzaChhcnIuc2hpZnQoKSk7XG4gICAgdGhpcy5kYXlPcmRlciA9IGFycjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItd2VlayBmb250LWNhcHRpb25cIj5cbiAgQGZvciAoZGF5IG9mIGRheU9yZGVyOyB0cmFjayBkYXkpIHtcbiAgICA8cCBjbGFzcz1cImRhdGVwaWNrZXItZGF5XCI+XG4gICAgICB7eyBkYXkgfX1cbiAgICA8L3A+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItcGlja2VyIGNvbG9yLXRleHQtOTAgZm9udC1ib2R5LTNcIj5cbiAgQGZvciAoZGF5IG9mIGNhbGVuZGFyOyB0cmFjayBkYXkuZGF0ZS5nZXRUaW1lKCkpIHtcbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiZ2V0UmFuZ2VBY3RpdmVDbGFzcyhkYXkpICsgJyBkYXRlcGlja2VyLWRhdGUgZm9udC1ib2R5LTMgZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXIoZGF5LmRhdGUpXCJcbiAgICAgIChjbGljayk9XCJwaWNrRGF0ZShkYXkpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUnOiBkYXkuc2VsZWN0ZWQgfHwgKGRheS5kYXRlID09PSBob3ZlcmVkRGF0ZSAmJiByYW5nZSAmJiAhcmFuZ2UudG8pLFxuICAgICAgICAnZGF0ZXBpY2tlci1kYXRlLXJhbmdlX2hvdmVyJzogcmFuZ2UgJiYgaXNIb3ZlcmVkUmFuZ2UoZGF5KSxcbiAgICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9kaXNhYmxlZCc6IGRheS5kaXNhYmxlZCxcbiAgICAgICAgJ2NvbG9yLXRleHQtMzAnOiBkYXkuZGlzYWJsZWQgfHwgKCFyYW5nZSAmJiAhZGF5LmlzQ3VycmVudE1vbnRoKSxcbiAgICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9kaXNhYmxlZCc6ICFkYXkuaXNDdXJyZW50TW9udGggJiYgcmFuZ2UsXG4gICAgICAgICdkYXRlcGlja2VyLWRhdGUtcmFuZ2VfYWN0aXZlJzogaXNBY3RpdmVSYW5nZShkYXkpLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHRldGEtZGF5LWl0ZW0gW2RheV09XCJkYXlcIj48L3RldGEtZGF5LWl0ZW0+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -26,11 +26,11 @@ export class MonthPickerComponent {
26
26
  });
27
27
  }
28
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
32
32
  type: Component,
33
- args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
33
+ args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
34
34
  }], ctorParameters: () => [], propDecorators: { selectedMonth: [{
35
35
  type: Input
36
36
  }], viewType: [{
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
44
44
  }], changeYear: [{
45
45
  type: Output
46
46
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9udGgtcGlja2VyL21vbnRoLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFVdkUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQjtRQVJTLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBSXpCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsZUFBVSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pFLFdBQU0sR0FBbUIsRUFBRSxDQUFDO0lBRXBCLENBQUM7SUFFaEIsU0FBUyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxPQUFPO2dCQUNMLEVBQUUsRUFBRSxDQUFDO2dCQUNMLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUM7YUFDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzQlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMFFDZmpDLGl3Q0FxQ0EsMEREeEJZLGVBQWUsaUpBQUUsYUFBYSxvR0FBRSxPQUFPOzsyRkFFdEMsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO3dEQUd6QyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtbW9udGgtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbnRoLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTmdDbGFzc10sXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRNb250aDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgdmlld1R5cGU6IHZpZXdUeXBlO1xuICBASW5wdXQoKSBjdXJyZW50WWVhcjogbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGVNb3Roczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBzZWxlY3RNb250aDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZVllYXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHB1YmxpYyBtb250aHM6IElJZE5hbWU8YW55PltdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHBpY2tNb250aChtb250aElkOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdE1vbnRoLmVtaXQobW9udGhJZCk7XG4gIH1cblxuICBwaWNrWWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZVllYXIuZW1pdCh5ZWFyKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhzID0gdGhpcy5sb2NhbGVNb3Rocy5tYXAoKG0sIGkpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpLFxuICAgICAgICBuYW1lOiBtLFxuICAgICAgICBpc1NlbGVjdGVkOiB0aGlzLnNlbGVjdGVkTW9udGggPT09IGksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFkZGluZy1oLTMgcGFkZGluZy12LTIgZ2FwLTggY29sdW1uIGRhdGVwaWNrZXItbW9udGgtd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmb250LWJ1dHRvbi0yXCI+XG4gICAgPHRldGEtYnV0dG9uXG4gICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJwaWNrWWVhcihjdXJyZW50WWVhciAtIDEpXCJcbiAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgPlxuICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgPC90ZXRhLWJ1dHRvbj5cbiAgICA8cD57eyBjdXJyZW50WWVhciB9fTwvcD5cbiAgICA8dGV0YS1idXR0b25cbiAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgKGNsaWNrKT1cInBpY2tZZWFyKGN1cnJlbnRZZWFyICsgMSlcIlxuICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgdmlldz1cImdob3N0XCJcbiAgICA+XG4gICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd1JpZ2h0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgPC90ZXRhLWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLW1vbnRoIGZvbnQtYm9keS0zIGNvbG9yLXRleHQtOTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgQGZvciAobW9udGggb2YgbW9udGhzOyB0cmFjayBtb250aCkge1xuICAgIDxkaXYgKGNsaWNrKT1cInBpY2tNb250aChtb250aC5pZClcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZGF0ZXBpY2tlci1tb250aF9pdGVtX2FjdGl2ZSc6IG1vbnRoWydpc1NlbGVjdGVkJ10gfVwiXG4gICAgICAgIFtjbGFzc109XCInZGF0ZXBpY2tlci1tb250aF9pdGVtIGNvbHVtbiBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgICA+XG4gICAgICAgIDxwPlxuICAgICAgICAgIHt7IG1vbnRoLm5hbWUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9udGgtcGlja2VyL21vbnRoLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFVdkUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQjtRQVJTLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBSXpCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsZUFBVSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pFLFdBQU0sR0FBbUIsRUFBRSxDQUFDO0lBRXBCLENBQUM7SUFFaEIsU0FBUyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxPQUFPO2dCQUNMLEVBQUUsRUFBRSxDQUFDO2dCQUNMLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUM7YUFDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzQlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMFFDZmpDLHF4Q0FxQ0EsMEREeEJZLGVBQWUsaUpBQUUsYUFBYSxvR0FBRSxPQUFPOzsyRkFFdEMsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO3dEQUd6QyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtbW9udGgtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbnRoLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTmdDbGFzc10sXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRNb250aDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgdmlld1R5cGU6IHZpZXdUeXBlO1xuICBASW5wdXQoKSBjdXJyZW50WWVhcjogbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGVNb3Roczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBzZWxlY3RNb250aDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZVllYXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHB1YmxpYyBtb250aHM6IElJZE5hbWU8YW55PltdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHBpY2tNb250aChtb250aElkOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdE1vbnRoLmVtaXQobW9udGhJZCk7XG4gIH1cblxuICBwaWNrWWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZVllYXIuZW1pdCh5ZWFyKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhzID0gdGhpcy5sb2NhbGVNb3Rocy5tYXAoKG0sIGkpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpLFxuICAgICAgICBuYW1lOiBtLFxuICAgICAgICBpc1NlbGVjdGVkOiB0aGlzLnNlbGVjdGVkTW9udGggPT09IGksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFkZGluZy1oLTMgcGFkZGluZy12LTIgZ2FwLTggY29sdW1uIGRhdGVwaWNrZXItbW9udGgtd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmb250LWJ1dHRvbi0yXCI+XG4gICAgPHRldGEtYnV0dG9uXG4gICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJwaWNrWWVhcihjdXJyZW50WWVhciAtIDEpXCJcbiAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgPlxuICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgPC90ZXRhLWJ1dHRvbj5cbiAgICA8cD57eyBjdXJyZW50WWVhciB9fTwvcD5cbiAgICA8dGV0YS1idXR0b25cbiAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgKGNsaWNrKT1cInBpY2tZZWFyKGN1cnJlbnRZZWFyICsgMSlcIlxuICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgdmlldz1cImdob3N0XCJcbiAgICA+XG4gICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd1JpZ2h0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgPC90ZXRhLWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLW1vbnRoIGZvbnQtYm9keS0zIGNvbG9yLXRleHQtOTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgQGZvciAobW9udGggb2YgbW9udGhzOyB0cmFjayBtb250aCkge1xuICAgICAgPGRpdiAoY2xpY2spPVwicGlja01vbnRoKG1vbnRoLmlkKVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGF0ZXBpY2tlci1tb250aF9pdGVtX2FjdGl2ZSc6IG1vbnRoWydpc1NlbGVjdGVkJ10gfVwiXG4gICAgICAgICAgW2NsYXNzXT1cIidkYXRlcGlja2VyLW1vbnRoX2l0ZW0gY29sdW1uIGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGRhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAge3sgbW9udGgubmFtZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=