@tetacom/ng-components 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/color-icons.svg +374 -697
- package/assets/file-icons.svg +0 -1
- package/assets/icons.svg +205 -138
- package/common/contract/auto-close-ignore-case.d.ts +1 -1
- package/common/contract/constructor-type.d.ts +1 -1
- package/common/model/public-api.d.ts +1 -0
- package/common/model/view-type.model.d.ts +1 -0
- package/common/public-api.d.ts +1 -0
- package/component/accordion/accordion/accordion.component.d.ts +1 -1
- package/component/accordion/accordion-content.directive.d.ts +1 -1
- package/component/accordion/accordion-head/accordion-head.component.d.ts +1 -1
- package/component/accordion/accordion-item/accordion-item.component.d.ts +4 -1
- package/component/autocomplete/autocomplete/autocomplete.component.d.ts +1 -1
- package/component/avatar/avatar/avatar.component.d.ts +17 -0
- package/component/avatar/avatar.module.d.ts +9 -0
- package/component/avatar/model/avatar-color.enum.d.ts +20 -0
- package/component/avatar/public-api.d.ts +2 -0
- package/component/button/button/button.component.d.ts +5 -2
- package/component/chart-3d/chart3d/chart3d.component.d.ts +1 -1
- package/component/checkbox/checkbox/checkbox.component.d.ts +2 -1
- package/component/date-picker/base-calendar.d.ts +49 -0
- package/component/date-picker/base-picker.d.ts +60 -0
- package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +20 -0
- package/component/date-picker/date-picker/date-picker.component.d.ts +38 -68
- package/component/date-picker/date-picker.module.d.ts +19 -16
- package/component/date-picker/date-range/date-range.component.d.ts +46 -0
- package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +39 -0
- package/component/date-picker/day-picker/day-item/day-item.component.d.ts +9 -0
- package/component/date-picker/day-picker/day-picker.component.d.ts +30 -0
- package/component/date-picker/model/from-to.model.d.ts +4 -0
- package/component/date-picker/model/min-max-date.model.d.ts +4 -0
- package/component/date-picker/model/public-api.d.ts +5 -0
- package/component/date-picker/month-picker/month-picker.component.d.ts +16 -50
- package/component/date-picker/public-api.d.ts +6 -5
- package/component/date-picker/year-picker/scroll-to-selected-year.directive.d.ts +11 -0
- package/component/date-picker/year-picker/year-picker.component.d.ts +24 -0
- package/component/delimiter/delimiter/delimiter.component.d.ts +1 -1
- package/component/divider/divider/divider.component.d.ts +10 -0
- package/component/divider/divider.module.d.ts +8 -0
- package/component/divider/public-api.d.ts +2 -0
- package/component/dropdown/dropdown/dropdown.component.d.ts +1 -1
- package/component/dropdown/dropdown-base.d.ts +3 -1
- package/component/dropdown/dropdown-content.directive.d.ts +1 -1
- package/component/dropdown/dropdown-head.directive.d.ts +1 -1
- package/component/dropdown/dropdown.directive.d.ts +1 -1
- package/component/dynamic-component/popup-content/popup-content.component.d.ts +1 -1
- package/component/expand-card/expand-card/expand-card.component.d.ts +1 -1
- package/component/expand-card/expand-item/expand-item.component.d.ts +1 -1
- package/component/expand-panel/expand-panel/expand-panel.component.d.ts +1 -1
- package/component/expand-panel/expand-panel-content.directive.d.ts +1 -1
- package/component/expand-panel/expand-panel-head.directive.d.ts +1 -1
- package/component/file-upload/file-item/file-item.component.d.ts +1 -1
- package/component/file-upload/file-upload-area/file-upload-area.component.d.ts +1 -1
- package/component/filter/base/filter-base.d.ts +2 -2
- package/component/filter/base/filter-component-base.d.ts +1 -1
- package/component/filter/boolean-filter/boolean-filter.component.d.ts +2 -2
- package/component/filter/contarct/boolean-filter.d.ts +1 -2
- package/component/filter/contarct/date-filter.d.ts +1 -2
- package/component/filter/contarct/i-filter.d.ts +2 -2
- package/component/filter/contarct/list-filter.d.ts +1 -2
- package/component/filter/contarct/numeric-filter.d.ts +1 -2
- package/component/filter/contarct/string-filter.d.ts +1 -2
- package/component/filter/date-filter/date-filter.component.d.ts +3 -2
- package/component/filter/filter-host/filter-host.component.d.ts +2 -2
- package/component/filter/list-filter/list-filter.component.d.ts +2 -2
- package/component/filter/numeric-filter/numeric-filter.component.d.ts +3 -2
- package/component/filter/string-filter/string-filter.component.d.ts +2 -2
- package/component/icon/icon/icon.component.d.ts +1 -1
- package/component/icon/icon-file/icon-file.component.d.ts +9 -3
- package/component/icon/icon-file/icon-file.module.d.ts +9 -0
- package/component/icon/icon-sprite.directive.d.ts +1 -1
- package/component/icon/icon.module.d.ts +4 -5
- package/component/icon/public-api.d.ts +1 -0
- package/component/input/color-input/color-input.component.d.ts +1 -1
- package/component/input/form-group-title/form-group-title.component.d.ts +1 -1
- package/component/input/input/input.component.d.ts +3 -1
- package/component/input/text-field/text-field.component.d.ts +1 -1
- package/component/message/message/message.component.d.ts +1 -1
- package/component/message/message-host/message-host.component.d.ts +1 -1
- package/component/message/model/message.d.ts +3 -0
- package/component/modal/dialog/dialog.component.d.ts +1 -1
- package/component/modal/modal-container/modal-container.component.d.ts +1 -1
- package/component/pager/pager/pager.component.d.ts +1 -1
- package/component/panel/panel/panel.component.d.ts +1 -1
- package/component/progress-bar/progress-bar/progress-bar.component.d.ts +1 -1
- package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +1 -1
- package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +1 -1
- package/component/property-grid/property-grid/property-grid-item-description.directive.d.ts +1 -1
- package/component/property-grid/property-grid/property-grid.component.d.ts +1 -1
- package/component/public-api.d.ts +2 -0
- package/component/radio/radio/radio.component.d.ts +1 -1
- package/component/radio/radio-button/radio-button.component.d.ts +1 -1
- package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -1
- package/component/select/select/select.component.d.ts +4 -1
- package/component/select/select-option.directive.d.ts +1 -1
- package/component/select/select-value.directive.d.ts +1 -1
- package/component/sidebar/sidebar/sidebar.component.d.ts +1 -1
- package/component/switch/switch/switch.component.d.ts +4 -1
- package/component/switch/switch-button/switch-button.component.d.ts +1 -1
- package/component/table/base/cell-component-base.d.ts +1 -1
- package/component/table/base/head-cell-component-base.d.ts +1 -1
- package/component/table/cell/cell.component.d.ts +1 -1
- package/component/table/cell-host/cell-host.component.d.ts +1 -1
- package/component/table/contract/table-column.d.ts +0 -2
- package/component/table/default/boolean-cell/boolean-cell.component.d.ts +1 -4
- package/component/table/default/date-cell/date-cell.component.d.ts +1 -4
- package/component/table/default/date-time-cell/date-time-cell.component.d.ts +1 -4
- package/component/table/default/default-head-cell/default-head-cell.component.d.ts +1 -1
- package/component/table/default/list-cell/list-cell.component.d.ts +1 -5
- package/component/table/default/numeric-cell/numeric-cell.component.d.ts +1 -4
- package/component/table/default/string-cell/string-cell.component.d.ts +1 -4
- package/component/table/head-cell/head-cell.component.d.ts +1 -1
- package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +1 -1
- package/component/table/head-cell-host/head-cell-host.component.d.ts +1 -1
- package/component/table/selection-cell/selection-cell.component.d.ts +1 -1
- package/component/table/selection-head-cell/selection-head-cell.component.d.ts +1 -1
- package/component/table/table/table.component.d.ts +1 -1
- package/component/table/table-body/table-body.component.d.ts +1 -1
- package/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.d.ts +1 -1
- package/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.d.ts +1 -1
- package/component/table/table-head/table-head.component.d.ts +1 -1
- package/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.d.ts +1 -1
- package/component/table/table-head-group/table-head-group.component.d.ts +1 -1
- package/component/tabs/tab/tab.component.d.ts +1 -1
- package/component/tabs/tab-content.directive.d.ts +1 -1
- package/component/tabs/tab-title.directive.d.ts +1 -1
- package/component/tabs/tabs/tabs.component.d.ts +1 -1
- package/component/theme-switch/theme-switch/theme-switch.component.d.ts +1 -1
- package/component/toggle/toggle/toggle.component.d.ts +1 -1
- package/component/toolbar/toolbar/toolbar.component.d.ts +1 -1
- package/component/tree/tree/tree.component.d.ts +1 -1
- package/component/tree/tree-item/tree-item.component.d.ts +1 -1
- package/component/tree/tree-item-toggle/tree-item-toggle.component.d.ts +1 -1
- package/directive/auto-position/auto-position.directive.d.ts +1 -1
- package/directive/click-outside/click-outside.directive.d.ts +1 -1
- package/directive/context-menu/context-menu.directive.d.ts +1 -1
- package/directive/disable-control/disable-control.directive.d.ts +1 -1
- package/directive/drag-drop/drag-container.directive.d.ts +1 -1
- package/directive/drag-drop/drag-placeholder.directive.d.ts +1 -1
- package/directive/drag-drop/drag-preview.directive.d.ts +1 -1
- package/directive/drag-drop/drag.directive.d.ts +1 -1
- package/directive/drag-drop/model/drop-target.d.ts +1 -1
- package/directive/drag-sort/drag-sort-container.directive.d.ts +1 -1
- package/directive/drag-sort/drag-sort-item.directive.d.ts +1 -1
- package/directive/dynamic-content-base.directive.d.ts +1 -1
- package/directive/highlight/highlight.directive.d.ts +1 -1
- package/directive/hint/hint.directive.d.ts +3 -1
- package/directive/let/let.directive.d.ts +1 -1
- package/directive/loader/loader.directive.d.ts +1 -1
- package/directive/no-autofill/no-autofill.directive.d.ts +1 -1
- package/directive/only-number/only-number.directive.d.ts +1 -1
- package/directive/resize-drag/resize-drag.directive.d.ts +1 -1
- package/directive/scroll-into-view/scroll-into-view.directive.d.ts +1 -1
- package/directive/scrollable/scrollable/scrollable.component.d.ts +1 -1
- package/directive/scrollable/scrollable.directive.d.ts +1 -1
- package/directive/teta-template/teta-template.directive.d.ts +1 -1
- package/directive/tooltip/tooltip.directive.d.ts +1 -1
- package/esm2022/common/contract/teta-content-ref.mjs +11 -0
- package/esm2022/common/model/public-api.mjs +2 -0
- package/esm2022/common/model/view-type.model.mjs +2 -0
- package/esm2022/common/public-api.mjs +6 -0
- package/esm2022/common/service/click.service.mjs +26 -0
- package/esm2022/common/service/dynamic-component.service.mjs +97 -0
- package/esm2022/common/service/overlay-container.service.mjs +43 -0
- package/esm2022/component/accordion/accordion/accordion.component.mjs +19 -0
- package/esm2022/component/accordion/accordion-content.directive.mjs +17 -0
- package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +54 -0
- package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +58 -0
- package/{esm2020 → esm2022}/component/accordion/accordion.module.mjs +7 -7
- package/{esm2020 → esm2022}/component/autocomplete/autocomplete/autocomplete.component.mjs +4 -4
- package/{esm2020 → esm2022}/component/autocomplete/autocomplete.module.mjs +5 -5
- package/esm2022/component/avatar/avatar/avatar.component.mjs +60 -0
- package/esm2022/component/avatar/avatar.module.mjs +28 -0
- package/esm2022/component/avatar/model/avatar-color.enum.mjs +22 -0
- package/esm2022/component/avatar/public-api.mjs +3 -0
- package/esm2022/component/button/button/button.component.mjs +57 -0
- package/{esm2020 → esm2022}/component/button/button.module.mjs +5 -5
- package/{esm2020 → esm2022}/component/chart-3d/chart-3d.module.mjs +5 -5
- package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +255 -0
- package/esm2022/component/chart-3d/model/chart-3d-options.mjs +9 -0
- package/esm2022/component/chart-3d/model/series-3d.mjs +9 -0
- package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +154 -0
- package/{esm2020 → esm2022}/component/checkbox/checkbox.module.mjs +7 -7
- package/esm2022/component/date-picker/base-calendar.mjs +100 -0
- package/esm2022/component/date-picker/base-picker.mjs +107 -0
- package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +56 -0
- package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +206 -0
- package/esm2022/component/date-picker/date-picker.module.mjs +65 -0
- package/esm2022/component/date-picker/date-range/date-range.component.mjs +218 -0
- package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +119 -0
- package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +16 -0
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +120 -0
- package/esm2022/component/date-picker/model/date-period.mjs +9 -0
- package/esm2022/component/date-picker/model/day-model.mjs +19 -0
- package/esm2022/component/date-picker/model/from-to.model.mjs +2 -0
- package/esm2022/component/date-picker/model/min-max-date.model.mjs +2 -0
- package/esm2022/component/date-picker/model/public-api.mjs +6 -0
- package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +53 -0
- package/esm2022/component/date-picker/public-api.mjs +7 -0
- package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +27 -0
- package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +53 -0
- package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +63 -0
- package/{esm2020 → esm2022}/component/delimiter/delimiter.module.mjs +5 -5
- package/esm2022/component/divider/divider/divider.component.mjs +20 -0
- package/esm2022/component/divider/divider.module.mjs +20 -0
- package/esm2022/component/divider/public-api.mjs +3 -0
- package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +36 -0
- package/esm2022/component/dropdown/dropdown-base.mjs +238 -0
- package/esm2022/component/dropdown/dropdown-content.directive.mjs +19 -0
- package/esm2022/component/dropdown/dropdown-head.directive.mjs +19 -0
- package/esm2022/component/dropdown/dropdown.directive.mjs +43 -0
- package/{esm2020 → esm2022}/component/dropdown/dropdown.module.mjs +11 -11
- package/{esm2020 → esm2022}/component/dynamic-component/dynamic-component.module.mjs +5 -5
- package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +59 -0
- package/{esm2020 → esm2022}/component/expand-card/expand-card/expand-card.component.mjs +8 -8
- package/{esm2020 → esm2022}/component/expand-card/expand-card.module.mjs +15 -15
- package/{esm2020 → esm2022}/component/expand-card/expand-item/expand-item.component.mjs +6 -6
- package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +68 -0
- package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +17 -0
- package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +17 -0
- package/{esm2020 → esm2022}/component/expand-panel/expand-panel.module.mjs +17 -17
- package/{esm2020 → esm2022}/component/file-upload/file-item/file-item.component.mjs +4 -4
- package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +87 -0
- package/{esm2020 → esm2022}/component/file-upload/file-upload.module.mjs +5 -5
- package/esm2022/component/filter/base/filter-base.mjs +13 -0
- package/{esm2020 → esm2022}/component/filter/base/filter-component-base.mjs +1 -1
- package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +67 -0
- package/esm2022/component/filter/contarct/boolean-filter.mjs +8 -0
- package/esm2022/component/filter/contarct/date-filter-value.mjs +17 -0
- package/esm2022/component/filter/contarct/date-filter.mjs +11 -0
- package/esm2022/component/filter/contarct/filter-item.mjs +78 -0
- package/esm2022/component/filter/contarct/filter-state.mjs +145 -0
- package/{esm2020 → esm2022}/component/filter/contarct/i-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/list-filter.mjs +13 -0
- package/esm2022/component/filter/contarct/numeric-filter-value.mjs +22 -0
- package/esm2022/component/filter/contarct/numeric-filter.mjs +10 -0
- package/esm2022/component/filter/contarct/sort-param.mjs +26 -0
- package/esm2022/component/filter/contarct/string-filter.mjs +13 -0
- package/esm2022/component/filter/date-filter/date-filter.component.mjs +67 -0
- package/esm2022/component/filter/filter-host/filter-host.component.mjs +85 -0
- package/{esm2020 → esm2022}/component/filter/filter.module.mjs +31 -31
- package/esm2022/component/filter/list-filter/list-filter.component.mjs +103 -0
- package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +67 -0
- package/esm2022/component/filter/string-filter/string-filter.component.mjs +68 -0
- package/esm2022/component/icon/icon/icon.component.mjs +39 -0
- package/esm2022/component/icon/icon-file/icon-file.component.mjs +30 -0
- package/esm2022/component/icon/icon-file/icon-file.module.mjs +28 -0
- package/esm2022/component/icon/icon-sprite.directive.mjs +34 -0
- package/esm2022/component/icon/icon.module.mjs +33 -0
- package/esm2022/component/icon/icon.service.mjs +64 -0
- package/{esm2020 → esm2022}/component/icon/public-api.mjs +2 -1
- package/esm2022/component/input/color-input/color-input.component.mjs +75 -0
- package/{esm2020 → esm2022}/component/input/form-group-title/form-group-title.component.mjs +6 -7
- package/esm2022/component/input/input/input.component.mjs +41 -0
- package/esm2022/component/input/input.module.mjs +26 -0
- package/esm2022/component/input/text-field/text-field.component.mjs +102 -0
- package/esm2022/component/message/message/message.component.mjs +79 -0
- package/esm2022/component/message/message-host/message-host.component.mjs +91 -0
- package/{esm2020 → esm2022}/component/message/message.module.mjs +9 -9
- package/esm2022/component/message/message.service.mjs +37 -0
- package/esm2022/component/message/model/message.mjs +29 -0
- package/esm2022/component/modal/dialog/dialog.component.mjs +51 -0
- package/esm2022/component/modal/dialog.service.mjs +40 -0
- package/esm2022/component/modal/modal-container/modal-container.component.mjs +86 -0
- package/esm2022/component/modal/modal.module.mjs +50 -0
- package/esm2022/component/modal/modal.service.mjs +125 -0
- package/{esm2020 → esm2022}/component/modal/model/current-modal.mjs +2 -1
- package/esm2022/component/modal/model/modal-instance.mjs +37 -0
- package/esm2022/component/pager/model/pager-state.mjs +70 -0
- package/{esm2020 → esm2022}/component/pager/pager/pager.component.mjs +4 -4
- package/{esm2020 → esm2022}/component/pager/pager.module.mjs +7 -7
- package/esm2022/component/panel/panel/panel.component.mjs +50 -0
- package/{esm2020 → esm2022}/component/panel/panel.module.mjs +5 -5
- package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +139 -0
- package/{esm2020 → esm2022}/component/progress-bar/progress-bar.module.mjs +5 -5
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +45 -0
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +141 -0
- package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +21 -0
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +105 -0
- package/esm2022/component/property-grid/property-grid.module.mjs +87 -0
- package/esm2022/component/public-api.mjs +68 -0
- package/esm2022/component/radio/radio/radio.component.mjs +250 -0
- package/esm2022/component/radio/radio-button/radio-button.component.mjs +69 -0
- package/{esm2020 → esm2022}/component/radio/radio.module.mjs +5 -5
- package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +176 -0
- package/{esm2020 → esm2022}/component/resize-panel/resize-panel.module.mjs +5 -5
- package/esm2022/component/select/select/select.component.mjs +284 -0
- package/esm2022/component/select/select-option.directive.mjs +17 -0
- package/esm2022/component/select/select-value.directive.mjs +17 -0
- package/{esm2020 → esm2022}/component/select/select.module.mjs +21 -21
- package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +56 -0
- package/{esm2020 → esm2022}/component/sidebar/sidebar.module.mjs +9 -9
- package/esm2022/component/switch/switch/switch.component.mjs +67 -0
- package/esm2022/component/switch/switch-button/switch-button.component.mjs +52 -0
- package/{esm2020 → esm2022}/component/switch/switch.module.mjs +5 -5
- package/esm2022/component/switch/switch.service.mjs +22 -0
- package/esm2022/component/table/base/cell-component-base.mjs +108 -0
- package/{esm2020 → esm2022}/component/table/base/head-cell-component-base.mjs +4 -4
- package/esm2022/component/table/cell/cell.component.mjs +38 -0
- package/esm2022/component/table/cell-host/cell-host.component.mjs +56 -0
- package/esm2022/component/table/contract/column-reorder-event.mjs +9 -0
- package/esm2022/component/table/contract/column-resize-event.mjs +9 -0
- package/esm2022/component/table/contract/sort-event.mjs +9 -0
- package/esm2022/component/table/contract/table-column-store.mjs +17 -0
- package/esm2022/component/table/contract/table-column.mjs +112 -0
- package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +44 -0
- package/esm2022/component/table/default/date-cell/date-cell.component.mjs +46 -0
- package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +45 -0
- package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +51 -0
- package/esm2022/component/table/default/list-cell/list-cell.component.mjs +71 -0
- package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +53 -0
- package/esm2022/component/table/default/string-cell/string-cell.component.mjs +53 -0
- package/esm2022/component/table/head-cell/head-cell.component.mjs +207 -0
- package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +59 -0
- package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +66 -0
- package/esm2022/component/table/selection-cell/selection-cell.component.mjs +49 -0
- package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +47 -0
- package/esm2022/component/table/service/table.service.mjs +672 -0
- package/esm2022/component/table/table/table.component.mjs +491 -0
- package/esm2022/component/table/table-body/table-body.component.mjs +224 -0
- package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +66 -0
- package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +97 -0
- package/esm2022/component/table/table-head/table-head.component.mjs +85 -0
- package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +153 -0
- package/esm2022/component/table/table-head-group/table-head-group.component.mjs +82 -0
- package/{esm2020 → esm2022}/component/table/table.module.mjs +74 -74
- package/esm2022/component/tabs/tab/tab.component.mjs +46 -0
- package/esm2022/component/tabs/tab-content.directive.mjs +17 -0
- package/esm2022/component/tabs/tab-title.directive.mjs +17 -0
- package/esm2022/component/tabs/tabs/tabs.component.mjs +74 -0
- package/{esm2020 → esm2022}/component/tabs/tabs.module.mjs +11 -11
- package/esm2022/component/theme-switch/theme-switch/theme-switch.component.mjs +30 -0
- package/{esm2020 → esm2022}/component/theme-switch/theme-switch.module.mjs +9 -9
- package/esm2022/component/theme-switch/theme-switch.service.mjs +36 -0
- package/esm2022/component/toggle/toggle/toggle.component.mjs +89 -0
- package/{esm2020 → esm2022}/component/toggle/toggle.module.mjs +5 -5
- package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +28 -0
- package/{esm2020 → esm2022}/component/toolbar/toolbar.module.mjs +5 -5
- package/esm2022/component/tree/tree/tree.component.mjs +150 -0
- package/esm2022/component/tree/tree-item/tree-item.component.mjs +90 -0
- package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +32 -0
- package/{esm2020 → esm2022}/component/tree/tree.module.mjs +5 -5
- package/esm2022/component/tree/tree.service.mjs +42 -0
- package/esm2022/directive/auto-position/auto-position.directive.mjs +72 -0
- package/{esm2020 → esm2022}/directive/auto-position/auto-position.module.mjs +5 -5
- package/esm2022/directive/click-outside/click-outside.directive.mjs +67 -0
- package/{esm2020 → esm2022}/directive/click-outside/click-outside.module.mjs +5 -5
- package/esm2022/directive/context-menu/context-menu.directive.mjs +132 -0
- package/{esm2020 → esm2022}/directive/context-menu/context-menu.module.mjs +7 -7
- package/esm2022/directive/disable-control/disable-control.directive.mjs +30 -0
- package/{esm2020 → esm2022}/directive/disable-control/disable-control.module.mjs +5 -5
- package/esm2022/directive/drag-drop/drag-container.directive.mjs +101 -0
- package/{esm2020 → esm2022}/directive/drag-drop/drag-drop.module.mjs +11 -11
- package/esm2022/directive/drag-drop/drag-drop.service.mjs +152 -0
- package/{esm2020 → esm2022}/directive/drag-drop/drag-placeholder.directive.mjs +4 -4
- package/esm2022/directive/drag-drop/drag-preview.directive.mjs +17 -0
- package/esm2022/directive/drag-drop/drag.directive.mjs +143 -0
- package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +11 -0
- package/esm2022/directive/drag-drop/model/drag-instance.mjs +9 -0
- package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +68 -0
- package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +121 -0
- package/{esm2020 → esm2022}/directive/drag-sort/drag-sort.module.mjs +5 -5
- package/esm2022/directive/dynamic-content-base.directive.mjs +91 -0
- package/esm2022/directive/highlight/highlight.directive.mjs +73 -0
- package/{esm2020 → esm2022}/directive/highlight/highlight.module.mjs +5 -5
- package/esm2022/directive/hint/hint.directive.mjs +118 -0
- package/{esm2020 → esm2022}/directive/hint/hint.module.mjs +7 -7
- package/esm2022/directive/let/let.directive.mjs +40 -0
- package/{esm2020 → esm2022}/directive/let/let.module.mjs +5 -5
- package/esm2022/directive/loader/loader.directive.mjs +93 -0
- package/{esm2020 → esm2022}/directive/loader/loader.module.mjs +5 -5
- package/esm2022/directive/no-autofill/no-autofill.directive.mjs +32 -0
- package/{esm2020 → esm2022}/directive/no-autofill/no-autofill.module.mjs +5 -5
- package/esm2022/directive/only-number/only-number.directive.mjs +200 -0
- package/{esm2020 → esm2022}/directive/only-number/only-number.module.mjs +5 -5
- package/esm2022/directive/resize-drag/resize-drag.directive.mjs +73 -0
- package/{esm2020 → esm2022}/directive/resize-drag/resize-drag.module.mjs +5 -5
- package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +43 -0
- package/{esm2020 → esm2022}/directive/scroll-into-view/scroll-into-view.module.mjs +5 -5
- package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +107 -0
- package/esm2022/directive/scrollable/scrollable.directive.mjs +17 -0
- package/{esm2020 → esm2022}/directive/scrollable/scrollable.module.mjs +9 -9
- package/esm2022/directive/teta-template/teta-template.directive.mjs +24 -0
- package/{esm2020 → esm2022}/directive/teta-template/teta-template.module.mjs +5 -5
- package/esm2022/directive/tooltip/tooltip.directive.mjs +88 -0
- package/{esm2020 → esm2022}/directive/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/locale/en.mjs +62 -0
- package/esm2022/locale/ru.mjs +62 -0
- package/esm2022/locale/teta-config.service.mjs +28 -0
- package/{esm2020 → esm2022}/locale/teta-localisation.mjs +1 -1
- package/{esm2020 → esm2022}/pipe/date-pipe/teta-date-pipe.module.mjs +5 -5
- package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +35 -0
- package/{esm2020 → esm2022}/pipe/number-pipe/number-pipe.module.mjs +5 -5
- package/{esm2020 → esm2022}/pipe/number-pipe/number.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/util/forms-util.mjs +9 -9
- package/{fesm2020 → fesm2022}/tetacom-ng-components.mjs +7287 -6542
- package/fesm2022/tetacom-ng-components.mjs.map +1 -0
- package/locale/teta-localisation.d.ts +2 -0
- package/package.json +13 -14
- package/style/accordion.scss +28 -6
- package/style/assembly-library.scss +4 -1
- package/style/assembly-presets.scss +0 -1
- package/style/badge.scss +28 -0
- package/style/border.scss +2 -1
- package/style/bottombar.scss +5 -0
- package/style/button.scss +16 -13
- package/style/checkbox.scss +26 -13
- package/style/chips.scss +10 -10
- package/style/color.scss +1 -36
- package/style/datepicker.scss +139 -24
- package/style/divider.scss +15 -0
- package/style/drag.scss +1 -1
- package/style/dropdown.scss +6 -4
- package/style/hint.scss +5 -5
- package/style/icon.scss +2 -1
- package/style/input.scss +32 -23
- package/style/layout.scss +6 -2
- package/style/list.scss +11 -8
- package/style/loader.scss +2 -2
- package/style/message.scss +15 -7
- package/style/modal.scss +3 -2
- package/style/navigation.scss +4 -1
- package/style/presets/color-presets.scss +8 -160
- package/style/presets/font-presets.scss +26 -25
- package/style/presets/view-types.scss +17 -0
- package/style/progress.scss +3 -3
- package/style/radio.scss +21 -7
- package/style/reset.scss +1 -0
- package/style/resize-panel.scss +2 -2
- package/style/scroll.scss +3 -3
- package/style/select.scss +26 -21
- package/style/shadow.scss +0 -20
- package/style/sidebar.scss +1 -1
- package/style/skeleton.scss +1 -1
- package/style/switch.scss +15 -10
- package/style/table.scss +15 -15
- package/style/tabs.scss +11 -11
- package/style/tag.scss +37 -0
- package/style/toggle.scss +20 -18
- package/style/toolbar.scss +1 -1
- package/style/tooltip.scss +8 -6
- package/style/tree.scss +4 -4
- package/util/export-dom-image.d.ts +1 -1
- package/component/date-picker/day-select/day-select.component.d.ts +0 -51
- package/component/date-picker/month-select/month-select.component.d.ts +0 -40
- package/component/date-picker/service/picker-touch.service.d.ts +0 -12
- package/component/date-picker/time-part-control/time-part-control.component.d.ts +0 -26
- package/component/date-picker/util/date-picker-util.d.ts +0 -15
- package/component/date-picker/year-select/year-select.component.d.ts +0 -45
- package/esm2020/common/contract/teta-content-ref.mjs +0 -8
- package/esm2020/common/public-api.mjs +0 -5
- package/esm2020/common/service/click.service.mjs +0 -23
- package/esm2020/common/service/dynamic-component.service.mjs +0 -93
- package/esm2020/common/service/overlay-container.service.mjs +0 -41
- package/esm2020/component/accordion/accordion/accordion.component.mjs +0 -18
- package/esm2020/component/accordion/accordion-content.directive.mjs +0 -16
- package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +0 -52
- package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +0 -43
- package/esm2020/component/button/button/button.component.mjs +0 -40
- package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +0 -244
- package/esm2020/component/chart-3d/model/chart-3d-options.mjs +0 -7
- package/esm2020/component/chart-3d/model/series-3d.mjs +0 -7
- package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +0 -134
- package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +0 -289
- package/esm2020/component/date-picker/date-picker.module.mjs +0 -69
- package/esm2020/component/date-picker/day-select/day-select.component.mjs +0 -184
- package/esm2020/component/date-picker/model/date-period.mjs +0 -7
- package/esm2020/component/date-picker/model/day-model.mjs +0 -13
- package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +0 -253
- package/esm2020/component/date-picker/month-select/month-select.component.mjs +0 -148
- package/esm2020/component/date-picker/public-api.mjs +0 -6
- package/esm2020/component/date-picker/service/picker-touch.service.mjs +0 -34
- package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +0 -73
- package/esm2020/component/date-picker/util/date-picker-util.mjs +0 -142
- package/esm2020/component/date-picker/year-select/year-select.component.mjs +0 -189
- package/esm2020/component/delimiter/delimiter/delimiter.component.mjs +0 -63
- package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +0 -30
- package/esm2020/component/dropdown/dropdown-base.mjs +0 -225
- package/esm2020/component/dropdown/dropdown-content.directive.mjs +0 -17
- package/esm2020/component/dropdown/dropdown-head.directive.mjs +0 -18
- package/esm2020/component/dropdown/dropdown.directive.mjs +0 -38
- package/esm2020/component/dynamic-component/popup-content/popup-content.component.mjs +0 -59
- package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +0 -65
- package/esm2020/component/expand-panel/expand-panel-content.directive.mjs +0 -16
- package/esm2020/component/expand-panel/expand-panel-head.directive.mjs +0 -16
- package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +0 -82
- package/esm2020/component/filter/base/filter-base.mjs +0 -10
- package/esm2020/component/filter/boolean-filter/boolean-filter.component.mjs +0 -60
- package/esm2020/component/filter/contarct/boolean-filter.mjs +0 -10
- package/esm2020/component/filter/contarct/date-filter-value.mjs +0 -9
- package/esm2020/component/filter/contarct/date-filter.mjs +0 -11
- package/esm2020/component/filter/contarct/filter-item.mjs +0 -34
- package/esm2020/component/filter/contarct/filter-state.mjs +0 -145
- package/esm2020/component/filter/contarct/list-filter.mjs +0 -12
- package/esm2020/component/filter/contarct/numeric-filter-value.mjs +0 -10
- package/esm2020/component/filter/contarct/numeric-filter.mjs +0 -11
- package/esm2020/component/filter/contarct/sort-param.mjs +0 -14
- package/esm2020/component/filter/contarct/string-filter.mjs +0 -12
- package/esm2020/component/filter/date-filter/date-filter.component.mjs +0 -60
- package/esm2020/component/filter/filter-host/filter-host.component.mjs +0 -78
- package/esm2020/component/filter/list-filter/list-filter.component.mjs +0 -95
- package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +0 -60
- package/esm2020/component/filter/string-filter/string-filter.component.mjs +0 -61
- package/esm2020/component/icon/icon/icon.component.mjs +0 -37
- package/esm2020/component/icon/icon-file/icon-file.component.mjs +0 -14
- package/esm2020/component/icon/icon-sprite.directive.mjs +0 -32
- package/esm2020/component/icon/icon.module.mjs +0 -38
- package/esm2020/component/icon/icon.service.mjs +0 -59
- package/esm2020/component/input/color-input/color-input.component.mjs +0 -73
- package/esm2020/component/input/input/input.component.mjs +0 -36
- package/esm2020/component/input/input.module.mjs +0 -26
- package/esm2020/component/input/text-field/text-field.component.mjs +0 -96
- package/esm2020/component/message/message/message.component.mjs +0 -74
- package/esm2020/component/message/message-host/message-host.component.mjs +0 -88
- package/esm2020/component/message/message.service.mjs +0 -35
- package/esm2020/component/message/model/message.mjs +0 -21
- package/esm2020/component/modal/dialog/dialog.component.mjs +0 -44
- package/esm2020/component/modal/dialog.service.mjs +0 -39
- package/esm2020/component/modal/modal-container/modal-container.component.mjs +0 -84
- package/esm2020/component/modal/modal.module.mjs +0 -50
- package/esm2020/component/modal/modal.service.mjs +0 -121
- package/esm2020/component/modal/model/modal-instance.mjs +0 -34
- package/esm2020/component/pager/model/pager-state.mjs +0 -50
- package/esm2020/component/panel/panel/panel.component.mjs +0 -51
- package/esm2020/component/progress-bar/progress-bar/progress-bar.component.mjs +0 -131
- package/esm2020/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +0 -38
- package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +0 -130
- package/esm2020/component/property-grid/property-grid/property-grid-item-description.directive.mjs +0 -19
- package/esm2020/component/property-grid/property-grid/property-grid.component.mjs +0 -97
- package/esm2020/component/property-grid/property-grid.module.mjs +0 -87
- package/esm2020/component/public-api.mjs +0 -65
- package/esm2020/component/radio/radio/radio.component.mjs +0 -245
- package/esm2020/component/radio/radio-button/radio-button.component.mjs +0 -63
- package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +0 -168
- package/esm2020/component/select/select/select.component.mjs +0 -260
- package/esm2020/component/select/select-option.directive.mjs +0 -16
- package/esm2020/component/select/select-value.directive.mjs +0 -16
- package/esm2020/component/sidebar/sidebar/sidebar.component.mjs +0 -54
- package/esm2020/component/switch/switch/switch.component.mjs +0 -52
- package/esm2020/component/switch/switch-button/switch-button.component.mjs +0 -47
- package/esm2020/component/switch/switch.service.mjs +0 -21
- package/esm2020/component/table/base/cell-component-base.mjs +0 -97
- package/esm2020/component/table/cell/cell.component.mjs +0 -33
- package/esm2020/component/table/cell-host/cell-host.component.mjs +0 -50
- package/esm2020/component/table/contract/column-reorder-event.mjs +0 -7
- package/esm2020/component/table/contract/column-resize-event.mjs +0 -7
- package/esm2020/component/table/contract/sort-event.mjs +0 -7
- package/esm2020/component/table/contract/table-column-store.mjs +0 -12
- package/esm2020/component/table/contract/table-column.mjs +0 -38
- package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +0 -45
- package/esm2020/component/table/default/date-cell/date-cell.component.mjs +0 -47
- package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +0 -46
- package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +0 -47
- package/esm2020/component/table/default/list-cell/list-cell.component.mjs +0 -76
- package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +0 -55
- package/esm2020/component/table/default/string-cell/string-cell.component.mjs +0 -54
- package/esm2020/component/table/head-cell/head-cell.component.mjs +0 -189
- package/esm2020/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +0 -50
- package/esm2020/component/table/head-cell-host/head-cell-host.component.mjs +0 -60
- package/esm2020/component/table/selection-cell/selection-cell.component.mjs +0 -46
- package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +0 -45
- package/esm2020/component/table/service/table.service.mjs +0 -648
- package/esm2020/component/table/table/table.component.mjs +0 -472
- package/esm2020/component/table/table-body/table-body.component.mjs +0 -203
- package/esm2020/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +0 -55
- package/esm2020/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +0 -86
- package/esm2020/component/table/table-head/table-head.component.mjs +0 -77
- package/esm2020/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +0 -141
- package/esm2020/component/table/table-head-group/table-head-group.component.mjs +0 -76
- package/esm2020/component/tabs/tab/tab.component.mjs +0 -42
- package/esm2020/component/tabs/tab-content.directive.mjs +0 -16
- package/esm2020/component/tabs/tab-title.directive.mjs +0 -16
- package/esm2020/component/tabs/tabs/tabs.component.mjs +0 -70
- package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +0 -28
- package/esm2020/component/theme-switch/theme-switch.service.mjs +0 -34
- package/esm2020/component/toggle/toggle/toggle.component.mjs +0 -79
- package/esm2020/component/toolbar/toolbar/toolbar.component.mjs +0 -26
- package/esm2020/component/tree/tree/tree.component.mjs +0 -138
- package/esm2020/component/tree/tree-item/tree-item.component.mjs +0 -85
- package/esm2020/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +0 -28
- package/esm2020/component/tree/tree.service.mjs +0 -40
- package/esm2020/directive/auto-position/auto-position.directive.mjs +0 -69
- package/esm2020/directive/click-outside/click-outside.directive.mjs +0 -65
- package/esm2020/directive/context-menu/context-menu.directive.mjs +0 -120
- package/esm2020/directive/disable-control/disable-control.directive.mjs +0 -29
- package/esm2020/directive/drag-drop/drag-container.directive.mjs +0 -92
- package/esm2020/directive/drag-drop/drag-drop.service.mjs +0 -142
- package/esm2020/directive/drag-drop/drag-preview.directive.mjs +0 -16
- package/esm2020/directive/drag-drop/drag.directive.mjs +0 -135
- package/esm2020/directive/drag-drop/model/drag-container-instance.mjs +0 -8
- package/esm2020/directive/drag-drop/model/drag-instance.mjs +0 -7
- package/esm2020/directive/drag-sort/drag-sort-container.directive.mjs +0 -64
- package/esm2020/directive/drag-sort/drag-sort-item.directive.mjs +0 -115
- package/esm2020/directive/dynamic-content-base.directive.mjs +0 -80
- package/esm2020/directive/highlight/highlight.directive.mjs +0 -72
- package/esm2020/directive/hint/hint.directive.mjs +0 -103
- package/esm2020/directive/let/let.directive.mjs +0 -38
- package/esm2020/directive/loader/loader.directive.mjs +0 -85
- package/esm2020/directive/no-autofill/no-autofill.directive.mjs +0 -30
- package/esm2020/directive/only-number/only-number.directive.mjs +0 -198
- package/esm2020/directive/resize-drag/resize-drag.directive.mjs +0 -71
- package/esm2020/directive/scroll-into-view/scroll-into-view.directive.mjs +0 -40
- package/esm2020/directive/scrollable/scrollable/scrollable.component.mjs +0 -96
- package/esm2020/directive/scrollable/scrollable.directive.mjs +0 -19
- package/esm2020/directive/teta-template/teta-template.directive.mjs +0 -22
- package/esm2020/directive/tooltip/tooltip.directive.mjs +0 -76
- package/esm2020/locale/en.mjs +0 -60
- package/esm2020/locale/ru.mjs +0 -60
- package/esm2020/locale/teta-config.service.mjs +0 -28
- package/esm2020/pipe/date-pipe/teta-date.pipe.mjs +0 -34
- package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +0 -18
- package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +0 -21
- package/fesm2015/tetacom-ng-components.mjs +0 -13042
- package/fesm2015/tetacom-ng-components.mjs.map +0 -1
- package/fesm2020/tetacom-ng-components.mjs.map +0 -1
- package/pipe/prepend-zero/prepend-zero.module.d.ts +0 -8
- package/pipe/prepend-zero/prepend-zero.pipe.d.ts +0 -7
- package/style/presets/shadow-presets.scss +0 -16
- package/style/tokens/basedark.tokens.css +0 -77
- package/style/tokens/baselight.tokens.css +0 -61
- package/style/tokens/global.tokens.css +0 -235
- package/style/tokens/utility.tokens.css +0 -1119
- package/style/util/button-util.scss +0 -58
- /package/{esm2020 → esm2022}/common/contract/auto-close-ignore-case.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/constructor-type.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/dynamic-data.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/i-dictionary.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/i-id-name.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/i-id.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/i-rect.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/i-tree-data.mjs +0 -0
- /package/{esm2020 → esm2022}/common/contract/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/common/enum/align.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/common/enum/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/common/enum/teta-size.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/common/enum/vertical-align.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/common/service/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util/array-util.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util/dom-util.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util/position-util.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/accordion/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/autocomplete/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/button/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/chart-3d/model/base-3d-point.mjs +0 -0
- /package/{esm2020 → esm2022}/component/chart-3d/model/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/chart-3d/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/checkbox/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/date-picker/model/date-picker-mode.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/delimiter/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/dropdown/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/dynamic-component/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/expand-card/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/expand-panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/file-upload/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/filter/contarct/filter-component-map.mjs +0 -0
- /package/{esm2020 → esm2022}/component/filter/enum/filter-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/filter/enum/list-filter-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/filter/enum/string-filter-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/filter/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/input/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/message/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/modal/model/i-modal-config.mjs +0 -0
- /package/{esm2020 → esm2022}/component/modal/model/i-modal-result.mjs +0 -0
- /package/{esm2020 → esm2022}/component/modal/model/modal-close-reason.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/modal/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/pager/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/pager/util/pager-util.mjs +0 -0
- /package/{esm2020 → esm2022}/component/panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/progress-bar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/property-grid/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/radio/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/resize-panel/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/select/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/sidebar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/sidebar/sidebar-position.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/switch/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/base/detail-component-base.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/cell-components-map.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/head-dropdown-tab.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/i-cell-coordinates.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/i-cell-event.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/i-cell-instance.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/i-cell-value.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/contract/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/enum/aggregation-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/enum/edit-event.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/enum/edit-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/enum/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/enum/select-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/util/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/util/state-util.mjs +0 -0
- /package/{esm2020 → esm2022}/component/table/util/table-util.mjs +0 -0
- /package/{esm2020 → esm2022}/component/tabs/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/theme-switch/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/toggle/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/toolbar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/component/tree/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/auto-position/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/click-outside/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/context-menu/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/disable-control/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/model/drag-process.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/model/drag-selection.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/model/drop-event.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/model/drop-target.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/model/point.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/model/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-drop/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-sort/drag-sort-event.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/drag-sort/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/highlight/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/hint/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/let/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/loader/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/no-autofill/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/only-number/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/resize-drag/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/scroll-into-view/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/scrollable/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/teta-template/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/directive/tooltip/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/locale/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/observable/animation-frame.mjs +0 -0
- /package/{esm2020 → esm2022}/observable/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/observable/zoneObservable.mjs +0 -0
- /package/{esm2020 → esm2022}/pipe/date-pipe/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pipe/number-pipe/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pipe/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pipe/util/number-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/tetacom-ng-components.mjs +0 -0
- /package/{esm2020 → esm2022}/util/date-util.mjs +0 -0
- /package/{esm2020 → esm2022}/util/export-dom-image.mjs +0 -0
- /package/{esm2020 → esm2022}/util/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/util/string-util.mjs +0 -0
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
|
|
2
|
-
import { takeWhile, tap, withLatestFrom } from 'rxjs/operators';
|
|
3
|
-
import { DatePickerUtil } from '../util/date-picker-util';
|
|
4
|
-
import { fromEvent } from 'rxjs';
|
|
5
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
|
-
import { DateUtil } from '../../../util/date-util';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../../locale/teta-config.service";
|
|
9
|
-
import * as i2 from "@angular/common";
|
|
10
|
-
export const DAY_SELECT_CONTROL_VALUE_ACCESSOR = {
|
|
11
|
-
provide: NG_VALUE_ACCESSOR,
|
|
12
|
-
useExisting: forwardRef(() => DaySelectComponent),
|
|
13
|
-
multi: true,
|
|
14
|
-
};
|
|
15
|
-
export class DaySelectComponent {
|
|
16
|
-
constructor(localeService, _cdr, _elementRef) {
|
|
17
|
-
this.localeService = localeService;
|
|
18
|
-
this._cdr = _cdr;
|
|
19
|
-
this._elementRef = _elementRef;
|
|
20
|
-
this.firstDayOfWeek = 1;
|
|
21
|
-
this.dateSelected = new EventEmitter();
|
|
22
|
-
this.monthSelected = new EventEmitter();
|
|
23
|
-
this.yearSelected = new EventEmitter();
|
|
24
|
-
this.weekDays = [];
|
|
25
|
-
this._alive = true;
|
|
26
|
-
localeService.locale
|
|
27
|
-
.pipe(takeWhile((_) => this._alive))
|
|
28
|
-
.subscribe((locale) => {
|
|
29
|
-
this.locale = locale;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
set minDate(d) {
|
|
33
|
-
this._minDate = d;
|
|
34
|
-
if (this._currentValue) {
|
|
35
|
-
this.createDays();
|
|
36
|
-
}
|
|
37
|
-
this._cdr.markForCheck();
|
|
38
|
-
}
|
|
39
|
-
;
|
|
40
|
-
set maxDate(d) {
|
|
41
|
-
this._maxDate = d;
|
|
42
|
-
if (this._currentValue) {
|
|
43
|
-
this.createDays();
|
|
44
|
-
}
|
|
45
|
-
this._cdr.markForCheck();
|
|
46
|
-
}
|
|
47
|
-
;
|
|
48
|
-
set currentValue(val) {
|
|
49
|
-
if (!this._currentValue ||
|
|
50
|
-
DateUtil.truncateToDay(val)?.getTime() !==
|
|
51
|
-
DateUtil.truncateToDay(this._currentValue)?.getTime()) {
|
|
52
|
-
this._currentValue = val;
|
|
53
|
-
this.createDays();
|
|
54
|
-
this.checkDays();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this._currentValue = val;
|
|
58
|
-
}
|
|
59
|
-
this._cdr.markForCheck();
|
|
60
|
-
}
|
|
61
|
-
get currentValue() {
|
|
62
|
-
return this._currentValue;
|
|
63
|
-
}
|
|
64
|
-
ngOnInit() {
|
|
65
|
-
this.weekDays = this.createWeekDays();
|
|
66
|
-
const touchStart$ = fromEvent(this._elementRef.nativeElement, 'touchstart');
|
|
67
|
-
const touchEnd$ = fromEvent(this._elementRef.nativeElement, 'touchend');
|
|
68
|
-
touchEnd$
|
|
69
|
-
.pipe(takeWhile((_) => this._alive), withLatestFrom(touchStart$), tap((touches) => {
|
|
70
|
-
const [start, end] = touches.map((_) => _.changedTouches?.item(0));
|
|
71
|
-
const deltaY = end?.clientY - start?.clientY;
|
|
72
|
-
if (deltaY !== 0) {
|
|
73
|
-
this.scrollMonth(deltaY);
|
|
74
|
-
}
|
|
75
|
-
}))
|
|
76
|
-
.subscribe();
|
|
77
|
-
}
|
|
78
|
-
ngOnDestroy() {
|
|
79
|
-
this._alive = false;
|
|
80
|
-
}
|
|
81
|
-
writeValue(model) {
|
|
82
|
-
this.value = model;
|
|
83
|
-
this.currentValue = model ? model : new Date();
|
|
84
|
-
this._cdr.markForCheck();
|
|
85
|
-
}
|
|
86
|
-
onChange(_) {
|
|
87
|
-
}
|
|
88
|
-
onTouched() {
|
|
89
|
-
}
|
|
90
|
-
registerOnChange(fn) {
|
|
91
|
-
this.onChange = fn;
|
|
92
|
-
}
|
|
93
|
-
registerOnTouched(fn) {
|
|
94
|
-
this.onTouched = fn;
|
|
95
|
-
}
|
|
96
|
-
setDisabledState(isDisabled) {
|
|
97
|
-
this.disabled = isDisabled;
|
|
98
|
-
this._cdr.markForCheck();
|
|
99
|
-
}
|
|
100
|
-
applyValue(day, event) {
|
|
101
|
-
this.preventEvent(event);
|
|
102
|
-
if (day === null || day === undefined || day.disabled) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
this.value = day.date;
|
|
106
|
-
this.currentValue = day.date;
|
|
107
|
-
this.onChange(day.date);
|
|
108
|
-
}
|
|
109
|
-
setDate(day, event) {
|
|
110
|
-
if (day === null || day === undefined || day.disabled) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (day.date !== null &&
|
|
114
|
-
day.date !== undefined &&
|
|
115
|
-
day.date instanceof Date) {
|
|
116
|
-
this.currentValue = day.date;
|
|
117
|
-
this.dateSelected.emit(day.date);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
scrollMonth(event) {
|
|
121
|
-
const deltaY = event instanceof WheelEvent ? event.deltaY : event;
|
|
122
|
-
if (event instanceof WheelEvent) {
|
|
123
|
-
this.preventEvent(event);
|
|
124
|
-
}
|
|
125
|
-
this.currentValue = DatePickerUtil.scrollMonth(deltaY, this.currentValue);
|
|
126
|
-
this.monthSelected.emit(this.currentValue.getMonth());
|
|
127
|
-
this.yearSelected.emit(this.currentValue.getFullYear());
|
|
128
|
-
this._cdr.detectChanges();
|
|
129
|
-
}
|
|
130
|
-
createWeekDays() {
|
|
131
|
-
const result = [];
|
|
132
|
-
let dayIndex = this.firstDayOfWeek;
|
|
133
|
-
for (let i = 0; i < 7; i++) {
|
|
134
|
-
result.push(dayIndex);
|
|
135
|
-
dayIndex = dayIndex === 6 ? 0 : ++dayIndex;
|
|
136
|
-
}
|
|
137
|
-
return result;
|
|
138
|
-
}
|
|
139
|
-
createDays() {
|
|
140
|
-
this.days = DatePickerUtil.getPickerDays(this.currentValue, this.firstDayOfWeek, this._minDate, this._maxDate, this.disabledDates, this.disabledDays, this.disabledPeriods);
|
|
141
|
-
}
|
|
142
|
-
checkDays() {
|
|
143
|
-
if (this.days) {
|
|
144
|
-
this.days = this.days.map((dat) => ({
|
|
145
|
-
...dat,
|
|
146
|
-
selected: dat.date.getFullYear() === this.currentValue.getFullYear() &&
|
|
147
|
-
dat.date.getMonth() === this.currentValue.getMonth() &&
|
|
148
|
-
dat.date.getDate() === this.currentValue.getDate(),
|
|
149
|
-
}));
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
preventEvent(event) {
|
|
153
|
-
event.stopPropagation();
|
|
154
|
-
event.preventDefault();
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
DaySelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DaySelectComponent, deps: [{ token: i1.TetaConfigService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
159
|
-
DaySelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DaySelectComponent, selector: "teta-day-select", inputs: { firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minDate: "minDate", maxDate: "maxDate", disabled: "disabled" }, outputs: { dateSelected: "dateSelected", monthSelected: "monthSelected", yearSelected: "yearSelected" }, providers: [DAY_SELECT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"datepicker-week font-caption color-text-80\">\n <div class=\"datepicker-day\"\n [class.font-caption-bold]=\"day === 0 || day === 6\"\n *ngFor=\"let day of weekDays\">\n {{locale.daysShort[day]}}\n </div>\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\"\n (wheel)=\"scrollMonth($event)\">\n <div *ngFor=\"let day of days\"\n class=\"datepicker-date\"\n (click)=\"setDate(day, $event);\"\n (dblclick)=\"applyValue(day, $event);\"\n [class.datepicker-date_active]=\"day.selected\"\n [class.datepicker-date_disabled]=\"day.disabled || !day.isCurrentMonth\"\n [class.datepicker-date_weekend]=\"day.weekend\"\n [class.datepicker-date_today]=\"day.today\">\n <ng-container *ngIf=\"day !== null && day !== undefined\">\n {{day.date.getDate()}}\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DaySelectComponent, decorators: [{
|
|
161
|
-
type: Component,
|
|
162
|
-
args: [{ selector: 'teta-day-select', providers: [DAY_SELECT_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"datepicker-week font-caption color-text-80\">\n <div class=\"datepicker-day\"\n [class.font-caption-bold]=\"day === 0 || day === 6\"\n *ngFor=\"let day of weekDays\">\n {{locale.daysShort[day]}}\n </div>\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\"\n (wheel)=\"scrollMonth($event)\">\n <div *ngFor=\"let day of days\"\n class=\"datepicker-date\"\n (click)=\"setDate(day, $event);\"\n (dblclick)=\"applyValue(day, $event);\"\n [class.datepicker-date_active]=\"day.selected\"\n [class.datepicker-date_disabled]=\"day.disabled || !day.isCurrentMonth\"\n [class.datepicker-date_weekend]=\"day.weekend\"\n [class.datepicker-date_today]=\"day.today\">\n <ng-container *ngIf=\"day !== null && day !== undefined\">\n {{day.date.getDate()}}\n </ng-container>\n </div>\n</div>\n" }]
|
|
163
|
-
}], ctorParameters: function () { return [{ type: i1.TetaConfigService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { firstDayOfWeek: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], disabledDates: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], disabledPeriods: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], disabledDays: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], minDate: [{
|
|
172
|
-
type: Input
|
|
173
|
-
}], maxDate: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], disabled: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], dateSelected: [{
|
|
178
|
-
type: Output
|
|
179
|
-
}], monthSelected: [{
|
|
180
|
-
type: Output
|
|
181
|
-
}], yearSelected: [{
|
|
182
|
-
type: Output
|
|
183
|
-
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1zZWxlY3QvZGF5LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1zZWxlY3QvZGF5LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUlqRCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBUTtJQUNwRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBU0YsTUFBTSxPQUFPLGtCQUFrQjtJQWlFN0IsWUFDUyxhQUFnQyxFQUMvQixJQUF1QixFQUN2QixXQUF1QjtRQUZ4QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFsRXhCLG1CQUFjLEdBQUcsQ0FBQyxDQUFD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LEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzsrR0F6TVUsa0JBQWtCO21HQUFsQixrQkFBa0IsaVdBSGxCLENBQUMsaUNBQWlDLENBQUMsMEJDaENoRCxrM0JBc0JBOzJGRGFhLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEIsQ0FBQyxpQ0FBaUMsQ0FBQyxtQkFDN0IsdUJBQXVCLENBQUMsTUFBTTtpS0FJdEMsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTyxPQUFPO3NCQUFuQixLQUFLO2dCQVVPLE9BQU87c0JBQW5CLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF5TW9kZWx9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQge0RhdGVQZXJpb2R9IGZyb20gJy4uL21vZGVsL2RhdGUtcGVyaW9kJztcbmltcG9ydCB7dGFrZVdoaWxlLCB0YXAsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RhdGVQaWNrZXJVdGlsfSBmcm9tICcuLi91dGlsL2RhdGUtcGlja2VyLXV0aWwnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RGF0ZVV0aWx9IGZyb20gJy4uLy4uLy4uL3V0aWwvZGF0ZS11dGlsJztcbmltcG9ydCB7VGV0YUxvY2FsaXNhdGlvbn0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uJztcbmltcG9ydCB7VGV0YUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWNvbmZpZy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IERBWV9TRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF5U2VsZWN0Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWRheS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF5LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RheS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbREFZX1NFTEVDVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERheVNlbGVjdENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGZpcnN0RGF5T2ZXZWVrID0gMTtcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlczogRGF0ZVtdO1xuICBASW5wdXQoKSBkaXNhYmxlZFBlcmlvZHM6IERhdGVQZXJpb2RbXTtcbiAgQElucHV0KCkgZGlzYWJsZWREYXlzOiBudW1iZXJbXTtcblxuICBASW5wdXQoKSBzZXQgbWluRGF0ZShkOiBEYXRlKSB7XG4gICAgdGhpcy5fbWluRGF0ZSA9IGQ7XG5cbiAgICBpZih0aGlzLl9jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY3JlYXRlRGF5cygpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgbWF4RGF0ZShkOiBEYXRlKSB7XG4gICAgdGhpcy5fbWF4RGF0ZSA9IGQ7XG5cbiAgICBpZih0aGlzLl9jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY3JlYXRlRGF5cygpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIGRhdGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIG1vbnRoU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIHllYXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGxvY2FsZTogVGV0YUxvY2FsaXNhdGlvbjtcblxuICB2YWx1ZTogRGF0ZTtcblxuICBfY3VycmVudFZhbHVlOiBEYXRlO1xuICBwcml2YXRlIF9taW5EYXRlOiBEYXRlO1xuICBwcml2YXRlIF9tYXhEYXRlOiBEYXRlO1xuXG5cbiAgc2V0IGN1cnJlbnRWYWx1ZSh2YWw6IERhdGUpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5fY3VycmVudFZhbHVlIHx8XG4gICAgICBEYXRlVXRpbC50cnVuY2F0ZVRvRGF5KHZhbCk/LmdldFRpbWUoKSAhPT1cbiAgICAgIERhdGVVdGlsLnRydW5jYXRlVG9EYXkodGhpcy5fY3VycmVudFZhbHVlKT8uZ2V0VGltZSgpXG4gICAgKSB7XG4gICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB2YWw7XG4gICAgICB0aGlzLmNyZWF0ZURheXMoKTtcbiAgICAgIHRoaXMuY2hlY2tEYXlzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHZhbDtcbiAgICB9XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlO1xuICB9XG5cbiAgZGF5czogQXJyYXk8RGF5TW9kZWw+O1xuICB3ZWVrRGF5czogbnVtYmVyW10gPSBbXTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxvY2FsZVNlcnZpY2U6IFRldGFDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgICBsb2NhbGVTZXJ2aWNlLmxvY2FsZVxuICAgICAgLnBpcGUodGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSkpXG4gICAgICAuc3Vic2NyaWJlKChsb2NhbGU6IFRldGFMb2NhbGlzYXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMud2Vla0RheXMgPSB0aGlzLmNyZWF0ZVdlZWtEYXlzKCk7XG5cbiAgICBjb25zdCB0b3VjaFN0YXJ0JCA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3VjaHN0YXJ0Jyk7XG4gICAgY29uc3QgdG91Y2hFbmQkID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvdWNoZW5kJyk7XG5cbiAgICB0b3VjaEVuZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odG91Y2hTdGFydCQpLFxuICAgICAgICB0YXAoKHRvdWNoZXM6IFtUb3VjaEV2ZW50LCBUb3VjaEV2ZW50XSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRvdWNoZXMubWFwKChfKSA9PiBfLmNoYW5nZWRUb3VjaGVzPy5pdGVtKDApKTtcbiAgICAgICAgICBjb25zdCBkZWx0YVkgPSBlbmQ/LmNsaWVudFkgLSBzdGFydD8uY2xpZW50WTtcbiAgICAgICAgICBpZiAoZGVsdGFZICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbE1vbnRoKGRlbHRhWSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUobW9kZWw6IERhdGUpIHtcbiAgICB0aGlzLnZhbHVlID0gbW9kZWw7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBtb2RlbCA/IG1vZGVsIDogbmV3IERhdGUoKTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZShfOiBhbnkpIHtcbiAgfVxuXG4gIG9uVG91Y2hlZCgpIHtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXBwbHlWYWx1ZShkYXk6IERheU1vZGVsLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICBpZiAoZGF5ID09PSBudWxsIHx8IGRheSA9PT0gdW5kZWZpbmVkIHx8IGRheS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gZGF5LmRhdGU7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBkYXkuZGF0ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKGRheS5kYXRlKTtcbiAgfVxuXG4gIHNldERhdGUoZGF5OiBEYXlNb2RlbCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoZGF5ID09PSBudWxsIHx8IGRheSA9PT0gdW5kZWZpbmVkIHx8IGRheS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBkYXkuZGF0ZSAhPT0gbnVsbCAmJlxuICAgICAgZGF5LmRhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgZGF5LmRhdGUgaW5zdGFuY2VvZiBEYXRlXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IGRheS5kYXRlO1xuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdChkYXkuZGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsTW9udGgoZXZlbnQ6IFdoZWVsRXZlbnQgfCBudW1iZXIpIHtcbiAgICBjb25zdCBkZWx0YVkgPSBldmVudCBpbnN0YW5jZW9mIFdoZWVsRXZlbnQgPyBldmVudC5kZWx0YVkgOiBldmVudDtcblxuICAgIGlmIChldmVudCBpbnN0YW5jZW9mIFdoZWVsRXZlbnQpIHtcbiAgICAgIHRoaXMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBEYXRlUGlja2VyVXRpbC5zY3JvbGxNb250aChkZWx0YVksIHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdCh0aGlzLmN1cnJlbnRWYWx1ZS5nZXRNb250aCgpKTtcbiAgICB0aGlzLnllYXJTZWxlY3RlZC5lbWl0KHRoaXMuY3VycmVudFZhbHVlLmdldEZ1bGxZZWFyKCkpO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdlZWtEYXlzKCk6IG51bWJlcltdIHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBsZXQgZGF5SW5kZXggPSB0aGlzLmZpcnN0RGF5T2ZXZWVrO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICByZXN1bHQucHVzaChkYXlJbmRleCk7XG4gICAgICBkYXlJbmRleCA9IGRheUluZGV4ID09PSA2ID8gMCA6ICsrZGF5SW5kZXg7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURheXMoKSB7XG4gICAgdGhpcy5kYXlzID0gRGF0ZVBpY2tlclV0aWwuZ2V0UGlja2VyRGF5cyhcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlLFxuICAgICAgdGhpcy5maXJzdERheU9mV2VlayxcbiAgICAgIHRoaXMuX21pbkRhdGUsXG4gICAgICB0aGlzLl9tYXhEYXRlLFxuICAgICAgdGhpcy5kaXNhYmxlZERhdGVzLFxuICAgICAgdGhpcy5kaXNhYmxlZERheXMsXG4gICAgICB0aGlzLmRpc2FibGVkUGVyaW9kc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRGF5cygpIHtcbiAgICBpZiAodGhpcy5kYXlzKSB7XG4gICAgICB0aGlzLmRheXMgPSB0aGlzLmRheXMubWFwKChkYXQ6IERheU1vZGVsKSA9PiAoe1xuICAgICAgICAuLi5kYXQsXG4gICAgICAgIHNlbGVjdGVkOlxuICAgICAgICAgIGRhdC5kYXRlLmdldEZ1bGxZZWFyKCkgPT09IHRoaXMuY3VycmVudFZhbHVlLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgICAgICBkYXQuZGF0ZS5nZXRNb250aCgpID09PSB0aGlzLmN1cnJlbnRWYWx1ZS5nZXRNb250aCgpICYmXG4gICAgICAgICAgZGF0LmRhdGUuZ2V0RGF0ZSgpID09PSB0aGlzLmN1cnJlbnRWYWx1ZS5nZXREYXRlKCksXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2ZW50RXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci13ZWVrIGZvbnQtY2FwdGlvbiBjb2xvci10ZXh0LTgwXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWRheVwiXG4gICAgICAgW2NsYXNzLmZvbnQtY2FwdGlvbi1ib2xkXT1cImRheSA9PT0gMCB8fCBkYXkgPT09IDZcIlxuICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla0RheXNcIj5cbiAgICB7e2xvY2FsZS5kYXlzU2hvcnRbZGF5XX19XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1waWNrZXIgY29sb3ItdGV4dC05MCBmb250LWJvZHktM1wiXG4gICAgICh3aGVlbCk9XCJzY3JvbGxNb250aCgkZXZlbnQpXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlzXCJcbiAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItZGF0ZVwiXG4gICAgICAgKGNsaWNrKT1cInNldERhdGUoZGF5LCAkZXZlbnQpO1wiXG4gICAgICAgKGRibGNsaWNrKT1cImFwcGx5VmFsdWUoZGF5LCAkZXZlbnQpO1wiXG4gICAgICAgW2NsYXNzLmRhdGVwaWNrZXItZGF0ZV9hY3RpdmVdPVwiZGF5LnNlbGVjdGVkXCJcbiAgICAgICBbY2xhc3MuZGF0ZXBpY2tlci1kYXRlX2Rpc2FibGVkXT1cImRheS5kaXNhYmxlZCB8fCAhZGF5LmlzQ3VycmVudE1vbnRoXCJcbiAgICAgICBbY2xhc3MuZGF0ZXBpY2tlci1kYXRlX3dlZWtlbmRdPVwiZGF5LndlZWtlbmRcIlxuICAgICAgIFtjbGFzcy5kYXRlcGlja2VyLWRhdGVfdG9kYXldPVwiZGF5LnRvZGF5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRheSAhPT0gbnVsbCAmJiBkYXkgIT09IHVuZGVmaW5lZFwiPlxuICAgICAge3tkYXkuZGF0ZS5nZXREYXRlKCl9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export class DatePeriod {
|
|
2
|
-
constructor(start, end) {
|
|
3
|
-
this.start = start;
|
|
4
|
-
this.end = end;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1wZXJpb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vZGVsL2RhdGUtcGVyaW9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQVksS0FBVyxFQUFFLEdBQVM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERhdGVQZXJpb2Qge1xuICBzdGFydDogRGF0ZTtcbiAgZW5kOiBEYXRlO1xuXG4gIGNvbnN0cnVjdG9yKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpIHtcbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgdGhpcy5lbmQgPSBlbmQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export class DayModel {
|
|
2
|
-
constructor(options) {
|
|
3
|
-
if (options) {
|
|
4
|
-
this.disabled = options.disabled;
|
|
5
|
-
this.isCurrentMonth = options.isCurrentMonth;
|
|
6
|
-
this.today = options.today;
|
|
7
|
-
this.selected = options.selected;
|
|
8
|
-
this.date = options.date;
|
|
9
|
-
this.weekend = options.weekend;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb2RlbC9kYXktbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFRbkIsWUFBbUIsT0FPbEI7UUFDQyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERheU1vZGVsIHtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuO1xuICB0b2RheTogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGRhdGU6IERhdGU7XG4gIHdlZWtlbmQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzQ3VycmVudE1vbnRoPzogYm9vbGVhbjtcbiAgICB0b2RheT86IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGRhdGU6IERhdGU7XG4gICAgd2Vla2VuZD86IGJvb2xlYW47XG4gIH0pIHtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IG9wdGlvbnMuZGlzYWJsZWQ7XG4gICAgICB0aGlzLmlzQ3VycmVudE1vbnRoID0gb3B0aW9ucy5pc0N1cnJlbnRNb250aDtcbiAgICAgIHRoaXMudG9kYXkgPSBvcHRpb25zLnRvZGF5O1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IG9wdGlvbnMuc2VsZWN0ZWQ7XG4gICAgICB0aGlzLmRhdGUgPSBvcHRpb25zLmRhdGU7XG4gICAgICB0aGlzLndlZWtlbmQgPSBvcHRpb25zLndlZWtlbmQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, Input, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { takeWhile } from 'rxjs/operators';
|
|
4
|
-
import { DatePickerMode } from '../model/date-picker-mode.enum';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../../locale/teta-config.service";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "../../dropdown/dropdown/dropdown.component";
|
|
9
|
-
import * as i4 from "../../dropdown/dropdown-head.directive";
|
|
10
|
-
import * as i5 from "../../dropdown/dropdown-content.directive";
|
|
11
|
-
import * as i6 from "../../icon/icon/icon.component";
|
|
12
|
-
import * as i7 from "../../button/button/button.component";
|
|
13
|
-
import * as i8 from "../../../directive/scrollable/scrollable/scrollable.component";
|
|
14
|
-
import * as i9 from "../year-select/year-select.component";
|
|
15
|
-
import * as i10 from "../month-select/month-select.component";
|
|
16
|
-
export const MONTH_PICKER_CONTROL_VALUE_ACCESSOR = {
|
|
17
|
-
provide: NG_VALUE_ACCESSOR,
|
|
18
|
-
useExisting: forwardRef(() => MonthPickerComponent),
|
|
19
|
-
multi: true,
|
|
20
|
-
};
|
|
21
|
-
export class MonthPickerComponent {
|
|
22
|
-
constructor(localeService, _cdr) {
|
|
23
|
-
this.localeService = localeService;
|
|
24
|
-
this._cdr = _cdr;
|
|
25
|
-
this.showToday = true;
|
|
26
|
-
this.appendToBody = true;
|
|
27
|
-
this.classDatepicker = true;
|
|
28
|
-
this.tabindex = 0;
|
|
29
|
-
this.datePickerModeEnum = DatePickerMode;
|
|
30
|
-
this.displayMode = DatePickerMode.month;
|
|
31
|
-
this._value = null;
|
|
32
|
-
this._alive = true;
|
|
33
|
-
this.onChange = (_) => {
|
|
34
|
-
};
|
|
35
|
-
this.onTouched = () => {
|
|
36
|
-
};
|
|
37
|
-
this.isMinInvalid = (dat) => {
|
|
38
|
-
if (!this.minDate || !(this.minDate instanceof Date) || !dat) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
const min = new Date(this.minDate.getFullYear(), this.minDate.getMonth(), 1);
|
|
42
|
-
return min.getTime() > dat.getTime();
|
|
43
|
-
};
|
|
44
|
-
this.isMaxInvalid = (dat) => {
|
|
45
|
-
if (!this.maxDate || !(this.maxDate instanceof Date) || !dat) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
const max = new Date(this.maxDate.getFullYear(), this.maxDate.getMonth(), 1);
|
|
49
|
-
return max.getTime() < dat.getTime();
|
|
50
|
-
};
|
|
51
|
-
this.scrollMonth = (e) => {
|
|
52
|
-
if (this.showPicker) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
e.preventDefault();
|
|
56
|
-
e.stopPropagation();
|
|
57
|
-
if (!this._value) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (this.currentYear === null || this.currentYear === undefined) {
|
|
61
|
-
this.currentYear = this.today.getFullYear();
|
|
62
|
-
}
|
|
63
|
-
if (this.currentMonth === null || this.currentMonth === undefined) {
|
|
64
|
-
this.currentMonth = this.today.getMonth();
|
|
65
|
-
}
|
|
66
|
-
if (e.deltaY > 0) {
|
|
67
|
-
if (this.currentMonth === 11) {
|
|
68
|
-
this.currentMonth = 0;
|
|
69
|
-
this.currentYear++;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
this.currentMonth++;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
if (this.currentMonth === 0) {
|
|
77
|
-
this.currentMonth = 11;
|
|
78
|
-
this.currentYear--;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
this.currentMonth--;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const newDate = new Date(this.currentYear, this.currentMonth, 1, 0, 0, 0);
|
|
85
|
-
if (!this.isMinInvalid(newDate) && !this.isMaxInvalid(newDate)) {
|
|
86
|
-
this.value = newDate;
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
this.scrollYear = (e) => {
|
|
90
|
-
if (this.showPicker) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
e.preventDefault();
|
|
94
|
-
e.stopPropagation();
|
|
95
|
-
if (!this._value) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
if (!this.currentYear) {
|
|
99
|
-
this.currentYear = this.today.getFullYear();
|
|
100
|
-
}
|
|
101
|
-
if (!this.currentMonth) {
|
|
102
|
-
this.currentMonth = this.today.getMonth();
|
|
103
|
-
}
|
|
104
|
-
if (e.deltaY > 0) {
|
|
105
|
-
this.currentYear++;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
this.currentYear--;
|
|
109
|
-
}
|
|
110
|
-
const newDate = new Date(this.currentYear, this.currentMonth, 1, 0, 0, 0);
|
|
111
|
-
if (!this.isMinInvalid(newDate) && !this.isMaxInvalid(newDate)) {
|
|
112
|
-
this.value = newDate;
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
this.setMonth = (month) => {
|
|
116
|
-
this.currentMonth = month;
|
|
117
|
-
if (!this.currentYear) {
|
|
118
|
-
this.currentYear = this.today.getFullYear();
|
|
119
|
-
}
|
|
120
|
-
const newDate = new Date(this.currentYear, this.currentMonth, 1, 0, 0, 0);
|
|
121
|
-
if (!this.isMinInvalid(newDate) && !this.isMaxInvalid(newDate)) {
|
|
122
|
-
this.value = newDate;
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
this.setYear = (year) => {
|
|
126
|
-
this.currentYear = year;
|
|
127
|
-
if (!this.currentMonth) {
|
|
128
|
-
this.currentMonth = this.today.getMonth();
|
|
129
|
-
}
|
|
130
|
-
const newDate = new Date(this.currentYear, this.currentMonth, 1, 0, 0, 0);
|
|
131
|
-
if (!this.isMinInvalid(newDate) && !this.isMaxInvalid(newDate)) {
|
|
132
|
-
this.value = newDate;
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
this.setToday = () => {
|
|
136
|
-
const today = new Date();
|
|
137
|
-
this.currentYear = today.getFullYear();
|
|
138
|
-
this.currentMonth = today.getMonth();
|
|
139
|
-
this.value = new Date(this.currentYear, this.currentMonth, 1, 0, 0, 0);
|
|
140
|
-
this.showPicker = false;
|
|
141
|
-
};
|
|
142
|
-
localeService.locale
|
|
143
|
-
.pipe(takeWhile((_) => this._alive))
|
|
144
|
-
.subscribe((locale) => {
|
|
145
|
-
this.locale = locale;
|
|
146
|
-
});
|
|
147
|
-
this.setDefaults();
|
|
148
|
-
}
|
|
149
|
-
get value() {
|
|
150
|
-
return this._value;
|
|
151
|
-
}
|
|
152
|
-
set value(v) {
|
|
153
|
-
if (v !== this._value) {
|
|
154
|
-
this._value = v;
|
|
155
|
-
this.onChange(v);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
get currentMonth() {
|
|
159
|
-
return this._currentMonth;
|
|
160
|
-
}
|
|
161
|
-
set currentMonth(v) {
|
|
162
|
-
if (v === null || v === undefined || v < 0 || v > 11) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
if (v !== this._currentMonth) {
|
|
166
|
-
this._currentMonth = v;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
get currentYear() {
|
|
170
|
-
return this._currentYear;
|
|
171
|
-
}
|
|
172
|
-
set currentYear(v) {
|
|
173
|
-
if (v !== this._currentYear) {
|
|
174
|
-
this._currentYear = v;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
writeValue(value) {
|
|
178
|
-
this._value = value;
|
|
179
|
-
this.initPicker(value);
|
|
180
|
-
}
|
|
181
|
-
initPicker(date) {
|
|
182
|
-
if (!date || !(date instanceof Date)) {
|
|
183
|
-
this.setDefaults();
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
this.currentMonth = date.getMonth();
|
|
187
|
-
this.currentYear = date.getFullYear();
|
|
188
|
-
}
|
|
189
|
-
this._cdr.markForCheck();
|
|
190
|
-
}
|
|
191
|
-
setDefaults() {
|
|
192
|
-
this.today = new Date();
|
|
193
|
-
this.currentMonth = null;
|
|
194
|
-
this.currentYear = null;
|
|
195
|
-
}
|
|
196
|
-
clearPicker() {
|
|
197
|
-
this.value = null;
|
|
198
|
-
}
|
|
199
|
-
registerOnChange(fn) {
|
|
200
|
-
this.onChange = fn;
|
|
201
|
-
}
|
|
202
|
-
registerOnTouched(fn) {
|
|
203
|
-
this.onTouched = fn;
|
|
204
|
-
}
|
|
205
|
-
ngOnInit() {
|
|
206
|
-
if (!this.minDate || !(this.minDate instanceof Date)) {
|
|
207
|
-
this.minDate = new Date('1900-01-01T00:00:00Z');
|
|
208
|
-
}
|
|
209
|
-
if (!this.maxDate || !(this.maxDate instanceof Date)) {
|
|
210
|
-
this.maxDate = new Date('2100-12-31T00:00:00Z');
|
|
211
|
-
}
|
|
212
|
-
this.initPicker(this.value);
|
|
213
|
-
}
|
|
214
|
-
ngOnDestroy() {
|
|
215
|
-
this._alive = false;
|
|
216
|
-
}
|
|
217
|
-
setMode(mode) {
|
|
218
|
-
let result;
|
|
219
|
-
if (mode === this.displayMode || mode === DatePickerMode.month) {
|
|
220
|
-
result = DatePickerMode.month;
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
result = mode;
|
|
224
|
-
}
|
|
225
|
-
this.displayMode = result;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
MonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MonthPickerComponent, deps: [{ token: i1.TetaConfigService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
229
|
-
MonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: MonthPickerComponent, selector: "teta-month-picker", inputs: { disabled: "disabled", minDate: "minDate", maxDate: "maxDate", showToday: "showToday", appendToBody: "appendToBody" }, host: { properties: { "class.datepicker_open": "this.showPicker", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [autoCloseIgnore]=\"['esc', 'inside']\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.months[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <teta-scrollable tetaDropdownContent class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n type=\"button\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n type=\"button\"\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n type=\"button\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </teta-scrollable>\n</teta-dropdown>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i4.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i5.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "component", type: i6.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { kind: "component", type: i8.ScrollableComponent, selector: "teta-scrollable", inputs: ["direction", "showScrollbars", "contentClass"], outputs: ["scroll"] }, { kind: "component", type: i9.YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { kind: "component", type: i10.MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MonthPickerComponent, decorators: [{
|
|
231
|
-
type: Component,
|
|
232
|
-
args: [{ selector: 'teta-month-picker', providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [autoCloseIgnore]=\"['esc', 'inside']\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.months[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <teta-scrollable tetaDropdownContent class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n type=\"button\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.months[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n type=\"button\"\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n type=\"button\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </teta-scrollable>\n</teta-dropdown>\n" }]
|
|
233
|
-
}], ctorParameters: function () { return [{ type: i1.TetaConfigService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
234
|
-
type: Input
|
|
235
|
-
}], minDate: [{
|
|
236
|
-
type: Input
|
|
237
|
-
}], maxDate: [{
|
|
238
|
-
type: Input
|
|
239
|
-
}], showToday: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}], appendToBody: [{
|
|
242
|
-
type: Input
|
|
243
|
-
}], showPicker: [{
|
|
244
|
-
type: HostBinding,
|
|
245
|
-
args: ['class.datepicker_open']
|
|
246
|
-
}], classDatepicker: [{
|
|
247
|
-
type: HostBinding,
|
|
248
|
-
args: ['class.datepicker']
|
|
249
|
-
}], tabindex: [{
|
|
250
|
-
type: HostBinding,
|
|
251
|
-
args: ['tabindex']
|
|
252
|
-
}] } });
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9udGgtcGlja2VyL21vbnRoLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztBQUk5RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBUTtJQUN0RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBU0YsTUFBTSxPQUFPLG9CQUFvQjtJQTJEL0IsWUFDUyxhQUFnQyxFQUMvQixJQUF1QjtRQUR4QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUF4RHhCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFHcUIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDL0IsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUV2RCx1QkFBa0IsR0FBRyxjQUFjLENBQUM7UUFLcEMsZ0JBQVcsR0FBbUIsY0FBYyxDQUFD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QUM7O2lIQXhQVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwyVEFIcEIsQ0FBQyxtQ0FBbUMsQ0FBQywwQkMxQmxELG9qRkFvRUE7MkZEdkNhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEIsQ0FBQyxtQ0FBbUMsQ0FBQyxtQkFDL0IsdUJBQXVCLENBQUMsTUFBTTt3SUFJdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFZ0MsVUFBVTtzQkFBL0MsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ2MsZUFBZTtzQkFBaEUsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ1csUUFBUTtzQkFBakQsV0FBVzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7dGFrZVdoaWxlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RhdGVQaWNrZXJNb2RlfSBmcm9tICcuLi9tb2RlbC9kYXRlLXBpY2tlci1tb2RlLmVudW0nO1xuaW1wb3J0IHtUZXRhTG9jYWxpc2F0aW9ufSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuaW1wb3J0IHtUZXRhQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3RldGEtY29uZmlnLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgTU9OVEhfUElDS0VSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbnRoUGlja2VyQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLW1vbnRoLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb250aC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb250aC1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbTU9OVEhfUElDS0VSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW9udGhQaWNrZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgc2hvd1RvZGF5ID0gdHJ1ZTtcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5ID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhdGVwaWNrZXJfb3BlbicpIHNob3dQaWNrZXI6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGF0ZXBpY2tlcicpIHByaXZhdGUgcmVhZG9ubHkgY2xhc3NEYXRlcGlja2VyID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHByaXZhdGUgcmVhZG9ubHkgdGFiaW5kZXggPSAwO1xuXG4gIGRhdGVQaWNrZXJNb2RlRW51bSA9IERhdGVQaWNrZXJNb2RlO1xuXG4gIGxvY2FsZTogVGV0YUxvY2FsaXNhdGlvbjtcbiAgdG9kYXk6IERhdGU7XG5cbiAgZGlzcGxheU1vZGU6IERhdGVQaWNrZXJNb2RlID0gRGF0ZVBpY2tlck1vZGUubW9udGg7XG5cbiAgX3ZhbHVlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIF9jdXJyZW50TW9udGg6IG51bWJlciB8IG51bGw7XG4gIF9jdXJyZW50WWVhcjogbnVtYmVyIHwgbnVsbDtcblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHYpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjdXJyZW50TW9udGgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRNb250aDtcbiAgfVxuXG4gIHNldCBjdXJyZW50TW9udGgodjogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB2IDwgMCB8fCB2ID4gMTEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHYgIT09IHRoaXMuX2N1cnJlbnRNb250aCkge1xuICAgICAgdGhpcy5fY3VycmVudE1vbnRoID0gdjtcbiAgICB9XG4gIH1cblxuICBnZXQgY3VycmVudFllYXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRZZWFyO1xuICB9XG5cbiAgc2V0IGN1cnJlbnRZZWFyKHY6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5fY3VycmVudFllYXIpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRZZWFyID0gdjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxvY2FsZVNlcnZpY2U6IFRldGFDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgbG9jYWxlU2VydmljZS5sb2NhbGVcbiAgICAgIC5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlOiBUZXRhTG9jYWxpc2F0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgICAgfSk7XG4gICAgdGhpcy5zZXREZWZhdWx0cygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmluaXRQaWNrZXIodmFsdWUpO1xuICB9XG5cbiAgaW5pdFBpY2tlcihkYXRlOiBEYXRlKSB7XG4gICAgaWYgKCFkYXRlIHx8ICEoZGF0ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB0aGlzLnNldERlZmF1bHRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc2V0RGVmYXVsdHMoKSB7XG4gICAgdGhpcy50b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSBudWxsO1xuICAgIHRoaXMuY3VycmVudFllYXIgPSBudWxsO1xuICB9XG5cbiAgY2xlYXJQaWNrZXIoKSB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7XG4gIH07XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5taW5EYXRlIHx8ICEodGhpcy5taW5EYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKCcxOTAwLTAxLTAxVDAwOjAwOjAwWicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubWF4RGF0ZSB8fCAhKHRoaXMubWF4RGF0ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSgnMjEwMC0xMi0zMVQwMDowMDowMFonKTtcbiAgICB9XG4gICAgdGhpcy5pbml0UGlja2VyKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIGlzTWluSW52YWxpZCA9IChkYXQ6IERhdGUpOiBib29sZWFuID0+IHtcbiAgICBpZiAoIXRoaXMubWluRGF0ZSB8fCAhKHRoaXMubWluRGF0ZSBpbnN0YW5jZW9mIERhdGUpIHx8ICFkYXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbWluID0gbmV3IERhdGUoXG4gICAgICB0aGlzLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIHRoaXMubWluRGF0ZS5nZXRNb250aCgpLFxuICAgICAgMVxuICAgICk7XG4gICAgcmV0dXJuIG1pbi5nZXRUaW1lKCkgPiBkYXQuZ2V0VGltZSgpO1xuICB9O1xuXG4gIGlzTWF4SW52YWxpZCA9IChkYXQ6IERhdGUpOiBib29sZWFuID0+IHtcbiAgICBpZiAoIXRoaXMubWF4RGF0ZSB8fCAhKHRoaXMubWF4RGF0ZSBpbnN0YW5jZW9mIERhdGUpIHx8ICFkYXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbWF4ID0gbmV3IERhdGUoXG4gICAgICB0aGlzLm1heERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIHRoaXMubWF4RGF0ZS5nZXRNb250aCgpLFxuICAgICAgMVxuICAgICk7XG4gICAgcmV0dXJuIG1heC5nZXRUaW1lKCkgPCBkYXQuZ2V0VGltZSgpO1xuICB9O1xuXG4gIHNjcm9sbE1vbnRoID0gKGU6IGFueSkgPT4ge1xuICAgIGlmICh0aGlzLnNob3dQaWNrZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLl92YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5jdXJyZW50WWVhciA9PT0gbnVsbCB8fCB0aGlzLmN1cnJlbnRZZWFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXIgPSB0aGlzLnRvZGF5LmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aCA9PT0gbnVsbCB8fCB0aGlzLmN1cnJlbnRNb250aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IHRoaXMudG9kYXkuZ2V0TW9udGgoKTtcbiAgICB9XG4gICAgaWYgKGUuZGVsdGFZID4gMCkge1xuICAgICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSAxMSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFllYXIrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoKys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRNb250aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aCA9IDExO1xuICAgICAgICB0aGlzLmN1cnJlbnRZZWFyLS07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb250aC0tO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgsIDEsIDAsIDAsIDApO1xuICAgIGlmICghdGhpcy5pc01pbkludmFsaWQobmV3RGF0ZSkgJiYgIXRoaXMuaXNNYXhJbnZhbGlkKG5ld0RhdGUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3RGF0ZTtcbiAgICB9XG4gIH07XG5cbiAgc2Nyb2xsWWVhciA9IChlOiBhbnkpID0+IHtcbiAgICBpZiAodGhpcy5zaG93UGlja2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5fdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRZZWFyKSB7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyID0gdGhpcy50b2RheS5nZXRGdWxsWWVhcigpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY3VycmVudE1vbnRoKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IHRoaXMudG9kYXkuZ2V0TW9udGgoKTtcbiAgICB9XG4gICAgaWYgKGUuZGVsdGFZID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50WWVhcisrO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyLS07XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgaWYgKCF0aGlzLmlzTWluSW52YWxpZChuZXdEYXRlKSAmJiAhdGhpcy5pc01heEludmFsaWQobmV3RGF0ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdEYXRlO1xuICAgIH1cbiAgfTtcblxuICBzZXRNb250aCA9IChtb250aDogbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSBtb250aDtcbiAgICBpZiAoIXRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXIgPSB0aGlzLnRvZGF5LmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgaWYgKCF0aGlzLmlzTWluSW52YWxpZChuZXdEYXRlKSAmJiAhdGhpcy5pc01heEludmFsaWQobmV3RGF0ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdEYXRlO1xuICAgIH1cbiAgfTtcblxuICBzZXRZZWFyID0gKHllYXI6IG51bWJlcikgPT4ge1xuICAgIHRoaXMuY3VycmVudFllYXIgPSB5ZWFyO1xuICAgIGlmICghdGhpcy5jdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gdGhpcy50b2RheS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgsIDEsIDAsIDAsIDApO1xuICAgIGlmICghdGhpcy5pc01pbkludmFsaWQobmV3RGF0ZSkgJiYgIXRoaXMuaXNNYXhJbnZhbGlkKG5ld0RhdGUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3RGF0ZTtcbiAgICB9XG4gIH07XG5cbiAgc2V0VG9kYXkgPSAoKSA9PiB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcbiAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgsIDEsIDAsIDAsIDApO1xuICAgIHRoaXMuc2hvd1BpY2tlciA9IGZhbHNlO1xuICB9O1xuXG4gIHNldE1vZGUobW9kZTogRGF0ZVBpY2tlck1vZGUpIHtcbiAgICBsZXQgcmVzdWx0OiBEYXRlUGlja2VyTW9kZTtcbiAgICBpZiAobW9kZSA9PT0gdGhpcy5kaXNwbGF5TW9kZSB8fCBtb2RlID09PSBEYXRlUGlja2VyTW9kZS5tb250aCkge1xuICAgICAgcmVzdWx0ID0gRGF0ZVBpY2tlck1vZGUubW9udGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IG1vZGU7XG4gICAgfVxuICAgIHRoaXMuZGlzcGxheU1vZGUgPSByZXN1bHQ7XG4gIH1cbn1cbiIsIjx0ZXRhLWRyb3Bkb3duXG4gIGNsYXNzPVwicm93IHJvd19hdXRvXCJcbiAgW2FwcGVuZFRvQm9keV09XCJhcHBlbmRUb0JvZHlcIlxuICBbYXV0b0Nsb3NlSWdub3JlXT1cIlsnZXNjJywgJ2luc2lkZSddXCJcbiAgWyhvcGVuKV09XCJzaG93UGlja2VyXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxkaXYgdGV0YURyb3Bkb3duSGVhZFxuICAgICAgICh3aGVlbCk9XCJzY3JvbGxNb250aCgkZXZlbnQpXCJcbiAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItaGVhZCBmb250LWJvZHktM1wiPlxuICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2NhbGVuZGFyJ1wiIGNsYXNzPVwibWFyZ2luLXJpZ2h0LTJcIj48L3RldGEtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwicm93X2F1dG9cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfdmFsdWUgIT09bnVsbCAmJiBfdmFsdWUhPT11bmRlZmluZWRcIj5cbiAgICAgICAge3tsb2NhbGUubW9udGhzW192YWx1ZS5nZXRNb250aCgpXX19IHt7X3ZhbHVlLmdldEZ1bGxZZWFyKCl9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHRldGEtaWNvbiBbbmFtZV09XCInY2xvc2VCaWcnXCIgKGNsaWNrKT1cImNsZWFyUGlja2VyKClcIiBjbGFzcz1cIm1hcmdpbi1sZWZ0LTJcIj48L3RldGEtaWNvbj5cbiAgPC9kaXY+XG4gIDx0ZXRhLXNjcm9sbGFibGUgdGV0YURyb3Bkb3duQ29udGVudCBjbGFzcz1cInBhZGRpbmctM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbdmlld109XCJkaXNwbGF5TW9kZT09PWRhdGVQaWNrZXJNb2RlRW51bS5tb250aCA/ICdwcmltYXJ5JyA6ICdnaG9zdCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRNb2RlKGRhdGVQaWNrZXJNb2RlRW51bS5tb250aClcIlxuICAgICAgICAgICAgICAgICh3aGVlbCk9XCJzY3JvbGxNb250aCgkZXZlbnQpO1wiPlxuICAgICAgICAgIHt7bG9jYWxlLm1vbnRoc1tfY3VycmVudE1vbnRoIHx8IHRvZGF5LmdldE1vbnRoKCldfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcmdpbi1sZWZ0LTJcIlxuICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiZGlzcGxheU1vZGU9PT1kYXRlUGlja2VyTW9kZUVudW0ueWVhciA/ICdwcmltYXJ5JyA6ICdnaG9zdCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRNb2RlKGRhdGVQaWNrZXJNb2RlRW51bS55ZWFyKVwiXG4gICAgICAgICAgICAgICAgKHdoZWVsKT1cInNjcm9sbFllYXIoJGV2ZW50KTtcIj5cbiAgICAgICAgICB7e19jdXJyZW50WWVhciB8fCB0b2RheS5nZXRGdWxsWWVhcigpfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgIFt2aWV3XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2V0VG9kYXkoKVwiPlxuICAgICAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjYWxlbmRhcidcIj48L3RldGEtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRlbnRcIj5cbiAgICAgIDx0ZXRhLXllYXItc2VsZWN0XG4gICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09IGRhdGVQaWNrZXJNb2RlRW51bS55ZWFyXCJcbiAgICAgICAgW2N1cnJlbnRZZWFyXT1cIl9jdXJyZW50WWVhclwiXG4gICAgICAgIFt0b2RheV09XCJ0b2RheVwiXG4gICAgICAgIFtzaXplXT1cIjhcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwic2V0WWVhcigkZXZlbnQpXCI+XG4gICAgICA8L3RldGEteWVhci1zZWxlY3Q+XG4gICAgICA8dGV0YS1tb250aC1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gZGF0ZVBpY2tlck1vZGVFbnVtLm1vbnRoXCJcbiAgICAgICAgW2N1cnJlbnRNb250aF09XCJfY3VycmVudE1vbnRoXCJcbiAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICBbY3VycmVudFllYXJdPVwiX2N1cnJlbnRZZWFyXCJcbiAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZXRNb250aCgkZXZlbnQpXCI+XG4gICAgICA8L3RldGEtbW9udGgtc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L3RldGEtc2Nyb2xsYWJsZT5cbjwvdGV0YS1kcm9wZG93bj5cbiJdfQ==
|