@tetacom/ng-components 1.1.1 → 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 -687
- 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 +7289 -6544
- 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,148 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { takeWhile, tap } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../service/picker-touch.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "../../../pipe/prepend-zero/prepend-zero.pipe";
|
|
8
|
-
export class MonthSelectComponent {
|
|
9
|
-
constructor(_elementRef, _cdr, _pickerTouchService) {
|
|
10
|
-
this._elementRef = _elementRef;
|
|
11
|
-
this._cdr = _cdr;
|
|
12
|
-
this._pickerTouchService = _pickerTouchService;
|
|
13
|
-
this.size = 8;
|
|
14
|
-
this.monthSelected = new EventEmitter();
|
|
15
|
-
this.monthApplied = new EventEmitter();
|
|
16
|
-
this.months = [];
|
|
17
|
-
this.shift = 0;
|
|
18
|
-
this._alive = true;
|
|
19
|
-
this.scrollMonthSelector = (e) => {
|
|
20
|
-
e.preventDefault();
|
|
21
|
-
e.stopPropagation();
|
|
22
|
-
const step = e.deltaY > 0 ? 1 : -1;
|
|
23
|
-
this.shiftMonthSelector(step);
|
|
24
|
-
};
|
|
25
|
-
this.shiftMonthSelector = (step = 0) => {
|
|
26
|
-
this.shift += step;
|
|
27
|
-
this.makeMonths();
|
|
28
|
-
};
|
|
29
|
-
this.setMonth = (e, month) => {
|
|
30
|
-
e.preventDefault();
|
|
31
|
-
e.stopPropagation();
|
|
32
|
-
if (!this.isMonthDisabled(month)) {
|
|
33
|
-
this.shift = 0;
|
|
34
|
-
this.monthSelected.emit(month);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
this.applyMonth = (e, month) => {
|
|
38
|
-
e.preventDefault();
|
|
39
|
-
e.stopPropagation();
|
|
40
|
-
if (!this.isMonthDisabled(month)) {
|
|
41
|
-
this.monthApplied.emit(month);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
this.isMonthDisabled = (month) => {
|
|
45
|
-
if (!month && !this.currentYear) {
|
|
46
|
-
const dat = new Date(this.currentYear, month, 1);
|
|
47
|
-
return this.isMaxInvalid(dat) || this.isMinInvalid(dat);
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
};
|
|
51
|
-
this.isMinInvalid = (dat) => {
|
|
52
|
-
if (!this.minDate || !(this.minDate instanceof Date) || !dat) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
const min = new Date(this.minDate.getFullYear(), this.minDate.getMonth(), 1);
|
|
56
|
-
return min.getTime() > dat.getTime();
|
|
57
|
-
};
|
|
58
|
-
this.isMaxInvalid = (dat) => {
|
|
59
|
-
if (!this.maxDate || !(this.maxDate instanceof Date) || !dat) {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
const max = new Date(this.maxDate.getFullYear(), this.maxDate.getMonth(), 1);
|
|
63
|
-
return max.getTime() < dat.getTime();
|
|
64
|
-
};
|
|
65
|
-
this.today = new Date();
|
|
66
|
-
this.today.setHours(0, 0, 0, 0);
|
|
67
|
-
}
|
|
68
|
-
set currentMonth(val) {
|
|
69
|
-
this._currentMonth = val;
|
|
70
|
-
this.makeMonths();
|
|
71
|
-
}
|
|
72
|
-
get currentMonth() {
|
|
73
|
-
return this._currentMonth;
|
|
74
|
-
}
|
|
75
|
-
set currentYear(val) {
|
|
76
|
-
this._currentYear = val;
|
|
77
|
-
}
|
|
78
|
-
get currentYear() {
|
|
79
|
-
return this._currentYear;
|
|
80
|
-
}
|
|
81
|
-
get _displayDate() {
|
|
82
|
-
let month = 0;
|
|
83
|
-
let year = 0;
|
|
84
|
-
if (this.currentMonth !== null &&
|
|
85
|
-
this.currentMonth !== undefined &&
|
|
86
|
-
this.currentMonth >= 0 &&
|
|
87
|
-
this.currentMonth <= 11) {
|
|
88
|
-
month = this.currentMonth;
|
|
89
|
-
}
|
|
90
|
-
if (this.currentYear !== null && this.currentYear !== undefined) {
|
|
91
|
-
year = this.currentYear;
|
|
92
|
-
}
|
|
93
|
-
return new Date(year, month, 1);
|
|
94
|
-
}
|
|
95
|
-
ngOnInit() {
|
|
96
|
-
}
|
|
97
|
-
ngOnDestroy() {
|
|
98
|
-
this._alive = false;
|
|
99
|
-
}
|
|
100
|
-
ngAfterViewInit() {
|
|
101
|
-
const touchMove$ = fromEvent(this._elementRef.nativeElement.parentElement, 'touchmove');
|
|
102
|
-
touchMove$
|
|
103
|
-
.pipe(takeWhile((_) => this._alive), tap((e) => {
|
|
104
|
-
if (e.type === 'touchmove') {
|
|
105
|
-
this._pickerTouchService.onTouchMove(e);
|
|
106
|
-
}
|
|
107
|
-
}))
|
|
108
|
-
.subscribe();
|
|
109
|
-
this._pickerTouchService.step
|
|
110
|
-
.pipe(takeWhile((_) => this._alive), tap((_) => {
|
|
111
|
-
this.shiftMonthSelector(_);
|
|
112
|
-
this._cdr.detectChanges();
|
|
113
|
-
}))
|
|
114
|
-
.subscribe();
|
|
115
|
-
}
|
|
116
|
-
makeMonths() {
|
|
117
|
-
const start = this._displayDate;
|
|
118
|
-
this.months = [];
|
|
119
|
-
start.setMonth(start.getMonth() - 3);
|
|
120
|
-
for (let i = this.shift; i < this.size + this.shift; i++) {
|
|
121
|
-
const dt = new Date(start.getFullYear(), start.getMonth() + i, 1);
|
|
122
|
-
this.months.push(dt.getMonth());
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
MonthSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MonthSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.PickerTouchService }], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
-
MonthSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: MonthSelectComponent, selector: "teta-month-select", inputs: { locale: "locale", minDate: "minDate", maxDate: "maxDate", size: "size", currentMonth: "currentMonth", currentYear: "currentYear" }, outputs: { monthSelected: "monthSelected", monthApplied: "monthApplied" }, ngImport: i0, template: "<div class=\"list row_auto margin-top-2\"\n (wheel)=\"scrollMonthSelector($event);\">\n <div *ngFor=\"let month of months\"\n class=\"list-item list-item_interactive\"\n [class.list-item_active]=\"month === _currentMonth\"\n [class.list-item_disabled]=\"isMonthDisabled(month)\"\n [class.datepicker__month__item_current]=\"month === today?.getMonth() && currentYear === today?.getFullYear()\"\n (click)=\"setMonth($event, month)\"\n (dblclick)=\"applyMonth($event, month)\">\n <span class=\"color-text-20 margin-right-2\">\n {{month + 1 | tetaPrependZero: 2}}\n </span>\n {{locale.months[month]}}\n </div>\n</div>\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.PrependZeroPipe, name: "tetaPrependZero" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: MonthSelectComponent, decorators: [{
|
|
129
|
-
type: Component,
|
|
130
|
-
args: [{ selector: 'teta-month-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"list row_auto margin-top-2\"\n (wheel)=\"scrollMonthSelector($event);\">\n <div *ngFor=\"let month of months\"\n class=\"list-item list-item_interactive\"\n [class.list-item_active]=\"month === _currentMonth\"\n [class.list-item_disabled]=\"isMonthDisabled(month)\"\n [class.datepicker__month__item_current]=\"month === today?.getMonth() && currentYear === today?.getFullYear()\"\n (click)=\"setMonth($event, month)\"\n (dblclick)=\"applyMonth($event, month)\">\n <span class=\"color-text-20 margin-right-2\">\n {{month + 1 | tetaPrependZero: 2}}\n </span>\n {{locale.months[month]}}\n </div>\n</div>\n", styles: [":host{display:flex}\n"] }]
|
|
131
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.PickerTouchService }]; }, propDecorators: { locale: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], minDate: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], maxDate: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}], size: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}], monthSelected: [{
|
|
140
|
-
type: Output
|
|
141
|
-
}], monthApplied: [{
|
|
142
|
-
type: Output
|
|
143
|
-
}], currentMonth: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], currentYear: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9udGgtc2VsZWN0L21vbnRoLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vbnRoLXNlbGVjdC9tb250aC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVU5QyxNQUFNLE9BQU8sb0JBQW9CO0lBc0QvQixZQUNVLFdBQXVCLEVBQ3ZCLElBQXVCLEVBQ3ZCLG1CQUF1QztRQUZ2QyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBckR4QyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQTBCcEQsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUN0QixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRUYsV0FBTSxHQUFHLElBQUksQ0FBQztRQStEdEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFhLEVBQUUsRUFBRTtZQUN0QyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXBCLE1BQU0sSUFBSSxHQUFHLENB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QU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs7aUhBeEtVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGtSQ3ZCakMsaXFCQWVBOzJGRFFhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTtrS0FHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFLSCxZQUFZO3NCQURmLEtBQUs7Z0JBYUYsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tRXZlbnR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlV2hpbGUsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQaWNrZXJUb3VjaFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvcGlja2VyLXRvdWNoLnNlcnZpY2UnO1xuaW1wb3J0IHtUZXRhTG9jYWxpc2F0aW9ufSBmcm9tICcuLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLW1vbnRoLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb250aC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb250aC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBsb2NhbGU6IFRldGFMb2NhbGlzYXRpb247XG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGU7XG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XG4gIEBJbnB1dCgpIHNpemUgPSA4O1xuICBAT3V0cHV0KCkgbW9udGhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgbW9udGhBcHBsaWVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgX2N1cnJlbnRNb250aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjdXJyZW50TW9udGgodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jdXJyZW50TW9udGggPSB2YWw7XG4gICAgdGhpcy5tYWtlTW9udGhzKCk7XG4gIH1cblxuICBnZXQgY3VycmVudE1vbnRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRNb250aDtcbiAgfVxuXG4gIF9jdXJyZW50WWVhcjogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjdXJyZW50WWVhcih2YWw6IG51bWJlcikge1xuICAgIHRoaXMuX2N1cnJlbnRZZWFyID0gdmFsO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRZZWFyO1xuICB9XG5cbiAgdG9kYXk6IERhdGU7XG4gIG1vbnRoczogbnVtYmVyW10gPSBbXTtcbiAgc2hpZnQgPSAwO1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBwcml2YXRlIGdldCBfZGlzcGxheURhdGUoKTogRGF0ZSB7XG4gICAgbGV0IG1vbnRoID0gMDtcbiAgICBsZXQgeWVhciA9IDA7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jdXJyZW50TW9udGggIT09IG51bGwgJiZcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID49IDAgJiZcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoIDw9IDExXG4gICAgKSB7XG4gICAgICBtb250aCA9IHRoaXMuY3VycmVudE1vbnRoO1xuICAgIH1cbiAgICBpZiAodGhpcy5jdXJyZW50WWVhciAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnRZZWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHllYXIgPSB0aGlzLmN1cnJlbnRZZWFyO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX3BpY2tlclRvdWNoU2VydmljZTogUGlja2VyVG91Y2hTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMudG9kYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgdG91Y2hNb3ZlJCA9IGZyb21FdmVudChcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LFxuICAgICAgJ3RvdWNobW92ZSdcbiAgICApO1xuXG4gICAgdG91Y2hNb3ZlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICB0YXAoKGU6IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZS50eXBlID09PSAndG91Y2htb3ZlJykge1xuICAgICAgICAgICAgdGhpcy5fcGlja2VyVG91Y2hTZXJ2aWNlLm9uVG91Y2hNb3ZlKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX3BpY2tlclRvdWNoU2VydmljZS5zdGVwXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIHRhcCgoXykgPT4ge1xuICAgICAgICAgIHRoaXMuc2hpZnRNb250aFNlbGVjdG9yKF8pO1xuICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzY3JvbGxNb250aFNlbGVjdG9yID0gKGU6IFdoZWVsRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHN0ZXAgPSBlLmRlbHRhWSA+IDAgPyAxIDogLTE7XG4gICAgdGhpcy5zaGlmdE1vbnRoU2VsZWN0b3Ioc3RlcCk7XG4gIH07XG5cbiAgc2hpZnRNb250aFNlbGVjdG9yID0gKHN0ZXA6IG51bWJlciA9IDApID0+IHtcbiAgICB0aGlzLnNoaWZ0ICs9IHN0ZXA7XG4gICAgdGhpcy5tYWtlTW9udGhzKCk7XG4gIH07XG5cbiAgc2V0TW9udGggPSAoZTogYW55LCBtb250aDogbnVtYmVyKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmlzTW9udGhEaXNhYmxlZChtb250aCkpIHtcbiAgICAgIHRoaXMuc2hpZnQgPSAwO1xuICAgICAgdGhpcy5tb250aFNlbGVjdGVkLmVtaXQobW9udGgpO1xuICAgIH1cbiAgfTtcblxuICBhcHBseU1vbnRoID0gKGU6IGFueSwgbW9udGg6IG51bWJlcikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5pc01vbnRoRGlzYWJsZWQobW9udGgpKSB7XG4gICAgICB0aGlzLm1vbnRoQXBwbGllZC5lbWl0KG1vbnRoKTtcbiAgICB9XG4gIH07XG5cbiAgaXNNb250aERpc2FibGVkID0gKG1vbnRoOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIW1vbnRoICYmICF0aGlzLmN1cnJlbnRZZWFyKSB7XG4gICAgICBjb25zdCBkYXQgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCBtb250aCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5pc01heEludmFsaWQoZGF0KSB8fCB0aGlzLmlzTWluSW52YWxpZChkYXQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgaXNNaW5JbnZhbGlkID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5taW5EYXRlIHx8ICEodGhpcy5taW5EYXRlIGluc3RhbmNlb2YgRGF0ZSkgfHwgIWRhdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWluRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5taW5EYXRlLmdldE1vbnRoKCksXG4gICAgICAxXG4gICAgKTtcbiAgICByZXR1cm4gbWluLmdldFRpbWUoKSA+IGRhdC5nZXRUaW1lKCk7XG4gIH07XG5cbiAgaXNNYXhJbnZhbGlkID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5tYXhEYXRlIHx8ICEodGhpcy5tYXhEYXRlIGluc3RhbmNlb2YgRGF0ZSkgfHwgIWRhdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtYXggPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5tYXhEYXRlLmdldE1vbnRoKCksXG4gICAgICAxXG4gICAgKTtcbiAgICByZXR1cm4gbWF4LmdldFRpbWUoKSA8IGRhdC5nZXRUaW1lKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBtYWtlTW9udGhzKCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5fZGlzcGxheURhdGU7XG4gICAgdGhpcy5tb250aHMgPSBbXTtcbiAgICBzdGFydC5zZXRNb250aChzdGFydC5nZXRNb250aCgpIC0gMyk7XG4gICAgZm9yIChsZXQgaSA9IHRoaXMuc2hpZnQ7IGkgPCB0aGlzLnNpemUgKyB0aGlzLnNoaWZ0OyBpKyspIHtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoc3RhcnQuZ2V0RnVsbFllYXIoKSwgc3RhcnQuZ2V0TW9udGgoKSArIGksIDEpO1xuICAgICAgdGhpcy5tb250aHMucHVzaChkdC5nZXRNb250aCgpKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaXN0IHJvd19hdXRvIG1hcmdpbi10b3AtMlwiXG4gICAgICh3aGVlbCk9XCJzY3JvbGxNb250aFNlbGVjdG9yKCRldmVudCk7XCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoc1wiXG4gICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0gbGlzdC1pdGVtX2ludGVyYWN0aXZlXCJcbiAgICAgICBbY2xhc3MubGlzdC1pdGVtX2FjdGl2ZV09XCJtb250aCA9PT0gX2N1cnJlbnRNb250aFwiXG4gICAgICAgW2NsYXNzLmxpc3QtaXRlbV9kaXNhYmxlZF09XCJpc01vbnRoRGlzYWJsZWQobW9udGgpXCJcbiAgICAgICBbY2xhc3MuZGF0ZXBpY2tlcl9fbW9udGhfX2l0ZW1fY3VycmVudF09XCJtb250aCA9PT0gdG9kYXk/LmdldE1vbnRoKCkgJiYgY3VycmVudFllYXIgPT09IHRvZGF5Py5nZXRGdWxsWWVhcigpXCJcbiAgICAgICAoY2xpY2spPVwic2V0TW9udGgoJGV2ZW50LCBtb250aClcIlxuICAgICAgIChkYmxjbGljayk9XCJhcHBseU1vbnRoKCRldmVudCwgbW9udGgpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjb2xvci10ZXh0LTIwIG1hcmdpbi1yaWdodC0yXCI+XG4gICAgICB7e21vbnRoICsgMSB8IHRldGFQcmVwZW5kWmVybzogMn19XG4gICAgPC9zcGFuPlxuICAgIHt7bG9jYWxlLm1vbnRoc1ttb250aF19fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './date-picker.module';
|
|
2
|
-
export * from './date-picker/date-picker.component';
|
|
3
|
-
export * from './month-picker/month-picker.component';
|
|
4
|
-
export * from './day-select/day-select.component';
|
|
5
|
-
export * from './model/date-period';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGF5LXNlbGVjdC9kYXktc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2RhdGUtcGVyaW9kJztcbiJdfQ==
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { bufferCount, tap, throttleTime } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class PickerTouchService {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.touchMove$ = new Subject();
|
|
8
|
-
this.step$ = new Subject();
|
|
9
|
-
this.touchMove = this.touchMove$.asObservable();
|
|
10
|
-
this.step = this.step$.asObservable();
|
|
11
|
-
this.touchMove
|
|
12
|
-
.pipe(throttleTime(25), bufferCount(2), tap((touches) => {
|
|
13
|
-
const [start, end] = touches.map((_) => _.changedTouches?.item(0));
|
|
14
|
-
const deltaY = start?.clientY - end?.clientY;
|
|
15
|
-
if (deltaY !== 0) {
|
|
16
|
-
const step = deltaY > 0 ? 1 : -1;
|
|
17
|
-
this.step$.next(step);
|
|
18
|
-
}
|
|
19
|
-
}))
|
|
20
|
-
.subscribe();
|
|
21
|
-
}
|
|
22
|
-
onTouchMove(event) {
|
|
23
|
-
this.touchMove$.next(event);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
PickerTouchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PickerTouchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
-
PickerTouchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PickerTouchService, providedIn: 'root' });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PickerTouchService, decorators: [{
|
|
29
|
-
type: Injectable,
|
|
30
|
-
args: [{
|
|
31
|
-
providedIn: 'root',
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters: function () { return []; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXRvdWNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL3NlcnZpY2UvcGlja2VyLXRvdWNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtoRSxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCO1FBSFEsZUFBVSxHQUF3QixJQUFJLE9BQU8sRUFBYyxDQUFDO1FBQzVELFVBQUssR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUdyRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxTQUFTO2FBQ1gsSUFBSSxDQUNILFlBQVksQ0FBQyxFQUFFLENBQUMsRUFDaEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLEdBQUcsQ0FBQyxDQUFDLE9BQWlDLEVBQUUsRUFBRTtZQUN4QyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkUsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDO1lBQzdDLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7K0dBN0JVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGJ1ZmZlckNvdW50LCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBpY2tlclRvdWNoU2VydmljZSB7XG4gIHN0ZXA6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBwcml2YXRlIHRvdWNoTW92ZTogT2JzZXJ2YWJsZTxUb3VjaEV2ZW50PjtcbiAgcHJpdmF0ZSB0b3VjaE1vdmUkOiBTdWJqZWN0PFRvdWNoRXZlbnQ+ID0gbmV3IFN1YmplY3Q8VG91Y2hFdmVudD4oKTtcbiAgcHJpdmF0ZSBzdGVwJDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudG91Y2hNb3ZlID0gdGhpcy50b3VjaE1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuc3RlcCA9IHRoaXMuc3RlcCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLnRvdWNoTW92ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgyNSksXG4gICAgICAgIGJ1ZmZlckNvdW50KDIpLFxuICAgICAgICB0YXAoKHRvdWNoZXM6IFtUb3VjaEV2ZW50LCBUb3VjaEV2ZW50XSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRvdWNoZXMubWFwKChfKSA9PiBfLmNoYW5nZWRUb3VjaGVzPy5pdGVtKDApKTtcbiAgICAgICAgICBjb25zdCBkZWx0YVkgPSBzdGFydD8uY2xpZW50WSAtIGVuZD8uY2xpZW50WTtcbiAgICAgICAgICBpZiAoZGVsdGFZICE9PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBzdGVwID0gZGVsdGFZID4gMCA/IDEgOiAtMTtcbiAgICAgICAgICAgIHRoaXMuc3RlcCQubmV4dChzdGVwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCkge1xuICAgIHRoaXMudG91Y2hNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxufVxuIl19
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, Input, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../icon/icon/icon.component";
|
|
5
|
-
import * as i2 from "../../button/button/button.component";
|
|
6
|
-
import * as i3 from "../../../pipe/prepend-zero/prepend-zero.pipe";
|
|
7
|
-
export const TIME_PART_CONTROL_VALUE_ACCESSOR = {
|
|
8
|
-
provide: NG_VALUE_ACCESSOR,
|
|
9
|
-
useExisting: forwardRef(() => TimePartControlComponent),
|
|
10
|
-
multi: true,
|
|
11
|
-
};
|
|
12
|
-
export class TimePartControlComponent {
|
|
13
|
-
constructor(_cdr) {
|
|
14
|
-
this._cdr = _cdr;
|
|
15
|
-
this.min = 0;
|
|
16
|
-
this.max = 59;
|
|
17
|
-
this.scroll = (e) => {
|
|
18
|
-
const delta = e?.deltaY ?? e;
|
|
19
|
-
if (e instanceof WheelEvent) {
|
|
20
|
-
e.preventDefault();
|
|
21
|
-
}
|
|
22
|
-
if (delta > 0) {
|
|
23
|
-
this.down();
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
this.up();
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
set value(value) {
|
|
31
|
-
this._value = value;
|
|
32
|
-
this.onChange(this._value);
|
|
33
|
-
}
|
|
34
|
-
get value() {
|
|
35
|
-
return this._value;
|
|
36
|
-
}
|
|
37
|
-
up() {
|
|
38
|
-
this.value = this.value < this.max ? this.value + 1 : this.min;
|
|
39
|
-
}
|
|
40
|
-
down() {
|
|
41
|
-
this.value = this.value > this.min ? this.value - 1 : this.max;
|
|
42
|
-
}
|
|
43
|
-
ngOnInit() { }
|
|
44
|
-
writeValue(model) {
|
|
45
|
-
this._value = model;
|
|
46
|
-
this._cdr.markForCheck();
|
|
47
|
-
}
|
|
48
|
-
onChange(_) { }
|
|
49
|
-
onTouched() { }
|
|
50
|
-
registerOnChange(fn) {
|
|
51
|
-
this.onChange = fn;
|
|
52
|
-
}
|
|
53
|
-
registerOnTouched(fn) {
|
|
54
|
-
this.onTouched = fn;
|
|
55
|
-
}
|
|
56
|
-
setDisabledState(isDisabled) {
|
|
57
|
-
this.disabled = isDisabled;
|
|
58
|
-
this._cdr.markForCheck();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
TimePartControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TimePartControlComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
TimePartControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TimePartControlComponent, selector: "teta-time-part-control", inputs: { min: "min", max: "max", disabled: "disabled" }, providers: [TIME_PART_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<button type=\"button\" teta-button [square]=\"true\" (click)=\"up()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n <teta-icon [name]=\"'arrowUpKey'\"></teta-icon>\n</button>\n<div (wheel)=\"scroll($event);\" class=\"row row_auto font-body-3 height-6 width-6 align-center justify-content-center\">\n {{value | tetaPrependZero: 2}}\n</div>\n<button type=\"button\" teta-button [square]=\"true\" (click)=\"down()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n <teta-icon [name]=\"'arrowDownKey'\"></teta-icon>\n</button>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { kind: "pipe", type: i3.PrependZeroPipe, name: "tetaPrependZero" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TimePartControlComponent, decorators: [{
|
|
64
|
-
type: Component,
|
|
65
|
-
args: [{ selector: 'teta-time-part-control', providers: [TIME_PART_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button type=\"button\" teta-button [square]=\"true\" (click)=\"up()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n <teta-icon [name]=\"'arrowUpKey'\"></teta-icon>\n</button>\n<div (wheel)=\"scroll($event);\" class=\"row row_auto font-body-3 height-6 width-6 align-center justify-content-center\">\n {{value | tetaPrependZero: 2}}\n</div>\n<button type=\"button\" teta-button [square]=\"true\" (click)=\"down()\" [palette]=\"'text'\" [view]=\"'ghost'\">\n <teta-icon [name]=\"'arrowDownKey'\"></teta-icon>\n</button>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { min: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], max: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}], disabled: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1wYXJ0LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci90aW1lLXBhcnQtY29udHJvbC90aW1lLXBhcnQtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL3RpbWUtcGFydC1jb250cm9sL3RpbWUtcGFydC1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUV6RSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBUTtJQUNuRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDdkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBU0YsTUFBTSxPQUFPLHdCQUF3QjtJQWdCbkMsWUFBb0IsSUFBdUI7UUFBdkIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFmbEMsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLFFBQUcsR0FBRyxFQUFFLENBQUM7UUF3QmxCLFdBQU0sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxZQUFZLFVBQVUsRUFBRTtnQkFDM0IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDO0lBckI0QyxDQUFDO0lBVC9DLElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsRUFBRTtRQUNBLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNqRSxDQUFDO0lBZUQsUUFBUSxLQUFJLENBQUM7SUFFYixVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBTSxJQUFHLENBQUM7SUFFbkIsU0FBUyxLQUFJLENBQUM7SUFFZCxnQkFBZ0IsQ0FBQyxFQUFvQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDOztxSEE3RFUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsMkdBSHhCLENBQUMsZ0NBQWdDLENBQUMsMEJDcEIvQyx5Z0JBU0E7MkZEY2Esd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2QixDQUFDLGdDQUFnQyxDQUFDLG1CQUM1Qix1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBUSU1FX1BBUlRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZVBhcnRDb250cm9sQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXRpbWUtcGFydC1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGFydC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1wYXJ0LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbVElNRV9QQVJUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGltZVBhcnRDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG1pbiA9IDA7XG4gIEBJbnB1dCgpIG1heCA9IDU5O1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIF92YWx1ZTogbnVtYmVyO1xuXG4gIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHVwKCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlIDwgdGhpcy5tYXggPyB0aGlzLnZhbHVlICsgMSA6IHRoaXMubWluO1xuICB9XG5cbiAgZG93bigpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZSA+IHRoaXMubWluID8gdGhpcy52YWx1ZSAtIDEgOiB0aGlzLm1heDtcbiAgfVxuXG4gIHNjcm9sbCA9IChlOiBhbnkpID0+IHtcbiAgICBjb25zdCBkZWx0YSA9IGU/LmRlbHRhWSA/PyBlO1xuXG4gICAgaWYgKGUgaW5zdGFuY2VvZiBXaGVlbEV2ZW50KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChkZWx0YSA+IDApIHtcbiAgICAgIHRoaXMuZG93bigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwKCk7XG4gICAgfVxuICB9O1xuXG4gIG5nT25Jbml0KCkge31cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBudW1iZXIpIHtcbiAgICB0aGlzLl92YWx1ZSA9IG1vZGVsO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKF86IGFueSkge31cblxuICBvblRvdWNoZWQoKSB7fVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0ZXRhLWJ1dHRvbiBbc3F1YXJlXT1cInRydWVcIiAoY2xpY2spPVwidXAoKVwiIFtwYWxldHRlXT1cIid0ZXh0J1wiIFt2aWV3XT1cIidnaG9zdCdcIj5cbiAgPHRldGEtaWNvbiBbbmFtZV09XCInYXJyb3dVcEtleSdcIj48L3RldGEtaWNvbj5cbjwvYnV0dG9uPlxuPGRpdiAod2hlZWwpPVwic2Nyb2xsKCRldmVudCk7XCIgY2xhc3M9XCJyb3cgcm93X2F1dG8gZm9udC1ib2R5LTMgaGVpZ2h0LTYgd2lkdGgtNiBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICB7e3ZhbHVlIHwgdGV0YVByZXBlbmRaZXJvOiAyfX1cbjwvZGl2PlxuPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGV0YS1idXR0b24gW3NxdWFyZV09XCJ0cnVlXCIgKGNsaWNrKT1cImRvd24oKVwiIFtwYWxldHRlXT1cIid0ZXh0J1wiIFt2aWV3XT1cIidnaG9zdCdcIj5cbiAgPHRldGEtaWNvbiBbbmFtZV09XCInYXJyb3dEb3duS2V5J1wiPjwvdGV0YS1pY29uPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { DayModel } from '../model/day-model';
|
|
2
|
-
export class DatePickerUtil {
|
|
3
|
-
static getFirstDay(month, year, firstDayOfWeek) {
|
|
4
|
-
const lastDay = new Date(year, month, 0);
|
|
5
|
-
const lastDayIndex = lastDay.getDay() >= firstDayOfWeek
|
|
6
|
-
? lastDay.getDay() - firstDayOfWeek
|
|
7
|
-
: lastDay.getDay() + 7 - firstDayOfWeek;
|
|
8
|
-
return new Date(year, month - 1, lastDay.getDate() - lastDayIndex);
|
|
9
|
-
}
|
|
10
|
-
static getPickerDays(date, firstDayOfWeek, minDate, maxDate, disabledDates, disabledDays, disabledPeriods) {
|
|
11
|
-
const days = [];
|
|
12
|
-
const firstDay = DatePickerUtil.getFirstDay(date.getMonth(), date.getFullYear(), firstDayOfWeek);
|
|
13
|
-
for (let i = 0; i < 6 * 7; i++) {
|
|
14
|
-
const dat = new Date(firstDay);
|
|
15
|
-
dat.setDate(dat.getDate() + i);
|
|
16
|
-
days.push(new DayModel({
|
|
17
|
-
date: dat,
|
|
18
|
-
disabled: DatePickerUtil.isDateInvalid(dat, minDate, maxDate, disabledDates, disabledDays, disabledPeriods),
|
|
19
|
-
today: DatePickerUtil.isToday(dat),
|
|
20
|
-
isCurrentMonth: dat.getMonth() === date.getMonth(),
|
|
21
|
-
selected: dat.getFullYear() === date.getFullYear() &&
|
|
22
|
-
dat.getMonth() === date.getMonth() &&
|
|
23
|
-
dat.getDate() === date.getDate(),
|
|
24
|
-
weekend: dat.getDay() === 0 || dat.getDay() === 6,
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
27
|
-
return days;
|
|
28
|
-
}
|
|
29
|
-
static isDateInvalid(dat, minDate, maxDate, disabledDates, disabledDays, disabledPeriods) {
|
|
30
|
-
return (DatePickerUtil.isDayDisabled(dat, disabledDays) ||
|
|
31
|
-
DatePickerUtil.isDateDisabled(dat, disabledDates) ||
|
|
32
|
-
DatePickerUtil.isDateInDisabledPeriod(dat, disabledPeriods) ||
|
|
33
|
-
DatePickerUtil.isMaxInvalid(dat, maxDate) ||
|
|
34
|
-
DatePickerUtil.isMinInvalid(dat, minDate));
|
|
35
|
-
}
|
|
36
|
-
static isDayDisabled(dat, disabledDays) {
|
|
37
|
-
if (dat === null ||
|
|
38
|
-
dat === undefined ||
|
|
39
|
-
disabledDays === null ||
|
|
40
|
-
disabledDays === undefined ||
|
|
41
|
-
disabledDays.length < 1) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
return disabledDays.indexOf(dat.getDay()) >= 0;
|
|
45
|
-
}
|
|
46
|
-
static isMinInvalid(dat, minDate) {
|
|
47
|
-
if (dat === null ||
|
|
48
|
-
dat === undefined ||
|
|
49
|
-
minDate === null ||
|
|
50
|
-
minDate === undefined) {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
return minDate.getTime() > dat.getTime();
|
|
54
|
-
}
|
|
55
|
-
static isMaxInvalid(dat, maxDate) {
|
|
56
|
-
if (dat === null ||
|
|
57
|
-
dat === undefined ||
|
|
58
|
-
maxDate === null ||
|
|
59
|
-
maxDate === undefined) {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
return maxDate.getTime() < dat.getTime();
|
|
63
|
-
}
|
|
64
|
-
static isDateInDisabledPeriod(dat, disabledPeriods) {
|
|
65
|
-
if (dat === null ||
|
|
66
|
-
dat === undefined ||
|
|
67
|
-
disabledPeriods === null ||
|
|
68
|
-
disabledPeriods === undefined ||
|
|
69
|
-
disabledPeriods.length < 1) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
return disabledPeriods.some((d) => d !== null &&
|
|
73
|
-
d !== undefined &&
|
|
74
|
-
d.start !== null &&
|
|
75
|
-
d.start !== undefined &&
|
|
76
|
-
d.end !== null &&
|
|
77
|
-
d.end !== undefined &&
|
|
78
|
-
d.start.getTime() <= dat.getTime() &&
|
|
79
|
-
d.end.getTime() >= dat.getTime());
|
|
80
|
-
}
|
|
81
|
-
static isDateDisabled(dat, disabledDates) {
|
|
82
|
-
if (disabledDates === null ||
|
|
83
|
-
disabledDates === undefined ||
|
|
84
|
-
disabledDates.length < 1 ||
|
|
85
|
-
dat === null ||
|
|
86
|
-
dat === undefined) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
return disabledDates.some((d) => d !== null &&
|
|
90
|
-
d !== undefined &&
|
|
91
|
-
d.getFullYear() === dat.getFullYear() &&
|
|
92
|
-
d.getMonth() === dat.getMonth() &&
|
|
93
|
-
d.getDate() === dat.getDate());
|
|
94
|
-
}
|
|
95
|
-
static isToday(dat) {
|
|
96
|
-
if (dat === null || dat === undefined) {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
const today = new Date();
|
|
100
|
-
return (dat.getFullYear() === today.getFullYear() &&
|
|
101
|
-
dat.getMonth() === today.getMonth() &&
|
|
102
|
-
dat.getDate() === today.getDate());
|
|
103
|
-
}
|
|
104
|
-
static scrollMonth(delta, date) {
|
|
105
|
-
const res = new Date(date);
|
|
106
|
-
let month = date.getMonth();
|
|
107
|
-
let year = date.getFullYear();
|
|
108
|
-
if (delta > 0) {
|
|
109
|
-
if (month === 11) {
|
|
110
|
-
month = 0;
|
|
111
|
-
year++;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
month++;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
if (month === 0) {
|
|
119
|
-
month = 11;
|
|
120
|
-
year--;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
month--;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
res.setFullYear(year, month);
|
|
127
|
-
return res;
|
|
128
|
-
}
|
|
129
|
-
static scrollYear(delta, date) {
|
|
130
|
-
const res = new Date(date);
|
|
131
|
-
let year = date.getFullYear();
|
|
132
|
-
if (delta > 0) {
|
|
133
|
-
year++;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
year--;
|
|
137
|
-
}
|
|
138
|
-
res.setFullYear(year);
|
|
139
|
-
return res;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvdXRpbC9kYXRlLXBpY2tlci11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsV0FBVyxDQUNoQixLQUFhLEVBQ2IsSUFBWSxFQUNaLGNBQXNCO1FBRXRCLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxZQUFZLEdBQ2hCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxjQUFjO1lBQ2hDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsY0FBYztZQUNuQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDNUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQ2xCLElBQVUsRUFDVixjQUFzQixFQUN0QixPQUFhLEVBQ2IsT0FBYSxFQUNiLGFBQXFCLEVBQ3JCLFlBQXNCLEVBQ3RCLGVBQTZCO1FBRTdCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUN6QyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixjQUFjLENBQ2YsQ0FBQztRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFD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LEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYSxFQUFFLElBQVU7UUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNiLElBQUksRUFBRSxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksRUFBRSxDQUFDO1NBQ1I7UUFDRCxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQXNCRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQZXJpb2QgfSBmcm9tICcuLi9tb2RlbC9kYXRlLXBlcmlvZCc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyVXRpbCB7XG4gIHN0YXRpYyBnZXRGaXJzdERheShcbiAgICBtb250aDogbnVtYmVyLFxuICAgIHllYXI6IG51bWJlcixcbiAgICBmaXJzdERheU9mV2VlazogbnVtYmVyXG4gICk6IERhdGUge1xuICAgIGNvbnN0IGxhc3REYXkgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMCk7XG4gICAgY29uc3QgbGFzdERheUluZGV4ID1cbiAgICAgIGxhc3REYXkuZ2V0RGF5KCkgPj0gZmlyc3REYXlPZldlZWtcbiAgICAgICAgPyBsYXN0RGF5LmdldERheSgpIC0gZmlyc3REYXlPZldlZWtcbiAgICAgICAgOiBsYXN0RGF5LmdldERheSgpICsgNyAtIGZpcnN0RGF5T2ZXZWVrO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGxhc3REYXkuZ2V0RGF0ZSgpIC0gbGFzdERheUluZGV4KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRQaWNrZXJEYXlzKFxuICAgIGRhdGU6IERhdGUsXG4gICAgZmlyc3REYXlPZldlZWs6IG51bWJlcixcbiAgICBtaW5EYXRlOiBEYXRlLFxuICAgIG1heERhdGU6IERhdGUsXG4gICAgZGlzYWJsZWREYXRlczogRGF0ZVtdLFxuICAgIGRpc2FibGVkRGF5czogbnVtYmVyW10sXG4gICAgZGlzYWJsZWRQZXJpb2RzOiBEYXRlUGVyaW9kW11cbiAgKTogRGF5TW9kZWxbXSB7XG4gICAgY29uc3QgZGF5cyA9IFtdO1xuICAgIGNvbnN0IGZpcnN0RGF5ID0gRGF0ZVBpY2tlclV0aWwuZ2V0Rmlyc3REYXkoXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBmaXJzdERheU9mV2Vla1xuICAgICk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2ICogNzsgaSsrKSB7XG4gICAgICBjb25zdCBkYXQgPSBuZXcgRGF0ZShmaXJzdERheSk7XG4gICAgICBkYXQuc2V0RGF0ZShkYXQuZ2V0RGF0ZSgpICsgaSk7XG4gICAgICBkYXlzLnB1c2goXG4gICAgICAgIG5ldyBEYXlNb2RlbCh7XG4gICAgICAgICAgZGF0ZTogZGF0LFxuICAgICAgICAgIGRpc2FibGVkOiBEYXRlUGlja2VyVXRpbC5pc0RhdGVJbnZhbGlkKFxuICAgICAgICAgICAgZGF0LFxuICAgICAgICAgICAgbWluRGF0ZSxcbiAgICAgICAgICAgIG1heERhdGUsXG4gICAgICAgICAgICBkaXNhYmxlZERhdGVzLFxuICAgICAgICAgICAgZGlzYWJsZWREYXlzLFxuICAgICAgICAgICAgZGlzYWJsZWRQZXJpb2RzXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0b2RheTogRGF0ZVBpY2tlclV0aWwuaXNUb2RheShkYXQpLFxuICAgICAgICAgIGlzQ3VycmVudE1vbnRoOiBkYXQuZ2V0TW9udGgoKSA9PT0gZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICAgIHNlbGVjdGVkOlxuICAgICAgICAgICAgZGF0LmdldEZ1bGxZZWFyKCkgPT09IGRhdGUuZ2V0RnVsbFllYXIoKSAmJlxuICAgICAgICAgICAgZGF0LmdldE1vbnRoKCkgPT09IGRhdGUuZ2V0TW9udGgoKSAmJlxuICAgICAgICAgICAgZGF0LmdldERhdGUoKSA9PT0gZGF0ZS5nZXREYXRlKCksXG4gICAgICAgICAgd2Vla2VuZDogZGF0LmdldERheSgpID09PSAwIHx8IGRhdC5nZXREYXkoKSA9PT0gNixcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXlzO1xuICB9XG5cbiAgc3RhdGljIGlzRGF0ZUludmFsaWQoXG4gICAgZGF0OiBEYXRlLFxuICAgIG1pbkRhdGU6IERhdGUsXG4gICAgbWF4RGF0ZTogRGF0ZSxcbiAgICBkaXNhYmxlZERhdGVzOiBEYXRlW10sXG4gICAgZGlzYWJsZWREYXlzOiBudW1iZXJbXSxcbiAgICBkaXNhYmxlZFBlcmlvZHM6IERhdGVQZXJpb2RbXVxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgRGF0ZVBpY2tlclV0aWwuaXNEYXlEaXNhYmxlZChkYXQsIGRpc2FibGVkRGF5cykgfHxcbiAgICAgIERhdGVQaWNrZXJVdGlsLmlzRGF0ZURpc2FibGVkKGRhdCwgZGlzYWJsZWREYXRlcykgfHxcbiAgICAgIERhdGVQaWNrZXJVdGlsLmlzRGF0ZUluRGlzYWJsZWRQZXJpb2QoZGF0LCBkaXNhYmxlZFBlcmlvZHMpIHx8XG4gICAgICBEYXRlUGlja2VyVXRpbC5pc01heEludmFsaWQoZGF0LCBtYXhEYXRlKSB8fFxuICAgICAgRGF0ZVBpY2tlclV0aWwuaXNNaW5JbnZhbGlkKGRhdCwgbWluRGF0ZSlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGlzRGF5RGlzYWJsZWQoZGF0OiBEYXRlLCBkaXNhYmxlZERheXM6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgZGF0ID09PSBudWxsIHx8XG4gICAgICBkYXQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgZGlzYWJsZWREYXlzID09PSBudWxsIHx8XG4gICAgICBkaXNhYmxlZERheXMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgZGlzYWJsZWREYXlzLmxlbmd0aCA8IDFcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGRpc2FibGVkRGF5cy5pbmRleE9mKGRhdC5nZXREYXkoKSkgPj0gMDtcbiAgfVxuXG4gIHN0YXRpYyBpc01pbkludmFsaWQoZGF0OiBEYXRlLCBtaW5EYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgZGF0ID09PSBudWxsIHx8XG4gICAgICBkYXQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgbWluRGF0ZSA9PT0gbnVsbCB8fFxuICAgICAgbWluRGF0ZSA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBtaW5EYXRlLmdldFRpbWUoKSA+IGRhdC5nZXRUaW1lKCk7XG4gIH1cblxuICBzdGF0aWMgaXNNYXhJbnZhbGlkKGRhdDogRGF0ZSwgbWF4RGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIGRhdCA9PT0gbnVsbCB8fFxuICAgICAgZGF0ID09PSB1bmRlZmluZWQgfHxcbiAgICAgIG1heERhdGUgPT09IG51bGwgfHxcbiAgICAgIG1heERhdGUgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbWF4RGF0ZS5nZXRUaW1lKCkgPCBkYXQuZ2V0VGltZSgpO1xuICB9XG5cbiAgc3RhdGljIGlzRGF0ZUluRGlzYWJsZWRQZXJpb2QoXG4gICAgZGF0OiBEYXRlLFxuICAgIGRpc2FibGVkUGVyaW9kczogRGF0ZVBlcmlvZFtdXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIGRhdCA9PT0gbnVsbCB8fFxuICAgICAgZGF0ID09PSB1bmRlZmluZWQgfHxcbiAgICAgIGRpc2FibGVkUGVyaW9kcyA9PT0gbnVsbCB8fFxuICAgICAgZGlzYWJsZWRQZXJpb2RzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIGRpc2FibGVkUGVyaW9kcy5sZW5ndGggPCAxXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBkaXNhYmxlZFBlcmlvZHMuc29tZShcbiAgICAgIChkOiBEYXRlUGVyaW9kKSA9PlxuICAgICAgICBkICE9PSBudWxsICYmXG4gICAgICAgIGQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBkLnN0YXJ0ICE9PSBudWxsICYmXG4gICAgICAgIGQuc3RhcnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBkLmVuZCAhPT0gbnVsbCAmJlxuICAgICAgICBkLmVuZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGQuc3RhcnQuZ2V0VGltZSgpIDw9IGRhdC5nZXRUaW1lKCkgJiZcbiAgICAgICAgZC5lbmQuZ2V0VGltZSgpID49IGRhdC5nZXRUaW1lKClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGlzRGF0ZURpc2FibGVkKGRhdDogRGF0ZSwgZGlzYWJsZWREYXRlczogRGF0ZVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgZGlzYWJsZWREYXRlcyA9PT0gbnVsbCB8fFxuICAgICAgZGlzYWJsZWREYXRlcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBkaXNhYmxlZERhdGVzLmxlbmd0aCA8IDEgfHxcbiAgICAgIGRhdCA9PT0gbnVsbCB8fFxuICAgICAgZGF0ID09PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGRpc2FibGVkRGF0ZXMuc29tZShcbiAgICAgIChkOiBEYXRlKSA9PlxuICAgICAgICBkICE9PSBudWxsICYmXG4gICAgICAgIGQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBkLmdldEZ1bGxZZWFyKCkgPT09IGRhdC5nZXRGdWxsWWVhcigpICYmXG4gICAgICAgIGQuZ2V0TW9udGgoKSA9PT0gZGF0LmdldE1vbnRoKCkgJiZcbiAgICAgICAgZC5nZXREYXRlKCkgPT09IGRhdC5nZXREYXRlKClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGlzVG9kYXkoZGF0OiBEYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKGRhdCA9PT0gbnVsbCB8fCBkYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGRhdC5nZXRGdWxsWWVhcigpID09PSB0b2RheS5nZXRGdWxsWWVhcigpICYmXG4gICAgICBkYXQuZ2V0TW9udGgoKSA9PT0gdG9kYXkuZ2V0TW9udGgoKSAmJlxuICAgICAgZGF0LmdldERhdGUoKSA9PT0gdG9kYXkuZ2V0RGF0ZSgpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBzY3JvbGxNb250aChkZWx0YTogbnVtYmVyLCBkYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgbGV0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICAgIGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGlmIChkZWx0YSA+IDApIHtcbiAgICAgIGlmIChtb250aCA9PT0gMTEpIHtcbiAgICAgICAgbW9udGggPSAwO1xuICAgICAgICB5ZWFyKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb250aCsrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobW9udGggPT09IDApIHtcbiAgICAgICAgbW9udGggPSAxMTtcbiAgICAgICAgeWVhci0tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9udGgtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzLnNldEZ1bGxZZWFyKHllYXIsIG1vbnRoKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIHNjcm9sbFllYXIoZGVsdGE6IG51bWJlciwgZGF0ZTogRGF0ZSkge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGlmIChkZWx0YSA+IDApIHtcbiAgICAgIHllYXIrKztcbiAgICB9IGVsc2Uge1xuICAgICAgeWVhci0tO1xuICAgIH1cbiAgICByZXMuc2V0RnVsbFllYXIoeWVhcik7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIHN0YXRpYyBpc1NlbGVjdGVkKGRhdGU6IERhdGUsIHNlbGVjdGVkRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAvLyAgIGlmIChkYXRlID09PSBudWxsIHx8IGRhdGUgPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RlZERhdGUgPT09IG51bGwgfHwgc2VsZWN0ZWREYXRlID09PSB1bmRlZmluZWQpIHtcbiAgLy8gICAgIHJldHVybiBmYWxzZTtcbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKClcbiAgLy8gICAgICYmIGRhdGUuZ2V0TW9udGgoKSA9PT0gc2VsZWN0ZWREYXRlLmdldE1vbnRoKClcbiAgLy8gICAgICYmIGRhdGUuZ2V0RGF0ZSgpID09PSBzZWxlY3RlZERhdGUuZ2V0RGF0ZSgpO1xuICAvLyB9XG5cbiAgLy8gc3RhdGljIG5leHRNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gIC8vICAgY29uc3QgZHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgLy8gICBkdC5zZXRNb250aChkdC5nZXRNb250aCgpICsgMSk7XG4gIC8vICAgcmV0dXJuIGR0O1xuICAvLyB9XG5cbiAgLy8gc3RhdGljIHByZXZNb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gIC8vICAgY29uc3QgZHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgLy8gICBkdC5zZXRNb250aChkdC5nZXRNb250aCgpIC0gMSk7XG4gIC8vICAgcmV0dXJuIGR0O1xuICAvLyB9XG59XG4iXX0=
|