@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tetacom-ng-components.mjs","sources":["../../src/component/accordion/accordion/accordion.component.ts","../../src/component/accordion/accordion/accordion.component.html","../../src/component/accordion/accordion-content.directive.ts","../../src/component/accordion/accordion-item/accordion-item.component.ts","../../src/component/accordion/accordion-item/accordion-item.component.html","../../src/common/enum/teta-size.enum.ts","../../src/component/icon/icon/icon.component.ts","../../src/component/icon/icon/icon.component.html","../../src/component/accordion/accordion-head/accordion-head.component.ts","../../src/component/accordion/accordion-head/accordion-head.component.html","../../src/component/icon/icon.service.ts","../../src/component/icon/icon-sprite.directive.ts","../../src/component/icon/icon.module.ts","../../src/component/accordion/accordion.module.ts","../../src/component/avatar/model/avatar-color.enum.ts","../../src/component/avatar/avatar/avatar.component.ts","../../src/component/avatar/avatar/avatar.component.html","../../src/component/avatar/avatar.module.ts","../../src/component/autocomplete/autocomplete/autocomplete.component.ts","../../src/component/autocomplete/autocomplete/autocomplete.component.html","../../src/component/autocomplete/autocomplete.module.ts","../../src/component/button/button/button.component.ts","../../src/component/button/button/button.component.html","../../src/component/button/button.module.ts","../../src/component/checkbox/checkbox/checkbox.component.ts","../../src/component/checkbox/checkbox/checkbox.component.html","../../src/component/checkbox/checkbox.module.ts","../../src/component/date-picker/model/day-model.ts","../../src/component/date-picker/base-calendar.ts","../../src/component/date-picker/day-picker/day-item/day-item.component.ts","../../src/component/date-picker/day-picker/day-item/day-item.component.html","../../src/component/date-picker/day-picker/day-picker.component.ts","../../src/component/date-picker/day-picker/day-picker.component.html","../../src/component/date-picker/month-picker/month-picker.component.ts","../../src/component/date-picker/month-picker/month-picker.component.html","../../src/component/date-picker/year-picker/scroll-to-selected-year.directive.ts","../../src/component/date-picker/year-picker/year-picker.component.ts","../../src/component/date-picker/year-picker/year-picker.component.html","../../src/component/date-picker/date-picker/date-calendar/date-calendar.component.ts","../../src/component/date-picker/date-picker/date-calendar/date-calendar.component.html","../../src/common/enum/align.enum.ts","../../src/common/enum/vertical-align.enum.ts","../../src/component/date-picker/base-picker.ts","../../src/common/util/dom-util.ts","../../src/common/util/position-util.ts","../../src/component/dropdown/dropdown-head.directive.ts","../../src/component/dropdown/dropdown-content.directive.ts","../../src/component/dropdown/dropdown-base.ts","../../src/component/dropdown/dropdown/dropdown.component.ts","../../src/component/dropdown/dropdown/dropdown.component.html","../../src/common/util/array-util.ts","../../src/component/dynamic-component/popup-content/popup-content.component.ts","../../src/component/dynamic-component/popup-content/popup-content.component.html","../../src/common/contract/teta-content-ref.ts","../../src/common/contract/dynamic-data.ts","../../src/common/service/dynamic-component.service.ts","../../src/directive/dynamic-content-base.directive.ts","../../src/directive/hint/hint.directive.ts","../../src/component/input/input/input.component.ts","../../src/component/input/input/input.component.html","../../src/component/date-picker/date-picker/date-picker.component.ts","../../src/component/date-picker/date-picker/date-picker.component.html","../../src/component/dropdown/dropdown.directive.ts","../../src/component/dropdown/dropdown.module.ts","../../src/directive/only-number/only-number.directive.ts","../../src/pipe/util/number-helper.ts","../../src/pipe/number-pipe/number.pipe.ts","../../src/component/input/text-field/text-field.component.ts","../../src/component/input/text-field/text-field.component.html","../../src/directive/only-number/only-number.module.ts","../../src/component/input/form-group-title/form-group-title.component.ts","../../src/component/input/form-group-title/form-group-title.component.html","../../src/component/dynamic-component/dynamic-component.module.ts","../../src/directive/hint/hint.module.ts","../../src/component/input/color-input/color-input.component.ts","../../src/component/input/color-input/color-input.component.html","../../src/pipe/number-pipe/number-pipe.module.ts","../../src/component/input/input.module.ts","../../src/directive/click-outside/click-outside.directive.ts","../../src/directive/click-outside/click-outside.module.ts","../../src/component/date-picker/date-range/range-calendar/range-calendar.component.ts","../../src/component/date-picker/date-range/range-calendar/range-calendar.component.html","../../src/component/date-picker/date-range/date-range.component.ts","../../src/component/date-picker/date-range/date-range.component.html","../../src/directive/scroll-into-view/scroll-into-view.directive.ts","../../src/directive/scroll-into-view/scroll-into-view.module.ts","../../src/component/date-picker/date-picker.module.ts","../../src/component/date-picker/model/date-period.ts","../../src/component/date-picker/model/date-picker-mode.enum.ts","../../src/component/delimiter/delimiter/delimiter.component.ts","../../src/component/delimiter/delimiter/delimiter.component.html","../../src/component/delimiter/delimiter.module.ts","../../src/component/toolbar/toolbar/toolbar.component.ts","../../src/component/toolbar/toolbar/toolbar.component.html","../../src/component/expand-card/expand-card/expand-card.component.ts","../../src/component/expand-card/expand-card/expand-card.component.html","../../src/component/toolbar/toolbar.module.ts","../../src/component/expand-card/expand-item/expand-item.component.ts","../../src/component/expand-card/expand-item/expand-item.component.html","../../src/component/expand-card/expand-card.module.ts","../../src/component/expand-panel/expand-panel-content.directive.ts","../../src/component/expand-panel/expand-panel-head.directive.ts","../../src/component/expand-panel/expand-panel/expand-panel.component.ts","../../src/component/expand-panel/expand-panel/expand-panel.component.html","../../src/component/expand-panel/expand-panel.module.ts","../../src/component/file-upload/file-upload-area/file-upload-area.component.ts","../../src/component/file-upload/file-upload-area/file-upload-area.component.html","../../src/component/file-upload/file-item/file-item.component.ts","../../src/component/file-upload/file-item/file-item.component.html","../../src/component/file-upload/file-upload.module.ts","../../src/util/string-util.ts","../../src/component/filter/base/filter-base.ts","../../src/component/filter/contarct/numeric-filter.ts","../../src/component/filter/base/filter-component-base.ts","../../src/component/filter/contarct/numeric-filter-value.ts","../../src/locale/en.ts","../../src/locale/teta-config.service.ts","../../src/component/filter/numeric-filter/numeric-filter.component.ts","../../src/component/filter/numeric-filter/numeric-filter.component.html","../../src/component/filter/enum/string-filter-type.enum.ts","../../src/component/filter/contarct/string-filter.ts","../../src/component/filter/string-filter/string-filter.component.ts","../../src/component/filter/string-filter/string-filter.component.html","../../src/component/filter/enum/list-filter-type.enum.ts","../../src/component/filter/contarct/list-filter.ts","../../src/directive/scrollable/scrollable.directive.ts","../../src/observable/animation-frame.ts","../../src/observable/zoneObservable.ts","../../src/directive/let/let.directive.ts","../../src/directive/scrollable/scrollable/scrollable.component.ts","../../src/directive/scrollable/scrollable/scrollable.component.html","../../src/component/filter/list-filter/list-filter.component.ts","../../src/component/filter/list-filter/list-filter.component.html","../../src/component/filter/contarct/date-filter-value.ts","../../src/component/filter/contarct/date-filter.ts","../../src/component/filter/date-filter/date-filter.component.ts","../../src/component/filter/date-filter/date-filter.component.html","../../src/component/filter/enum/filter-type.enum.ts","../../src/component/filter/contarct/boolean-filter.ts","../../src/component/radio/radio/radio.component.ts","../../src/component/radio/radio/radio.component.html","../../src/component/radio/radio-button/radio-button.component.ts","../../src/component/radio/radio-button/radio-button.component.html","../../src/component/filter/boolean-filter/boolean-filter.component.ts","../../src/component/filter/boolean-filter/boolean-filter.component.html","../../src/component/filter/contarct/filter-component-map.ts","../../src/component/filter/filter-host/filter-host.component.ts","../../src/component/select/select-option.directive.ts","../../src/component/select/select-value.directive.ts","../../src/directive/highlight/highlight.directive.ts","../../src/component/select/select/select.component.ts","../../src/component/select/select/select.component.html","../../src/directive/highlight/highlight.module.ts","../../src/directive/let/let.module.ts","../../src/directive/scrollable/scrollable.module.ts","../../src/component/select/select.module.ts","../../src/component/radio/radio.module.ts","../../src/component/filter/filter.module.ts","../../src/component/filter/contarct/filter-item.ts","../../src/component/filter/contarct/sort-param.ts","../../src/component/filter/contarct/filter-state.ts","../../src/component/icon/icon-file/icon-file.component.ts","../../src/component/icon/icon-file/icon-file.component.html","../../src/component/icon/icon-file/icon-file.module.ts","../../src/component/message/message.service.ts","../../src/component/message/message/message.component.ts","../../src/component/message/message/message.component.html","../../src/component/message/message-host/message-host.component.ts","../../src/component/message/message-host/message-host.component.html","../../src/component/message/message.module.ts","../../src/component/message/model/message.ts","../../src/component/modal/model/modal-close-reason.enum.ts","../../src/component/modal/modal-container/modal-container.component.ts","../../src/component/modal/modal-container/modal-container.component.html","../../src/component/modal/model/current-modal.ts","../../src/component/modal/dialog/dialog.component.ts","../../src/component/modal/dialog/dialog.component.html","../../src/component/modal/modal.module.ts","../../src/component/modal/model/modal-instance.ts","../../src/component/modal/modal.service.ts","../../src/component/modal/dialog.service.ts","../../src/component/pager/pager/pager.component.ts","../../src/component/pager/pager/pager.component.html","../../src/component/pager/pager.module.ts","../../src/component/pager/model/pager-state.ts","../../src/component/pager/util/pager-util.ts","../../src/component/panel/panel/panel.component.ts","../../src/component/panel/panel/panel.component.html","../../src/component/panel/panel.module.ts","../../src/component/progress-bar/progress-bar/progress-bar.component.ts","../../src/component/progress-bar/progress-bar/progress-bar.component.html","../../src/component/progress-bar/progress-bar.module.ts","../../src/component/property-grid/property-grid/property-grid-item-description.directive.ts","../../src/util/forms-util.ts","../../src/component/toggle/toggle/toggle.component.ts","../../src/component/toggle/toggle/toggle.component.html","../../src/component/property-grid/property-grid/property-grid-item/property-grid-item.component.ts","../../src/component/property-grid/property-grid/property-grid-item/property-grid-item.component.html","../../src/component/property-grid/property-grid/property-grid-group/property-grid-group.component.ts","../../src/component/property-grid/property-grid/property-grid-group/property-grid-group.component.html","../../src/component/property-grid/property-grid/property-grid.component.ts","../../src/component/property-grid/property-grid/property-grid.component.html","../../src/component/toggle/toggle.module.ts","../../src/component/property-grid/property-grid.module.ts","../../src/component/sidebar/sidebar-position.enum.ts","../../src/component/sidebar/sidebar/sidebar.component.ts","../../src/component/sidebar/sidebar/sidebar.component.html","../../src/component/sidebar/sidebar.module.ts","../../src/component/switch/switch.service.ts","../../src/component/switch/switch/switch.component.ts","../../src/component/switch/switch/switch.component.html","../../src/component/switch/switch-button/switch-button.component.ts","../../src/component/switch/switch-button/switch-button.component.html","../../src/component/switch/switch.module.ts","../../src/component/table/contract/table-column.ts","../../src/component/table/contract/column-reorder-event.ts","../../src/component/table/util/state-util.ts","../../src/component/table/enum/select-type.enum.ts","../../src/component/table/enum/edit-type.enum.ts","../../src/component/table/enum/edit-event.enum.ts","../../src/util/date-util.ts","../../src/component/table/contract/table-column-store.ts","../../src/component/table/service/table.service.ts","../../src/common/service/click.service.ts","../../src/directive/context-menu/context-menu.directive.ts","../../src/component/table/util/table-util.ts","../../src/component/table/contract/column-resize-event.ts","../../src/directive/resize-drag/resize-drag.directive.ts","../../src/component/table/base/head-cell-component-base.ts","../../src/component/table/default/default-head-cell/default-head-cell.component.ts","../../src/component/table/default/default-head-cell/default-head-cell.component.html","../../src/component/table/head-cell-host/head-cell-host.component.ts","../../src/component/tabs/tab-content.directive.ts","../../src/component/tabs/tab-title.directive.ts","../../src/component/tabs/tab/tab.component.ts","../../src/component/tabs/tabs/tabs.component.ts","../../src/component/tabs/tabs/tabs.component.html","../../src/component/table/head-cell-dropdown/head-cell-dropdown.component.ts","../../src/component/table/head-cell-dropdown/head-cell-dropdown.component.html","../../src/component/table/contract/sort-event.ts","../../src/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.ts","../../src/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.html","../../src/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.ts","../../src/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.html","../../src/component/tree/tree.service.ts","../../src/directive/teta-template/teta-template.directive.ts","../../src/component/tree/tree-item/tree-item.component.ts","../../src/component/tree/tree-item/tree-item.component.html","../../src/component/tree/tree/tree.component.ts","../../src/component/tree/tree/tree.component.html","../../src/component/tree/tree-item-toggle/tree-item-toggle.component.ts","../../src/component/tree/tree-item-toggle/tree-item-toggle.component.html","../../src/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.ts","../../src/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.html","../../src/component/table/head-cell/head-cell.component.ts","../../src/component/table/head-cell/head-cell.component.html","../../src/component/table/table-head-group/table-head-group.component.ts","../../src/component/table/table-head-group/table-head-group.component.html","../../src/component/table/selection-head-cell/selection-head-cell.component.ts","../../src/component/table/selection-head-cell/selection-head-cell.component.html","../../src/component/table/table-head/table-head.component.ts","../../src/component/table/table-head/table-head.component.html","../../src/component/table/enum/aggregation-type.enum.ts","../../src/component/table/base/cell-component-base.ts","../../src/component/table/default/numeric-cell/numeric-cell.component.ts","../../src/component/table/default/numeric-cell/numeric-cell.component.html","../../src/component/table/default/date-cell/date-cell.component.ts","../../src/component/table/default/date-cell/date-cell.component.html","../../src/component/table/default/list-cell/list-cell.component.ts","../../src/component/table/default/list-cell/list-cell.component.html","../../src/component/table/default/string-cell/string-cell.component.ts","../../src/component/table/default/string-cell/string-cell.component.html","../../src/component/table/default/boolean-cell/boolean-cell.component.ts","../../src/component/table/default/boolean-cell/boolean-cell.component.html","../../src/component/table/contract/cell-components-map.ts","../../src/component/table/cell-host/cell-host.component.ts","../../src/component/table/cell/cell.component.ts","../../src/component/table/cell/cell.component.html","../../src/component/table/selection-cell/selection-cell.component.ts","../../src/component/table/selection-cell/selection-cell.component.html","../../src/component/table/table-body/table-body.component.ts","../../src/component/table/table-body/table-body.component.html","../../src/component/table/table/table.component.ts","../../src/component/table/table/table.component.html","../../src/component/tabs/tabs.module.ts","../../src/directive/teta-template/teta-template.module.ts","../../src/component/tree/tree.module.ts","../../src/component/table/default/date-time-cell/date-time-cell.component.ts","../../src/component/table/default/date-time-cell/date-time-cell.component.html","../../src/directive/resize-drag/resize-drag.module.ts","../../src/directive/context-menu/context-menu.module.ts","../../src/component/table/table.module.ts","../../src/component/table/base/detail-component-base.ts","../../src/component/theme-switch/theme-switch.service.ts","../../src/component/theme-switch/theme-switch/theme-switch.component.ts","../../src/component/theme-switch/theme-switch/theme-switch.component.html","../../src/component/theme-switch/theme-switch.module.ts","../../src/component/chart-3d/chart3d/chart3d.component.ts","../../src/component/chart-3d/chart3d/chart3d.component.html","../../src/component/chart-3d/chart-3d.module.ts","../../src/component/chart-3d/model/chart-3d-options.ts","../../src/component/resize-panel/resize-panel/resize-panel.component.ts","../../src/component/resize-panel/resize-panel/resize-panel.component.html","../../src/component/resize-panel/resize-panel.module.ts","../../src/component/divider/divider/divider.component.ts","../../src/component/divider/divider/divider.component.html","../../src/component/divider/divider.module.ts","../../src/component/public-api.ts","../../src/directive/auto-position/auto-position.directive.ts","../../src/directive/auto-position/auto-position.module.ts","../../src/directive/disable-control/disable-control.directive.ts","../../src/directive/disable-control/disable-control.module.ts","../../src/directive/drag-drop/model/drag-instance.ts","../../src/directive/drag-drop/drag-preview.directive.ts","../../src/directive/drag-drop/model/drag-container-instance.ts","../../src/directive/drag-drop/drag-drop.service.ts","../../src/directive/drag-drop/drag-container.directive.ts","../../src/directive/drag-drop/drag.directive.ts","../../src/directive/drag-drop/drag-placeholder.directive.ts","../../src/directive/drag-drop/drag-drop.module.ts","../../src/directive/drag-sort/drag-sort-container.directive.ts","../../src/directive/drag-sort/drag-sort-item.directive.ts","../../src/directive/drag-sort/drag-sort.module.ts","../../src/directive/loader/loader.directive.ts","../../src/directive/loader/loader.module.ts","../../src/directive/tooltip/tooltip.directive.ts","../../src/directive/tooltip/tooltip.module.ts","../../src/directive/no-autofill/no-autofill.directive.ts","../../src/directive/no-autofill/no-autofill.module.ts","../../src/pipe/date-pipe/teta-date.pipe.ts","../../src/pipe/date-pipe/teta-date-pipe.module.ts","../../src/common/service/overlay-container.service.ts","../../src/util/export-dom-image.ts","../../src/locale/ru.ts","../../src/public-api.ts","../../src/tetacom-ng-components.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, HostBinding, OnInit,} from '@angular/core';\n\n@Component({\n selector: 'teta-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionComponent implements OnInit {\n @HostBinding('class.accordion') private readonly accordionClassName = true;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","<ng-content></ng-content>\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaAccordionContent]'\n})\nexport class AccordionContentDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {AccordionContentDirective} from '../accordion-content.directive';\nimport {AccordionComponent} from '../accordion/accordion.component';\nimport {viewType} from \"../../../common/model/view-type.model\";\n\n@Component({\n selector: 'teta-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionItemComponent implements OnInit {\n\n @ContentChild(AccordionContentDirective, {static: false})\n content: AccordionContentDirective;\n\n @HostBinding('class.accordion-item_active')\n @Input()\n open: boolean;\n @Input() disabled: boolean;\n @Input() viewType: viewType = 'rounded'\n @HostBinding('class.accordion-item') private readonly accordionItemClass =\n true;\n\n @HostBinding(`class`)\n get class() {\n return `accordion_${this.viewType}`\n }\n\n private readonly accordion$: AccordionComponent;\n\n constructor(\n @Optional() @Inject(AccordionComponent) accordion: AccordionComponent,\n private cdr$: ChangeDetectorRef\n ) {\n this.accordion$ = accordion;\n }\n\n toggle() {\n this.open = !this.open;\n this.cdr$.detectChanges();\n }\n\n ngOnInit() {\n }\n}\n","<ng-content select=\"teta-accordion-head\"></ng-content>\n<div class=\"accordion-content\" *ngIf=\"open\">\n <ng-container *ngTemplateOutlet=\"content.template\"></ng-container>\n</div>\n","export enum TetaSize {\n XS,\n S,\n M,\n L,\n XL\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnInit,\n} from '@angular/core';\nimport { TetaSize } from '../../../common/enum/teta-size.enum';\n\n@Component({\n selector: 'teta-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent implements OnInit {\n @Input() name: string;\n @Input() size: TetaSize = TetaSize.M;\n @Input() palette: string = 'text';\n\n @Input() class;\n\n @HostBinding('class')\n private get getClass(): string {\n const result = [this.class, 'icon'];\n if (this.palette) {\n result.push(`icon-${this.palette}`);\n }\n return result.join(' ');\n }\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getName(): string {\n return `#${this.name}`;\n }\n}\n","<svg class=\"icon__image\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n","import {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport {AccordionItemComponent} from '../accordion-item/accordion-item.component';\n\n@Component({\n selector: 'teta-accordion-head',\n templateUrl: './accordion-head.component.html',\n styleUrls: ['./accordion-head.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionHeadComponent implements OnInit {\n @HostBinding('class.accordion-head') private readonly accordionHeadClass =\n true;\n\n @Input() showToggle = true;\n\n private readonly accordionItem$: AccordionItemComponent;\n\n constructor(\n @Host()\n @Inject(AccordionItemComponent)\n accordionItem: AccordionItemComponent\n ) {\n this.accordionItem$ = accordionItem;\n }\n\n @HostListener('click')\n toggle(): void {\n if (this.disabled) {\n return;\n }\n this.accordionItem$.toggle();\n }\n\n @HostBinding('class.accordion-head_open')\n get open(): boolean {\n return this.accordionItem$.open;\n }\n\n @HostBinding('class.accordion-head_disabled')\n get disabled(): boolean {\n return this.accordionItem$.disabled;\n }\n\n ngOnInit() {\n }\n}\n","<ng-content></ng-content>\n<div *ngIf=\"showToggle\" class=\"accordion-toggle\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\"\n [palette]=\"'text'\"></teta-icon>\n</div>\n\n","import {Inject, Injectable, Renderer2, RendererFactory2} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconService {\n private static _loaded: string[] = [];\n private static _pending: string[] = [];\n private _renderer: Renderer2;\n\n constructor(@Inject(DOCUMENT) protected _document: any,\n private _rendererFactory: RendererFactory2,\n private _httpBackend: HttpBackend,\n private _http: HttpClient) {\n this._renderer = this._rendererFactory.createRenderer(null, null);\n }\n\n addSprite(url: string, bypassInterceptors: boolean = true) {\n if (IconService._loaded.indexOf(url) < 0 && IconService._pending.indexOf(url) < 0) {\n IconService._pending.push(url);\n this.getSVG(url, bypassInterceptors).subscribe(svg => {\n IconService._pending = IconService._pending.filter(_ => _ !== url);\n IconService._loaded.push(url);\n this._renderer.insertBefore(this._document.body, svg, this._document.body.firstChild);\n });\n }\n }\n\n private getSVG(url: string, bypassInterceptors: boolean = true): Observable<SVGElement> {\n const http = bypassInterceptors ? new HttpClient(this._httpBackend) : this._http;\n return http.get(url, {responseType: 'text'})\n .pipe(\n map((svgText: string) => {\n const svgEl = this.svgElementFromString(svgText);\n return this.cloneSVG(svgEl);\n })\n );\n }\n\n private svgElementFromString(str: string): SVGElement | never {\n const div = this._renderer.createElement('DIV');\n div.innerHTML = str;\n const svg = div.querySelector('svg') as SVGElement;\n if (!svg) {\n throw new Error('No SVG found in loaded contents');\n }\n return svg;\n }\n\n private cloneSVG(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n }\n}\n","import {Directive, Input, OnInit} from '@angular/core';\nimport {IconService} from './icon.service';\n\n@Directive({\n selector: '[tetaIconSprite]'\n})\nexport class IconSpriteDirective implements OnInit {\n @Input() tetaIconSprite: string | string[];\n @Input() bypassInterceptors = true;\n\n constructor(private _iconService: IconService) {\n }\n\n ngOnInit(): void {\n if (typeof this.tetaIconSprite === 'string') {\n this._iconService.addSprite(this.tetaIconSprite, this.bypassInterceptors);\n }\n if (this.tetaIconSprite instanceof Array && this.tetaIconSprite?.length) {\n this.tetaIconSprite.forEach((sprite: string) => {\n this._iconService.addSprite(sprite, this.bypassInterceptors);\n });\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IconSpriteDirective} from './icon-sprite.directive';\nimport {HttpClientModule} from '@angular/common/http';\nimport {IconComponent} from \"./icon/icon.component\";\nimport {IconFileComponent} from \"./icon-file/icon-file.component\";\n\n\n@NgModule({\n declarations: [\n IconComponent,\n IconSpriteDirective\n ],\n exports: [\n IconComponent,\n IconSpriteDirective\n ],\n imports: [\n CommonModule,\n HttpClientModule\n ]\n})\nexport class IconModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AccordionComponent} from './accordion/accordion.component';\nimport {AccordionHeadComponent} from './accordion-head/accordion-head.component';\nimport {AccordionContentDirective} from './accordion-content.directive';\nimport {IconModule} from '../icon/icon.module';\nimport {AccordionItemComponent} from './accordion-item/accordion-item.component';\n\n@NgModule({\n declarations: [AccordionComponent, AccordionHeadComponent, AccordionContentDirective, AccordionItemComponent],\n exports: [AccordionComponent, AccordionHeadComponent, AccordionContentDirective, AccordionItemComponent],\n imports: [\n CommonModule,\n IconModule\n ]\n})\nexport class AccordionModule {\n}\n","export enum AvatarColorEnum {\n vibrant,\n nebula,\n gorgonzola,\n lagoon,\n lime,\n pumpkin,\n vanity,\n navy,\n turquoise,\n greyish,\n heart,\n gloomy,\n rockman,\n hair,\n cerise,\n iris,\n caribbean,\n poisonous\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, OnInit} from '@angular/core';\nimport {AvatarColorEnum} from '../model/avatar-color.enum';\nimport {viewType} from \"../../../common/model/view-type.model\";\n\n@Component({\n selector: 'teta-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AvatarComponent implements OnInit {\n @Input() photo?: string | ArrayBuffer;\n @Input() name?: string;\n @Input() id?: number = 0;\n @Input() viewType?: viewType;\n @Input() size?: '24' | '28' | '32' | '44' | '64' | '128' | '200' = '28';\n\n @HostBinding('class') get avatar() {\n let avatar = 'avatar ';\n avatar += 'avatar-size-' + this.size;\n return avatar;\n }\n\n public colorMap: Map<AvatarColorEnum, string> = new Map<\n AvatarColorEnum,\n string\n >()\n .set(AvatarColorEnum.vibrant, '#FAB13C')\n .set(AvatarColorEnum.pumpkin, '#F67A1A')\n .set(AvatarColorEnum.heart, '#CC3E3E')\n .set(AvatarColorEnum.cerise, '#EB3673')\n .set(AvatarColorEnum.nebula, '#9121A3')\n .set(AvatarColorEnum.vanity, '#9C2AD6')\n .set(AvatarColorEnum.gloomy, '#855EE1')\n .set(AvatarColorEnum.iris, '#5350D1')\n .set(AvatarColorEnum.gorgonzola, '#3858DA')\n .set(AvatarColorEnum.navy, '#1F7CE0')\n .set(AvatarColorEnum.rockman, '#3AA2F4')\n .set(AvatarColorEnum.caribbean, '#1CC3D9')\n .set(AvatarColorEnum.lagoon, '#1D96AE')\n .set(AvatarColorEnum.turquoise, '#1F9D8C')\n .set(AvatarColorEnum.hair, '#1EAE66')\n .set(AvatarColorEnum.poisonous, '#33C333')\n .set(AvatarColorEnum.lime, '#80C026')\n .set(AvatarColorEnum.greyish, '#7F8697');\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","<div [class]=\"avatar\">\n <img [class]=\"'avatar_' + this.viewType\" *ngIf=\"photo;else withoutPhoto\" [src]=\"photo\" alt=\"\"/>\n <ng-template #withoutPhoto>\n <div [class]=\"'avatar_' + this.viewType\" [style.background-color]=\"colorMap.get(id%17)||colorMap.get(0)\"\n class=\"column align-center justify-content-center position-relative\">\n <ng-container *ngIf=\"name;else withoutName\">\n <p>{{name}}</p>\n </ng-container>\n <ng-template #withoutName>\n <teta-icon class=\"width-10 height-10\" style=\"fill: white;width:{{size}}px; height:{{size}}px\" name=\"photoCamera\"></teta-icon>\n </ng-template>\n <div [class]=\"'avatar_' + this.viewType\" class=\"position-absolute\" style=\"width: 100%;z-index:1;height: 100%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 100%);'\"></div>\n </div>\n </ng-template>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AvatarComponent } from './avatar/avatar.component';\nimport {IconModule} from \"../icon/icon.module\";\n\n\n\n@NgModule({\n declarations: [\n AvatarComponent\n ],\n imports: [\n CommonModule,\n IconModule\n ],\n exports:[\n AvatarComponent\n ]\n})\nexport class AvatarModule { }\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\n@Component({\n selector: 'teta-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<p>autocomplete works!</p>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutocompleteComponent} from './autocomplete/autocomplete.component';\n\n@NgModule({\n declarations: [\n AutocompleteComponent\n ],\n exports: [\n AutocompleteComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class AutocompleteModule {\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, OnInit,} from '@angular/core';\nimport {viewType} from \"../../../common/model/view-type.model\";\n\nexport type ButtonViewType = 'primary' | 'outline' | 'ghost';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[teta-button], teta-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent implements OnInit {\n @Input() palette: string;\n @Input() class;\n @Input() view: ButtonViewType = 'primary';\n @Input() square = false;\n @Input() viewType: viewType = 'rounded'\n @Input() size: 'm' | 'l' = 'm';\n\n @HostBinding('class')\n private get getClass(): string {\n const result = [this.class, 'button'];\n if (this.palette) {\n result.push(`button-${this.palette}`);\n }\n if (this.view) {\n result.push(`button_${this.view}`);\n }\n if (this.square) {\n result.push(`button-square`);\n }\n switch (this.size) {\n case \"l\":\n result.push(`font-button-1`);\n break;\n case \"m\":\n result.push(`font-button-2`);\n }\n result.push(`button_${this.viewType}`);\n return result.join(' ');\n }\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n}\n","<ng-content></ng-content>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonComponent} from './button/button.component';\n\n\n@NgModule({\n declarations: [ButtonComponent],\n imports: [\n CommonModule\n ],\n exports: [\n ButtonComponent\n ]\n})\nexport class ButtonModule {\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n};\n\n@Component({\n selector: 'teta-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor, OnInit {\n @HostBinding('attr.tabindex') tabindex = 0;\n\n @Input() class;\n\n @HostBinding('class')\n private get getClass() {\n const result = [this.class, 'checkbox'];\n if (this.palette) {\n result.push(`checkbox-${this.palette}`);\n }\n return result.join(' ');\n }\n\n @Input() palette = 'primary';\n @Input() noLabel: boolean;\n\n /**\n * компонент неактивен\n */\n @HostBinding('class.checkbox_disabled')\n @Input()\n disabled: boolean;\n /**\n * true/false или list\n */\n @Input() value: any;\n /**\n * true/false или list\n */\n @Input() binary: boolean;\n @Input () labelPosition:'left'|'right'=\"right\"\n @Input() allowNull: boolean;\n\n checked: boolean;\n\n /**\n * Значение\n */\n private model$: any = null;\n\n get model(): any {\n return this.model$;\n }\n\n set model(v: any) {\n if (v !== this.model$) {\n this.model$ = v;\n this.onChange(v);\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n @HostListener('click')\n changeValue() {\n if (this.disabled) {\n return;\n }\n if (this.binary) {\n this.model = !this.model;\n } else {\n if (!this.isChecked()) {\n this.addValue();\n } else {\n this.removeValue();\n }\n }\n this.checked = this.isChecked();\n }\n\n writeValue(model: any) {\n if (this.binary) {\n this.model$ = model;\n } else {\n if (model && model instanceof Array) {\n this.model$ = model;\n } else {\n this.model$ = [];\n }\n }\n this.checked = this.isChecked();\n this.cdr.detectChanges();\n }\n\n isChecked(): boolean {\n if (this.binary) {\n return this.allowNull ? this.model : !!this.model;\n } else {\n return this.model && this.model.indexOf(this.value) >= 0;\n }\n }\n\n removeValue() {\n this.model = this.model.filter((val: any) => val !== this.value);\n }\n\n addValue() {\n if (this.model) {\n this.model = [...this.model, this.value];\n } else {\n this.model = [this.value];\n }\n }\n\n ngOnInit() {}\n\n onChange(_: any) {}\n\n onTouched() {}\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.detectChanges();\n }\n}\n","<ng-container *ngIf=\"labelPosition==='right'\">\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n <span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</ng-container>\n<ng-container *ngIf=\"labelPosition==='left'\">\n <span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n</ng-container>\n<ng-template #content><ng-content></ng-content></ng-template>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CheckboxComponent} from './checkbox/checkbox.component';\nimport {IconModule} from '../icon/icon.module';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [\n CommonModule,\n IconModule\n ],\n exports: [\n CheckboxComponent\n ]\n})\nexport class CheckboxModule {\n}\n","export class DayModel {\n disabled: boolean;\n isCurrentMonth: boolean;\n today: boolean;\n selected: boolean;\n date: Date;\n weekend: boolean;\n\n public constructor(options?: {\n disabled?: boolean;\n isCurrentMonth?: boolean;\n today?: boolean;\n selected?: boolean;\n date: Date;\n weekend?: boolean;\n }) {\n if (options) {\n this.disabled = options.disabled;\n this.isCurrentMonth = options.isCurrentMonth;\n this.today = options.today;\n this.selected = options.selected;\n this.date = options.date;\n this.weekend = options.weekend;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from \"@angular/core\";\nimport {BehaviorSubject, ReplaySubject} from \"rxjs\";\nimport dayjs, {Dayjs} from \"dayjs\";\nimport {viewType} from \"../../common/model/view-type.model\";\nimport {MinMaxDateModel} from \"./model/min-max-date.model\";\nimport {DayModel} from \"./model/day-model\";\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class BaseCalendar implements OnChanges, OnDestroy {\n abstract selectedDate;\n abstract locale: string;\n abstract open: boolean;\n abstract viewType: viewType;\n abstract min: Date | string | number;\n abstract isDateNull: boolean;\n abstract max: Date | string | number;\n abstract setDate: EventEmitter<Date>;\n public currentMonth: ReplaySubject<number> = new ReplaySubject<number>(1)\n public minMax: ReplaySubject<MinMaxDateModel> = new ReplaySubject<MinMaxDateModel>(1)\n public currentYear: ReplaySubject<number> = new ReplaySubject<number>(1)\n public selectedPicker: BehaviorSubject<'day' | 'month' | 'year'> = new BehaviorSubject<\"day\" | \"month\" | \"year\">('day')\n abstract calendar: DayModel[] | { currentMonth: DayModel[], nextMonth: DayModel[] };\n public localeMonths = new Map().set('ru', ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'])\n .set('en', ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])\n\n public alive = true;\n\n protected constructor(protected _cdr: ChangeDetectorRef) {\n }\n\n generateCalendar(selectedDate: Dayjs, year: number, month: number, minMax: MinMaxDateModel): DayModel[] {\n const calendarStartDay = selectedDate.set(\"year\", year).set(\"month\", month).set(\"date\", 1).startOf('week');\n const calendar = new Array(42).fill(1).map((v, i) => {\n return calendarStartDay.add(i, 'day')\n });\n return calendar.map((d) => {\n\n return new DayModel({\n date: new Date(d.toDate()),\n isCurrentMonth: month === d.month(),\n disabled: !this.isSuitableMinDate(d.toDate(), minMax.min) || !this.isSuitableMaxDate(d.toDate(), minMax.max),\n selected: this.isSelected(d.toDate(), selectedDate.toDate())\n })\n })\n\n }\n\n isSuitableMinDate(d: Date, minDate: Date | string | number) {\n return dayjs(new Date(minDate)).startOf('date').toDate() <= new Date(d) || minDate === null\n }\n\n isSuitableMaxDate(d: Date, maxDate: Date | string | number) {\n return new Date(d) < dayjs(new Date(maxDate)).endOf('date').toDate() || maxDate === null;\n }\n\n isSelected(date: Date, selectedDate: Date) {\n const isSelectedDate = date.getDate() === selectedDate?.getDate()\n const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear()\n const isSelectedMonth = date.getMonth() === selectedDate?.getMonth()\n return isSelectedDate && isSelectedMonth && isSelectedYear && !this.isDateNull\n }\n\n ngOnDestroy(): void {\n this.alive = false;\n }\n\n selectPicker(entity: \"day\" | \"month\" | \"year\") {\n this.selectedPicker.next(entity)\n }\n\n selectMonth(month: number) {\n this.currentMonth.next(month)\n this.selectPicker(\"day\")\n }\n\n selectYear(year: number) {\n this.setYear(year)\n this.selectPicker(\"day\")\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.changeCalendarData(this.selectedDate)\n }\n\n changeCalendarData(selectedDate: Date | number | string) {\n let date = new Date(selectedDate || new Date());\n this.currentMonth.next(new Date(date).getMonth())\n this.currentYear.next(new Date(date).getFullYear())\n this.minMax.next({min: this.min, max: this.max})\n }\n\n setYear(year: number) {\n this.currentYear.next(year)\n }\n\n changeMonth(month: number, year: number) {\n const {availableYear, availableMonth} = this.getAvailableMonthYear(month, year)\n this.currentMonth.next(availableMonth)\n this.currentYear.next(availableYear)\n }\n\n getAvailableMonthYear(month: number, year: number) {\n if (month > 11) {\n return {availableMonth: month - 12, availableYear: year + 1}\n }\n if (month < 0) {\n return {availableMonth: 12 + month, availableYear: year - 1}\n }\n return {availableMonth: month, availableYear: year}\n }\n\n getMothName(month: number) {\n return this.localeMonths.get(this.locale)[month]\n }\n\n selectDate(date: Date) {\n this.setDate.emit(date);\n }\n\n}\n","import {ChangeDetectionStrategy, Component,Input, OnInit} from '@angular/core';\nimport {DayModel} from \"../../model/day-model\";\n\n\n@Component({\n selector: 'teta-day-item',\n templateUrl: './day-item.component.html',\n styleUrls: ['./day-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DayItemComponent implements OnInit {\n @Input() day: DayModel;\n\n\n ngOnInit(): void {\n }\n\n}\n","<p>{{day.date.getDate()}}</p>\n\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DayModel} from \"../model/day-model\";\nimport {DateFromToModel} from \"../model/from-to.model\";\nimport dayjs from \"dayjs\";\nimport {viewType} from \"../../../common/model/view-type.model\";\n\n@Component({\n selector: 'teta-day-picker',\n templateUrl: './day-picker.component.html',\n styleUrls: ['./day-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DayPickerComponent {\n @Input() date: Date | string | number = new Date();\n @Input() calendar: DayModel[];\n @Input() viewType: viewType;\n @Input() range?: DateFromToModel;\n @Input() min: Date | string | number;\n @Input() max: Date | string | number;\n @Input() locale: string;\n @Input() hoveredDate?: Date;\n @Output() hoveredDateChange?: EventEmitter<Date> = new EventEmitter<Date>()\n @Output() selectDate: EventEmitter<Date> = new EventEmitter<Date>()\n public daysOfWeek = new Map().set('ru', ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']).set('en', ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])\n\n\n constructor() {\n }\n\n isInRange(day: DayModel, from: Date | number | string, to: Date | number | string) {\n const matchesMinDate = dayjs(new Date(from)).startOf('date').toDate() <= day.date\n const matchesMaxDate = day.date < dayjs(new Date(to)).endOf('date').toDate()\n return matchesMinDate && matchesMaxDate\n\n }\n\n isHoveredRange(day: DayModel) {\n if (!this.range?.to && this.range?.from) {\n return this.isInRange(day, this.range.from, this.hoveredDate) || this.isInRange(day, this.hoveredDate, this.range.from)\n }\n return false\n }\n\n isActiveRange(day: DayModel) {\n if (this.range?.from && this.range?.to) {\n return this.isInRange(day, this.range.from, this.range.to)\n }\n return false\n }\n\n pickDate(day: DayModel) {\n if (!day.disabled) {\n this.selectDate.emit(day.date)\n }\n }\n\n getRangeActiveClass(d: DayModel) {\n if (this.range && new Date(this.range?.from).getTime() !== new Date(this.range?.to).getTime()) {\n if (this.range.to) {\n return this.getClassStaticItem(d)\n } else {\n if (this.hoveredDate.getTime() === d.date.getTime()) {\n return this.getClassHoveredItem()\n } else {\n return this.getClassSelectedItem(d)\n }\n }\n }\n return ''\n }\n\n hover(date: Date) {\n if (date?.getTime() !== this.hoveredDate?.getTime()) {\n this.hoveredDate = date\n this.hoveredDateChange.emit(date)\n }\n }\n\n getClassStaticItem(d: DayModel) {\n const from = dayjs(new Date(this.range.from)).startOf(\"day\").toDate();\n const to = dayjs(new Date(this.range.to)).startOf(\"day\").toDate();\n const itemDate = dayjs(new Date(d.date)).startOf(\"day\").toDate();\n if (from.getTime() === itemDate.getTime()) {\n return 'datepicker-date_active-first'\n }\n if (to.getTime() === itemDate.getTime()) {\n return 'datepicker-date_active-second'\n }\n return ''\n }\n\n getClassHoveredItem() {\n if (new Date(this.range.from) > this.hoveredDate) {\n return 'datepicker-date_active-first'\n }\n if (new Date(this.range.from) < this.hoveredDate) {\n return 'datepicker-date_active-second'\n }\n }\n\n getClassSelectedItem(d: DayModel) {\n if (d.selected && d.date < this.hoveredDate) {\n return 'datepicker-date_active-first'\n }\n if (d.selected && d.date > this.hoveredDate) {\n return 'datepicker-date_active-second'\n }\n return ''\n }\n}\n","<div class=\"datepicker-week font-caption\">\n <p class=\"datepicker-day\" *ngFor=\"let day of daysOfWeek.get(locale)\">\n {{day}}\n </p>\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n <ng-container *ngFor=\"let day of calendar\">\n <div [class]=\"getRangeActiveClass(day)+' datepicker-date font-body-3 datepicker_'+viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{'datepicker-date_active':day.selected||(day.date===hoveredDate&&range&&!range.to),'datepicker-date-range_hover':range&&isHoveredRange(day),\n 'datepicker-date_disabled':day.disabled,'color-text-30':day.disabled||(!range&&!day.isCurrentMonth),'datepicker-date-range_disabled':!day.isCurrentMonth&&range,'datepicker-date-range_active':isActiveRange(day)}\">\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n </ng-container>\n</div>\n\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {IIdName} from \"../../../common/contract/i-id-name\";\nimport {viewType} from \"../../../common/model/view-type.model\";\n\n@Component({\n selector: 'teta-month-picker',\n templateUrl: './month-picker.component.html',\n styleUrls: ['./month-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MonthPickerComponent implements OnInit {\n @Input() locale: string;\n @Input() selectedMonth: number = 1;\n @Input() viewType: viewType;\n @Input() currentYear: number;\n @Input() localeMoths:Map<string,string[]>\n @Output() selectMonth: EventEmitter<number> = new EventEmitter<number>()\n @Output() changeYear: EventEmitter<number> = new EventEmitter<number>()\n public months: IIdName<any>[] = [];\n\n constructor() {\n }\n\n pickMonth(monthId: number) {\n this.selectMonth.emit(monthId)\n }\n\n pickYear(year: number) {\n this.changeYear.emit(year)\n }\n\n ngOnInit(): void {\n this.months = this.localeMoths.get(this.locale).map((m,i) => {\n return {\n id: i,\n name: m,\n isSelected: this.selectedMonth === i\n }\n })\n }\n\n}\n","<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"pickYear(currentYear-1)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <p>{{currentYear}}</p>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"pickYear(currentYear+1)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\"\n style=\"width: 100%\">\n <div *ngFor=\"let month of months\" (click)=\"pickMonth(month.id)\">\n <div [ngClass]=\"{'datepicker-month_item_active':month.isSelected}\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_'+viewType\">\n <p>\n {{month.name}}\n </p>\n </div>\n </div>\n </div>\n</div>\n\n\n","import {Directive, ElementRef, Inject, OnDestroy} from '@angular/core';\n\n@Directive({\n selector: '[tetaScrollToSelectedYear]'\n})\nexport class ScrollToSelectedYearDirective implements OnDestroy {\n public alive = true;\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef<Element>,) {\n\n }\n\n\n ngOnDestroy(): void {\n this.alive = false\n }\n\n ngAfterViewInit(): void {\n this.el.nativeElement.scrollIntoView({inline: \"center\", block: \"center\"});\n }\n\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {viewType} from \"../../../common/model/view-type.model\";\nimport dayjs from \"dayjs\";\nimport {MinMaxDateModel} from \"../model/min-max-date.model\";\n\n@Component({\n selector: 'teta-year-picker',\n templateUrl: './year-picker.component.html',\n styleUrls: ['./year-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YearPickerComponent implements OnInit {\n @Input() selectedYear: number;\n @Input() viewType: viewType;\n @Input() minMax?: MinMaxDateModel;\n @Input() locale: string;\n @Output() selectYear: EventEmitter<number> = new EventEmitter<number>()\n\n public yearPickerDictionary: Map<string, string> = new Map<string, string>().set('ru', 'Выберете год').set('en', 'Select year')\n public alive = true;\n public years: { id: number, isSelected: boolean,disabled:boolean }[]\n\n constructor() {\n }\n\n pickYear(year: number,disabled:boolean) {\n if(!disabled){\n this.selectYear.emit(year)\n }\n }\n\n ngOnInit(): void {\n this.years = new Array(100).fill(1).map((v, i) => {\n const year = new Date().getFullYear() + (i - 50);\n return {id: year, isSelected: year === this.selectedYear, disabled: this.isDisabled(year)}\n })\n\n }\n\n isDisabled(year: number) {\n if (this.minMax) {\n const isSuitableMax=dayjs(new Date().setFullYear(year)).startOf('year').isAfter(new Date(this.minMax.max)) && this.minMax.max!==null\n const isSuitableMin=dayjs(new Date().setFullYear(year)).endOf('year').isBefore(new Date(this.minMax.min)) && this.minMax.min!==null\n return isSuitableMax||isSuitableMin\n }\n return false\n }\n\n\n}\n","<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{yearPickerDictionary.get(locale)}}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n <div *ngFor=\"let y of years\" class=\"font-button-2\" (click)=\"pickYear(y.id,y.disabled)\">\n <div [ngClass]=\"{'datepicker-year_item_active':y.isSelected,'datepicker-year_item_disabled':y.disabled}\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_'+viewType\">\n <div *ngIf=\" y.isSelected===true\" tetaScrollToSelectedYear>\n <span>{{y.id}}</span>\n </div>\n <div *ngIf=\"!y.isSelected\">\n <span>{{y.id}} </span>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {viewType} from \"../../../../common/model/view-type.model\";\n\nimport {BaseCalendar} from \"../../base-calendar\";\nimport {DayModel} from \"../../model/day-model\";\nimport dayjs from \"dayjs\";\nimport {combineLatest, filter, map, takeWhile} from \"rxjs\";\n\n\n@Component({\n selector: 'teta-date-calendar',\n templateUrl: './date-calendar.component.html',\n styleUrls: ['./date-calendar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateCalendarComponent extends BaseCalendar implements OnChanges, OnDestroy{\n @Input() selectedDate: Date | string | number = new Date();\n @Input() locale: string;\n @Input() open: boolean;\n @Input() viewType: viewType;\n @Input() min: Date | string | number;\n @Input() isDateNull: boolean;\n @Input() max: Date | string | number;\n @Output() setDate: EventEmitter<Date> = new EventEmitter<Date>();\n public calendar: DayModel[] = []\n constructor(override _cdr: ChangeDetectorRef) {\n super(_cdr)\n dayjs().locale('ru', {weekStart: 1});\n combineLatest([this.currentYear, this.currentMonth, this.minMax]).pipe(\n takeWhile(() => this.alive),\n filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null),\n map(([year, month, minMax]) => {\n return this.generateCalendar(dayjs(new Date(this.selectedDate)).locale(this.locale), year, month, minMax)\n })\n ).subscribe((_) => {\n this.calendar = _;\n })\n }\n}\n","<div *ngIf=\"{currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async} as data\"\n class=\"datepicker-content overflow-y-auto\"\n>\n <ng-container *ngIf=\"data.selectedPicker==='day'\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 \">\n <button [class]=\"'datepicker_'+viewType \" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('month')\"> {{getMothName(data.currentMonth)}}</button>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [viewType]=\"viewType\" (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar\"></teta-day-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='month'\">\n <teta-month-picker [localeMoths]=\"localeMonths\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\" [locale]=\"locale\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='year'\">\n <teta-year-picker [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n </ng-container>\n</div>\n\n","export enum Align {\n left,\n right,\n center,\n auto,\n fitWidth,\n minWidth,\n outerLeft,\n outerRight,\n outerAuto\n}\n","export enum VerticalAlign {\n top,\n bottom,\n center,\n auto,\n innerTop,\n innerBottom,\n innerAuto\n}\n","import dayjs from \"dayjs\";\nimport {ChangeDetectorRef, ElementRef, EventEmitter} from \"@angular/core\";\nimport {Align} from \"../../common/enum/align.enum\";\nimport {VerticalAlign} from \"../../common/enum/vertical-align.enum\";\nimport {ReplaySubject} from \"rxjs\";\nimport {MaskitoOptions} from \"@maskito/core\";\nimport {viewType} from \"../../common/model/view-type.model\";\nimport {DatePipe} from \"@angular/common\";\nimport {DateFromToModel} from \"./model/from-to.model\";\n\nexport abstract class BasePicker {\n abstract mask: string;\n abstract date;\n abstract locale: string\n abstract showTime: boolean\n abstract minDate: Date | string | number\n abstract maxDate: Date | string | number\n abstract invalid: boolean\n abstract disabled: boolean\n abstract align: Align\n abstract verticalAlign: VerticalAlign\n abstract viewType: viewType\n abstract appendToBody: boolean;\n abstract backdrop: boolean;\n abstract allowNull: boolean\n abstract input: ElementRef;\n abstract selectDate: EventEmitter<Date | DateFromToModel>\n public open = false;\n abstract selectedDate: ReplaySubject<any>;\n public placeholder = ''\n public inputText: string;\n public maskitoOptions: MaskitoOptions;\n\n protected constructor(protected _elementRef: ElementRef,\n protected _cdr: ChangeDetectorRef,\n protected datePipe: DatePipe) {\n this.inputText = this.checkNull();\n }\n\n abstract onChange(date: Date);\n\n abstract prepareInput();\n\n abstract onBlur();\n\n abstract setDate(date);\n\n changeInput(v) {\n this.changePlaceholder(v)\n }\n\n changePlaceholder(value: string) {\n let val = this.mask.split('');\n for (let i = 0; value.length > i; i++) {\n val.splice(i, 1, value[i]);\n }\n\n this.placeholder = val.join('');\n this._cdr.detectChanges()\n }\n\n openChange(e: boolean) {\n this.onBlur();\n this.open = e\n }\n\n checkNull() {\n if (!this.date && this.allowNull) {\n return null\n }\n return this.datePipe.transform(new Date(), 'dd.MM.yyyy, HH:mm')\n }\n\n openPicker = (show: boolean) => {\n if (this.disabled) {\n return;\n }\n this.open = show;\n this._cdr.markForCheck();\n };\n\n changeSelectedDate(date, selectedDate?) {\n this.setDate(date)\n this.emitValue(date)\n this.open = false;\n }\n\n emitValue(value) {\n this.date = value\n this.selectDate.emit(value)\n this.onChange(value)\n }\n\n\n checkEnter(e) {\n if (e.key === \"Enter\") {\n this.inputText = e.target.value;\n this.onBlur()\n }\n if (e.key === '-') {\n e.preventDefault()\n }\n this.open = true;\n }\n\n isAvailableLength(val: string, length: number) {\n if (val?.length) {\n return val.length === length\n }\n return false\n }\n\n getDateFromStr(str: string, separator: string = '.') {\n const date = str?.split(separator)\n const day = this.isAvailableLength((date?.[0]), 2) ? Number(date[0]) : null\n const month = this.isAvailableLength((date?.[1]), 2) ? Number(date[1]) : null\n const year = this.isAvailableLength((date?.[2]), 4) ? Number(date[2]) : null\n return {day, month, year}\n }\n\n getTimeFromStr(str: string, separator: string = ':') {\n const time = str?.trim().split(separator)\n const hours = this.isAvailableLength((time?.[0]), 2) ? Number(time[0]) : null\n const mins = this.isAvailableLength((time?.[1]), 2) ? Number(time[1]) : null\n return {hours, mins}\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n getLocaleString(date: Date | number | string) {\n return new Date(date).toLocaleString([], {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: this.showTime ? '2-digit' : undefined,\n minute: this.showTime ? '2-digit' : undefined,\n })\n }\n\n getAvailableDate(min: Date | number | string, max: Date | number | string, date: Date | number | string) {\n let minDate = dayjs(new Date(min)).startOf(\"day\").toDate()\n let maxDate = dayjs(new Date(max)).endOf(\"day\").toDate()\n if (min && minDate.getTime() >= new Date(date).getTime()) {\n return new Date()\n }\n if (max && maxDate.getTime() <= new Date(date).getTime()) {\n return maxDate\n }\n return new Date(date)\n }\n\n}\n","export class DomUtil {\n public static clickedInside(target: HTMLElement, event: MouseEvent): boolean {\n return event.composedPath().indexOf(target) >= 0;\n }\n\n public static findTransformedParent(node: HTMLElement) {\n while (node !== null && node.tagName !== 'BODY') {\n const style = getComputedStyle(node);\n if (style.transform !== 'none') {\n return node;\n }\n node = node.parentNode as HTMLElement;\n }\n return null;\n }\n\n public static isOverflown(element: HTMLElement) {\n return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n }\n}\n","import {IRect} from '../contract/i-rect';\nimport {Align} from '../enum/align.enum';\nimport {VerticalAlign} from '../enum/vertical-align.enum';\n\nexport class PositionUtil {\n public static getPosition(\n containerPosition: IRect,\n elementPosition: IRect,\n align: Align,\n verticalAlign: VerticalAlign,\n margin: number = 0,\n verticalMargin: number = 0,\n transformedParentRect: IRect = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n ): IRect {\n const rect: IRect = {};\n const elementWidth = elementPosition.right - elementPosition.left;\n const elementHeight = elementPosition.bottom - elementPosition.top;\n const containerWidth = containerPosition.right - containerPosition.left;\n const containerHeight = containerPosition.bottom - containerPosition.top;\n if (align === Align.auto) {\n align = Align.left;\n if (window.innerWidth < containerPosition.left + elementWidth) {\n align = Align.right;\n }\n }\n if (align === Align.left) {\n rect.left = containerPosition.left + margin;\n }\n if (align === Align.right) {\n rect.left = containerPosition.right - elementWidth - margin;\n }\n if (align === Align.center) {\n rect.left =\n (containerPosition.left + containerPosition.right) / 2 -\n elementWidth / 2;\n }\n if (align === Align.outerAuto) {\n align = Align.outerRight;\n if (window.innerWidth < containerPosition.right + elementWidth) {\n align = Align.outerLeft;\n }\n }\n if (align === Align.outerLeft) {\n rect.left = containerPosition.left - elementWidth + margin;\n }\n if (align === Align.outerRight) {\n rect.left = containerPosition.right - margin;\n }\n\n if (align === Align.fitWidth) {\n rect.left = containerPosition.left + margin;\n rect.right = window.innerWidth - containerPosition.right + margin;\n }\n\n if (align === Align.minWidth) {\n rect.left = containerPosition.left + margin;\n rect.minWidth = containerWidth;\n }\n\n if (verticalAlign === VerticalAlign.auto) {\n if (\n containerPosition.bottom + elementHeight > window.innerHeight &&\n containerPosition.bottom >= window.innerHeight / 2\n ) {\n verticalAlign = VerticalAlign.top;\n } else {\n verticalAlign = VerticalAlign.bottom;\n }\n }\n if (verticalAlign === VerticalAlign.innerAuto) {\n if (\n containerPosition.bottom + elementHeight > window.innerHeight &&\n containerPosition.bottom >= window.innerHeight / 2\n ) {\n verticalAlign = VerticalAlign.innerTop;\n } else {\n verticalAlign = VerticalAlign.innerBottom;\n }\n }\n if (verticalAlign === VerticalAlign.top) {\n rect.top = containerPosition.top - elementHeight - verticalMargin;\n }\n if (verticalAlign === VerticalAlign.bottom) {\n rect.top = containerPosition.bottom + verticalMargin;\n }\n if (verticalAlign === VerticalAlign.innerTop) {\n rect.top = containerPosition.bottom - elementHeight - verticalMargin;\n }\n if (verticalAlign === VerticalAlign.innerBottom) {\n rect.top = containerPosition.top + verticalMargin;\n }\n if (verticalAlign === VerticalAlign.center) {\n rect.top =\n (containerPosition.top + containerPosition.bottom) / 2 -\n elementHeight / 2;\n }\n\n if (rect.left + elementWidth > window.innerWidth) {\n rect.left = window.innerWidth - elementWidth;\n }\n if (rect.left < 0) {\n rect.left = 0;\n }\n if (rect.top + elementHeight > window.innerHeight || rect.bottom < 0) {\n rect.bottom = 0;\n }\n if (rect.top < 0) {\n rect.top = 0;\n }\n if (verticalAlign === VerticalAlign.bottom || verticalAlign === VerticalAlign.center || verticalAlign === VerticalAlign.innerBottom) {\n rect.maxHeight = window.innerHeight - rect.top;\n }\n if (verticalAlign === VerticalAlign.top || verticalAlign === VerticalAlign.innerTop) {\n rect.maxHeight = containerPosition.top;\n }\n if (!isNaN(rect.left)) {\n rect.left = rect.left - transformedParentRect.left;\n }\n if (!isNaN(rect.right)) {\n rect.right = rect.right - transformedParentRect.left;\n }\n if (!isNaN(rect.top)) {\n rect.top = rect.top - transformedParentRect.top;\n }\n if (!isNaN(rect.bottom)) {\n rect.bottom = rect.bottom ? rect.bottom - transformedParentRect.bottom : rect.bottom;\n }\n return rect;\n }\n\n public static setElementPosition(element: HTMLElement, rect: IRect): void {\n element.style.left = rect.left != null ? `${rect.left}px` : '';\n element.style.right = rect.right != null ? `${rect.right}px` : '';\n element.style.top = rect.top != null ? `${rect.top}px` : '';\n element.style.bottom = rect.bottom != null ? `${rect.bottom}px` : '';\n element.style.maxHeight =\n rect.maxHeight != null ? `${rect.maxHeight}px` : '';\n element.style.minWidth = rect.minWidth != null ? `${rect.minWidth}px` : '';\n }\n\n public static getMaxHeight(position: IRect): number | null {\n let maxHeight = null;\n maxHeight = 1;\n return maxHeight;\n }\n\n public static getMaxWidth(position: IRect): number | null {\n let maxWidth = null;\n maxWidth = 1;\n return maxWidth;\n }\n}\n","import {Directive, Optional, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaDropdownHead]'\n})\nexport class DropdownHeadDirective {\n constructor(@Optional() public template: TemplateRef<any>) {\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaDropdownContent]'\n})\nexport class DropdownContentDirective {\n nativeElement: HTMLElement;\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {\n this.nativeElement = _elementRef.nativeElement;\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n Output,\n Renderer2,\n} from '@angular/core';\nimport {DomUtil} from '../../common/util/dom-util';\nimport {PositionUtil} from '../../common/util/position-util';\nimport {Align} from '../../common/enum/align.enum';\nimport {VerticalAlign} from '../../common/enum/vertical-align.enum';\nimport {DropdownHeadDirective} from './dropdown-head.directive';\nimport {DropdownContentDirective} from './dropdown-content.directive';\nimport {AutoCloseIgnoreCase} from '../../common/contract/auto-close-ignore-case';\nimport {IRect} from '../../common/contract/i-rect';\nimport {takeWhile, throttleTime} from 'rxjs/operators';\nimport {viewType} from '../../common/model/view-type.model';\n\n@Directive()\nexport class DropdownBase {\n @Input() align: Align = Align.left;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.auto;\n @Input() appendToBody: boolean;\n @Input() disabled: boolean;\n @Input() backdrop = false;\n @Input() className: string | string[];\n @Input() viewType: viewType = 'rounded';\n\n @Input()\n set open(val: boolean) {\n if (val != null && val !== this._open && !this.disabled) {\n if (val) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n }\n\n get open(): boolean {\n return this._open;\n }\n\n get container() {\n return this.appendToBody\n ? this._document.body\n : this._elementRef.nativeElement;\n }\n\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Input() autoClose = true;\n @Input() autoCloseIgnore: Array<AutoCloseIgnoreCase> = ['inside'];\n\n\n @ContentChild(DropdownHeadDirective, {\n static: false,\n read: ElementRef,\n })\n protected _head: ElementRef;\n\n @ContentChild(DropdownContentDirective, {static: false})\n protected _content: DropdownContentDirective;\n\n protected _body: HTMLElement | null = null;\n protected _backdrop: HTMLElement | null = null;\n protected _open = false;\n protected _alive = true;\n\n constructor(\n protected _cdr: ChangeDetectorRef,\n protected _document: any,\n protected _elementRef: ElementRef<HTMLElement>,\n protected _zone: NgZone,\n protected _renderer: Renderer2\n ) {\n this._zone.onStable\n .pipe(\n takeWhile((_) => this._alive),\n throttleTime(10, undefined, {trailing: true})\n )\n .subscribe((_) => {\n if (this._head?.nativeElement && this._body) {\n setTimeout(() => {\n if (this._head?.nativeElement && this._body) {\n this.setPosition(this._head.nativeElement, this._body);\n }\n });\n }\n });\n this.addScrollListener();\n }\n\n @HostListener('click', ['$event']) click(event: MouseEvent): void {\n if (this.open) {\n if (!DomUtil.clickedInside(this._body, event) || this.autoCloseIgnore.indexOf('inside') < 0) {\n this.closeDropdown();\n }\n } else {\n if (DomUtil.clickedInside(this._head.nativeElement, event)) {\n this.openDropdown();\n }\n }\n }\n\n @HostListener('document:click', ['$event']) documentClick(\n event: MouseEvent\n ): void {\n if (\n !this.open ||\n !this.autoClose ||\n event.detail === 0 ||\n DomUtil.clickedInside(this._head.nativeElement, event)\n ) {\n return;\n }\n if (DomUtil.clickedInside(this._body, event)) {\n if (this.autoCloseIgnore.indexOf('inside') < 0) {\n this.closeDropdown();\n }\n } else {\n if (this.autoCloseIgnore.indexOf('outside') < 0) {\n this.closeDropdown();\n }\n }\n }\n\n @HostListener('window:keyup', ['$event']) keyUp(event: KeyboardEvent): void {\n if (\n !this.open ||\n !this.autoClose ||\n ['esc', 'enter'].every(\n (_: 'esc' | 'enter') => this.autoCloseIgnore.indexOf(_) >= 0\n )\n ) {\n return;\n }\n if (\n (event.code === 'Escape' && this.autoCloseIgnore.indexOf('esc') < 0) ||\n (event.code === 'Enter' && this.autoCloseIgnore.indexOf('enter') < 0)\n ) {\n this.closeDropdown();\n }\n }\n\n protected addScrollListener() {\n window.addEventListener('scroll', this.scrollListener, true)\n }\n\n protected removeScrollListener() {\n window.removeEventListener('scroll', this.scrollListener, true)\n }\n\n private scrollListener = (event) => {\n if (this.open && !this._body.contains(event.target) && this._body !== event.target) {\n this.closeDropdown();\n }\n }\n\n protected closeDropdown(): void {\n if (this.open && this._body && this.container.contains(this._body)) {\n this._renderer.removeChild(this.container, this._body);\n this._open = false;\n this._body = null;\n if (this._backdrop) {\n this._renderer.removeChild(this._document.body, this._backdrop);\n }\n this.openChange.emit(this.open);\n this._cdr.detectChanges();\n }\n }\n\n private openDropdown(): void {\n if (this._open || !this._content || this.disabled) {\n return;\n }\n this._open = true;\n this.openChange.emit(this.open);\n const renderer = this._renderer;\n const content = this._content.nativeElement;\n const container = (this._body = this._body || renderer.createElement('div'));\n renderer.addClass(container, 'dropdown');\n renderer.addClass(container, 'dropdown_' + this.viewType);\n if (this.backdrop) {\n this._backdrop = renderer.createElement('div');\n renderer.addClass(this._backdrop, 'dropdown-backdrop');\n renderer.appendChild(this._document.body, this._backdrop);\n }\n if (this.className != null) {\n if (this.className instanceof Array && this.className.length > 0) {\n this.className.forEach((_) => {\n renderer.addClass(container, _);\n });\n }\n if (typeof this.className === 'string') {\n renderer.addClass(container, this.className);\n }\n }\n renderer.appendChild(container, content);\n renderer.appendChild(this.container, container);\n this.setPosition(this._head.nativeElement, this._body);\n }\n\n private setPosition(container: HTMLElement, target: HTMLElement): void {\n const containerPosition = container.getBoundingClientRect();\n // target.style.maxHeight = null;\n const targetPosition = target.getBoundingClientRect();\n\n const rect: IRect = {\n bottom: containerPosition.bottom,\n top: containerPosition.top,\n left: containerPosition.left,\n right: containerPosition.right,\n };\n\n const targetRect: IRect = {\n bottom: targetPosition.bottom,\n top: targetPosition.top,\n left: targetPosition.left,\n right: targetPosition.right,\n };\n\n const targetTransformedParent = DomUtil.findTransformedParent(target);\n let parentPosition = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n if (targetTransformedParent) {\n parentPosition = targetTransformedParent.getBoundingClientRect();\n }\n\n const position = PositionUtil.getPosition(\n rect,\n targetRect,\n this.align,\n this.verticalAlign,\n 0,\n 0,\n parentPosition\n );\n\n PositionUtil.setElementPosition(target, position);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {DropdownBase} from '../dropdown-base';\n\n@Component({\n selector: 'teta-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'dropdown'\n})\nexport class DropdownComponent\n extends DropdownBase\n implements OnInit, OnDestroy {\n\n constructor(\n protected override _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) protected override _document: any,\n protected override _elementRef: ElementRef<HTMLElement>,\n protected override _zone: NgZone,\n protected override _renderer: Renderer2\n ) {\n super(_cdr, _document, _elementRef, _zone, _renderer);\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n this.closeDropdown();\n this.removeScrollListener();\n this._alive = false;\n }\n}\n","<ng-content select=\"[tetaDropdownHead]\"></ng-content>\n","export class ArrayUtil {\n public static asArray<T>(value: T | T[]): T[] {\n if (value === null || value === undefined) {\n return [];\n }\n if (value instanceof Array) {\n return value;\n }\n return [value];\n }\n\n public static flatten(\n data: any[],\n children?: string | ((item: any) => any[]),\n onlyLeafs?: boolean\n ): any[] {\n const result: any[] = [];\n data.forEach((child) => {\n let childItems: any[];\n if (children) {\n if (typeof children === 'string') {\n childItems = child[children];\n }\n if (typeof children === 'function') {\n childItems = children(child);\n }\n } else {\n childItems = child.children;\n }\n if (\n childItems !== null &&\n childItems !== undefined &&\n childItems.length > 0\n ) {\n if (!onlyLeafs) {\n result.push(child);\n }\n result.push(...ArrayUtil.flatten(childItems, children, onlyLeafs));\n } else {\n result.push(child);\n }\n });\n return result;\n }\n\n static findRecursive(\n tree: any[],\n comparer: (iterableNode: any) => boolean,\n children: string = 'children'\n ): any {\n const found = tree.find((x) => comparer(x));\n if (found !== null && found !== undefined) {\n return found;\n }\n for (let i = 0, l = tree.length; i < l; i++) {\n const item = tree[i];\n if (item[children] && item[children].length) {\n const res = ArrayUtil.findRecursive(item[children], comparer);\n if (res !== null && res !== undefined) {\n return res;\n }\n }\n }\n return null;\n }\n\n static filterRecursive(\n array: any[],\n filter: (item: any) => boolean,\n children: string = 'children',\n keepChildren: boolean = true,\n fullscanChildren: boolean = false\n ): any {\n const result = [];\n if (array && array.length) {\n for (const item of array) {\n const resultItem = Object.assign({}, item);\n if (filter(resultItem)) {\n result.push(resultItem);\n if (!keepChildren) {\n resultItem[children] = [];\n if (fullscanChildren) {\n continue;\n }\n break;\n }\n } else if (item[children] && item[children].length > 0) {\n resultItem[children] = [];\n const found = ArrayUtil.filterRecursive(\n item[children],\n filter,\n children,\n keepChildren,\n fullscanChildren\n );\n if (found?.length > 0) {\n resultItem[children] = found;\n result.push(resultItem);\n }\n }\n }\n\n }\n return result;\n }\n\n static distinct<T>(array: T[], comparator: (item: T) => any): T[] {\n const result: T[] = [];\n if (array && array.length) {\n for (const item of array) {\n const found = result.find((_) => comparator(_) === comparator(item));\n if (!found) {\n result.push(item);\n }\n }\n }\n return result;\n }\n\n static findParents(tree: any[], item: any) {\n if (tree?.indexOf(item) >= 0) {\n return tree;\n }\n if (Array.isArray(tree)) {\n for (const treeNode of tree) {\n const childResult = this.findParents(treeNode.children, item);\n if (Array.isArray(childResult)) {\n return [treeNode].concat(childResult);\n }\n }\n }\n }\n\n static moveItem(list: any[], sourceIndex, targetIndex) {\n const res = [...list];\n const item = list[sourceIndex];\n if (targetIndex > sourceIndex) {\n res.splice(targetIndex, 0, item);\n res.splice(sourceIndex, 1);\n } else {\n res.splice(sourceIndex, 1);\n res.splice(targetIndex, 0, item);\n }\n return res;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { ArrayUtil } from '../../../common/util/array-util';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'teta-popup-content',\n templateUrl: './popup-content.component.html',\n styleUrls: ['./popup-content.component.scss'],\n animations: [\n trigger('dialog', [\n transition('void => *', [\n style({ opacity: '0' }),\n animate(200, style({ opacity: '1' })),\n ]),\n transition('* => void', [animate(200, style({ opacity: '0' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopupContentComponent implements OnInit, OnDestroy {\n @HostBinding('@dialog') dialog = true;\n\n @Input() className: string | string[];\n\n @HostBinding('class')\n private get getClass(): string {\n const result = [...ArrayUtil.asArray(this.className), 'popup-content'];\n return result.join(' ');\n }\n\n constructor() {}\n\n addClass(className: string) {\n if (this.className) {\n if (typeof this.className === 'string') {\n this.className = className;\n }\n if (this.className instanceof Array) {\n this.className.push(className);\n }\n } else {\n this.className = [className];\n }\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {}\n}\n","<ng-content></ng-content>\n","import {ComponentRef, ViewRef} from '@angular/core';\n\nexport class TetaContentRef {\n constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {\n }\n}\n","export class DynamicData {\n [key: string]: any;\n\n constructor(value: { [key: string]: any }) {\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n this[key] = value[key];\n }\n }\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Injectable,\n Injector,\n Renderer2,\n RendererFactory2,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { TetaContentRef } from '../contract/teta-content-ref';\nimport { DynamicData } from '../contract/dynamic-data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicComponentService {\n private _renderer: Renderer2;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _rendererFactory: RendererFactory2,\n private _appRef: ApplicationRef\n ) {\n this._renderer = this._rendererFactory.createRenderer(null, null);\n }\n\n createComponent<T>(\n component: Type<T>,\n contentRef: TetaContentRef,\n injector: Injector,\n container: any\n ): ComponentRef<T> {\n const componentRef = this._componentFactoryResolver\n .resolveComponentFactory(component)\n .create(injector, contentRef.nodes);\n this._appRef.attachView(componentRef.hostView);\n container.appendChild(componentRef.location.nativeElement);\n return componentRef;\n }\n\n createContent(\n content: string | TemplateRef<any> | Type<any>,\n injector: Injector,\n context?: any\n ): TetaContentRef {\n if (content === null || content === undefined) {\n throw new Error('Content is undefined');\n }\n if (typeof content === 'string') {\n return this.fromString(content);\n } else if (content instanceof TemplateRef) {\n return this.fromTemplate(content, context);\n } else {\n return this.fromComponent(content, injector, context);\n }\n }\n\n destroy<T>(\n component: ComponentRef<T>,\n content: TetaContentRef,\n container: HTMLElement\n ): void {\n if (component) {\n this._appRef.detachView(component.hostView);\n component.destroy();\n }\n if (content && content.viewRef) {\n content.viewRef.destroy();\n }\n content = null;\n }\n\n getContext(\n content: string | TemplateRef<any> | Type<any>,\n context: any\n ): any {\n if (content instanceof TemplateRef) {\n return {\n $implicit: context,\n data: context,\n };\n }\n return context;\n }\n\n getInjector(data: DynamicData, parent: Injector): Injector {\n return Injector.create({\n providers: [\n {\n provide: DynamicData,\n useValue: data,\n },\n ],\n parent,\n });\n }\n\n private fromString(content: string): TetaContentRef {\n return new TetaContentRef([[this._renderer.createText(`${content}`)]]);\n }\n\n private fromTemplate(\n content: TemplateRef<any>,\n context: any\n ): TetaContentRef {\n const viewRef = content.createEmbeddedView(context);\n this._appRef.attachView(viewRef);\n return new TetaContentRef([viewRef.rootNodes], viewRef);\n }\n\n private fromComponent(\n content: any,\n injector: Injector,\n context: any\n ): TetaContentRef {\n const componentFactory =\n this._componentFactoryResolver.resolveComponentFactory<any>(content);\n const componentRef = componentFactory.create(injector);\n for (const key in context) {\n if (context.hasOwnProperty(key)) {\n componentRef.instance[key] = context[key];\n }\n }\n const componentNativeEl = componentRef.location.nativeElement;\n this._appRef.attachView(componentRef.hostView);\n return new TetaContentRef(\n [[componentNativeEl]],\n componentRef.hostView,\n componentRef\n );\n }\n}\n","import {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport {DynamicComponentService} from '../common/service/dynamic-component.service';\nimport {Align} from '../common/enum/align.enum';\nimport {VerticalAlign} from '../common/enum/vertical-align.enum';\nimport {filter, takeWhile} from 'rxjs/operators';\nimport {TetaContentRef} from '../common/contract/teta-content-ref';\nimport {PopupContentComponent} from '../component/dynamic-component/popup-content/popup-content.component';\n\n@Directive()\nexport abstract class DynamicContentBaseDirective implements OnInit, OnDestroy {\n @Input() data: any;\n @Input() className: string | string[];\n @Input() align: Align = Align.left;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.auto;\n @Input() appendToBody: boolean;\n\n @Input() set open(open: boolean) {\n this._open = open;\n if (this._open) {\n this.createContentRef();\n } else {\n this.destroyContentRef();\n }\n }\n\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n protected _alive = true;\n protected _componentRef: ComponentRef<any>;\n protected _content: TetaContentRef;\n protected _open = false;\n\n protected abstract get _dynamicContent():\n | string\n | TemplateRef<any>\n | Type<any>;\n\n protected constructor(\n protected _document: any,\n protected _elementRef: ElementRef,\n protected _service: DynamicComponentService,\n protected _injector: Injector,\n protected _zone: NgZone,\n protected _cdr: ChangeDetectorRef\n ) {\n this._zone.onStable\n .pipe(\n takeWhile((_) => this._alive),\n filter((_) => this._open)\n )\n .subscribe((_) => {\n this.setPosition();\n });\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n this.destroyContentRef();\n }\n\n ngOnInit(): void {\n }\n\n protected createContentRef<T>(\n className?: string | string[]\n ): ComponentRef<T> {\n if (!this._componentRef) {\n this._open = true;\n const injector = this._service.getInjector(this.data, this._injector);\n const context = this._service.getContext(this._dynamicContent, this.data);\n this._content = this._service.createContent(\n this._dynamicContent,\n this._injector,\n context\n );\n this._componentRef = this._service.createComponent(\n PopupContentComponent,\n this._content,\n injector,\n this.appendToBody ? this._document.body : this._elementRef.nativeElement\n );\n if (className) {\n this._componentRef.instance.addClass(className);\n }\n }\n return this._componentRef;\n }\n\n protected destroyContentRef(): void {\n this._open = false;\n this._service.destroy(\n this._componentRef,\n this._content,\n this.appendToBody ? this._document.body : this._elementRef.nativeElement\n );\n this._componentRef = null;\n }\n\n protected abstract setPosition(): void;\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport {DynamicContentBaseDirective} from '../dynamic-content-base.directive';\nimport {DOCUMENT} from '@angular/common';\nimport {DynamicComponentService} from '../../common/service/dynamic-component.service';\nimport {PositionUtil} from '../../common/util/position-util';\nimport {ArrayUtil} from '../../common/util/array-util';\nimport {Align} from '../../common/enum/align.enum';\nimport {VerticalAlign} from '../../common/enum/vertical-align.enum';\nimport {DomUtil} from '../../common/util/dom-util';\nimport {viewType} from \"../../common/model/view-type.model\";\nimport Timeout = NodeJS.Timeout;\n\n@Directive({\n selector: '[tetaHint]',\n})\nexport class HintDirective\n extends DynamicContentBaseDirective\n implements OnDestroy {\n /**\n * Строка, шаблон или компонент для создания контекстного меню\n */\n @Input() tetaHint: string | TemplateRef<any> | Type<any>;\n @Input() override align: Align = Align.center;\n @Input() override verticalAlign: VerticalAlign = VerticalAlign.top;\n @Input() delay = 300;\n @Input() viewType: viewType = 'rounded'\n @Input() overflownOnly = false;\n\n get _dynamicContent() {\n return this.tetaHint;\n }\n\n private _timeout: Timeout;\n private _componentRect: any;\n\n constructor(\n @Inject(DOCUMENT)\n protected override _document: any,\n protected override _elementRef: ElementRef,\n protected override _service: DynamicComponentService,\n protected override _injector: Injector,\n protected override _zone: NgZone,\n protected override _cdr: ChangeDetectorRef\n ) {\n super(_document, _elementRef, _service, _injector, _zone, _cdr);\n }\n\n @HostListener('mouseenter', ['$event'])\n mouseenter(): void {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(() => {\n this.createHint();\n }, this.delay);\n }\n\n @HostListener('mouseleave', ['$event'])\n mouseleave(): void {\n clearTimeout(this._timeout);\n if (this._open && this._componentRef) {\n this._timeout = setTimeout(() => {\n this.destroyContentRef();\n }, this.delay);\n }\n }\n\n @HostListener('click', ['$event'])\n click(event: MouseEvent): void {\n if (\n this._open &&\n this._componentRef &&\n DomUtil.clickedInside(this._componentRef.location.nativeElement, event)\n ) {\n event.stopPropagation();\n }\n }\n\n protected setPosition() {\n if (this._componentRef && this._open) {\n if (!this._componentRect) {\n this._componentRect =\n this._componentRef.location.nativeElement.getBoundingClientRect();\n }\n const position = PositionUtil.getPosition(\n this._elementRef.nativeElement.getBoundingClientRect(),\n this._componentRect,\n this.align,\n this.verticalAlign,\n 0,\n 4\n );\n PositionUtil.setElementPosition(\n this._componentRef.location.nativeElement,\n position\n );\n }\n }\n\n private createHint(): void {\n if (!this._dynamicContent || (this.overflownOnly && !DomUtil.isOverflown(this._elementRef.nativeElement))) {\n return;\n }\n this._componentRef = this.createContentRef();\n this._componentRef.instance.className = [\n ...ArrayUtil.asArray(this.className),\n 'hint ', 'hint_' + this.viewType\n ];\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnInit,\n} from '@angular/core';\nimport {Align} from \"../../../common/enum/align.enum\";\nimport {viewType} from \"../../../common/model/view-type.model\";\n\n@Component({\n selector: 'teta-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputComponent implements OnInit {\n @Input() label: string;\n @Input() hint: string;\n @Input() viewType:viewType='rounded'\n\n @Input()\n @HostBinding('class.row')\n horizontal: boolean;\n\n @Input()\n required = false;\n\n @HostBinding('class.column')\n get column() {\n return !this.horizontal;\n }\n\n align = Align;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"font-caption color-text-90 align-center row nowrap overflow-hidden text-overflow-ellipsis\"\n [class.row_6]=\"horizontal\"\n [class.text-field_required]=\"required\"\n *ngIf=\"label?.length > 0\">\n <span class=\"overflow-hidden text-overflow-ellipsis\"\n [tetaHint]=\"hint ?? label\"\n [align]=\"align.left\"\n [overflownOnly]=\"!hint || hint === label\">\n {{label}}\n </span>\n</div>\n<div [class]=\"'input-container input_'+viewType\" [class.row_6]=\"horizontal\">\n <ng-content></ng-content>\n <div class=\"input-message font-error-message font-caption\">\n <ng-content select=\"message\"></ng-content>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter, forwardRef,\n Input,\n OnInit,\n Output, ViewChild\n} from '@angular/core';\nimport {viewType} from \"../../../common/model/view-type.model\";\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {Align} from \"../../../common/enum/align.enum\";\nimport {VerticalAlign} from \"../../../common/enum/vertical-align.enum\";\nimport {DatePipe} from \"@angular/common\";\nimport {BasePicker} from \"../base-picker\";\nimport dayjs from \"dayjs\";\nimport {maskitoDateOptionsGenerator, maskitoDateTimeOptionsGenerator} from \"@maskito/kit\";\nimport {ReplaySubject} from 'rxjs';\nimport {DatePeriod} from \"../model/date-period\";\n\nexport const DATE_PICKER_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true,\n};\n\n@Component({\n selector: 'teta-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR, DatePipe]\n\n})\n\nexport class DatePickerComponent extends BasePicker implements OnInit, ControlValueAccessor {\n @Input() date: Date | string | number = null;\n @Input() locale: string = 'ru';\n @Input() showTime: boolean = false;\n @Input() minDate: Date | string | number = null;\n @Input() maxDate: Date | string | number = null;\n @Input() invalid: boolean = false;\n @Input() disabled: boolean = false;\n @Input() align: Align = Align.left;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.auto;\n @Input() viewType: viewType = 'rounded'\n @Input() appendToBody: boolean;\n @Input() backdrop: boolean;\n @Input() allowNull: boolean = false;\n\n @Input() firstDayOfWeek = 1;\n @Input() disabledDates: Date[];\n @Input() disabledPeriods: DatePeriod[];\n @Input() disabledDays: number[];\n @Input() minYearDate: Date;\n @Input() maxYearDate: Date;\n\n @ViewChild('input') input: ElementRef;\n @Output() selectDate: EventEmitter<Date> = new EventEmitter<Date>()\n public selectedDate: ReplaySubject<Date | string | number> = new ReplaySubject<Date | string | number>(1)\n public mask: string = '';\n\n\n constructor(override _elementRef: ElementRef, override _cdr: ChangeDetectorRef, override datePipe: DatePipe) {\n super(_elementRef, _cdr, datePipe);\n }\n\n ngOnInit(): void {\n if (!this.date) {\n this.setDate(this.allowNull ? null : new Date())\n this.date = this.allowNull ? null : new Date()\n\n } else {\n this.setDate(new Date(this.date))\n }\n this.prepareInput()\n }\n\n prepareInput() {\n const str = this.date ? this.getLocaleString(this.date) : ''\n let option;\n const setMinMax = () => {\n if (this.minDate) {\n option.min = dayjs(new Date(this.minDate)).startOf('day')\n }\n if (this.maxDate) {\n option.max = dayjs(new Date(this.maxDate)).endOf('day')\n }\n }\n if (this.showTime) {\n this.mask = 'dd.mm.yyyy, hh:mm';\n option = {\n dateMode: 'dd/mm/yyyy',\n timeMode: 'HH:MM',\n dateSeparator: '.',\n }\n setMinMax()\n this.maskitoOptions = maskitoDateTimeOptionsGenerator(option)\n } else {\n this.mask = 'dd.mm.yyyy';\n option = {\n mode: 'dd/mm/yyyy',\n separator: '.',\n }\n setMinMax()\n this.maskitoOptions = maskitoDateOptionsGenerator(option)\n }\n this.changePlaceholder(str)\n }\n\n onBlur() {\n if (this.allowNull && this.inputText.trim() === '') {\n this.setDate(null)\n this.emitValue(null)\n } else {\n const val = this.inputText.split(',');\n const {day, year, month} = this.getDateFromStr(val[0]);\n const {mins, hours} = this.getTimeFromStr(val[1]);\n if (day && year && month) {\n let date = new Date(year, month - 1, day)\n if (this.showTime) {\n date = new Date(date.setHours(hours || 0, mins || 0))\n }\n this.changeSelectedDate(this.getAvailableDate(this.minDate, this.maxDate, date))\n } else {\n this.setDate(this.date);\n }\n }\n\n }\n\n setDate(date) {\n if (!date && this.allowNull) {\n this.inputText = ''\n this.changePlaceholder('')\n this.selectedDate.next(new Date(this.minDate || new Date()))\n } else {\n this.inputText = this.getLocaleString(date)\n this.changePlaceholder(this.getLocaleString(date))\n this.selectedDate.next(date)\n }\n }\n\n onChange(date: Date) {\n }\n\n registerOnChange(fn: (date: Date) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n }\n\n writeValue(obj: Date | string | number): void {\n if (obj) {\n this.date = new Date(obj)\n this.setDate(new Date(this.date))\n } else {\n if (this.allowNull) {\n this.date = null\n this.selectedDate.next(null)\n } else {\n this.date = this.minDate || new Date()\n this.selectedDate.next(this.minDate || new Date())\n }\n }\n\n }\n\n\n}\n","<teta-dropdown *ngIf=\"{selectedDate:selectedDate|async}as data\" [appendToBody]=\"appendToBody\" [backdrop]=\"backdrop\"\n [open]=\"open\" (openChange)=\"openChange($event)\" [viewType]=\"viewType\"\n [disabled]=\"disabled\" [verticalAlign]=\"verticalAlign\" [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class=\"row position-relative font-body-3 align-center\">\n <input [ngClass]=\"{'color-text-90':!disabled}\" [disabled]=\"disabled\" #input style=\"z-index: 1\" class=\"border-0\" (keydown)=\"checkEnter($event)\" [(ngModel)]=\"inputText\" (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\">\n <div (click)=\"input.focus()\" *ngIf=\"data.selectedDate||allowNull\" class=\"position-absolute color-text-10\"\n style=\"top:-0.3px;cursor: text;user-select: none\">{{placeholder}}</div>\n </div>\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"open\">\n <teta-date-calendar [isDateNull]=\"date===null\" [open]=\"open\" [max]=\"maxDate\" [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event)\"\n [selectedDate]=\"data.selectedDate\"\n [viewType]=\"viewType\" [locale]=\"locale\"></teta-date-calendar>\n </ng-container>\n\n </div>\n </teta-dropdown>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {DropdownBase} from './dropdown-base';\n\n@Directive({\n selector: '[tetaDropdown]'\n})\nexport class DropdownDirective extends DropdownBase implements OnInit, OnDestroy, AfterViewInit {\n constructor(protected override _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) protected override _document: any,\n protected override _elementRef: ElementRef<HTMLElement>,\n protected override _zone: NgZone,\n protected override _renderer: Renderer2) {\n super(_cdr, _document, _elementRef, _zone, _renderer);\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n this.closeDropdown();\n this.removeScrollListener();\n this._alive = false;\n }\n\n ngAfterViewInit(): void {\n if (this._content) {\n this._renderer.removeChild(this._content.nativeElement.parentNode, this._content.nativeElement);\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DropdownComponent} from './dropdown/dropdown.component';\nimport {DropdownHeadDirective} from './dropdown-head.directive';\nimport {DropdownContentDirective} from './dropdown-content.directive';\nimport {DropdownDirective} from './dropdown.directive';\n\n@NgModule({\n declarations: [\n DropdownComponent,\n DropdownHeadDirective,\n DropdownContentDirective,\n DropdownDirective\n ],\n exports: [\n DropdownComponent,\n DropdownHeadDirective,\n DropdownContentDirective,\n DropdownDirective\n ],\n imports: [\n CommonModule\n ]\n})\nexport class DropdownModule {\n}\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\n@Directive({\n selector: '[tetaOnlyNumber]',\n})\nexport class OnlyNumberDirective {\n @Input() tetaOnlyNumber = true;\n @Input() allowDecimals = true;\n @Input() allowSign = true;\n @Input() decimalSeparator = '.';\n @Input() commaSeparator = ',';\n\n private _previousValue = '';\n\n private _integerUnsigned = '^[0-9]*$';\n private _integerSigned = '^-?[0-9]+$';\n private _decimalUnsigned = '^[0-9]+(.[0-9]+)?$';\n private _decimalSigned = '^-?[0-9]+(.[0-9]+)?$';\n\n private readonly _minusSign: string = '-';\n\n constructor(private _elementRef: ElementRef<HTMLInputElement>, private _control: NgControl) {\n }\n\n @HostListener('change', ['$event']) onChange(e: any) {\n if (this.tetaOnlyNumber === false) {\n return;\n }\n this.validateValue(this._elementRef.nativeElement.value);\n }\n\n @HostListener('dblclick', ['$event']) dblclick(e: any) {\n if (this.tetaOnlyNumber === false) {\n return;\n }\n this._elementRef.nativeElement.select();\n }\n\n @HostListener('paste', ['$event']) onPaste(e: any) {\n if (this.tetaOnlyNumber === false) {\n return;\n }\n this.validateValue(e.clipboardData.getData('text/plain'));\n e.preventDefault();\n }\n\n @HostListener('keydown', ['$event']) onKeyDown(e: KeyboardEvent) {\n if (this.tetaOnlyNumber === false) {\n return;\n }\n const cursorPosition: number =\n (e.target as HTMLInputElement).selectionStart ?? 0;\n const originalValue: string = (e.target as HTMLInputElement).value;\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n const signExists = originalValue.includes('-');\n const separatorExists =\n originalValue.includes(this.decimalSeparator) ||\n originalValue.includes(this.commaSeparator);\n\n const allowedKeys = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'Delete',\n 'Escape',\n 'Tab',\n 'Home',\n 'End',\n ];\n\n const separatorIsCloseToSign = signExists && cursorPosition <= 1;\n if (this.allowDecimals && !separatorIsCloseToSign && !separatorExists) {\n // if (this.decimalSeparator === '.') {\n allowedKeys.push('.');\n // } else {\n // allowedKeys.push(',');\n // }\n }\n\n const firstCharacterIsSeparator =\n originalValue.charAt(0) !== this.decimalSeparator;\n if (\n this.allowSign &&\n !signExists &&\n firstCharacterIsSeparator &&\n cursorPosition === 0\n ) {\n allowedKeys.push('-');\n }\n\n if (\n allowedKeys.indexOf(e.key) !== -1 ||\n (e.code === 'KeyA' && controlOrCommand) ||\n (e.code === 'KeyC' && controlOrCommand) ||\n (e.code === 'KeyV' && controlOrCommand) ||\n (e.code === 'KeyZ' && controlOrCommand) ||\n (e.code === 'KeyX' && controlOrCommand)\n ) {\n return;\n }\n this._previousValue = originalValue;\n\n const isNumber = new RegExp(this._integerUnsigned).test(e.key);\n if (isNumber) {\n return;\n } else {\n if (e.key === ',' && originalValue.indexOf('.') < 0) {\n // this._elementRef.nativeElement.value =\n // `${originalValue.slice(0, cursorPosition)}.${originalValue.slice(cursorPosition)}`;\n this._control.control.patchValue(\n `${originalValue.slice(0, cursorPosition)}.${originalValue.slice(cursorPosition)}`);\n if (this._elementRef.nativeElement.setSelectionRange) {\n this._elementRef.nativeElement.setSelectionRange(cursorPosition + 1, cursorPosition + 1);\n }\n }\n e.preventDefault();\n }\n }\n\n validateValue(value: string): void {\n if (this.tetaOnlyNumber === false) {\n return;\n }\n value = value.replace(',', '.').trim();\n let regex: string = this._integerUnsigned;\n if (!this.allowDecimals && !this.allowSign) {\n regex = this._integerUnsigned;\n }\n if (!this.allowDecimals && this.allowSign) {\n regex = this._integerSigned;\n }\n if (this.allowDecimals && !this.allowSign) {\n regex = this._decimalUnsigned;\n }\n if (this.allowDecimals && this.allowSign) {\n regex = this._decimalSigned;\n }\n\n let firstCharacter = value.charAt(0);\n if (firstCharacter === this.decimalSeparator) {\n value = 0 + value;\n }\n\n const lastCharacter = value.charAt(value.length - 1);\n if (lastCharacter === this.decimalSeparator) {\n value = value + 0;\n }\n\n let signedValue = false;\n if (firstCharacter === this._minusSign) {\n signedValue = true;\n value = value.substring(1);\n firstCharacter = value.charAt(0);\n }\n let secondChar = value.charAt(1);\n while (\n firstCharacter === '0' &&\n secondChar !== '' &&\n secondChar !== this.decimalSeparator\n ) {\n value = value.substring(1);\n firstCharacter = value.charAt(0);\n secondChar = value.charAt(1);\n }\n if (signedValue === true) {\n value = this._minusSign + value;\n }\n\n const valueParts = value.split(this.decimalSeparator);\n const naturalPart = valueParts?.[0];\n let decimalPart = valueParts?.[1];\n\n if (decimalPart != null && /^0+$/.test(decimalPart)) {\n decimalPart = '0';\n value = naturalPart + '.' + decimalPart;\n }\n if (value === '-0') {\n value = '0';\n }\n if (value === '-0.0') {\n value = '0.0';\n }\n if (value === null || value === undefined || value === '') {\n return;\n }\n const valid: boolean = new RegExp(regex).test(value.toString());\n\n // if (valid && value.toString() !== this._control.control.value.toString()) {\n // console.log(value, parseFloat(value));\n // this._control.control.patchValue(parseFloat(value));\n // }\n if (valid) {\n this._control.control.patchValue(parseFloat(value));\n }\n }\n}\n","export const getPrecision = (a: number) => {\n if (!isFinite(a)) {\n return 0;\n }\n let e = 1;\n let p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n return p;\n};\n\nexport const formatNumber = (\n value: any,\n decimalLength: number,\n chunkDelimiter: string,\n decimalDelimiter: string,\n chunkLength: number\n) => {\n const abs = Math.abs(value);\n if (0 < abs && 1 > abs) {\n const firstDigitIndex = Math.floor(Math.abs(Math.log10(abs)));\n decimalLength += firstDigitIndex;\n }\n const precision = Math.min(getPrecision(value), Math.floor(decimalLength));\n const result =\n '\\\\d(?=(\\\\d{' + chunkLength + '})+' + (precision > 0 ? '\\\\D' : '$') + ')';\n const num = value.toFixed(precision);\n return (decimalDelimiter ? num.replace('.', decimalDelimiter) : num).replace(\n new RegExp(result, 'g'),\n '$&' + chunkDelimiter\n );\n};\n\nexport const prependZero = (input: number, length: number) =>\n ('0'.repeat(length) + input).slice(-length);\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {formatNumber} from '../util/number-helper';\n\n@Pipe({\n name: 'tetaNumber'\n})\nexport class NumberPipe implements PipeTransform {\n transform(value: number | string,\n decimalLength: number = 2,\n chunkDelimiter: string = '',\n decimalDelimiter: string = '.',\n chunkLength: number = 3): string {\n if (value === null || value === undefined || value === '') {\n return '';\n }\n if (typeof value === 'string' && isNaN(parseFloat(value))) {\n return value.toString();\n }\n if (decimalLength === null) {\n return value.toString();\n }\n value = Number(value);\n return formatNumber(value,\n decimalLength,\n chunkDelimiter,\n decimalDelimiter,\n chunkLength);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n selector: 'teta-text-field',\n templateUrl: './text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextFieldComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextFieldComponent implements ControlValueAccessor {\n @Input() placeholder = '';\n @Input() leftIconName?: string;\n @HostBinding('class.text-field_disabled')\n @Input()\n disabled = false;\n @Input() onlyNumber = false;\n @Input() decimalPart: number;\n @HostBinding('class.text-field_invalid')\n @Input()\n invalid: boolean;\n @ViewChild('input', {static: false}) input: ElementRef;\n inputFocused: boolean;\n @HostBinding('class.text-field')\n private readonly textField = true;\n value = '';\n\n constructor(private _cdr: ChangeDetectorRef) {\n }\n\n @HostListener('click') onFocus() {\n if (this.disabled) {\n return;\n }\n this.input.nativeElement.focus();\n }\n\n keyPress(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.keyCode === 13) {\n this.emitBlur();\n }\n }\n\n emitBlur() {\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdr.markForCheck();\n }\n\n writeValue(input: string): void {\n this.value = input;\n this._cdr.detectChanges();\n }\n\n onChange(input: string): void {\n }\n\n onTouched(): void {\n }\n}\n","<teta-icon *ngIf=\"leftIconName\" [name]=\"leftIconName\"></teta-icon>\n<input\n #input\n [ngModel]=\"value | tetaNumber : !onlyNumber ? null : inputFocused ? 1000 : decimalPart\"\n [tetaOnlyNumber]=\"onlyNumber\"\n (ngModelChange)=\"value = $event; onChange($event);\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngClass]=\"{'color-text-40':disabled}\"\n (focus)='inputFocused = true'\n (blur)=\"inputFocused = false;emitBlur()\"\n (keydown)=\"keyPress($event)\"\n autocomplete=\"off\"\n type=\"text\"\n/>\n<teta-icon\n *ngIf=\"value && !disabled\"\n class=\"close-icon\"\n [name]=\"'closeCircle'\"\n (click)=\"value = ''; onChange('');\"\n></teta-icon>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OnlyNumberDirective } from './only-number.directive';\n\n@NgModule({\n declarations: [OnlyNumberDirective],\n exports: [OnlyNumberDirective],\n imports: [CommonModule],\n})\nexport class OnlyNumberModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'teta-form-group-title',\n templateUrl: './form-group-title.component.html',\n styleUrls: ['./form-group-title.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormGroupTitleComponent implements OnInit {\n @HostBinding('class.form-group-title') private readonly className = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"font-overline form-group-title-text\">\n <ng-content></ng-content>\n</div>\n<div class=\"form-group-title-line\"></div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PopupContentComponent} from './popup-content/popup-content.component';\n\n@NgModule({\n declarations: [PopupContentComponent],\n exports: [PopupContentComponent],\n imports: [\n CommonModule\n ]\n})\nexport class DynamicComponentModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {HintDirective} from './hint.directive';\nimport {DynamicComponentModule} from '../../component/dynamic-component/dynamic-component.module';\n\n@NgModule({\n declarations: [HintDirective],\n exports: [HintDirective],\n imports: [\n CommonModule,\n DynamicComponentModule\n ]\n})\nexport class HintModule {\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding, HostListener,\n Input,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n selector: 'teta-color-input',\n templateUrl: './color-input.component.html',\n styleUrls: ['./color-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorInputComponent implements ControlValueAccessor {\n @Input() disabled = false;\n @ViewChild('input', {static: false}) input: ElementRef;\n value = '';\n\n constructor(private _cdr: ChangeDetectorRef) {\n }\n\n @HostListener('click') onFocus() {\n if (this.disabled) {\n return;\n }\n this.input.nativeElement.focus();\n }\n\n emitBlur() {\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdr.markForCheck();\n }\n\n writeValue(input: string): void {\n this.value = input;\n this._cdr.detectChanges();\n }\n\n onChange(input: string): void {\n }\n\n onTouched(): void {\n }\n\n getHexColor(color: string) {\n if (color && color.startsWith('rgb')) {\n const value = color.substring(\n color.indexOf('(') + 1,\n color.lastIndexOf(')')\n );\n const colorArray = value.split(',');\n color = `#${\n ('00' + parseInt(colorArray[0], 10).toString(16)).slice(-2)}${\n ('00' + parseInt(colorArray[1], 10).toString(16)).slice(-2)}${\n ('00' + parseInt(colorArray[2], 10).toString(16)).slice(-2)}`;\n }\n return color;\n }\n}\n","<input type='color'\n #input\n [disabled]='disabled'\n (blur)='emitBlur();'\n [ngModel]=\"getHexColor(value)\"\n (ngModelChange)=\"value = $event;onChange($event)\"\n [ngModelOptions]='{updateOn: \"blur\"}'/>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NumberPipe} from './number.pipe';\n\n@NgModule({\n declarations: [NumberPipe],\n exports: [\n NumberPipe\n ],\n imports: [\n CommonModule\n ]\n})\nexport class NumberPipeModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {InputComponent} from './input/input.component';\nimport {TextFieldComponent} from './text-field/text-field.component';\nimport {IconModule} from '../icon/icon.module';\nimport {FormsModule} from '@angular/forms';\nimport {OnlyNumberModule} from '../../directive/only-number/only-number.module';\nimport {FormGroupTitleComponent} from './form-group-title/form-group-title.component';\nimport {HintModule} from '../../directive/hint/hint.module';\nimport {ColorInputComponent} from './color-input/color-input.component';\nimport {NumberPipeModule} from \"../../pipe/number-pipe/number-pipe.module\";\n\n@NgModule({\n declarations: [InputComponent, TextFieldComponent, FormGroupTitleComponent, ColorInputComponent],\n exports: [InputComponent, TextFieldComponent, FormGroupTitleComponent, ColorInputComponent],\n imports: [CommonModule, IconModule, FormsModule, OnlyNumberModule, HintModule, NumberPipeModule],\n})\nexport class InputModule {\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Input, NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {DomUtil} from '../../common/util/dom-util';\n\n@Directive({\n selector: '[tetaClickOutside]',\n})\nexport class ClickOutsideDirective implements OnDestroy {\n @Output() clickOutside = new EventEmitter<MouseEvent>();\n @Input() rightClick = false;\n\n private _handleEvents = false;\n\n @Input()\n set tetaClickOutside(val: boolean) {\n this._handleEvents = val;\n if (this._handleEvents) {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.addListener(this.rightClick);\n });\n });\n } else {\n this.removeListener();\n }\n }\n\n get tetaClickOutside(): boolean {\n return this._handleEvents;\n }\n\n constructor(private _elementRef: ElementRef, private _ngZone: NgZone) {\n }\n\n ngOnDestroy(): void {\n this.removeListener();\n }\n\n private addListener(handleRightClick: boolean): void {\n window.addEventListener('click', this.listener);\n if (handleRightClick) {\n window.addEventListener('contextmenu', this.listener);\n }\n }\n\n private removeListener(): void {\n window.removeEventListener('click', this.listener);\n window.removeEventListener('contextmenu', this.listener);\n }\n\n private listener = (click: MouseEvent) => {\n if (!this._handleEvents) {\n return;\n }\n const clickedInside = DomUtil.clickedInside(\n this._elementRef.nativeElement,\n click\n );\n if (!clickedInside) {\n this.clickOutside.emit(click);\n }\n };\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ClickOutsideDirective} from './click-outside.directive';\n\n@NgModule({\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective],\n imports: [\n CommonModule\n ]\n})\nexport class ClickOutsideModule {\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport {combineLatest, filter, map, shareReplay, takeWhile} from \"rxjs\";\nimport {DayModel} from '../../model/day-model';\nimport {viewType} from \"../../../../common/model/view-type.model\";\nimport dayjs from \"dayjs\";\nimport {DateFromToModel} from \"../../model/from-to.model\";\nimport {BaseCalendar} from \"../../base-calendar\";\n\n\n@Component({\n selector: 'teta-range-calendar',\n templateUrl: './range-calendar.component.html',\n styleUrls: ['./range-calendar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RangeCalendarComponent extends BaseCalendar implements OnChanges, OnDestroy {\n @Input() locale: string;\n @Input() open: boolean;\n @Input() date: DateFromToModel\n @Input() viewType: viewType;\n @Input() allowNull: boolean;\n @Input() selectedDate: DateFromToModel;\n @Input() min: Date | string | number;\n @Input() isDateNull: boolean;\n @Input() max: Date | string | number;\n @Output() hoveredDateChange: EventEmitter<Date> = new EventEmitter<Date>();\n @Output() setDate: EventEmitter<Date> = new EventEmitter<Date>();\n public calendar: { currentMonth: DayModel[], nextMonth: DayModel[] };\n public _hoveredDate: Date = null;\n get hoveredDate() {\n return this._hoveredDate\n }\n\n set hoveredDate(e) {\n this._hoveredDate = e\n this._cdr.detectChanges()\n }\n\n constructor(override _cdr: ChangeDetectorRef\n ) {\n super(_cdr);\n dayjs().locale('ru', {weekStart: 1});\n combineLatest([this.currentYear, this.currentMonth, this.minMax]).pipe(\n takeWhile(() => this.alive),\n shareReplay({bufferSize: 1, refCount: false}),\n filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null),\n map(([year, month, minMax]) => {\n const {availableYear, availableMonth} = this.getAvailableMonthYear(month + 1, year)\n return {\n currentMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale(this.locale), year, month, minMax),\n nextMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale(this.locale), availableYear, availableMonth, minMax)\n }\n })\n ).subscribe((_) => {\n this.calendar = _;\n })\n }\n\n\n getFromTo() {\n let dateFrom;\n let dateTo;\n if (this.selectedDate?.from) {\n dateFrom = new Date(this.selectedDate.from)\n dateTo = null\n } else {\n if (this.allowNull) {\n dateFrom = this.date?.from ? new Date(this.date.from) : null\n dateTo = this.date?.to ? new Date(this.date.to) : null\n } else {\n dateFrom = this.date?.from ? new Date(this.date.from) : new Date()\n dateTo = this.date?.to ? new Date(this.date.to) : new Date()\n }\n\n }\n\n return {from: dateFrom, to: dateTo}\n }\n\n\n override isSelected(d: Date, selectedDate: Date) {\n const {from, to} = this.getFromTo()\n return this.checkSelected(d, from) || this.checkSelected(d, to)\n }\n\n checkSelected(date: Date, selectedDate: Date) {\n const isSelectedDate = date.getDate() === selectedDate?.getDate()\n const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear()\n const isSelectedMonth = date.getMonth() === selectedDate?.getMonth()\n return isSelectedDate && isSelectedMonth && isSelectedYear\n }\n\n isFirstDaySuitable(m: number, y: number, max: Date) {\n\n const {availableYear, availableMonth} = this.getAvailableMonthYear(m, y)\n return this.isSuitableMaxDate(dayjs(new Date(availableYear, availableMonth)).startOf('month').toDate(), max)\n }\n\n isLastDaySuitable(m: number, y: number, min: Date) {\n const {availableYear, availableMonth} = this.getAvailableMonthYear(m, y)\n return this.isSuitableMinDate(dayjs(new Date(availableYear, availableMonth)).endOf('month').toDate(), min)\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n if (!changes?.['hoveredDate']) {\n this.changeCalendarData(this.selectedDate.from || this.date.from)\n }\n }\n}\n","<div\n *ngIf=\"{currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async} as data\"\n class=\"datepicker-content overflow-y-auto\"\n>\n <ng-container *ngIf=\"data.selectedPicker==='day'\">\n <div class=\"row \">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{'datepicker-arrow_hidden':!isLastDaySuitable(data.currentMonth-1,data.currentYear,min)}\"\n [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p> {{getMothName(data.currentMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"></teta-day-picker>\n </div>\n </div>\n <div class=\"padding-h-3 padding-v-2\"\n *ngIf=\"getAvailableMonthYear(data.currentMonth+1,data.currentYear) as availableMonthYear\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{getMothName(availableMonthYear.availableMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{availableMonthYear.availableYear}}</button>\n </div>\n <teta-button [square]=\"true\"\n [ngClass]=\"{'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth+2,data.currentYear,max)}\"\n [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"></teta-day-picker>\n </div>\n </div>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='month'\">\n <teta-month-picker [localeMoths]=\"localeMonths\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\" [locale]=\"locale\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='year'\">\n <teta-year-picker [minMax]=\"data.minMax\" [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n </ng-container>\n</div>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef, EventEmitter, forwardRef,\n Input,\n OnInit, Output,\n ViewChild\n} from '@angular/core';\nimport {BasePicker} from \"../base-picker\";\nimport {DatePipe} from \"@angular/common\";\nimport {Align} from \"../../../common/enum/align.enum\";\nimport {VerticalAlign} from \"../../../common/enum/vertical-align.enum\";\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport dayjs from \"dayjs\";\nimport {\n maskitoDateRangeOptionsGenerator,\n} from \"@maskito/kit\";\nimport {ReplaySubject} from \"rxjs\";\nimport {DateFromToModel} from \"../model/from-to.model\";\nimport {viewType} from \"../../../common/model/view-type.model\";\n\nexport const DATE_Range_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangeComponent),\n multi: true,\n};\n\n@Component({\n selector: 'teta-date-range',\n templateUrl: './date-range.component.html',\n styleUrls: ['./date-range.component.scss'],\n providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateRangeComponent extends BasePicker implements OnInit, ControlValueAccessor {\n @Input() date: DateFromToModel = {from: null, to: null};\n @Input() locale: string = 'ru';\n @Input() showTime: boolean = false;\n @Input() minDate: Date | string | number = null;\n @Input() maxDate: Date | string | number = null;\n @Input() invalid: boolean = false;\n @Input() disabled: boolean = false;\n @Input() align: Align = Align.left;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.auto;\n @Input() viewType: viewType = 'rounded'\n @Input() appendToBody: boolean;\n @Input() backdrop: boolean;\n @Input() allowNull: boolean = false;\n @ViewChild('input') input: ElementRef;\n @Output() selectDate: EventEmitter<DateFromToModel> = new EventEmitter<DateFromToModel>()\n public mask: string = '';\n public selectedDate: ReplaySubject<DateFromToModel> = new ReplaySubject<DateFromToModel>(1)\n\n constructor(override _cdr: ChangeDetectorRef, override _elementRef: ElementRef, override datePipe: DatePipe) {\n super(_elementRef, _cdr, datePipe);\n console.log('dateRange', datePipe)\n }\n\n override changeSelectedDate(date: Date, selectedDate: DateFromToModel) {\n if (selectedDate.from) {\n const from = new Date(Math.min(new Date(selectedDate.from).getTime(), date.getTime()));\n const to = new Date(Math.max(new Date(selectedDate.from).getTime(), date.getTime()));\n this.setDate({from, to})\n this.emitValue({from, to})\n this.selectedDate.next({from: null, to: null})\n this.open = false;\n } else {\n this.setDate({from: date, to: null})\n this.selectedDate.next({from: date, to: null})\n }\n\n }\n\n override checkNull() {\n if (this.allowNull) {\n return null\n }\n return this.datePipe.transform(new Date(), 'dd.MM.yyyy') + ' - ' + this.datePipe.transform(new Date(), 'dd.MM.yyyy')\n }\n\n prepareInput() {\n let str = this.getLocaleString(this.date.from) + ' - ' + this.getLocaleString(this.date.to)\n if (!this.date?.from) {\n str = this.allowNull ? '' : this.getLocaleString(new Date()) + ' - ' + this.getLocaleString(new Date())\n }\n let option: { mode, separator, min?, max?, minLength?, maxLength? } = {\n mode: 'dd/mm/yyyy',\n separator: '.',\n };\n this.mask = 'dd.mm.yyyy - dd.mm.yyyy';\n if (this.minDate) {\n option.min = dayjs(new Date(this.minDate)).startOf('day')\n }\n if (this.maxDate) {\n option.max = dayjs(new Date(this.maxDate)).endOf('day')\n }\n this.maskitoOptions = maskitoDateRangeOptionsGenerator(option)\n this.changePlaceholder(str)\n }\n\n onBlur() {\n if (this.allowNull && this.inputText.trim() === '') {\n this.setDate({from: null, to: null})\n this.selectedDate.next({from: null, to: null})\n this.emitValue({from: null, to: null})\n } else {\n\n const val = this.inputText.replace('–', '-').split('-');\n const from = this.getDateFromStr(val[0].trim());\n const to = this.getDateFromStr(val[1]?.trim());\n if (to.day && to.year && to.month) {\n let fromDate = this.getAvailableDate(this.minDate, this.maxDate, new Date(from.year, from.month - 1, from.day))\n let toDate = this.getAvailableDate(this.minDate, this.maxDate, new Date(to.year, to.month - 1, to.day))\n if (fromDate.getTime() > toDate.getTime()) {\n [fromDate, toDate] = [toDate, fromDate]\n }\n\n this.setDate({from: fromDate, to: toDate})\n this.emitValue({from: fromDate, to: toDate})\n this.selectedDate.next({from: null, to: null})\n if (toDate && fromDate) {\n this.open = false;\n }\n } else {\n this.setDate(this.date);\n this.selectedDate.next({from: null, to: null})\n }\n }\n\n }\n\n setDate(range: DateFromToModel) {\n if (!range?.from && !range?.to && this.allowNull) {\n this.inputText = ''\n this.changePlaceholder('')\n this.selectedDate.next({\n from: range?.from || null,\n to: range?.to || null\n })\n\n } else {\n this.inputText = this.getLocaleString(range.from) + ' - ' + this.getLocaleString(range.to)\n this.changePlaceholder(this.getLocaleString(range.from) + ' - ' + this.getLocaleString(range.to))\n }\n }\n\n writeValue(obj: DateFromToModel): void {\n if (obj?.from) {\n this.date = {\n from: new Date(obj.from),\n to: new Date(obj.to)\n }\n this.setDate({\n from: new Date(obj.from),\n to: new Date(obj.to)\n })\n } else {\n this.date = {from: null, to: null}\n }\n this.selectedDate.next({\n from: null,\n to: null\n })\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n }\n\n ngOnInit(): void {\n if (this.date?.from) {\n this.setDate({\n from: this.allowNull ? null : new Date(this.date?.from),\n to: this.allowNull ? null : new Date(this.date?.to)\n })\n } else {\n this.setDate({\n from: this.allowNull ? null : new Date(),\n to: this.allowNull ? null : new Date()\n })\n }\n\n this.selectedDate.next({\n from: null,\n to: null\n })\n\n this.prepareInput()\n }\n\n onChange(date: Date) {\n }\n}\n","<teta-dropdown *ngIf=\"{selectedDate:selectedDate|async}as data\" [appendToBody]=\"appendToBody\" [backdrop]=\"backdrop\"\n [(open)]=\"open\" (openChange)=\"openChange($event)\" [viewType]=\"viewType\"\n [disabled]=\"disabled\" [verticalAlign]=\"verticalAlign\" [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class=\"row position-relative font-body-3 align-center\">\n <input [ngClass]=\"{'color-text-90':!disabled}\" [disabled]=\"disabled\" #input style=\"z-index: 1\"\n class=\"border-0 color-text-90\" (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\" (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\">\n <div (click)=\"input.focus()\" *ngIf=\"data.selectedDate||allowNull\" class=\"position-absolute color-text-10\"\n style=\"top:-0.3px;cursor: text;user-select: none\">{{placeholder}}</div>\n </div>\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"open\">\n <div class=\"row\">\n <teta-range-calendar [isDateNull]=\"date===null||(date?.from===null&&date?.to===null)\" [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event,data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\" [locale]=\"locale\"></teta-range-calendar>\n </div>\n </ng-container>\n </div>\n</teta-dropdown>\n","import {Directive, ElementRef, Inject, Input, OnChanges, PLATFORM_ID, SimpleChanges} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\n@Directive({\n selector: '[tetaScrollIntoView]'\n})\nexport class ScrollIntoViewDirective implements OnChanges {\n @Input() tetaScrollIntoView: boolean | undefined;\n @Input() behavior: ScrollBehavior = 'smooth';\n @Input() block: ScrollLogicalPosition = 'end';\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: any,\n private elementRef: ElementRef\n ) {\n }\n\n ngOnChanges(simpleChange: SimpleChanges) {\n if (isPlatformBrowser(this.platformId)) {\n if (coerceBooleanProperty(this.tetaScrollIntoView)) {\n (this.elementRef.nativeElement as HTMLInputElement).scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ScrollIntoViewDirective} from './scroll-into-view.directive';\n\n@NgModule({\n declarations: [\n ScrollIntoViewDirective\n ], exports: [\n ScrollIntoViewDirective\n ],\n imports: [\n CommonModule\n ]\n})\nexport class ScrollIntoViewModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DateCalendarComponent} from \"./date-picker/date-calendar/date-calendar.component\";\nimport {DayItemComponent} from './day-picker/day-item/day-item.component';\nimport {DayPickerComponent} from './day-picker/day-picker.component';\nimport {DatePickerComponent} from \"./date-picker/date-picker.component\";\nimport {DropdownModule} from \"../dropdown/dropdown.module\";\nimport {ButtonModule} from \"../button/button.module\";\nimport {IconModule} from \"../icon/icon.module\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {InputModule} from \"../input/input.module\";\nimport {MonthPickerComponent} from './month-picker/month-picker.component';\nimport {YearPickerComponent} from './year-picker/year-picker.component';\nimport {ScrollToSelectedYearDirective} from './year-picker/scroll-to-selected-year.directive';\nimport {MaskitoModule} from \"@maskito/angular\";\nimport {ClickOutsideModule} from \"../../directive/click-outside/click-outside.module\";\nimport {DateRangeComponent} from \"./date-range/date-range.component\";\nimport {RangeCalendarComponent} from \"./date-range/range-calendar/range-calendar.component\";\nimport {ScrollIntoViewModule} from \"../../directive/scroll-into-view/scroll-into-view.module\";\n\n\n@NgModule({\n declarations: [\n DateCalendarComponent,\n DayPickerComponent,\n DatePickerComponent,\n RangeCalendarComponent,\n DayItemComponent,\n MonthPickerComponent,\n ScrollToSelectedYearDirective,\n YearPickerComponent,\n ScrollToSelectedYearDirective,\n DateRangeComponent\n ],\n imports: [\n CommonModule,\n DropdownModule,\n ButtonModule, FormsModule, MaskitoModule,\n IconModule, InputModule, ScrollIntoViewModule, ClickOutsideModule, ReactiveFormsModule,\n ],\n exports: [DatePickerComponent, DateCalendarComponent, RangeCalendarComponent, DateRangeComponent]\n})\nexport class DatePickerModule {\n}\n","export class DatePeriod {\n start: Date;\n end: Date;\n\n constructor(start: Date, end: Date) {\n this.start = start;\n this.end = end;\n }\n}\n","export enum DatePickerMode {\n date,\n month,\n year\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'teta-delimiter',\n templateUrl: './delimiter.component.html',\n styleUrls: ['./delimiter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DelimiterComponent implements OnInit {\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\n @Input() palette = 'text';\n @Input() height = 32;\n @Input() verticalMargin = 4;\n @Input() horizontalMargin = 8;\n\n @Input() class;\n\n @HostBinding('class')\n private get getClass(): string {\n return [\n this.class,\n 'delimiter',\n this.getBgColor(),\n this.direction === 'horizontal' ? 'display-flex' : 'display-inline-flex',\n ].join(' ');\n }\n\n @HostBinding('style.height')\n private get getHeight(): string {\n return this.direction === 'vertical' ? '' : '1px';\n }\n\n @HostBinding('style.width')\n private get getWidth(): string {\n return this.direction === 'horizontal' ? '' : '1px';\n }\n\n @HostBinding('style.margin')\n private get getMargin(): string {\n return this.direction === 'horizontal' ? '8px' : '0';\n }\n\n constructor() {}\n\n getBgColor() {\n return this.palette ? `bg-${this.palette}-10` : '';\n }\n\n ngOnInit(): void {}\n}\n","","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DelimiterComponent} from './delimiter/delimiter.component';\n\n@NgModule({\n declarations: [DelimiterComponent],\n exports: [DelimiterComponent],\n imports: [\n CommonModule\n ]\n})\nexport class DelimiterModule {\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'teta-toolbar',\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToolbarComponent implements OnInit {\n @Input() palette: string;\n @Input() class;\n\n @HostBinding('class')\n private get getClass() {\n const result = [this.class, 'toolbar'];\n if (this.palette) {\n result.push(`toolbar-${this.palette}`);\n }\n return result.join(' ');\n }\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'teta-expand-card',\n templateUrl: './expand-card.component.html',\n styleUrls: ['./expand-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'expand-card'\n})\nexport class ExpandCardComponent implements OnInit {\n @Input() open = true;\n @Output() openChange = new EventEmitter<boolean>();\n @Input() showCross: boolean = true;\n @Output() crossClick = new EventEmitter<MouseEvent>();\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n setOpen() {\n this.open = !this.open;\n this.openChange.emit(this.open);\n }\n}\n","<teta-toolbar class=\"justify-content-between align-center\">\n <ng-content select=\"head\"></ng-content>\n <div class=\"row gap align-center\">\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n <ng-container *ngIf=\"showCross\">\n <teta-delimiter [palette]=\"'text'\" class='height-4'></teta-delimiter>\n <button type=\"button\" teta-button (click)=\"crossClick.emit($event)\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"'closeBig'\"></teta-icon>\n </button>\n </ng-container>\n </div>\n</teta-toolbar>\n<div class=\"content\" *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ToolbarComponent} from './toolbar/toolbar.component';\n\n@NgModule({\n declarations: [ToolbarComponent],\n exports: [ToolbarComponent],\n imports: [\n CommonModule\n ]\n})\nexport class ToolbarModule {\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'teta-expand-item',\n templateUrl: './expand-item.component.html',\n styleUrls: ['./expand-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'expand-item'\n})\nexport class ExpandItemComponent implements OnInit {\n @Input() open = true;\n @Output() openChange = new EventEmitter<boolean>();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n setOpen() {\n this.open = !this.open;\n this.openChange.emit(this.open);\n }\n}\n","<div class=\"row align-center gap color-text-50 height-6\">\n <div class=\"font-overline form-group-title-text\">\n <ng-content select=\"head\"></ng-content>\n </div>\n <div class=\"form-group-title-line\"></div>\n <button type=\"button\" teta-button (click)=\"setOpen()\" [palette]=\"'text'\" [view]=\"'ghost'\" [square]=\"true\">\n <teta-icon [name]=\"open ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n</div>\n<div class=\"content\" *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ExpandCardComponent} from './expand-card/expand-card.component';\nimport {ToolbarModule} from '../toolbar/toolbar.module';\nimport {ButtonModule} from '../button/button.module';\nimport {IconModule} from '../icon/icon.module';\nimport {DelimiterModule} from '../delimiter/delimiter.module';\nimport {ExpandItemComponent} from './expand-item/expand-item.component';\n\n\n@NgModule({\n declarations: [\n ExpandCardComponent,\n ExpandItemComponent\n ],\n exports: [\n ExpandCardComponent,\n ExpandItemComponent\n ],\n imports: [\n CommonModule,\n ToolbarModule,\n ButtonModule,\n IconModule,\n DelimiterModule\n ]\n})\nexport class ExpandCardModule {\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[tetaExpandPanelContent]',\n})\nexport class ExpandPanelContentDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[tetaExpandPanelHead]',\n})\nexport class ExpandPanelHeadDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { ExpandPanelContentDirective } from '../expand-panel-content.directive';\nimport { ExpandPanelHeadDirective } from '../expand-panel-head.directive';\n\n@Component({\n selector: 'teta-expand-panel',\n templateUrl: './expand-panel.component.html',\n styleUrls: ['./expand-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ExpandPanelComponent implements OnInit {\n @ContentChild(ExpandPanelContentDirective, { static: false })\n content: ExpandPanelContentDirective;\n\n @ContentChild(ExpandPanelHeadDirective, { static: false })\n head: ExpandPanelHeadDirective;\n\n @Input() placeholder: string;\n @Input() open = true;\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Input() cookieName: string;\n @Input() direction: 'left' | 'right' = 'left';\n\n constructor() {}\n\n openPanel() {\n this.open = true;\n this.openChange.emit(true);\n this.saveCookie();\n }\n\n closePanel() {\n this.open = false;\n this.openChange.emit(false);\n this.saveCookie();\n }\n\n ngOnInit(): void {\n this.restoreCookie();\n }\n\n private saveCookie() {\n if (!this.cookieName?.length) {\n return;\n }\n localStorage.setItem(this.cookieName, JSON.stringify(this.open));\n }\n\n private restoreCookie() {\n if (!this.cookieName?.length) {\n return;\n }\n const cookie = localStorage.getItem(this.cookieName);\n this.open = cookie != null ? JSON.parse(cookie) : true;\n this.openChange.emit(this.open);\n }\n}\n","<ng-container *ngIf=\"open\">\n <teta-toolbar\n style=\"display: flex\"\n [style.justifyContent]=\"direction === 'right' ? 'space-between' : 'unset'\"\n [style.flexDirection]=\"direction === 'right' ? 'row-reverse' : 'row'\">\n <button\n teta-button\n [square]=\"true\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"closePanel()\"\n >\n <teta-icon [name]=\"direction === 'right' ? 'arrowRightKey' : 'arrowLeftKey'\"></teta-icon>\n </button>\n <span class=\"font-title-2\" style=\"display: contents\"><ng-container\n *ngTemplateOutlet=\"head?.template\"></ng-container></span>\n </teta-toolbar>\n <ng-container *ngTemplateOutlet=\"content?.template\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!open\">\n <div class=\"width-10 overflow-hidden\" style=\"height: 100%;\">\n <button\n teta-button\n style=\"\n transform-origin: 0 0;\n transform: rotate(-90deg) translateX(-100%);\n margin: 8px;\n \"\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"openPanel()\"\n >\n <div class=\"font-button-2 nowrap\">{{ placeholder }}</div>\n <teta-icon [name]=\"direction === 'right' ? 'arrowUpKey' : 'arrowDownKey'\"></teta-icon>\n </button>\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ExpandPanelComponent } from './expand-panel/expand-panel.component';\nimport { DelimiterModule } from '../delimiter/delimiter.module';\nimport { ToolbarModule } from '../toolbar/toolbar.module';\nimport { ButtonModule } from '../button/button.module';\nimport { IconModule } from '../icon/icon.module';\nimport { ExpandPanelHeadDirective } from './expand-panel-head.directive';\nimport { ExpandPanelContentDirective } from './expand-panel-content.directive';\n\n@NgModule({\n declarations: [\n ExpandPanelComponent,\n ExpandPanelHeadDirective,\n ExpandPanelContentDirective,\n ],\n exports: [\n ExpandPanelComponent,\n ExpandPanelHeadDirective,\n ExpandPanelContentDirective,\n ],\n imports: [\n CommonModule,\n DelimiterModule,\n ToolbarModule,\n ButtonModule,\n IconModule,\n ],\n})\nexport class ExpandPanelModule {}\n","import {\n ChangeDetectionStrategy,\n Component, ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output, TemplateRef,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'teta-file-upload-area',\n templateUrl: './file-upload-area.component.html',\n styleUrls: ['./file-upload-area.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileUploadAreaComponent implements OnInit {\n @HostBinding('class.file-upload') fileUpload = true;\n\n @HostBinding('class.file-upload_active')\n get fileUploadActive() {\n return this._asActive;\n }\n\n @Input() multiple = true;\n @Input() disabled: boolean;\n @Input() accept: string[];\n\n @Output() upload: EventEmitter<FileList> = new EventEmitter();\n\n @ViewChild('fileUpload', { static: false }) input: ElementRef;\n @ContentChild('buttonTemplate') buttonTemplate: TemplateRef<any>;\n files: any;\n\n private _asActive: boolean;\n\n constructor() {}\n\n @HostListener('dragenter', ['$event']) dragEnter(event) {\n this.preventDefaults(event);\n this._asActive = true;\n }\n\n @HostListener('dragover', ['$event']) dragOver(event) {\n this.preventDefaults(event);\n this._asActive = true;\n }\n\n @HostListener('dragleave', ['$event']) dragLeave(event) {\n this.preventDefaults(event);\n this._asActive = false;\n }\n\n @HostListener('drop', ['$event']) drop(event) {\n this.upload.emit(event.dataTransfer.files);\n this.preventDefaults(event);\n }\n\n ngOnInit() {}\n\n fileChanged(event: any) {\n if (event.target && event.target.files) {\n this.upload.emit(event.target.files);\n this.input.nativeElement.value = null;\n }\n }\n\n private preventDefaults(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","<ng-content></ng-content>\n<label class=\"file-upload-label\">\n <input #fileUpload\n id=\"upload-input\"\n class=\"file-upload-input\"\n type=\"file\"\n name=\"fileUpload\"\n [attr.accept]=\"accept\"\n [attr.multiple]=\"multiple ? 'multiple' : null\"\n [disabled]=\"disabled\"\n (change)=\"fileChanged($event)\"/>\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate || defaultTemplate\"\n ></ng-container>\n</label>\n<ng-template #defaultTemplate>\n <teta-button [palette]=\"'primary'\" type=\"button\">\n <teta-icon [name]=\"'search'\"></teta-icon>\n {{'common.browse' | transloco}}\n </teta-button>\n</ng-template>\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\n@Component({\n selector: 'teta-file-item',\n templateUrl: './file-item.component.html',\n styleUrls: ['./file-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileItemComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<p>file-item works!</p>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploadAreaComponent } from './file-upload-area/file-upload-area.component';\nimport { FileItemComponent } from './file-item/file-item.component';\nimport { ButtonModule } from '../button/button.module';\nimport { IconModule } from '../icon/icon.module';\nimport {TranslocoModule} from '@ngneat/transloco';\n\n@NgModule({\n declarations: [FileUploadAreaComponent, FileItemComponent],\n exports: [FileUploadAreaComponent, FileItemComponent],\n imports: [CommonModule, ButtonModule, IconModule, TranslocoModule],\n})\nexport class FileUploadModule {}\n","export class StringUtil {\n static firstLetterToLower(input: string) {\n return input.charAt(0).toLocaleLowerCase() + input.slice(1);\n };\n\n static firstLetterToUpper(input: string) {\n return input.charAt(0).toLocaleUpperCase() + input.slice(1);\n };\n}\n","import {IFilter} from '../contarct/i-filter';\nimport {StringUtil} from '../../../util/string-util';\n\nexport class FilterBase<T> implements IFilter<T> {\n field: string;\n name: string;\n value: T;\n\n constructor(options?: {\n field: string;\n name: string;\n }) {\n if (options) {\n this.field = StringUtil.firstLetterToLower(options.field);\n this.name = StringUtil.firstLetterToLower(options.name);\n }\n }\n}\n","import {FilterBase} from '../base/filter-base';\nimport {NumericFilterValue} from './numeric-filter-value';\n\nexport class NumericFilter extends FilterBase<NumericFilterValue> {\n strict: boolean;\n\n constructor(options?: {\n value?: NumericFilterValue;\n strict?: boolean;\n field: string;\n name: string;\n }) {\n super(options);\n this.value = options?.value || this.value;\n this.strict = options?.strict || false;\n }\n}\n","import {FilterState} from '../contarct/filter-state';\nimport {EventEmitter} from '@angular/core';\nimport {FilterItem} from '../contarct/filter-item';\nimport {IFilter} from '../contarct/i-filter';\nimport {IIdName} from '../../../common/contract/i-id-name';\n\nexport abstract class FilterComponentBase<T> {\n abstract column: FilterItem;\n abstract state: FilterState;\n abstract data: T[];\n abstract filterOptions: IIdName<any>[];\n abstract filterChanged: EventEmitter<IFilter<any>>;\n}\n","export class NumericFilterValue {\n /**\n * Значение должно быть меньше чем\n */\n lessThan: number | null | undefined;\n /**\n * Значение должно быть больше чем\n */\n greaterThan: number | null | undefined;\n /**\n * Значение должно быть равно\n */\n equalsTo: number | null | undefined;\n\n constructor(options?: {\n lessThan?: number | null | undefined;\n greaterThan?: number | null | undefined;\n equalsTo?: number | null | undefined;\n }) {\n if (options) {\n this.lessThan = options.lessThan;\n this.greaterThan = options.greaterThan;\n this.equalsTo = options.equalsTo;\n }\n }\n}\n","import {TetaLocalisation} from './teta-localisation';\n\nexport const enLocale: TetaLocalisation = {\n apply: 'Apply',\n cancel: 'Cancel',\n clear: 'Clear',\n pin: 'Pin',\n unpin: 'Unpin',\n sortAsc: 'Sort asc',\n sortDesc: 'Sort desc',\n clearSort: 'Clear sort',\n clearAllSort: 'Clear all sort',\n clearFilter: 'Clear filter',\n clearAllFilters: 'Clear all filters',\n autosizeColumn: 'Autosize column',\n autosizeAll: 'Autosize all columns',\n resetColumnsSize: 'Reset columns settings',\n from: 'From',\n to: 'To',\n all: 'All',\n min: 'Min',\n max: 'Max',\n sum: 'Sum',\n avg: 'Avg',\n search: 'Search',\n selected:'Selected',\n notSelected: 'Not selected',\n notFound:'Not found',\n yes: 'Yes',\n no: 'No',\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ],\n days: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday'\n ],\n daysShort: [\n 'Su',\n 'Mo',\n 'Tu',\n 'We',\n 'Th',\n 'Fr',\n 'Sa'\n ]\n};\n","import {Injectable} from '@angular/core';\nimport {TetaLocalisation} from './teta-localisation';\nimport {BehaviorSubject} from 'rxjs';\nimport {enLocale} from './en';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TetaConfigService {\n private defaultLocale: TetaLocalisation = enLocale;\n private locale$ = new BehaviorSubject<TetaLocalisation>(this.defaultLocale);\n locale = this.locale$.asObservable();\n\n constructor() {\n }\n\n setLocale(newLocale: TetaLocalisation) {\n if (newLocale) {\n this.locale$.next(newLocale);\n } else {\n this.locale$.next(this.defaultLocale);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { NumericFilter } from '../contarct/numeric-filter';\nimport { FilterComponentBase } from '../base/filter-component-base';\nimport { FilterBase } from '../base/filter-base';\nimport { FilterState } from '../contarct/filter-state';\nimport { FilterItem } from '../contarct/filter-item';\nimport { NumericFilterValue } from '../contarct/numeric-filter-value';\nimport { IIdName } from '../../../common/contract/i-id-name';\nimport {TetaConfigService} from '../../../locale/teta-config.service';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../locale/teta-localisation';\n\n@Component({\n selector: 'teta-numeric-filter',\n templateUrl: './numeric-filter.component.html',\n styleUrls: ['./numeric-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumericFilterComponent<T>\n extends FilterComponentBase<T>\n implements OnInit\n{\n @Input() column: FilterItem;\n @Input() data: T[];\n @Input() filterOptions: IIdName<any>[] = [];\n @Output() filterChanged: EventEmitter<FilterBase<NumericFilterValue>> =\n new EventEmitter<FilterBase<NumericFilterValue>>();\n\n filter: NumericFilter;\n\n private state$: FilterState;\n\n @Input()\n set state(val: FilterState) {\n this.state$ = val;\n this.filter = this.getFilter();\n this.changeDetector.detectChanges();\n }\n\n get state() {\n return this.state$;\n }\n locale: Observable<TetaLocalisation>;\n\n constructor(private changeDetector: ChangeDetectorRef,\n private _config: TetaConfigService) {\n super();\n this.locale = this._config.locale;\n }\n\n ngOnInit() {\n this.filter = this.getFilter();\n }\n\n private getFilter(): NumericFilter {\n let filter = this.state.numericFilters?.find(\n (f) => f.field === this.column.filterField\n );\n if (filter === null || filter === undefined) {\n filter = this.state.addNumericFilter(\n new NumericFilter({\n value: new NumericFilterValue(),\n field: this.column.filterField,\n name: this.column.name,\n strict: true,\n })\n );\n }\n return filter;\n }\n}\n","<div class=\"form-row padding-3\" *ngIf=\"locale | async as loc\">\n <teta-input [label]=\"loc.from\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.greaterThan\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"/>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <input class=\"input\" type=\"text\"\n style=\"width: 110px\"\n [tetaOnlyNumber]=\"true\"\n [ngModel]=\"filter.value?.lessThan\"\n (ngModelChange)=\"filter.value.lessThan=$event\"/>\n </teta-input>\n</div>\n","export enum StringFilterType {\n /**\n * Строгое совпадение\n */\n Equals = 1,\n /**\n * Начинается с указанной подстроки\n */\n StartsWith = 2,\n /**\n * Оканчивается указанной подстрокой\n */\n EndsWith = 3,\n /**\n * Содержит указанную подстроку\n */\n Contains = 4,\n}\n","import {FilterBase} from '../base/filter-base';\nimport {StringFilterType} from '../enum/string-filter-type.enum';\n\nexport class StringFilter extends FilterBase<string> {\n type: StringFilterType;\n\n constructor(options?: {\n value?: string;\n type?: StringFilterType;\n field: string;\n name: string;\n }) {\n super(options);\n if (options) {\n this.value = options.value || this.value;\n this.type = options.type || StringFilterType.Contains;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {StringFilter} from '../contarct/string-filter';\nimport {FilterState} from '../contarct/filter-state';\nimport {FilterBase} from '../base/filter-base';\nimport {FilterComponentBase} from '../base/filter-component-base';\nimport {FilterItem} from '../contarct/filter-item';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {TetaConfigService} from '../../../locale/teta-config.service';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../locale/teta-localisation';\n\n@Component({\n selector: 'teta-string-filter',\n templateUrl: './string-filter.component.html',\n styleUrls: ['./string-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StringFilterComponent<T>\n extends FilterComponentBase<T>\n implements OnInit {\n @Input() column: FilterItem;\n @Input() data: T[];\n @Input() filterOptions: IIdName<any>[] = [];\n @Output() filterChanged: EventEmitter<FilterBase<string>> =\n new EventEmitter<FilterBase<string>>();\n\n filter: StringFilter;\n state$: FilterState;\n\n @Input()\n set state(val: FilterState) {\n this.state$ = val;\n this.filter = this.getFilter();\n this.changeDetector.detectChanges();\n }\n\n get state() {\n return this.state$;\n }\n locale: Observable<TetaLocalisation>;\n\n constructor(private changeDetector: ChangeDetectorRef,\n private _config: TetaConfigService) {\n super();\n this.locale = this._config.locale;\n }\n\n ngOnInit() {\n }\n\n setFilter() {\n this.filterChanged.emit(this.filter);\n }\n\n private getFilter(): StringFilter {\n let filter = this.state.stringFilters.find(\n (f) => f.field === this.column.filterField\n );\n if (!filter) {\n filter = this.state.addStringFilter(\n new StringFilter({\n value: '',\n field: this.column.filterField,\n type: this.column.stringFilterType,\n name: this.column.name,\n })\n );\n }\n filter.type = this.column.stringFilterType;\n return filter;\n }\n}\n","<div class=\"padding-3\">\n <teta-input [label]=\"(locale | async)?.search\">\n <input type=\"text\" class=\"input\" [(ngModel)]=\"filter.value\" (blur)=\"setFilter()\" (keydown.enter)=\"setFilter()\" />\n </teta-input>\n</div>\n\n","export enum ListFilterType {\n None,\n Excluded\n}\n","import {FilterBase} from '../base/filter-base';\nimport {ListFilterType} from '../enum/list-filter-type.enum';\n\nexport class ListFilter extends FilterBase<any[]> {\n type: ListFilterType;\n\n constructor(options?: {\n value?: any[];\n type?: ListFilterType;\n field: string;\n name: string;\n }) {\n super(options);\n if (options) {\n this.value = options.value || this.value;\n this.type = options.type || ListFilterType.None;\n }\n }\n}\n","import {Directive, HostBinding} from \"@angular/core\";\n\n@Directive({\n selector: '[tetaScrollable]',\n})\nexport class ScrollableDirective {\n @HostBinding('class.scrollable_hide_scroll') private readonly hideScrollClass = true;\n}\n","import {inject, InjectionToken} from \"@angular/core\";\nimport {Observable, share} from \"rxjs\";\nimport {DOCUMENT} from \"@angular/common\";\n\nexport const ANIMATION_FRAME = new InjectionToken<Observable<DOMHighResTimeStamp>>(\n 'Shared Observable based on `window.requestAnimationFrame`',\n {\n factory: () => {\n const {requestAnimationFrame, cancelAnimationFrame} = inject(WINDOW);\n const animationFrame$ = new Observable<DOMHighResTimeStamp>(subscriber => {\n let id = NaN;\n const callback = (timestamp: DOMHighResTimeStamp) => {\n subscriber.next(timestamp);\n id = requestAnimationFrame(callback);\n };\n\n id = requestAnimationFrame(callback);\n\n return () => {\n cancelAnimationFrame(id);\n };\n });\n\n return animationFrame$.pipe(share());\n },\n },\n);\n\nexport const WINDOW = new InjectionToken<Window>(\n 'An abstraction over global window object',\n {\n factory: () => {\n const {defaultView} = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n },\n },\n);\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tetaZoneFull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tetaZoneFree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tetaZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));\n}\n","import {Directive, Inject, Input, TemplateRef, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaLet]'\n})\nexport class LetDirective<T> {\n @Input()\n tetaLet!: T;\n\n constructor(\n @Inject(ViewContainerRef) viewContainer: ViewContainerRef,\n @Inject(TemplateRef) templateRef: TemplateRef<LetContext<T>>,\n ) {\n viewContainer.createEmbeddedView(templateRef, new LetContext<T>(this));\n }\n\n static ngTemplateContextGuard<T>(\n _dir: LetDirective<T>,\n _ctx: any,\n ): _ctx is LetDirective<Exclude<T, null | undefined>> {\n return true;\n }\n}\n\nexport class LetContext<T> implements ContextWithImplicit<T> {\n constructor(private readonly internalDirectiveInstance: LetDirective<T>) {\n }\n\n get $implicit(): T {\n return this.internalDirectiveInstance.tetaLet;\n }\n\n get tetaLet(): T {\n return this.internalDirectiveInstance.tetaLet;\n }\n}\n\nexport interface ContextWithImplicit<T> {\n $implicit: T;\n}\n","import {\n ChangeDetectionStrategy,\n Component, ContentChild,\n ElementRef, EventEmitter, HostBinding, Inject,\n Injector, Input, NgZone, OnDestroy,\n OnInit, Output, ViewChild,\n} from '@angular/core';\nimport {ScrollableDirective} from \"../scrollable.directive\";\nimport {ANIMATION_FRAME} from \"../../../observable/animation-frame\";\nimport {fromEvent, Observable, tap} from \"rxjs\";\nimport {map, takeWhile, throttleTime} from \"rxjs/operators\";\nimport {tetaZoneFull} from \"../../../observable/zoneObservable\";\n\n@Component({\n selector: 'teta-scrollable',\n templateUrl: './scrollable.component.html',\n styleUrls: ['./scrollable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScrollableComponent implements OnInit, OnDestroy {\n @ContentChild(ScrollableDirective, {\n static: true,\n read: ElementRef\n }) private _scrollDirective: ElementRef;\n\n @ViewChild('scrollableWrapper', {\n static: true\n }) private _scrollableWrapper: ElementRef\n\n @ViewChild('scrollbarVertical', {\n static: true\n }) private _scrollbarVertical: ElementRef\n\n @ViewChild('scrollbarHorizontal', {\n static: true\n }) private _scrollbarHorizontal: ElementRef;\n\n @Input() direction: 'row' | 'column' = 'row';\n @Input()\n @HostBinding('class.show-scrollbars')\n showScrollbars = false;\n\n @Input() contentClass: string | string[];\n\n @Output() scroll = new EventEmitter<Event>();\n\n scrollSize: Observable<{\n clientHeight: number;\n clientWidth: number;\n scrollHeight: number;\n scrollWidth: number;\n }>;\n\n private _container: ElementRef;\n private _alive = true;\n\n constructor(private _elementRef: ElementRef,\n private _injector: Injector,\n private _ngZone: NgZone,\n @Inject(ANIMATION_FRAME) private _animationFrame: Observable<number>) {\n this.scrollSize = this._animationFrame.pipe(\n throttleTime(300),\n map(() => ({\n scrollHeight: this._container.nativeElement.scrollHeight,\n scrollWidth: this._container.nativeElement.scrollWidth,\n clientHeight: this._container.nativeElement.clientHeight,\n clientWidth: this._container.nativeElement.clientWidth,\n })),\n tetaZoneFull(this._ngZone)\n )\n }\n\n scrollVertical(event) {\n this._container.nativeElement.scrollTop = event.target.scrollTop;\n // this._elementRef.nativeElement.dispatchEvent(event);\n this.scroll.emit(event);\n }\n\n scrollHorizontal(event) {\n this._container.nativeElement.scrollLeft = event.target.scrollLeft;\n // this._elementRef.nativeElement.dispatchEvent(event);\n this.scroll.emit(event);\n }\n\n ngOnInit(): void {\n this._container = this._scrollableWrapper;\n if (this._scrollDirective) {\n this._container = this._scrollDirective;\n }\n\n fromEvent(this._container.nativeElement, 'scroll')\n .pipe(\n takeWhile(() => this._alive),\n tap((event: any) => {\n this._scrollbarHorizontal.nativeElement.scrollLeft = event.target.scrollLeft;\n this._scrollbarVertical.nativeElement.scrollTop = event.target.scrollTop;\n // this._elementRef.nativeElement.dispatchEvent(event);\n this.scroll.emit(event);\n })\n ).subscribe()\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n}\n","<div class=\"scroll-controls\" *tetaLet=\"scrollSize | async as size\">\n <div #scrollbarVertical\n [class.display-none]=\"size?.scrollHeight <= size?.clientHeight\"\n class=\"scroll-scrollbar scroll-scrollbar-vertical\"\n (scroll)=\"scrollVertical($event)\">\n <div [style.height.px]=\"size?.scrollHeight\" style=\"width: 1px;\"></div>\n </div>\n <div #scrollbarHorizontal\n [class.display-none]=\"size?.scrollWidth <= size?.clientWidth\"\n class=\"scroll-scrollbar scroll-scrollbar-horizontal\"\n (scroll)=\"scrollHorizontal($event)\">\n <div [style.width.px]=\"size?.scrollWidth\" style=\"height: 1px;\"></div>\n </div>\n</div>\n\n\n<!--<div #scrollableWrapper class=\"scroll-content-wrapper\">-->\n<!-- <div class=\"scroll-content\"-->\n<!-- [class.column]=\"direction === 'column'\">-->\n<!-- <!– <div class=\"scroll-content\">–>-->\n<!-- <ng-content></ng-content>-->\n<!-- </div>-->\n<!--</div>-->\n<div #scrollableWrapper class=\"scroll-content-wrapper\"\n [ngClass]=\"contentClass\"\n [class.column]=\"direction === 'column'\">\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ListFilter} from '../contarct/list-filter';\nimport {ListFilterType} from '../enum/list-filter-type.enum';\nimport {FilterComponentBase} from '../base/filter-component-base';\nimport {FilterBase} from '../base/filter-base';\nimport {FilterState} from '../contarct/filter-state';\nimport {FilterItem} from '../contarct/filter-item';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../locale/teta-localisation';\nimport {TetaConfigService} from '../../../locale/teta-config.service';\n\n@Component({\n selector: 'teta-list-filter',\n templateUrl: './list-filter.component.html',\n styleUrls: ['./list-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListFilterComponent<T> extends FilterComponentBase<T> implements OnInit {\n @Input() column: FilterItem;\n @Input() data: T[];\n @Input() filterOptions: IIdName<any>[] = [];\n @Output() filterChanged: EventEmitter<FilterBase<any[]>> =\n new EventEmitter<FilterBase<any[]>>();\n\n filter: ListFilter;\n state$: FilterState;\n search = '';\n locale: Observable<TetaLocalisation>;\n\n get visibleOptions() {\n return this.filterOptions?.filter(\n (option: IIdName<any>) => {\n return option.name?.toLowerCase().toString().indexOf(this.search?.toLowerCase()) >= 0;\n }\n );\n }\n\n @Input()\n set state(val: FilterState) {\n this.state$ = val;\n this.filter = this.getFilter();\n this.changeDetector.detectChanges();\n }\n\n get state() {\n return this.state$;\n }\n\n excluded: boolean;\n\n constructor(private changeDetector: ChangeDetectorRef,\n private _config: TetaConfigService) {\n super();\n this.locale = this._config.locale;\n }\n\n ngOnInit() {\n }\n\n all() {\n if (!this.filter?.value || this.filter?.value?.length === 0) {\n return false;\n }\n const notSet = this.visibleOptions?.find(\n (_) => this.filter?.value?.indexOf(_.id) < 0\n );\n if (!notSet) {\n return true;\n }\n return null;\n }\n\n setAll(value: boolean) {\n if (value) {\n this.setFilter(this.visibleOptions?.map((_) => _.id));\n } else {\n this.setFilter([]);\n }\n }\n\n setType() {\n this.excluded = !this.excluded;\n this.filter.type = this.excluded\n ? ListFilterType.Excluded\n : ListFilterType.None;\n }\n\n setFilter(value: any[]) {\n this.filter.value = value;\n this.filterChanged.emit(this.filter);\n }\n\n private getFilter(): ListFilter {\n let filter = this.state.listFilters?.find(\n (f) => f.field === this.column.filterField\n );\n if (!filter) {\n filter = this.state.addListFilter(\n new ListFilter({\n field: this.column.filterField,\n value: [],\n type: this.column.listFilterType,\n name: this.column.name,\n })\n );\n }\n this.excluded = filter.type === ListFilterType.Excluded;\n return filter;\n }\n}\n","<div class=\"padding-2\">\n <teta-text-field [(ngModel)]=\"search\"></teta-text-field>\n</div>\n<teta-scrollable class=\"column column_auto\" [contentClass]=\"['list', 'padding-v-2']\">\n <div class=\"list-item\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"all()\"\n (ngModelChange)=\"setAll($event)\">\n {{(locale | async)?.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item\" *ngFor=\"let option of visibleOptions\">\n <teta-checkbox [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [value]=\"option.id\"\n [binary]=\"false\">\n {{option.name}}\n </teta-checkbox>\n </div>\n</teta-scrollable>\n","export class DateFilterValue {\n /**\n * Значение должно быть меньше чем\n */\n lessThan: Date | undefined | null;\n /**\n * Значение должно быть больше чем\n */\n greaterThan: Date | undefined | null;\n\n constructor(options?: {\n lessThan?: Date | undefined | null;\n greaterThan?: Date | undefined | null;\n }) {\n if (options) {\n this.lessThan = (typeof options.lessThan === 'string') ? new Date(options.lessThan) : options.lessThan;\n this.greaterThan = (typeof options.greaterThan === 'string') ? new Date(options.greaterThan) : options.greaterThan;\n }\n }\n}\n","import {FilterBase} from '../base/filter-base';\nimport {DateFilterValue} from './date-filter-value';\n\nexport class DateFilter extends FilterBase<DateFilterValue> {\n constructor(options?: {\n value?: DateFilterValue;\n field: string;\n name: string;\n }) {\n super(options);\n if (options) {\n this.value = new DateFilterValue(options.value);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { DateFilterValue } from '../contarct/date-filter-value';\nimport { DateFilter } from '../contarct/date-filter';\nimport { FilterState } from '../contarct/filter-state';\nimport { FilterBase } from '../base/filter-base';\nimport { FilterComponentBase } from '../base/filter-component-base';\nimport { FilterItem } from '../contarct/filter-item';\nimport { IIdName } from '../../../common/contract/i-id-name';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../locale/teta-localisation';\nimport {TetaConfigService} from '../../../locale/teta-config.service';\n\n@Component({\n selector: 'teta-date-filter',\n templateUrl: './date-filter.component.html',\n styleUrls: ['./date-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DateFilterComponent<T> extends FilterComponentBase<T> implements OnInit {\n @Input() column: FilterItem;\n @Input() data: T[];\n @Input() filterOptions: IIdName<any>[] = [];\n @Output() filterChanged: EventEmitter<FilterBase<DateFilterValue>> =\n new EventEmitter<FilterBase<DateFilterValue>>();\n\n filter: DateFilter;\n state$: FilterState;\n\n @Input()\n set state(val: FilterState) {\n this.state$ = val;\n this.filter = this.getFilter();\n this.changeDetector.detectChanges();\n this.changeDetector.markForCheck();\n }\n\n get state() {\n return this.state$;\n }\n locale: Observable<TetaLocalisation>;\n\n constructor(private changeDetector: ChangeDetectorRef,\n private _config: TetaConfigService) {\n super();\n this.locale = this._config.locale;\n }\n\n ngOnInit() {\n this.filter = this.getFilter();\n }\n\n private getFilter(): DateFilter {\n let filter = this.state.dateFilters.find(\n (f) => f.field === this.column.filterField\n );\n if (filter === null || filter === undefined) {\n filter = this.state.addDateFilter(\n new DateFilter({\n value: new DateFilterValue(),\n field: this.column.filterField,\n name: this.column.name,\n })\n );\n }\n return filter;\n }\n}\n","<div class=\"form-row padding-3\" *ngIf=\"locale | async as loc\">\n <teta-input [label]=\"loc.from\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.greaterThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.greaterThan=$event\"></teta-date-picker>\n </teta-input>\n <teta-input [label]=\"loc.to\">\n <teta-date-picker style=\"width: 110px\"\n [ngModel]=\"filter.value?.lessThan\"\n [appendToBody]=\"false\"\n (ngModelChange)=\"filter.value.lessThan=$event\"></teta-date-picker>\n </teta-input>\n</div>\n","export enum FilterType {\n string,\n number,\n date,\n list,\n boolean,\n custom,\n}\n","import {FilterBase} from '../base/filter-base';\n\nexport class BooleanFilter extends FilterBase<boolean> {\n constructor(options?: { value?: boolean; field: string; name: string }) {\n super(options);\n this.value = !!options?.value;\n }\n}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Input,\n forwardRef,\n HostBinding,\n HostListener,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioButtonComponent } from '../radio-button/radio-button.component';\n\ntype ButtonOrNullOrUndefined = RadioButtonComponent | undefined | null;\n\n@Component({\n selector: 'teta-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioComponent implements OnInit, ControlValueAccessor {\n @HostBinding('tabindex') tabindex = 0;\n @HostBinding('class.radio') radioClass = true;\n\n /** Менять значение при изменении выбранного */\n @Input()\n @HostBinding('class.radio_inline')\n inline: boolean;\n\n @Input() checkChangeSelected = true;\n\n @Input() set disabled(val: boolean) {\n this.disabled$ = val;\n this.buttons$.forEach((b) => (b.disabled = this.disabled));\n }\n\n get disabled() {\n return this.disabled$;\n }\n\n @Input() get value(): any {\n if (this.checkedButton$) {\n return this.checkedButton$.value;\n }\n return null;\n }\n\n set value(val: any) {\n this.writeValue(val);\n }\n\n private buttons$: RadioButtonComponent[] = [];\n private checkedButton$: ButtonOrNullOrUndefined;\n private selectedButton$: ButtonOrNullOrUndefined;\n private disabled$ = false;\n\n constructor(private _cdr: ChangeDetectorRef) {}\n\n @HostListener('focus', ['$event'])\n focusHandler(event: FocusEvent) {\n this.selectFirst();\n }\n\n @HostListener('focusout', ['$event'])\n focusoutHandler(event: FocusEvent) {\n if (this.selectedButton$) {\n this.selectedButton$.selected = false;\n this.selectedButton$ = null;\n }\n }\n\n @HostListener('keydown', ['$event'])\n keyEvent(event: KeyboardEvent) {\n const key = event.code || event.key;\n switch (key) {\n case 'Space':\n case 'Enter':\n case 'Spacebar':\n this.checkSelected();\n break;\n\n case 'ArrowUp':\n case 'Up':\n case 'ArrowLeft':\n case 'Left':\n this.selectPrevious();\n break;\n\n case 'ArrowDown':\n case 'Down':\n case 'ArrowRight':\n case 'Right':\n this.selectNext();\n break;\n default:\n return;\n }\n\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n return false;\n }\n\n ngOnInit() {}\n\n selectFirst() {\n if (!this.selectedButton$) {\n if (this.checkedButton$) {\n this.selectedButton$ = this.checkedButton$;\n this.selectedButton$.selected = true;\n return true;\n }\n\n for (const btn of this.buttons$) {\n if (!btn.disabled) {\n this.selectedButton$ = btn;\n this.selectedButton$.selected = true;\n return true;\n }\n }\n }\n return false;\n }\n _setChecked(btn: RadioButtonComponent) {\n if (this.checkedButton$) {\n this.checkedButton$.checked = false;\n }\n this.checkedButton$ = btn;\n this.checkedButton$.checked = true;\n if (this.selectedButton$) {\n this.selectedButton$.selected = false;\n }\n this.selectedButton$ = btn;\n this.selectedButton$.selected = true;\n this._onChange(this.value);\n this._cdr.markForCheck();\n }\n\n _addButton(btn: RadioButtonComponent) {\n if (this.disabled) {\n btn.disabled = this.disabled;\n }\n return this.buttons$.push(btn) - 1;\n }\n\n _removeButton(btn: RadioButtonComponent) {\n const index = this.buttons$.indexOf(btn);\n if (index > -1) {\n this.buttons$.splice(index, 1);\n }\n }\n\n /** Writes a new value to the element. */\n writeValue(obj: any): void {\n if (this.checkedButton$) {\n this.checkedButton$.checked = false;\n }\n\n this.checkedButton$ = this.buttons$.find((b) => b.value === obj);\n if (this.checkedButton$) {\n this.checkedButton$.checked = true;\n }\n this._cdr.markForCheck();\n }\n\n /** model callback вызовется когда модель измениться из ui */\n _onChange: (value: any) => void = () => {};\n\n /** Registers a callback function that should be called when the control's value changes in the UI */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n _onTouched = () => {};\n\n /** Registers a callback function that should be called when the control receives a blur event. */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /** This function is called by the forms API when the control status changes to or from \"DISABLED\". */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdr.markForCheck();\n }\n\n private selectBtn(btn: RadioButtonComponent) {\n if (this.selectedButton$) {\n this.selectedButton$.selected = false;\n }\n this.selectedButton$ = btn;\n this.selectedButton$.selected = true;\n if (this.checkChangeSelected) {\n this.checkSelected();\n }\n this._cdr.markForCheck();\n }\n\n private selectNext() {\n if (this.selectFirst()) {\n return;\n }\n\n const length = this.buttons$.length;\n let newIndex = this.selectedButton$\n ? this.buttons$.indexOf(this.selectedButton$)\n : 0;\n let firstCycle = true;\n do {\n newIndex++;\n if (firstCycle && newIndex === length) {\n newIndex = 0;\n firstCycle = false;\n }\n const btn = this.buttons$[newIndex];\n if (btn && !btn.disabled) {\n this.selectBtn(btn);\n return;\n }\n } while (newIndex < length);\n }\n\n private selectPrevious() {\n if (this.selectFirst()) {\n return;\n }\n\n let newIndex = this.selectedButton$\n ? this.buttons$.indexOf(this.selectedButton$)\n : 0;\n let firstCycle = true;\n do {\n newIndex--;\n if (firstCycle && newIndex === -1) {\n newIndex = this.buttons$.length - 1;\n firstCycle = false;\n }\n const btn = this.buttons$[newIndex];\n if (btn && !btn.disabled) {\n this.selectBtn(btn);\n return;\n }\n } while (newIndex >= 0);\n }\n\n private checkSelected() {\n if (this.selectFirst()) {\n return;\n }\n if (this.selectedButton$) {\n this._setChecked(this.selectedButton$);\n }\n }\n}\n","<ng-content></ng-content>","import {\n Component,\n OnInit,\n Host,\n OnDestroy,\n ViewContainerRef,\n Input,\n HostListener,\n HostBinding,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { RadioComponent } from '../radio/radio.component';\n\n@Component({\n selector: 'teta-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements OnInit, OnDestroy {\n @HostBinding('class.radio-button')\n radioButton = true;\n\n @HostBinding('class.radio-button-selected')\n selected: boolean;\n\n @Input()\n @HostBinding('class.radio-button-checked')\n checked: boolean;\n\n @Input()\n @HostBinding('class.radio-button_disabled')\n disabled: boolean;\n\n @Input() set value(val: any) {\n this._value = val;\n }\n\n get value() {\n if (this._value === undefined) {\n if (this.container.element.nativeElement instanceof HTMLElement) {\n return this.container.element.nativeElement.innerText;\n }\n }\n return this._value;\n }\n\n private _value: any;\n\n constructor(\n private container: ViewContainerRef,\n @Host() public radio: RadioComponent\n ) {}\n\n @HostListener('click')\n hostClick() {\n if (!this.disabled) {\n this.radio._setChecked(this);\n }\n }\n\n ngOnInit() {\n this.radio._addButton(this);\n }\n\n ngOnDestroy(): void {\n this.radio._removeButton(this);\n }\n}\n","<div class=\"radio-button-icon\">\n <div *ngIf=\"checked\" class=\"radio-button-small-icon\"></div>\n</div>\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {FilterComponentBase} from '../base/filter-component-base';\nimport {FilterItem} from '../contarct/filter-item';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {FilterBase} from '../base/filter-base';\nimport {FilterState} from '../contarct/filter-state';\nimport {BooleanFilter} from '../contarct/boolean-filter';\nimport {TetaConfigService} from \"../../../locale/teta-config.service\";\nimport {Observable} from \"rxjs\";\nimport {TetaLocalisation} from \"../../../locale/teta-localisation\";\n\n@Component({\n selector: 'teta-boolean-filter',\n templateUrl: './boolean-filter.component.html',\n styleUrls: ['./boolean-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BooleanFilterComponent<T>\n extends FilterComponentBase<T>\n implements OnInit {\n @Input() column: FilterItem;\n @Input() data: T[];\n @Input() filterOptions: IIdName<any>[] = [];\n @Output() filterChanged: EventEmitter<FilterBase<boolean>> =\n new EventEmitter<FilterBase<boolean>>();\n\n filter: BooleanFilter;\n state$: FilterState;\n\n @Input()\n set state(val: FilterState) {\n this.state$ = val;\n this.filter = this.getFilter();\n this.changeDetector.detectChanges();\n }\n\n get state() {\n return this.state$;\n }\n\n locale: Observable<TetaLocalisation>;\n\n constructor(private changeDetector: ChangeDetectorRef, private _config: TetaConfigService) {\n super();\n this.locale = this._config.locale;\n }\n\n ngOnInit() {\n }\n\n setFilter() {\n this.filterChanged.emit(this.filter);\n }\n\n private getFilter(): BooleanFilter {\n let filter = this.state.booleanFilters.find(\n (f) => f.field === this.column.filterField\n );\n if (!filter) {\n filter = this.state.addBooleanFilter(\n new BooleanFilter({\n value: null,\n field: this.column.filterField,\n name: this.column.name,\n })\n );\n }\n return filter;\n }\n}\n","<div class=\"padding-3\" *ngIf=\"locale | async as loc\">\n <teta-radio [ngModel]=\"filter.value\" (ngModelChange)=\"setFilter()\">\n <teta-radio-button [value]=\"null\">{{loc?.notSelected}}</teta-radio-button>\n <teta-radio-button [value]=\"true\">{{loc?.yes}}</teta-radio-button>\n <teta-radio-button [value]=\"false\">{{loc?.no}}</teta-radio-button>\n </teta-radio>\n</div>\n","import { FilterType } from '../enum/filter-type.enum';\nimport { Type } from '@angular/core';\nimport { NumericFilterComponent } from '../numeric-filter/numeric-filter.component';\nimport { DateFilterComponent } from '../date-filter/date-filter.component';\nimport { ListFilterComponent } from '../list-filter/list-filter.component';\nimport { StringFilterComponent } from '../string-filter/string-filter.component';\nimport { FilterItem } from './filter-item';\nimport { BooleanFilterComponent } from '../boolean-filter/boolean-filter.component';\n\nconst filterComponentsMap: Map<FilterType, Type<any>> = new Map<\n FilterType,\n Type<any>\n>()\n .set(FilterType.number, NumericFilterComponent)\n .set(FilterType.date, DateFilterComponent)\n .set(FilterType.list, ListFilterComponent)\n .set(FilterType.string, StringFilterComponent)\n .set(FilterType.boolean, BooleanFilterComponent)\n .set(FilterType.custom, StringFilterComponent);\n\nexport const getFilterComponent = (item: FilterItem): Type<any> =>\n filterComponentsMap.has(item.filterType)\n ? filterComponentsMap.get(item.filterType)\n : StringFilterComponent;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport {FilterState} from '../contarct/filter-state';\nimport {FilterItem} from '../contarct/filter-item';\nimport {FilterBase} from '../base/filter-base';\nimport {FilterComponentBase} from '../base/filter-component-base';\nimport {takeWhile} from 'rxjs/operators';\nimport {getFilterComponent} from '../contarct/filter-component-map';\nimport {IIdName} from '../../../common/contract/i-id-name';\n\n@Component({\n selector: 'teta-filter-host',\n template: '',\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FilterHostComponent<T> implements OnInit, OnDestroy {\n @Input()\n set column(val: FilterItem) {\n this._column = val;\n if (this._init) {\n this._componentRef.instance.filterField = this._column;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n\n @Input()\n set state(val: FilterState) {\n this._state = val;\n if (this._init) {\n this._componentRef.instance.state = this._state;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n\n @Input()\n set data(data: T[]) {\n this._data = data;\n if (this._init) {\n this._componentRef.instance.data = this._data;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n\n @Input()\n set filterOptions(val: IIdName<any>[]) {\n this._filterOptions = val;\n if (this._init) {\n this._componentRef.instance.filterOptions = this._filterOptions;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n }\n }\n\n @Output() filterChanged: EventEmitter<FilterBase<any>> = new EventEmitter();\n\n private _alive = true;\n private _column: FilterItem;\n private _state: FilterState;\n private _data: T[];\n private _filterOptions: IIdName<any>[];\n private _componentRef: ComponentRef<any>;\n private _init: boolean;\n\n constructor(\n private viewContainerRef: ViewContainerRef\n ) {\n }\n\n ngOnInit() {\n if (!FilterComponentBase.isPrototypeOf(this._column.filterComponent)) {\n this._column.filterComponent = getFilterComponent(this._column);\n }\n this._componentRef =\n this.viewContainerRef.createComponent<FilterComponentBase<T>>(this._column.filterComponent);\n this._componentRef.instance.column = this._column;\n this._componentRef.instance.state = this._state;\n this._componentRef.instance.data = this._data;\n this._componentRef.instance.filterOptions = this._filterOptions;\n this._componentRef.injector.get(ChangeDetectorRef).detectChanges();\n this._init = true;\n this._componentRef.instance.filterChanged\n .pipe(takeWhile((_) => this._alive))\n .subscribe((filter: FilterBase<any>) => {\n this.filterChanged.emit(filter);\n });\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaSelectOption]'\n})\nexport class SelectOptionDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaSelectValue]'\n})\nexport class SelectValueDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\n\n@Directive({\n selector: '[tetaHighlight]',\n})\nexport class HighlightDirective {\n @Input() set tetaHighlight(text: string) {\n setTimeout(() => {\n if (this._initialElement) {\n this.elementRef.nativeElement.innerHTML = this._initialElement;\n }\n if (!text) {\n return;\n }\n const pattern = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n const searchWithOutRegExp = text\n .toLowerCase()\n .replace(pattern, '\\\\$&')\n .split(' ')\n .filter(t => t.length > 0)\n .join('|');\n this._initialElement = this.elementRef.nativeElement.innerHTML;\n this.recursiveReplaceNode(this.elementRef.nativeElement.childNodes, searchWithOutRegExp);\n }, 10);\n }\n\n private _initialElement = null;\n\n constructor(private elementRef: ElementRef) {\n }\n\n private recursiveReplaceNode(nodes: NodeListOf<ChildNode>, searchWithOutRegExp: string): boolean {\n let match = false;\n const cacheNodes: ChildNode[] = [];\n nodes.forEach((node: ChildNode) => {\n cacheNodes.push(node);\n });\n cacheNodes.forEach(node => {\n if (node.nodeType === 3) {\n if (node.nodeValue && node.nodeValue.search(new RegExp(searchWithOutRegExp, 'i')) > -1) {\n match = true;\n this.wrapNode(node, searchWithOutRegExp);\n }\n } else {\n match = this.recursiveReplaceNode(node.childNodes, searchWithOutRegExp) || match;\n }\n });\n\n return match;\n }\n\n private wrapNode(textNode: ChildNode, searchWithOutRegExp: string) {\n if (!textNode || !textNode.nodeValue) {\n return;\n }\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = textNode.nodeValue\n .replace(new RegExp(searchWithOutRegExp, 'gi'), match => `<mark>${match}</mark>`);\n\n const parentNode = textNode.parentNode;\n if (parentNode) {\n while (tempDiv.firstChild) {\n parentNode.insertBefore(tempDiv.firstChild, textNode);\n }\n parentNode.removeChild(textNode);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n} from '@angular/core';\nimport {Align} from '../../../common/enum/align.enum';\nimport {VerticalAlign} from '../../../common/enum/vertical-align.enum';\nimport {AutoCloseIgnoreCase} from '../../../common/contract/auto-close-ignore-case';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {SelectOptionDirective} from '../select-option.directive';\nimport {SelectValueDirective} from '../select-value.directive';\nimport {TetaConfigService} from \"../../../locale/teta-config.service\";\nimport {Observable} from \"rxjs\";\nimport {TetaLocalisation} from \"../../../locale/teta-localisation\";\nimport {viewType} from \"../../../common/model/view-type.model\";\n\n@Component({\n selector: 'teta-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectComponent implements ControlValueAccessor, OnInit {\n @HostBinding('class.select_multiple')\n @Input()\n multiple: boolean;\n\n @Input() set options(options: any[]) {\n this._options = options;\n if (this._internalValue !== null && this._internalValue !== undefined && this.options) {\n this.getSelectedValue(this._internalValue);\n }\n }\n\n get options() {\n return this._options;\n }\n\n @Input() invalid: boolean;\n @Input() align: Align = Align.minWidth;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.auto;\n @Input() autoClose = true;\n @Input() autoCloseIgnore: Array<AutoCloseIgnoreCase> = ['inside'];\n @Input() disabled: boolean;\n @Input() itemSize = 32;\n @Input() virtual: boolean;\n @Input() icon: string;\n @Input() placeholder: string;\n @Input() appendToBody: boolean;\n @Input() allowNull = true;\n @Input() viewType: viewType = 'rounded';\n @Input() notFoundText: string;\n @Input() valueRef: ((item: any) => any) | string;\n @Input() textRef: ((item: any) => string) | string;\n @Input() searchRef: string | ((item: any) => string);\n\n @ContentChild(SelectOptionDirective, {static: true})\n optionDirective: SelectOptionDirective;\n\n @ContentChild(SelectValueDirective, {static: true})\n valueDirective: SelectValueDirective;\n\n @HostBinding('class.select_open') open = false;\n\n @HostBinding('class.select') private readonly selectClass = true;\n\n @HostBinding('tabindex')\n private get tabindex() {\n return this.disabled ? null : 0;\n }\n\n @HostBinding('class.select_disabled')\n get isDisabled() {\n return this.disabled;\n }\n\n value: any | any[];\n searchText: string;\n locale: Observable<TetaLocalisation>;\n\n get visibleOptions(): any[] {\n if (!this.searchText) {\n return this.options;\n }\n return this.options?.filter(\n (option) =>\n this.getSearchString(option)\n .toLowerCase()\n .indexOf(this.searchText.toLowerCase()) >= 0\n );\n }\n\n private _options: any | any[];\n private _internalValue: any;\n\n constructor(\n private _cdr: ChangeDetectorRef,\n private _elementRef: ElementRef,\n private _config: TetaConfigService\n ) {\n this.locale = this._config.locale\n }\n\n clear() {\n let val: any;\n if (this.multiple === true) {\n val = [];\n } else {\n val = null;\n }\n this.value = val;\n this.onChange(this.value);\n this.open = false;\n this._cdr.markForCheck();\n this._cdr.detectChanges();\n }\n\n clickOption(option: any, event: MouseEvent): void {\n if (this.multiple === true) {\n if (!this.value?.length) {\n this.value = [];\n }\n if (this.value.indexOf(option) >= 0) {\n this.removeItem(option);\n } else {\n this.value = [...this.value, option];\n }\n this._internalValue = this.value.map((_) => this.getValue(_))\n this.onChange(this._internalValue);\n } else {\n this.value = option;\n this._internalValue = this.getValue(this.value);\n this.onChange(this._internalValue);\n this.open = false;\n }\n this._cdr.markForCheck();\n this._cdr.detectChanges();\n }\n\n itemSelected(option: any): boolean {\n if (this.multiple) {\n return this.value?.indexOf(option) >= 0;\n } else {\n return this.value === option;\n }\n }\n\n removeItemClick(option: any, event: MouseEvent): void {\n event.stopPropagation();\n this.removeItem(option);\n this._internalValue = this.value.map((_) => this.getValue(_))\n this.onChange(this._internalValue);\n }\n\n removeItem(option: any): void {\n this.value = this.value.filter((_) => _ !== option);\n }\n\n search(text: string): void {\n this.searchText = text;\n }\n\n getText(option: any): string {\n if (option == null) {\n return '';\n }\n switch (typeof this.textRef) {\n case 'string':\n return option[this.textRef];\n case 'function':\n return this.textRef(option);\n default:\n return option;\n }\n }\n\n getValue(option: any): any {\n switch (typeof this.valueRef) {\n case 'string':\n return option[this.valueRef];\n case 'function':\n return this.valueRef(option);\n default:\n return option;\n }\n }\n\n getSearchString(option: any): string {\n switch (typeof this.searchRef) {\n case 'string':\n return option[this.searchRef];\n case 'function':\n return this.searchRef(option);\n default:\n return '';\n }\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n ngOnInit(): void {\n }\n\n writeValue(value: any | any[]): void {\n this._internalValue = value;\n this.getSelectedValue(value)\n this._cdr.detectChanges();\n }\n\n onChange: (value: any) => void = () => {\n };\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n onTouched = () => {\n };\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cdr.markForCheck();\n }\n\n private getSelectedValue(value: any | any[]) {\n if (this.multiple) {\n this.value =\n value && this.options\n ? this.options.filter(\n (option) => value.indexOf(this.getValue(option)) > -1\n )\n : [];\n } else {\n this.value =\n this.options &&\n this.options?.find((option) => this.getValue(option) === value);\n }\n }\n}\n","<ng-container *tetaLet=\"locale | async as loc\">\n <teta-dropdown [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [autoClose]=\"autoClose\"\n [autoCloseIgnore]=\"autoCloseIgnore\"\n [(open)]=\"open\"\n [appendToBody]=\"appendToBody\"\n [disabled]=\"disabled\"\n [viewType]=\"viewType\"\n class=\"row row_auto\">\n <div tetaDropdownHead\n [class]=\"'row row_auto select-head select_'+viewType\"\n [class.select-head_invalid]=\"invalid\">\n <div class=\"row_auto flex align-center\">\n <teta-icon *ngIf=\"icon\" [name]=\"icon\" class=\"margin-right-1\"></teta-icon>\n <span class=\"placeholder\" *ngIf=\"(value == null || value?.length === 0)&&!multiple\">\n {{placeholder || loc.notSelected}}\n </span>\n <ng-container\n *ngTemplateOutlet=\"valueDirective ? valueDirective.template : valueDefault; context: {$implicit: value, value: value}\"></ng-container>\n </div>\n <teta-icon [name]=\"'arrowDownSmall'\"></teta-icon>\n </div>\n <div *ngIf=\"options?.length\" tetaDropdownContent class=\"select-body scrollable row_auto margin-h-2\"\n (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"searchRef\">\n <div class=\"select-search\">\n <teta-text-field [ngModel]=\"searchText\"\n [class]=\"'select_'+viewType\"\n (ngModelChange)=\"search($event)\"\n [placeholder]=\"loc.search\"\n [leftIconName]=\"'search'\"></teta-text-field>\n </div>\n </ng-container>\n <ng-container *ngIf=\"visibleOptions?.length;else notFound \">\n <ng-container *ngIf=\"!multiple && allowNull\">\n <div [class]=\"'list-item list-item_interactive select_'+viewType\"\n (click)=\"clear()\">\n {{loc.notSelected}}\n </div>\n <div class=\"list-divider margin-bottom-0\"></div>\n </ng-container>\n <ng-container *ngIf=\"!virtual\">\n <div class=\"select-list\">\n <div [class]=\"'list-item list-item_interactive justify-content-between select_'+viewType\"\n *ngFor=\"let option of visibleOptions\"\n [class.select-list-item_active]=\"itemSelected(option) && multiple\"\n [class.select-list-item]=\"multiple\"\n (click)=\"clickOption(option, $event)\">\n\n <span [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}\">\n </ng-container>\n </span>\n <teta-icon *ngIf=\"itemSelected(option) && multiple\" [name]=\"'tick'\" [palette]=\"'text'\"></teta-icon>\n </div>\n </div>\n </ng-container>\n <cdk-virtual-scroll-viewport *ngIf=\"virtual\"\n [itemSize]=\"40\"\n minBufferPx=\"200\"\n maxBufferPx=\"600\">\n <div [class]=\"'select-list-item select-list-item_interactive justify-content-between select_'+viewType\"\n *cdkVirtualFor=\"let option of visibleOptions; templateCacheSize: 0;\"\n [class.select-list-item_active]=\"itemSelected(option)\"\n [tetaHighlight]=\"searchText\"\n (click)=\"clickOption(option, $event)\">\n <div [tetaHighlight]=\"searchText\">\n <ng-container\n *ngTemplateOutlet=\"optionDirective ? optionDirective.template : optionDefault; context: {$implicit: option, option: option}\">\n </ng-container>\n </div>\n <teta-icon *ngIf=\"itemSelected(option)\" [name]=\"'tick'\" [palette]=\"'text'\"\n class=\"margin-left-2\"></teta-icon>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <div class=\"row row_auto select-chip-field flex-wrap\" *ngIf=\"multiple && value?.length\">\n <div *ngFor=\"let item of value\" class=\"tag\">\n {{getText(item)}}\n <teta-icon class=\"cursor-pointer\" [name]=\"'closeCircle'\" (click)=\"removeItemClick(item, $event)\"></teta-icon>\n </div>\n </div>\n\n </div>\n </teta-dropdown>\n <ng-template #notFound>\n <p\n class=\"padding-h-3 text-overflow-ellipsis overflow-hidden select-not-found-option\">{{notFoundText || loc.notFound}}</p>\n </ng-template>\n <ng-template #optionDefault let-option>\n {{getText(option)}}\n </ng-template>\n <ng-template #valueDefault let-value>\n <div class=\"row_auto overflow-hidden text-overflow-ellipsis\" *ngIf=\"multiple\">\n {{loc.selected + ' ' + value?.length}}\n </div>\n <ng-container *ngIf=\"!multiple\">\n <span class=\"row row_auto overflow-hidden text-overflow-ellipsis\">{{getText(value)}}</span>\n </ng-container>\n </ng-template>\n</ng-container>\n\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {HighlightDirective} from './highlight.directive';\n\n@NgModule({\n declarations: [HighlightDirective],\n exports: [HighlightDirective],\n imports: [\n CommonModule\n ]\n})\nexport class HighlightModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LetDirective} from './let.directive';\n\n@NgModule({\n declarations: [\n LetDirective\n ], exports: [\n LetDirective\n ],\n imports: [\n CommonModule\n ]\n})\nexport class LetModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ScrollableDirective} from './scrollable.directive';\nimport {ScrollableComponent} from './scrollable/scrollable.component';\nimport {LetModule} from \"../let/let.module\";\n\n@NgModule({\n declarations: [\n ScrollableDirective,\n ScrollableComponent,\n ],\n exports: [\n ScrollableDirective,\n ScrollableComponent,\n ],\n imports: [\n CommonModule,\n LetModule\n ]\n})\nexport class ScrollableModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SelectComponent} from './select/select.component';\nimport {DropdownModule} from '../dropdown/dropdown.module';\nimport {SelectOptionDirective} from './select-option.directive';\nimport {SelectValueDirective} from './select-value.directive';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {FormsModule} from '@angular/forms';\nimport {IconModule} from '../icon/icon.module';\nimport {HighlightModule} from '../../directive/highlight/highlight.module';\nimport {InputModule} from '../input/input.module';\nimport {LetModule} from \"../../directive/let/let.module\";\nimport {ScrollableModule} from \"../../directive/scrollable/scrollable.module\";\n\n@NgModule({\n declarations: [SelectComponent, SelectOptionDirective, SelectValueDirective],\n exports: [SelectComponent, SelectOptionDirective, SelectValueDirective],\n imports: [\n DropdownModule,\n CommonModule,\n ScrollingModule,\n FormsModule,\n IconModule,\n HighlightModule,\n InputModule,\n LetModule,\n ScrollableModule,\n ],\n})\nexport class SelectModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RadioComponent } from './radio/radio.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [RadioComponent, RadioButtonComponent],\n exports: [RadioComponent, RadioButtonComponent],\n imports: [CommonModule, FormsModule],\n})\nexport class RadioModule {}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NumericFilterComponent} from './numeric-filter/numeric-filter.component';\nimport {StringFilterComponent} from './string-filter/string-filter.component';\nimport {ListFilterComponent} from './list-filter/list-filter.component';\nimport {DateFilterComponent} from './date-filter/date-filter.component';\nimport {FilterHostComponent} from './filter-host/filter-host.component';\nimport {SelectModule} from '../select/select.module';\nimport {FormsModule} from '@angular/forms';\nimport {DatePickerModule} from '../date-picker/date-picker.module';\nimport {BooleanFilterComponent} from './boolean-filter/boolean-filter.component';\nimport {RadioModule} from '../radio/radio.module';\nimport {InputModule} from '../input/input.module';\nimport {CheckboxModule} from '../checkbox/checkbox.module';\nimport {OnlyNumberModule} from '../../directive/only-number/only-number.module';\nimport {ScrollableModule} from \"../../directive/scrollable/scrollable.module\";\n\n@NgModule({\n declarations: [\n NumericFilterComponent,\n StringFilterComponent,\n ListFilterComponent,\n DateFilterComponent,\n FilterHostComponent,\n BooleanFilterComponent,\n ],\n exports: [\n NumericFilterComponent,\n StringFilterComponent,\n ListFilterComponent,\n DateFilterComponent,\n FilterHostComponent,\n BooleanFilterComponent,\n ],\n imports: [\n CommonModule,\n SelectModule,\n FormsModule,\n DatePickerModule,\n RadioModule,\n InputModule,\n CheckboxModule,\n OnlyNumberModule,\n ScrollableModule,\n ],\n})\nexport class FilterModule {\n}\n","import {FilterType} from '../enum/filter-type.enum';\nimport {StringFilterType} from '../enum/string-filter-type.enum';\nimport {ListFilterType} from '../enum/list-filter-type.enum';\nimport {StringUtil} from '../../../util/string-util';\n\nexport class FilterItem {\n /**\n * Порядковый номер\n */\n sortOrder: number = Number.MAX_VALUE;\n /**\n * Название столбца для заголовка таблицы\n */\n caption: string;\n /**\n * Подсказка\n */\n hint: string;\n /**\n * Название столбца в строке результатов\n */\n name: string;\n /**\n * Возможность сортировать поле\n */\n sortable = true;\n /**\n * Возможность фильтровать поле\n */\n filterable = true;\n /**\n * Поле для сортировки\n */\n sortField: string;\n /**\n * Поле для фильтрации\n */\n filterField: string;\n /**\n * Тип фильтра\n */\n filterType: FilterType | null;\n /**\n * Тип сравнения строкового фильтра\n */\n stringFilterType: StringFilterType;\n /**\n * Тип сравнения строкового фильтра\n */\n listFilterType: ListFilterType;\n /**\n * Строгое сравнение\n */\n strict: boolean;\n /**\n * Компонент для рендера фильтра\n */\n filterComponent: any;\n\n /**\n * Дочерние элементы\n */\n columns: FilterItem[];\n\n constructor(options?: {\n sortOrder?: number;\n name?: string;\n caption?: string;\n hint?: string;\n sortable?: boolean;\n sortField?: string;\n filterable?: boolean;\n filterField?: string;\n filterType?: FilterType | null;\n stringFilterType?: StringFilterType;\n listFilterType?: ListFilterType;\n strict?: boolean;\n filterComponent?: any;\n columns?: FilterItem[];\n }) {\n this.sortOrder = options?.sortOrder ?? Number.MAX_VALUE;\n this.name = options?.name ?? '';\n this.caption = options?.caption ?? this.name;\n this.hint = options?.hint ?? '';\n this.sortable = options?.sortable ?? true;\n this.filterable = options?.filterable ?? true;\n this.sortField = StringUtil.firstLetterToLower(options?.sortField ?? this.name);\n this.filterField = StringUtil.firstLetterToLower(options?.filterField ?? this.name);\n this.filterType = options?.filterType;\n this.stringFilterType = options?.stringFilterType ?? StringFilterType.Contains;\n this.listFilterType = options?.listFilterType ?? ListFilterType.None;\n this.strict = options?.strict ?? false;\n this.filterComponent = options?.filterComponent;\n this.columns = options?.columns?.map(_ => new FilterItem(_)) ?? [];\n }\n}\n","import {StringUtil} from '../../../util/string-util';\n\nexport class SortParam {\n /**\n * Поле сортировки\n */\n field: string;\n /**\n * Направление (true: Asc, false: Desc)\n */\n asc: boolean;\n /**\n * Порядок сортировки\n */\n order: number;\n\n /**\n * Инициализация из анонимного объекта\n */\n constructor(options?: {\n field?: string;\n asc?: boolean;\n order?: number;\n }) {\n if (options) {\n this.field = StringUtil.firstLetterToLower(options.field || this.field);\n this.asc = options.asc || false;\n this.order = options.order || this.order;\n }\n }\n}\n","import { StringFilter } from './string-filter';\nimport { NumericFilter } from './numeric-filter';\nimport { DateFilter } from './date-filter';\nimport { ListFilter } from './list-filter';\nimport { SortParam } from './sort-param';\nimport { DateFilterValue } from './date-filter-value';\nimport { NumericFilterValue } from './numeric-filter-value';\nimport { ListFilterType } from '../enum/list-filter-type.enum';\nimport { BooleanFilter } from './boolean-filter';\n\nexport class FilterState {\n stringFilters: StringFilter[] = [];\n numericFilters: NumericFilter[] = [];\n dateFilters: DateFilter[] = [];\n listFilters: ListFilter[] = [];\n booleanFilters: BooleanFilter[] = [];\n sortParams: SortParam[] = [];\n\n constructor(options?: {\n stringFilters?: any[];\n booleanFilters?: any[];\n numericFilters?: any[];\n dateFilters?: any[];\n listFilters?: any[];\n sortParams?: any[];\n }) {\n if (options) {\n if (options.stringFilters && options.stringFilters.length) {\n this.stringFilters = options.stringFilters.map(\n (x: any) => new StringFilter(x)\n );\n }\n\n if (options.booleanFilters && options.booleanFilters.length) {\n this.booleanFilters = options.booleanFilters.map(\n (x: any) => new BooleanFilter(x)\n );\n }\n\n if (options.numericFilters && options.numericFilters.length) {\n this.numericFilters = options.numericFilters.map(\n (x: any) => new NumericFilter(x)\n );\n }\n\n if (options.dateFilters && options.dateFilters.length) {\n this.dateFilters = options.dateFilters.map(\n (x: any) => new DateFilter(x)\n );\n }\n\n if (options.listFilters && options.listFilters.length) {\n this.listFilters = options.listFilters.map(\n (x: any) => new ListFilter(x)\n );\n }\n\n if (options.sortParams && options.sortParams.length) {\n this.sortParams = options.sortParams.map((x: any) => new SortParam(x));\n }\n }\n }\n\n static restore(cookie: string): any {\n const state = localStorage.getItem(cookie) || 'null';\n return JSON.parse(state);\n }\n\n save(cookieName: string): void {\n if (cookieName) {\n localStorage.setItem(cookieName, JSON.stringify(this));\n }\n }\n\n addListFilter(value: ListFilter): ListFilter {\n if (this.listFilters === null || this.listFilters === undefined) {\n this.listFilters = [];\n }\n const filter = this.listFilters.find((f) => f.field === value.field);\n if (filter === null || filter === undefined) {\n this.listFilters.push(value);\n return value;\n } else {\n filter.value = value.value;\n return filter;\n }\n }\n\n addDateFilter(value: DateFilter): DateFilter {\n if (this.dateFilters === null || this.dateFilters === undefined) {\n this.dateFilters = [];\n }\n const filter = this.dateFilters.find((f) => f.field === value.field);\n if (filter === null || filter === undefined) {\n this.dateFilters.push(value);\n return value;\n } else {\n filter.value = value.value;\n return filter;\n }\n }\n\n addStringFilter(value: StringFilter): StringFilter {\n if (this.stringFilters === null || this.stringFilters === undefined) {\n this.stringFilters = [];\n }\n const filter = this.stringFilters.find((f) => f.field === value.field);\n if (filter === null || filter === undefined) {\n this.stringFilters.push(value);\n return value;\n } else {\n filter.value = value.value;\n return filter;\n }\n }\n\n addBooleanFilter(value: BooleanFilter): BooleanFilter {\n if (this.booleanFilters === null || this.booleanFilters === undefined) {\n this.booleanFilters = [];\n }\n const filter = this.booleanFilters.find((f) => f.field === value.field);\n if (filter === null || filter === undefined) {\n this.booleanFilters.push(value);\n return value;\n } else {\n filter.value = value.value;\n return filter;\n }\n }\n\n addNumericFilter(value: NumericFilter): NumericFilter {\n if (this.numericFilters === null || this.numericFilters === undefined) {\n this.numericFilters = [];\n }\n const filter = this.numericFilters.find((f) => f.field === value.field);\n if (filter === null || filter === undefined) {\n this.numericFilters.push(value);\n return value;\n } else {\n filter.value = value.value;\n return filter;\n }\n }\n\n clear(): void {\n this.sortParams.length = 0;\n\n this.stringFilters.map((f: StringFilter) => {\n f.value = '';\n });\n this.booleanFilters.map((f: BooleanFilter) => {\n f.value = null;\n });\n this.dateFilters.map((f: DateFilter) => {\n f.value = new DateFilterValue({\n lessThan: null,\n greaterThan: null,\n });\n });\n this.numericFilters.map((f: NumericFilter) => {\n f.value = new NumericFilterValue({\n lessThan: null,\n greaterThan: null,\n equalsTo: null,\n });\n });\n this.listFilters.map((f: ListFilter) => {\n f.value = [];\n f.type = ListFilterType.None;\n });\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'teta-icon-file',\n templateUrl: './icon-file.component.html',\n styleUrls: ['./icon-file.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconFileComponent implements OnInit {\n @Input() name: string;\n @Input() class;\n\n @HostBinding('class')\n private get getClass(): string {\n const result = [this.class, 'icon icon-file'];\n return result.join(' ');\n }\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n getName(): string {\n return `#${this.name}`;\n }\n}\n","<svg class=\"icon__image\">\n <use [attr.xlink:href]=\"getName()\"></use>\n</svg>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IconFileComponent} from './icon-file.component';\nimport {IconSpriteDirective} from \"../icon-sprite.directive\";\nimport {HttpClientModule} from '@angular/common/http';\n\n@NgModule({\n declarations: [\n IconFileComponent\n ],\n exports: [\n IconFileComponent\n ],\n imports: [\n CommonModule,\n HttpClientModule\n ]\n})\nexport class IconFileModule {\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {Message} from './model/message';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n message: Observable<Message>;\n clear: Observable<string>;\n\n private _message = new ReplaySubject<Message>(1);\n private _clear = new Subject<string>();\n\n\n constructor() {\n this.message = this._message.asObservable();\n this.clear = this._clear.asObservable();\n }\n\n add(message: Message) {\n if (message) {\n this._message.next(message);\n }\n }\n\n addMultiple(messages: Message[]) {\n if (messages && messages.length) {\n messages.forEach((n) => {\n this._message.next(n);\n });\n }\n }\n\n clearMessages(name: string) {\n this._clear.next(name);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {Message} from '../model/message';\n\n@Component({\n selector: 'teta-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MessageComponent implements AfterViewInit, OnDestroy {\n @Input() message: Message;\n @Input() index: number;\n @Output() closed: EventEmitter<any> = new EventEmitter();\n @Input() class;\n\n @HostBinding('class')\n private get getClass() {\n const result = ['message'];\n if (this.message.className?.length > 0) {\n result.push(...this.message.className);\n }\n if (this.message.palette) {\n result.push(`message-${this.message.palette}`);\n }\n result.push('message_' + this.message.viewType)\n return result.join(' ');\n }\n\n timeout: any;\n\n constructor() {\n }\n\n @HostListener('mouseleave')\n init() {\n if (!this.message.infinite) {\n this.timeout = setTimeout(() => {\n this.closed.emit({\n index: this.index,\n message: this.message,\n });\n }, this.message.duration);\n }\n }\n\n @HostListener('mouseenter')\n reset() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n\n closeMe(event: MouseEvent) {\n this.reset();\n\n this.closed.emit({\n index: this.index,\n message: this.message,\n });\n\n event.preventDefault();\n }\n\n ngAfterViewInit() {\n this.init();\n }\n\n ngOnDestroy() {\n this.reset();\n }\n}\n","<div class=\"row align-center justify-content-between\">\n <div class=\"font-title-2 padding-left-4\">\n {{message.title}}\n </div>\n <button teta-button\n type=\"button\"\n [square]=\"true\"\n [view]=\"'ghost'\"\n (click)=\"closeMe($event)\">\n <teta-icon class=\"fill-text-90\" [name]=\"'closeBig'\"></teta-icon>\n </button>\n</div>\n<div class=\"font-body-3 padding-v-2 padding-left-4\" *ngIf=\"!message.template && message.text\">\n {{message.text}}\n</div>\n<ng-container *ngIf=\"message.template\">\n <ng-container *ngTemplateOutlet=\"message.template; context: {$implicit: message}\"></ng-container>\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {MessageService} from '../message.service';\nimport {Message} from '../model/message';\nimport {Align} from '../../../common/enum/align.enum';\nimport {VerticalAlign} from '../../../common/enum/vertical-align.enum';\nimport {takeWhile} from 'rxjs/operators';\n\n@Component({\n selector: 'teta-message-host',\n templateUrl: './message-host.component.html',\n styleUrls: ['./message-host.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MessageHostComponent implements OnInit, OnDestroy {\n @Input() class;\n @Input() align: Align = Align.right;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.bottom;\n @Output() itemClose: EventEmitter<any> = new EventEmitter();\n\n messages: Message[] = [];\n private readonly _alignMap: Map<Align, string> = new Map<Align, string>()\n .set(Align.right, 'message-host_right')\n .set(Align.left, 'message-host_left')\n .set(Align.center, 'message-host_center');\n private readonly _valignMap: Map<VerticalAlign, string> = new Map<\n VerticalAlign,\n string\n >()\n .set(VerticalAlign.top, 'message-host_top')\n .set(VerticalAlign.center, 'message-host_vertical-center')\n .set(VerticalAlign.bottom, 'message-host_bottom');\n\n @HostBinding('class')\n private get getClass(): string {\n const result = [this.class, 'message-host'];\n if (this._alignMap.has(this.align)) {\n result.push(this._alignMap.get(this.align));\n }\n if (this._valignMap.has(this.verticalAlign)) {\n result.push(this._valignMap.get(this.verticalAlign));\n }\n return result.join(' ');\n }\n\n private _alive = true;\n\n constructor(private _svc: MessageService, private _cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this._svc.message\n .pipe(takeWhile((_) => this._alive))\n .subscribe((messages) => {\n if (messages) {\n if (!this.messages) {\n this.messages = [];\n }\n this.messages.push(messages);\n }\n this._cdr.markForCheck();\n });\n\n this._svc.clear\n .pipe(takeWhile((_) => this._alive))\n .subscribe((x: string) => {\n if (!x) {\n this.messages = [];\n } else {\n this.messages = this.messages?.filter((_) => _.name !== x);\n }\n this._cdr.markForCheck();\n });\n }\n\n closedItem(event: any) {\n this.messages.splice(event.index, 1);\n this.itemClose.emit({\n message: event.message,\n });\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n}\n","<teta-message\n *ngFor=\"let message of messages; let i=index\"\n (closed)=\"closedItem($event)\"\n [message]=\"message\"\n [index]=\"i\">\n</teta-message>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MessageHostComponent} from './message-host/message-host.component';\nimport {MessageComponent} from './message/message.component';\nimport {IconModule} from '../icon/icon.module';\nimport {ButtonModule} from '../button/button.module';\n\n@NgModule({\n declarations: [MessageHostComponent, MessageComponent],\n exports: [MessageHostComponent, MessageComponent],\n imports: [\n CommonModule,\n IconModule,\n ButtonModule\n ]\n})\nexport class MessageModule {\n}\n","import {TemplateRef} from '@angular/core';\nimport {viewType} from \"../../../common/model/view-type.model\";\n\nexport class Message {\n name: string | null | undefined;\n title: string | null | undefined;\n text: string | null | undefined;\n infinite: boolean;\n viewType?: viewType = \"rounded\";\n duration = 10000;\n className: string[] | null | undefined;\n palette = 'primary';\n template: TemplateRef<any>;\n\n constructor(options?: {\n name?: string;\n title: string;\n text?: string;\n infinite?: boolean;\n duration?: number;\n viewType?: viewType;\n palette?: string;\n className?: string[];\n template?: TemplateRef<any>;\n }) {\n if (options) {\n this.name = options.name;\n this.title = options.title;\n this.viewType = options.viewType || 'rounded';\n this.text = options.text;\n this.infinite = options.infinite || false;\n this.className = options.className;\n if (options.palette) {\n this.palette = options.palette;\n }\n this.template = options.template;\n if (options.duration && options.duration > 0) {\n this.duration = options.duration;\n }\n }\n }\n}\n","export enum ModalCloseReason {\n resolve,\n exit,\n backdrop,\n esc,\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { IModalConfig } from '../model/i-modal-config';\nimport { IModalResult } from '../model/i-modal-result';\nimport { ModalCloseReason } from '../model/modal-close-reason.enum';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'teta-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n animations: [\n trigger('dialog', [\n transition('void => *', [\n style({ top: '-100%' }),\n animate('150ms ease-in', style({ top: '0' })),\n ]),\n transition('* => void', [animate('150ms ease-in', style({ top: '-100%' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalContainerComponent {\n @Input() config: IModalConfig;\n @Output() closeEvent = new EventEmitter<IModalResult>();\n\n @HostBinding('attr.tabindex') tabindex = -1;\n @HostBinding('@dialog') dialog = true;\n\n @HostBinding('class')\n get classList(): string {\n const classList = ['modal__window'];\n if (this.config) {\n if (this.config && this.config.class) {\n classList.push(...this.config.class);\n }\n if (this.config.backdrop) {\n classList.push('modal__backdrop');\n }\n }\n return classList.join(' ');\n }\n\n constructor(private elRef$: ElementRef) {}\n\n @HostListener('keyup', ['$event']) keyup(event: KeyboardEvent): void {\n if (this.config && this.config.esc && !event.defaultPrevented) {\n const key = event.key || event.keyCode;\n\n if (key === 'Escape' || key === 'Esc' || key === 27) {\n this.closeEvent.emit({\n reason: ModalCloseReason.esc,\n });\n }\n }\n }\n\n @HostListener('click', ['$event']) click(event: MouseEvent): void {\n if (\n this.config.closeOnBackdropClick === true &&\n this.elRef$.nativeElement === event.target\n ) {\n this.closeEvent.emit({\n reason: ModalCloseReason.backdrop,\n });\n }\n }\n}\n","<div class=\"modal__container\" [class.modal__container_resize]=\"config?.resizable\">\n <ng-content></ng-content>\n</div>\n","import {IModalResult} from './i-modal-result';\n\nexport class CurrentModal {\n close: (result?: IModalResult) => void;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CurrentModal } from '../model/current-modal';\nimport { DynamicData } from '../../../common/contract/dynamic-data';\nimport { ModalCloseReason } from '../model/modal-close-reason.enum';\n\n@Component({\n selector: 'teta-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n})\nexport class DialogComponent implements OnInit {\n @Input() message: string;\n @Input() buttonText: string;\n @Input() buttonIcon: string;\n @Input() buttonPalette: string;\n @Input() showCancelButton: boolean;\n\n constructor(public modal: CurrentModal, private data: DynamicData) {}\n\n cancel() {\n this.modal.close({\n reason: ModalCloseReason.exit,\n });\n }\n\n ok() {\n this.modal.close({\n reason: ModalCloseReason.resolve,\n });\n }\n\n ngOnInit(): void {}\n}\n","<div class=\"padding-2 font-body-2\">\n {{message | transloco}}\n</div>\n<teta-toolbar class=\"justify-content-end\">\n <button teta-button\n *ngIf=\"showCancelButton\"\n (click)=\"cancel()\"\n [palette]=\"'text'\"\n [view]=\"'ghost'\">\n {{'common.cancel' | transloco}}\n </button>\n\n <button teta-button\n (click)=\"ok()\"\n [square]=\"!buttonText?.length\"\n [palette]=\"buttonPalette\">\n <teta-icon *ngIf=\"buttonIcon\" [name]=\"buttonIcon\"></teta-icon>\n <ng-container *ngIf=\"buttonText?.length > 0\">{{buttonText | transloco}}</ng-container>\n </button>\n</teta-toolbar>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ModalContainerComponent } from './modal-container/modal-container.component';\nimport { DialogComponent } from './dialog/dialog.component';\nimport { ToolbarModule } from '../toolbar/toolbar.module';\nimport { ButtonModule } from '../button/button.module';\nimport { TRANSLOCO_SCOPE, TranslocoModule } from '@ngneat/transloco';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [ModalContainerComponent, DialogComponent],\n exports: [ModalContainerComponent, DialogComponent],\n imports: [\n CommonModule,\n ToolbarModule,\n ButtonModule,\n TranslocoModule,\n IconModule,\n ],\n providers: [\n {\n provide: TRANSLOCO_SCOPE,\n useValue: { scope: 'common', alias: 'common' },\n multi: true,\n },\n ],\n})\nexport class ModalModule {}\n","import {Observable, Subject} from 'rxjs';\nimport {IModalResult} from './i-modal-result';\nimport {ComponentRef} from '@angular/core';\nimport {TetaContentRef} from '../../../common/contract/teta-content-ref';\nimport {ModalContainerComponent} from '../modal-container/modal-container.component';\n\nexport class ModalInstance<T = any> {\n onClose: Observable<IModalResult<T>>;\n private _onClose: Subject<IModalResult<T>> = new Subject<IModalResult<T>>();\n\n constructor(\n private _window: ComponentRef<ModalContainerComponent>,\n private _content: TetaContentRef\n ) {\n this.onClose = this._onClose.asObservable();\n if (this._window && this._window.instance) {\n this._window.instance.closeEvent.subscribe((event: IModalResult) => {\n this.close(event);\n });\n }\n }\n\n get window(): ComponentRef<ModalContainerComponent> {\n return this._window;\n }\n\n get component(): ComponentRef<any> | null {\n return this._content.componentRef ? this._content.componentRef : null;\n }\n\n close = (event?: IModalResult) => {\n this._onClose.next(event);\n this._onClose.complete();\n this.destroy();\n };\n\n private destroy(): void {\n this._window.destroy();\n\n if (this._content && this._content.viewRef) {\n setTimeout(() => {\n this._content.viewRef.destroy();\n }, 150);\n }\n }\n}\n","import { Inject, Injectable, Injector, TemplateRef, Type } from '@angular/core';\nimport { ModalInstance } from './model/modal-instance';\nimport { Subject } from 'rxjs';\nimport { DynamicComponentService } from '../../common/service/dynamic-component.service';\nimport { ModalCloseReason } from './model/modal-close-reason.enum';\nimport { IModalConfig } from './model/i-modal-config';\nimport { CurrentModal } from './model/current-modal';\nimport { DynamicData } from '../../common/contract/dynamic-data';\nimport { ModalContainerComponent } from './modal-container/modal-container.component';\nimport { IModalResult } from './model/i-modal-result';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private _stack: ModalInstance[] = [];\n private _modalChanged = new Subject<void>();\n private readonly _container: any;\n\n constructor(\n @Inject(DOCUMENT)\n private _document: any,\n private _injector: Injector,\n private _factory: DynamicComponentService\n ) {\n this._container = this._document.body;\n\n this._modalChanged.subscribe(() => {\n if (this._stack && this._stack.length > 0) {\n this.focus(this._stack[this._stack.length - 1]);\n }\n });\n }\n\n closeAll(): void {\n if (this._stack && this._stack.length > 0) {\n this._stack.forEach((instance: ModalInstance) => {\n instance.close({\n reason: ModalCloseReason.exit,\n });\n });\n }\n }\n\n create<T = any>(\n content: string | TemplateRef<any> | Type<any>,\n data?: any,\n config?: IModalConfig,\n injector?: Injector\n ): ModalInstance<T> {\n if (content === null || content === undefined) {\n throw new Error('Specify template or component to render');\n }\n if (config === null || config === undefined) {\n config = Object.assign(\n {\n backdrop: true,\n class: [],\n esc: true,\n },\n config\n );\n }\n if (injector === null || injector === undefined) {\n injector = this._injector;\n }\n const currentModal = new CurrentModal();\n const modalData = new DynamicData(data);\n\n injector = this.getInjector(currentModal, modalData, injector);\n const contentInstance = this._factory.createContent(\n content,\n injector,\n this.getContext(content, modalData, currentModal)\n );\n const window = this._factory.createComponent(\n ModalContainerComponent,\n contentInstance,\n injector,\n this._container\n );\n window.instance.config = config;\n\n const instance = new ModalInstance(window, contentInstance);\n currentModal.close = instance.close;\n this.register(instance);\n return instance;\n }\n\n private getContext(\n content: string | TemplateRef<any> | Type<any>,\n context: any,\n currentModal: CurrentModal\n ): any {\n if (content instanceof TemplateRef) {\n return {\n $implicit: {\n modal: currentModal,\n data: context,\n },\n modal: currentModal,\n data: context,\n close: (result: IModalResult): void => {\n currentModal.close(result);\n },\n };\n }\n return context;\n }\n\n private getInjector(\n currentModal: CurrentModal,\n data: DynamicData,\n parent: Injector\n ): Injector {\n return Injector.create({\n providers: [\n {\n provide: CurrentModal,\n useValue: currentModal,\n },\n {\n provide: DynamicData,\n useValue: data,\n },\n ],\n parent,\n });\n }\n\n private register(instance: ModalInstance): void {\n this._stack.push(instance);\n this._modalChanged.next();\n instance.onClose.subscribe(() => this.unregister(instance));\n }\n\n private unregister = (instance: ModalInstance) => {\n const index = this._stack.indexOf(instance);\n if (index > -1) {\n this._stack.splice(index, 1);\n this._modalChanged.next();\n }\n };\n\n private focus(instance: ModalInstance): void {\n if (instance && instance.window && instance.window.location.nativeElement) {\n setTimeout(() => {\n instance.window.location.nativeElement.focus();\n }, 0);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ModalService } from './modal.service';\nimport { Observable } from 'rxjs';\nimport { IModalResult } from './model/i-modal-result';\nimport { DialogComponent } from './dialog/dialog.component';\nimport { map } from 'rxjs/operators';\nimport { ModalCloseReason } from './model/modal-close-reason.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n constructor(private _modal: ModalService) {}\n\n alert(message: string): void {\n this.createDialog(message, 'common.ok', null, 'primary', false);\n }\n\n confirm(\n message: string,\n buttonText: string = 'common.ok',\n buttonIcon: string = null,\n buttonPalette: string = 'primary'\n ): Observable<boolean> {\n return this.createDialog(\n message,\n buttonText,\n buttonIcon,\n buttonPalette,\n true\n ).pipe(\n map((result: IModalResult) => result.reason === ModalCloseReason.resolve)\n );\n }\n\n private createDialog(\n message: string,\n buttonText: string = 'common.ok',\n buttonIcon: string = null,\n buttonPalette: string = 'primary',\n showCancelButton: boolean = true\n ): Observable<IModalResult> {\n const dialog = this._modal.create(\n DialogComponent,\n {\n message,\n buttonText,\n buttonIcon,\n buttonPalette,\n showCancelButton,\n },\n {\n esc: true,\n backdrop: true,\n }\n );\n return dialog.onClose;\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'teta-pager',\n templateUrl: './pager.component.html',\n styleUrls: ['./pager.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PagerComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<p>pager works!</p>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PagerComponent} from './pager/pager.component';\nimport {IconModule} from '../icon/icon.module';\n\n@NgModule({\n declarations: [PagerComponent],\n exports: [PagerComponent],\n imports: [\n CommonModule,\n IconModule\n ]\n})\nexport class PagerModule {\n}\n","export class PagerState {\n /**\n * Текущая страница\n */\n page = 0;\n\n /**\n * Количество записей на странице\n */\n pageSize = 30;\n /**\n * Количество страниц\n */\n count: number;\n /**\n * Количество записей\n */\n totalCount: number;\n /**\n * первая видимая страница\n */\n start: number;\n /**\n * Последняя видимая страница\n */\n end: number;\n /**\n * Список страниц\n */\n pages: number[];\n\n /**\n * Инициализация из анонимного объекта\n */\n constructor(options?: {\n page?: number;\n pageSize?: number;\n count?: number;\n totalCount?: number;\n }) {\n if (options) {\n this.pageSize = options.pageSize || 30;\n this.count = options.count !== null && options.count !== undefined ? options.count : this.count;\n this.totalCount = options.totalCount !== null && options.totalCount !== undefined ? options.totalCount : this.totalCount;\n this.page = options.page !== null && options.page !== undefined ? options.page : 0;\n this.createPages();\n }\n }\n\n createPages() {\n if (this.page > this.count) {\n this.page = this.count > 0 ? this.count - 1 : 0;\n }\n\n let start = 0;\n let end = this.count - 1;\n if (this.count > 5) {\n start = this.page - 2;\n end = this.page + 2;\n if (start < 0) {\n start = 0;\n end = 4;\n }\n const rightShift = this.count - 1 - end;\n if (rightShift < 0) {\n start = this.count - 5;\n end = this.count - 1;\n }\n }\n\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n\n this.start = start;\n this.end = end;\n this.pages = arr;\n }\n}\n","import {PagerState} from '../model/pager-state';\n\nexport class PagerUtil {\n static getPage<T>(data: T[], paging: PagerState): T[] {\n return data.slice(paging.page * paging.pageSize, (paging.page + 1) * paging.pageSize);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnInit,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'teta-panel',\n templateUrl: './panel.component.html',\n styleUrls: ['./panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('panel', [\n transition('void => *', [\n style({ opacity: '0' }),\n animate(300, style({ opacity: '1' })),\n ]),\n transition('* => void', [animate(150, style({ opacity: '0' }))]),\n ]),\n ],\n})\nexport class PanelComponent implements OnInit {\n @Input() width = 500;\n\n @HostBinding('@panel')\n private get panel() {\n return {\n value: true,\n params: { width: this.width },\n };\n }\n\n @HostBinding('class.column') private readonly column = true;\n @HostBinding('class.column_fixed') private readonly auto = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ng-content></ng-content>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PanelComponent} from './panel/panel.component';\n\n@NgModule({\n declarations: [PanelComponent],\n exports: [PanelComponent],\n imports: [\n CommonModule\n ]\n})\nexport class PanelModule {\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const SLIDER_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProgressBarComponent),\n multi: true,\n};\n\n@Component({\n selector: 'teta-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n providers: [SLIDER_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressBarComponent implements OnInit, ControlValueAccessor {\n @Input() min = 0;\n @Input() max = 100;\n @Input() step = 0;\n\n @ViewChild('progressSlider', { static: true })\n private readonly slider: ElementRef;\n @HostBinding('class.progress') private readonly progressBar = true;\n\n percent: number;\n moving: boolean;\n\n set value(value: number) {\n this._value = value;\n this.percent = this.setPercentFromValue();\n this._cdr.detectChanges();\n }\n\n get value() {\n return this._value;\n }\n\n get containerPosition() {\n const rect = this._elementRef.nativeElement.getBoundingClientRect();\n return { min: rect.x, max: rect.x + rect.width };\n }\n\n private _value;\n\n constructor(\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n private _cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private _document: any\n ) {}\n\n @HostListener('document:mouseup', ['$event']) mouseup() {\n this.moving = false;\n this.restoreGlobalMouseEvents();\n this.removeListener();\n }\n\n @HostListener('click', ['$event']) click = (event: MouseEvent) => {\n this.getMousePositionInPercents(event);\n };\n\n onChange(_: any) {}\n\n onTouched() {}\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {}\n\n writeValue(value: number): void {\n this.value = value;\n }\n\n mousedown = () => {\n this.moving = true;\n this.preventGlobalMouseEvents();\n this.addListener();\n };\n\n ngOnInit(): void {}\n\n private mousemove = (event: MouseEvent) => {\n event.preventDefault();\n this.getMousePositionInPercents(event);\n };\n\n private getMousePositionInPercents = (event: MouseEvent) => {\n const position = event.clientX - this.containerPosition.min;\n let percent =\n (100 / (this.containerPosition.max - this.containerPosition.min)) *\n position;\n percent = percent <= 0 ? 0 : percent > 100 ? 100 : percent;\n this.setValue(this.getValueFromPercent(percent));\n };\n\n private setValue(value: number) {\n this.value = value;\n this.onChange(this.value);\n }\n\n private getValueFromPercent(percent: number): number {\n if (percent === 0) {\n return this.min;\n }\n if (percent === 100) {\n return this.max;\n }\n const exactValue = this.min + (percent * (this.max - this.min)) / 100;\n if (!this.step || this.step <= 0 || isNaN(this.step)) {\n return exactValue;\n }\n return (\n Math.round((exactValue - this.min) / this.step) * this.step + this.min\n );\n }\n\n private preventGlobalMouseEvents = () => {\n this._document.body.style['pointer-events'] = 'none';\n };\n\n private restoreGlobalMouseEvents = () => {\n this._document.body.style['pointer-events'] = 'auto';\n };\n\n private addListener() {\n this._document.addEventListener('mousemove', this.mousemove);\n }\n\n private removeListener() {\n this._document.removeEventListener('mousemove', this.mousemove);\n }\n\n private setPercentFromValue() {\n const range = this.max - this.min;\n return (100 / range) * (this.value - this.min);\n }\n}\n","<div class=\"progress-bar\" [style.width.%]=\"percent\"></div>\n<div class=\"progress-slider\"\n [class.progress-slider_visible]=\"moving\"\n #progressSlider\n (mousedown)=\"mousedown()\"\n (click)=\"click($event)\"\n [style.left.%]=\"percent\"></div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ProgressBarComponent} from './progress-bar/progress-bar.component';\n\n@NgModule({\n declarations: [ProgressBarComponent],\n exports: [ProgressBarComponent],\n imports: [\n CommonModule\n ]\n})\nexport class ProgressBarModule {\n}\n","import {Directive, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaPropertyGridItemDescription]'\n})\nexport class PropertyGridItemDescriptionDirective {\n @Input('tetaPropertyGridItemDescription') name: string;\n\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import {\n AbstractControl,\n ControlContainer, NgForm, NgModelGroup,\n UntypedFormControl,\n UntypedFormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {TableColumn} from '../component/table/contract/table-column';\nimport {ArrayUtil} from '../common/util/array-util';\nimport {FilterType} from \"../component/filter/enum/filter-type.enum\";\nimport {Optional, Provider} from \"@angular/core\";\n\nexport class FormsUtil {\n static validateAllFormFields(formGroup: UntypedFormGroup) {\n formGroup.updateValueAndValidity();\n Object.keys(formGroup.controls).forEach((field) => {\n const control = formGroup.get(field);\n if (control instanceof UntypedFormControl) {\n control.markAsTouched({onlySelf: true});\n control.markAsDirty({onlySelf: true});\n } else if (control instanceof UntypedFormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n\n static controlIsInvalid(formGroup: UntypedFormGroup, controlName: string) {\n return (\n formGroup.controls[controlName]?.invalid &&\n formGroup.controls[controlName]?.dirty\n );\n }\n\n static getControlErrors(formGroup: UntypedFormGroup, controlName: string): string[] {\n if (FormsUtil.controlIsInvalid(formGroup, controlName)) {\n return Object.keys(formGroup.controls[controlName]?.errors);\n }\n return [];\n }\n\n static matchValuesValidator(\n matchTo: string\n ): (control: AbstractControl) => ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null =>\n !!control.parent &&\n !!control.parent.value &&\n control.value === control.parent.controls[matchTo].value\n ? null\n : {isMatching: false};\n }\n\n static requiredIf(\n value: boolean\n ): (control: AbstractControl) => ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null =>\n !!control.parent &&\n !!control.parent.value &&\n control.value != null &&\n value\n ? null\n : {isMatching: false};\n }\n\n static initFormFromColumns(columns: TableColumn[], dataItem: any) {\n const form = new UntypedFormGroup({});\n const flat = ArrayUtil.flatten(columns, 'columns');\n flat.forEach((column: TableColumn) => {\n const control = FormsUtil.initControlFromColumn(column, dataItem);\n form.registerControl(column.name, control);\n });\n return form;\n }\n\n static initControlFromColumn(column: TableColumn, dataItem: any) {\n return new UntypedFormControl(\n {\n value: dataItem ? dataItem[column.name] : undefined,\n disabled: !column.editable,\n },\n {\n validators: FormsUtil.getValidators(column),\n updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change'\n });\n }\n\n static getValidators(column: TableColumn) {\n const validators = [];\n if (column.required) {\n validators.push(Validators.required);\n validators.push(FormsUtil.validatorNotEmpty);\n }\n if (column.minValue != null) {\n validators.push(Validators.min(column.minValue));\n }\n if (column.maxValue != null) {\n validators.push(Validators.max(column.maxValue));\n }\n return validators;\n }\n\n static validatorNotEmpty(control: AbstractControl): ValidationErrors | null {\n if (control?.value?.toString()?.trim()?.length <= 0) {\n return {required: true}\n }\n return null;\n }\n\n static formProvider: Provider = {\n provide: ControlContainer,\n useFactory: FormsUtil.formFactory,\n deps: [\n [new Optional(), NgForm],\n [new Optional(), NgModelGroup],\n ],\n };\n\n static formFactory(ngForm: NgForm, ngModelGroup: NgModelGroup) {\n return ngModelGroup || ngForm || null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const TOGGLE_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n};\n\n@Component({\n selector: 'teta-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [TOGGLE_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent implements ControlValueAccessor, OnInit {\n @HostBinding('attr.tabindex') tabindex = 0;\n @HostBinding('class.toggle') toggleClass = true;\n\n get paletteClass() {\n if (this.palette) {\n return `toggle-button-${this.palette}`;\n }\n }\n\n @Input() palette = 'primary';\n @Input() noLabel: boolean;\n\n /**\n * компонент неактивен\n */\n @HostBinding('class.toggle_disabled')\n @Input()\n disabled: boolean;\n\n /**\n * Значение\n */\n private model$: boolean;\n\n get model(): any {\n return this.model$;\n }\n\n set model(v: any) {\n if (v !== this.model$) {\n this.model$ = v;\n this.onChange(v);\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n @HostListener('click')\n changeValue() {\n if (this.disabled) {\n return;\n }\n this.model = !this.model;\n }\n\n writeValue(model: boolean) {\n this.model$ = model;\n this.cdr.markForCheck();\n }\n\n ngOnInit() {}\n\n onChange(_: any) {}\n\n onTouched() {}\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","<span class=\"font-body-3 row_auto\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n<div class=\"toggle-button\" [class.toggle-button-on]=\"model\" [ngClass]=\"paletteClass\">\n <div class=\"toggle-button-circle\"></div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input, OnChanges,\n OnDestroy,\n OnInit, Optional,\n Output, QueryList, SimpleChanges,\n} from '@angular/core';\nimport {TableColumn} from '../../../table/contract/table-column';\nimport {IDictionary} from '../../../../common/contract/i-dictionary';\nimport {IIdName} from '../../../../common/contract/i-id-name';\nimport {FilterType} from '../../../filter/enum/filter-type.enum';\nimport {ControlContainer, FormGroup, NgForm} from '@angular/forms';\nimport {FormsUtil} from '../../../../util/forms-util';\nimport {TranslocoService} from '@ngneat/transloco';\nimport {Subscription} from 'rxjs';\nimport {Align} from '../../../../common/enum/align.enum';\nimport {PropertyGridItemDescriptionDirective} from \"../property-grid-item-description.directive\";\nimport {takeWhile} from \"rxjs/operators\";\n\n@Component({\n selector: 'teta-property-grid-item',\n templateUrl: './property-grid-item.component.html',\n styleUrls: ['./property-grid-item.component.scss'],\n viewProviders: [FormsUtil.formProvider],\n})\nexport class PropertyGridItemComponent<T> implements OnInit, OnDestroy, OnChanges {\n @Input() column: TableColumn;\n @Input() hideNonEditable: boolean;\n @Input() dict: IDictionary<IIdName<any>[]>;\n @Input() decimalPart: number;\n @Input() item: T;\n @Input() itemTemplates: QueryList<PropertyGridItemDescriptionDirective>;\n // @Input()\n // set formGroup(form: UntypedFormGroup) {\n // this._formGroup = form;\n // this._formSub?.unsubscribe();\n // this._formSub = this._formGroup?.controls[this.column.name]?.valueChanges\n // .pipe(\n // takeWhile(() => this._alive)\n // )\n // .subscribe((_) => {\n // this.controlValueChange.emit({\n // id: _,\n // name: this.column.name,\n // });\n // });\n // }\n\n get template() {\n return this.itemTemplates.find((item) => item.name === this.column.name)\n }\n\n get formGroup(): FormGroup {\n if (this._formGroup instanceof FormGroup) {\n return this._formGroup;\n }\n if (this._formGroup instanceof NgForm) {\n return this._formGroup.form;\n }\n return null;\n }\n\n @Input() horizontal: boolean;\n @Output() controlValueChange = new EventEmitter<IIdName<any>>();\n align = Align;\n filterTypeEnum = FilterType;\n\n // private _formGroup: UntypedFormGroup;\n private _formSub: Subscription;\n\n get caption(): string {\n if (this.column.filterType === FilterType.boolean) {\n return '';\n }\n return `${this.column.caption}${\n this.column.unit ? `, ${this.column.unit}` : ''\n }`;\n }\n\n private _alive = true;\n\n constructor(private _transloco: TranslocoService,\n @Optional() private _formGroup: ControlContainer) {\n }\n\n getDict() {\n const dict = this.dict ? this.dict[this.column.name] : [];\n if (this.column.parentName?.length > 0) {\n return dict?.filter(\n (dictItem: IIdName<any>) =>\n dictItem.parentId ===\n this.formGroup?.getRawValue()[this.column.parentName]\n );\n }\n return dict;\n }\n\n controlIsInvalid(controlName: string) {\n return FormsUtil.controlIsInvalid(this.formGroup, controlName);\n }\n\n getError(column: TableColumn): string {\n const control = this.formGroup?.get(column.name);\n if (control?.hasError('required')) {\n return this._transloco.translate('errors.field_is_required');\n }\n if (control?.hasError('min')) {\n return this._transloco.translate('errors.min_value', {\n value: column.minValue,\n });\n }\n if (control?.hasError('max')) {\n return this._transloco.translate('errors.max_value', {\n value: column.maxValue,\n });\n }\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n this._alive = false;\n this._formSub?.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.column && this.item) {\n this.formGroup.registerControl(this.column.name, FormsUtil.initControlFromColumn(this.column, this.item));\n this._formSub?.unsubscribe();\n this._formSub = this.formGroup?.controls[this.column.name]?.valueChanges\n .pipe(\n takeWhile(() => this._alive)\n )\n .subscribe((_) => {\n this.controlValueChange.emit({\n id: _,\n name: this.column.name,\n });\n });\n }\n }\n}\n","<teta-input [label]=\"caption\"\n [hint]=\"column.hint\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container *ngIf=\"template; else default\">\n <ng-container *ngTemplateOutlet=\"template.template;context: {$implicit: formGroup?.get(column.name)}\"></ng-container>\n </ng-container>\n <ng-template #default>\n <ng-container [ngSwitch]=\"column.filterType\"\n *ngIf=\"formGroup?.get(column.name)\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">\n {{column.caption}}\n </teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n\n [decimalPart]=\"column.filterType === filterTypeEnum.number ? decimalPart : null\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n </ng-template>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output, QueryList,\n} from '@angular/core';\nimport {TableColumn} from '../../../table/contract/table-column';\nimport {IDictionary} from '../../../../common/contract/i-dictionary';\nimport {IIdName} from '../../../../common/contract/i-id-name';\nimport {PropertyGridItemDescriptionDirective} from \"../property-grid-item-description.directive\";\n\n@Component({\n selector: 'teta-property-grid-group',\n templateUrl: './property-grid-group.component.html',\n styleUrls: ['./property-grid-group.component.scss'],\n})\nexport class PropertyGridGroupComponent<T> implements OnInit {\n @Input() column: TableColumn;\n @Input() hideNonEditable: boolean;\n @Input() dict: IDictionary<IIdName<any>[]>;\n @Input() item: T;\n @Input() horizontal: boolean;\n @Output() controlValueChange = new EventEmitter<IIdName<any>>();\n @Input() decimalPart: number;\n @Input() itemTemplates: QueryList<PropertyGridItemDescriptionDirective>;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n trackColumns(index: number, column: TableColumn): any {\n return column.name;\n }\n}\n","<teta-expand-item>\n <span ngProjectAs='head'>\n {{column.caption}}\n </span>\n <div class=\"form-container\">\n <ng-container *ngFor=\"let col of column.columns; trackBy: trackColumns\">\n <ng-container *ngIf=\"col.columns?.length < 1\">\n <teta-property-grid-item *ngIf=\"column.editable || !hideNonEditable\"\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"></teta-property-grid-item>\n </ng-container>\n <ng-container *ngIf=\"col.columns?.length > 0\">\n <teta-property-grid-group [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"></teta-property-grid-group>\n </ng-container>\n </ng-container>\n </div>\n</teta-expand-item>\n","import {\n AfterViewInit,\n Component, ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit, Optional,\n Output, QueryList,\n} from '@angular/core';\nimport {TableColumn} from '../../table/contract/table-column';\nimport {IDictionary} from '../../../common/contract/i-dictionary';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {ControlContainer, FormGroup, NgForm} from '@angular/forms';\nimport {PropertyGridItemDescriptionDirective} from \"./property-grid-item-description.directive\";\nimport {FormsUtil} from \"../../../util/forms-util\";\n\n@Component({\n selector: 'teta-property-grid',\n templateUrl: './property-grid.component.html',\n styleUrls: ['./property-grid.component.scss'],\n viewProviders: [FormsUtil.formProvider],\n})\nexport class PropertyGridComponent<T> implements OnInit, OnDestroy, AfterViewInit {\n @HostBinding('class.form-container') formClass = true;\n @ContentChildren(PropertyGridItemDescriptionDirective) itemTemplates: QueryList<PropertyGridItemDescriptionDirective>;\n @Input() hideNonEditable: boolean;\n @Input() columns: TableColumn[];\n @Input() dict: IDictionary<IIdName<any>[]>;\n @Input() set item(item: T) {\n this._item = item;\n if(this.formGroup) {\n this.formGroup.patchValue(item, {\n emitEvent: false\n });\n }\n }\n get item() {\n return this._item;\n }\n @Input() horizontal: boolean;\n @Input() decimalPart: number;\n\n @Output() controlValueChange = new EventEmitter<IIdName<any>>();\n\n private _alive = true;\n private _item: T;\n\n get formGroup(): FormGroup {\n if (this._formGroup instanceof FormGroup) {\n return this._formGroup;\n }\n if (this._formGroup instanceof NgForm) {\n return this._formGroup.form;\n }\n return null;\n }\n\n constructor(@Optional() private _formGroup: ControlContainer) {\n // console.log(this.formGroup)\n }\n\n onControlValueChange(event: IIdName<any>) {\n const affected = this.columns.filter((_) => _.parentName === event.name);\n if (affected?.length) {\n affected.forEach((item) => {\n const value = this.formGroup.getRawValue()[item.name];\n if (value) {\n const dictValue = this.getDictValue(value, item.name);\n if (dictValue && dictValue.parentId !== event.id) {\n const newObj = {};\n newObj[item.name] = null;\n this.formGroup.patchValue(newObj);\n }\n }\n });\n }\n this.controlValueChange.emit(event);\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n\n trackColumns(index: number, column: TableColumn): any {\n return column.name;\n }\n\n private getDictValue(value: any, name: string) {\n return this.dict[name]?.find((_) => _.id === value);\n }\n\n ngAfterViewInit(): void {\n }\n}\n","<ng-container *ngIf=\"columns?.length\">\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumns\">\n <teta-property-grid-item *ngIf=\"column.columns?.length < 1 && (column.editable || !hideNonEditable)\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [id]=\"column.name\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-item>\n <teta-property-grid-group *ngIf=\"column.columns?.length > 0 && (column.editable || !hideNonEditable)\"\n [id]=\"column.name\"\n [dict]=\"dict\"\n [column]=\"column\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"onControlValueChange($event)\"\n [hideNonEditable]=\"hideNonEditable\"></teta-property-grid-group>\n </ng-container>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToggleComponent } from './toggle/toggle.component';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [ToggleComponent],\n exports: [ToggleComponent],\n imports: [CommonModule, IconModule],\n})\nexport class ToggleModule {}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PropertyGridComponent} from './property-grid/property-grid.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {NumberPipeModule} from '../../pipe/number-pipe/number-pipe.module';\nimport {DatePickerModule} from '../date-picker/date-picker.module';\nimport {SelectModule} from '../select/select.module';\nimport {PropertyGridGroupComponent} from './property-grid/property-grid-group/property-grid-group.component';\nimport {PropertyGridItemComponent} from './property-grid/property-grid-item/property-grid-item.component';\nimport {OnlyNumberModule} from '../../directive/only-number/only-number.module';\nimport {InputModule} from '../input/input.module';\nimport {ToggleModule} from '../toggle/toggle.module';\nimport {TRANSLOCO_SCOPE, TranslocoModule} from '@ngneat/transloco';\nimport {HintModule} from '../../directive/hint/hint.module';\nimport {ExpandCardModule} from \"../expand-card/expand-card.module\";\nimport {PropertyGridItemDescriptionDirective} from './property-grid/property-grid-item-description.directive';\n\n@NgModule({\n declarations: [\n PropertyGridComponent,\n PropertyGridGroupComponent,\n PropertyGridItemComponent,\n PropertyGridItemDescriptionDirective,\n ],\n exports: [PropertyGridComponent, PropertyGridItemDescriptionDirective],\n imports: [\n CommonModule,\n FormsModule,\n NumberPipeModule,\n DatePickerModule,\n SelectModule,\n OnlyNumberModule,\n InputModule,\n ToggleModule,\n ReactiveFormsModule,\n TranslocoModule,\n HintModule,\n ExpandCardModule,\n ],\n providers: [\n {\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'errors', alias: 'errors'},\n multi: true,\n },\n ],\n})\nexport class PropertyGridModule {\n}\n","export enum SidebarPosition {\n left,\n right,\n bottom,\n top\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { SidebarPosition } from '../sidebar-position.enum';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'teta-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('sidebar', [\n transition('void => *', [\n style({ opacity: '0' }),\n animate(300, style({ opacity: '1' })),\n ]),\n transition('* => void', [animate(300, style({ opacity: '0' }))]),\n ]),\n ],\n})\nexport class SidebarComponent implements OnInit {\n @Input() position: SidebarPosition = SidebarPosition.left;\n @Input() backdrop: boolean;\n @Input() open: boolean;\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Input() className: string | string[];\n\n @HostBinding('style.z-index') zIndex = 10;\n\n sidebarPosition = SidebarPosition;\n\n constructor() {}\n\n setOpen(value: boolean) {\n this.open = value;\n this.openChange.emit(this.open);\n }\n\n ngOnInit(): void {}\n}\n","<div *ngIf=\"backdrop && open\"\n [@sidebar]\n (click)=\"setOpen(false)\"\n class=\"sidebar-backdrop\"></div>\n<div class=\"sidebar\"\n [@sidebar]\n [ngClass]=\"className\"\n [class.sidebar-top]=\"position === sidebarPosition.top\"\n [class.sidebar-bottom]=\"position === sidebarPosition.bottom\"\n [class.sidebar-left]=\"position === sidebarPosition.left\"\n [class.sidebar-right]=\"position === sidebarPosition.right\"\n *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport {ButtonModule} from '../button/button.module';\nimport {IconModule} from '../icon/icon.module';\n\n@NgModule({\n declarations: [SidebarComponent],\n exports: [SidebarComponent],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule\n ]\n})\nexport class SidebarModule { }\n","import {Injectable} from '@angular/core';\nimport {Observable, ReplaySubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SwitchService {\n readonly value: Observable<any>;\n private readonly value$: ReplaySubject<any> = new ReplaySubject<any>(1);\n\n constructor() {\n this.value = this.value$.asObservable();\n }\n\n setValue(value: any) {\n this.value$.next(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {SwitchService} from '../switch.service';\nimport {filter, takeWhile} from 'rxjs/operators';\nimport {viewType} from \"../../../common/model/view-type.model\";\n\nexport const SWITCH_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n};\n\n@Component({\n selector: 'teta-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [SWITCH_CONTROL_VALUE_ACCESSOR, SwitchService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SwitchComponent\n implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() viewType: viewType = 'rounded'\n @HostBinding('class.switch') switchClass = true;\n\n @HostBinding('class')\n get class() {\n return `switch_` + this.viewType\n }\n\n private _alive = true;\n private _value: any;\n\n constructor(private svc: SwitchService, private cdr: ChangeDetectorRef) {\n this.svc.value\n .pipe(\n takeWhile((_) => this._alive),\n filter((_) => _ !== this._value)\n )\n .subscribe((_) => {\n this.onChange(_);\n this._value = _;\n });\n }\n\n writeValue(model: any) {\n this._value = model;\n this.svc.setValue(model);\n this.cdr.markForCheck();\n }\n\n onChange(_: any) {\n }\n\n onTouched() {\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { SwitchService } from '../switch.service';\nimport { takeWhile } from 'rxjs/operators';\n\n@Component({\n selector: 'teta-switch-button',\n templateUrl: './switch-button.component.html',\n styleUrls: ['./switch-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SwitchButtonComponent implements OnInit, OnDestroy {\n @Input() value: any;\n @Input() class: string;\n\n @HostBinding('class')\n private get getClass(): string {\n const result = [this.class, 'switch-button'];\n if (\n this.svcValue === this.value ||\n (this.svcValue instanceof Array && this.svcValue.indexOf(this.value) >= 0)\n ) {\n result.push('switch-button_active');\n }\n return result.join(' ');\n }\n\n private svcValue: any;\n private _alive = true;\n\n constructor(private svc: SwitchService, private cdr: ChangeDetectorRef) {\n this.svc.value.pipe(takeWhile((_) => this._alive)).subscribe((_) => {\n this.svcValue = _;\n this.cdr.markForCheck();\n });\n }\n\n @HostListener('click', ['$event']) click(event: MouseEvent): void {\n this.svc.setValue(this.value);\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-content></ng-content>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SwitchComponent} from './switch/switch.component';\nimport {SwitchButtonComponent} from './switch-button/switch-button.component';\n\n\n@NgModule({\n declarations: [SwitchComponent, SwitchButtonComponent],\n exports: [SwitchComponent, SwitchButtonComponent],\n imports: [\n CommonModule\n ]\n})\nexport class SwitchModule {\n}\n","import {FilterItem} from '../../filter/contarct/filter-item';\nimport {FilterType} from '../../filter/enum/filter-type.enum';\nimport {StringFilterType} from '../../filter/enum/string-filter-type.enum';\nimport {ListFilterType} from '../../filter/enum/list-filter-type.enum';\nimport {AggregationType} from '../enum/aggregation-type.enum';\nimport {ICellInstance} from './i-cell-instance';\nimport {HeadDropdownTabConfig} from './head-dropdown-tab';\n\nexport class TableColumn extends FilterItem {\n /**\n * Ширина\n */\n width = 80;\n /**\n * Коэффициент растяжения ячейки\n */\n flex = 1;\n /**\n * Стобец закреплен\n */\n locked: boolean;\n /**\n * Название столбца в строке результатов\n */\n // override name: string = '';\n /**\n * Название столбца родителя\n */\n parentName: string;\n /**\n * Название столбца для заголовка таблицы\n */\n // override caption: string = '';\n /**\n * Единицы измерения\n */\n unit: string;\n unitMeasureParameterId: number;\n unitId: number;\n /**\n * список style классов для шапки таблицы\n */\n headCellClass: string[];\n /**\n * список style классов для ячейки таблицы\n */\n cellClass: string[];\n /**\n * Дополнительные данные, свободное описание, доступны внутри компонета ячейки, можно прокинуть callback например\n */\n data: any;\n /**\n * Колонка доступна для редактирования\n */\n editable: boolean | ((coordinates: ICellInstance<any>) => boolean);\n /**\n * Компонент для рендера ячейки\n */\n cellComponent: any;\n /**\n * Компонент для рендера заголовка столбца ячейки\n */\n headCellComponent: any;\n /**\n * Custom head dropdown for column\n */\n headDropdownConfig: HeadDropdownTabConfig;\n /**\n * Дочерние колонки\n */\n override columns: TableColumn[] = [];\n\n /**\n * Aggregate type\n */\n aggregate: AggregationType;\n\n /**\n * Значение по умолчанию при создании записи\n */\n defaultValue: any;\n\n /**\n * Значение по умолчанию при создании записи\n */\n maxValue: number;\n\n /**\n * Значение по умолчанию при создании записи\n */\n minValue: number;\n\n /**\n * Поле обязательно для заполнения\n */\n required: boolean;\n\n /**\n * Инициализация из анонимного объекта\n */\n constructor(options?: {\n width?: number;\n flex?: number;\n sortOrder?: number;\n locked?: boolean;\n name?: string;\n parentName?: string;\n caption?: string;\n hint?: string;\n unit?: string;\n unitMeasureParameterId?: number;\n unitId?: number;\n sortable?: boolean;\n sortField?: string;\n filterable?: boolean;\n filterField?: string;\n filterType?: FilterType | null;\n stringFilterType?: StringFilterType;\n listFilterType?: ListFilterType;\n strict?: boolean;\n headCellClass?: string[];\n cellClass?: string[];\n data?: any;\n editable?: boolean | ((coordinates: ICellInstance<any>) => boolean);\n objectType?: boolean;\n cellComponent?: any;\n headCellComponent?: any;\n headDropdownConfig?: HeadDropdownTabConfig;\n filterComponent?: any;\n columns?: any[];\n aggregate?: AggregationType;\n defaultValue?: any;\n maxValue?: number;\n minValue?: number;\n required?: boolean;\n }) {\n super(options);\n this.width = options?.width ?? 80;\n this.flex = options?.flex ?? 1;\n this.headCellClass = options?.headCellClass ?? [];\n this.cellClass = options?.cellClass ?? [];\n this.locked = options?.locked ?? false;\n this.parentName = options?.parentName;\n this.unit = options?.unit ?? '';\n this.unitMeasureParameterId = options?.unitMeasureParameterId;\n this.unitId = options?.unitId;\n this.data = options?.data;\n this.editable = options?.editable ?? true;\n this.headCellComponent = options?.headCellComponent;\n this.headDropdownConfig = options?.headDropdownConfig;\n this.cellComponent = options?.cellComponent;\n this.aggregate = options?.aggregate;\n this.defaultValue = options?.defaultValue;\n this.maxValue = options?.maxValue;\n this.minValue = options?.minValue;\n this.required = options?.required;\n this.columns = options?.columns?.map((x) => new TableColumn(x)) ?? [];\n }\n}\n","import {TableColumn} from './table-column';\n\nexport class ColumnReorderEvent {\n source: TableColumn;\n target: TableColumn;\n\n constructor(source: TableColumn, target: TableColumn) {\n this.source = source;\n this.target = target;\n }\n}\n","import {FilterState} from '../../filter/contarct/filter-state';\nimport {TableColumn} from '../contract/table-column';\nimport {SortParam} from '../../filter/contarct/sort-param';\nimport {FilterType} from '../../filter/enum/filter-type.enum';\nimport {SortEvent} from '../contract/sort-event';\n\nexport class StateUtil {\n static hasSortedColumns(state: FilterState): boolean {\n return state.sortParams && state.sortParams.length > 0;\n }\n\n static hasFilteredColumns(state: FilterState): boolean {\n let hasFilters = false;\n if (\n state.stringFilters &&\n state.stringFilters.some((filter) => filter.value && filter.value.length)\n ) {\n hasFilters = true;\n }\n if (\n state.listFilters &&\n state.listFilters.some((filter) => filter.value && filter.value.length)\n ) {\n hasFilters = true;\n }\n if (\n state.numericFilters &&\n state.numericFilters.some(\n (filter) =>\n filter &&\n filter.value &&\n ((filter.value.lessThan !== null &&\n filter.value.lessThan !== undefined) ||\n (filter.value.greaterThan !== null &&\n filter.value.greaterThan !== undefined) ||\n (filter.value.equalsTo !== null &&\n filter.value.equalsTo !== undefined))\n )\n ) {\n hasFilters = true;\n }\n if (\n state.dateFilters &&\n state.dateFilters.some(\n (filter) =>\n filter &&\n filter.value &&\n ((filter.value.lessThan !== null &&\n filter.value.lessThan !== undefined) ||\n (filter.value.greaterThan !== null &&\n filter.value.greaterThan !== undefined))\n )\n ) {\n hasFilters = true;\n }\n\n return hasFilters;\n }\n\n static getSortState(\n state: FilterState,\n column: TableColumn\n ): SortParam | null {\n if (state?.sortParams && state.sortParams.length) {\n const param = state.sortParams.find((x) => x.field === column.sortField);\n if (param) {\n return param;\n }\n }\n return null;\n }\n\n static isColumnFiltered(state: FilterState, column: TableColumn): boolean {\n if (!column.filterable) {\n return;\n }\n let filtered = false;\n switch (column.filterType) {\n case FilterType.string:\n if (state?.stringFilters) {\n const filter = state.stringFilters.find(\n (x) => x.field === column.filterField\n );\n if (filter && filter.value && filter.value.length) {\n filtered = true;\n }\n }\n break;\n case FilterType.list:\n if (state?.listFilters) {\n const filter = state.listFilters.find(\n (x) => x.field === column.filterField\n );\n if (filter && filter.value && filter.value.length) {\n filtered = true;\n }\n }\n break;\n case FilterType.number:\n if (state?.numericFilters) {\n const filter = state.numericFilters.find(\n (x) => x.field === column.filterField\n );\n if (\n filter &&\n filter.value &&\n ((filter.value.lessThan !== null &&\n filter.value.lessThan !== undefined) ||\n (filter.value.greaterThan !== null &&\n filter.value.greaterThan !== undefined) ||\n (filter.value.equalsTo !== null &&\n filter.value.equalsTo !== undefined))\n ) {\n filtered = true;\n }\n }\n break;\n case FilterType.date:\n if (state?.dateFilters) {\n const filter = state.dateFilters.find(\n (x) => x.field === column.filterField\n );\n if (\n filter &&\n filter.value &&\n ((filter.value.lessThan !== null &&\n filter.value.lessThan !== undefined) ||\n (filter.value.greaterThan !== null &&\n filter.value.greaterThan !== undefined))\n ) {\n filtered = true;\n }\n }\n break;\n }\n return filtered;\n }\n\n static sortColumn(sortEvent: SortEvent, state: FilterState): FilterState {\n const column = sortEvent.column;\n const shiftKey = sortEvent.shiftKey;\n const sort = state.sortParams.find(\n (sortParam: SortParam) => sortParam.field === column.sortField\n );\n if (sort === null || sort === undefined) {\n if (!shiftKey) {\n state.sortParams.length = 0;\n }\n state.sortParams.push(\n new SortParam({field: column.sortField, asc: true, order: 0})\n );\n } else {\n if (!sort.asc) {\n state.sortParams = StateUtil.clearSortParam(sort, state.sortParams);\n } else {\n sort.asc = !sort.asc;\n if (!shiftKey) {\n state.sortParams = [sort];\n }\n }\n }\n return new FilterState(state);\n }\n\n static sortAsc(sortEvent: SortEvent, state: FilterState): FilterState {\n return StateUtil.sort(sortEvent, state, true);\n }\n\n static sortDesc(sortEvent: SortEvent, state: FilterState): FilterState {\n return StateUtil.sort(sortEvent, state, false);\n }\n\n static sort(sortEvent: SortEvent, state: FilterState, asc: boolean) {\n const column = sortEvent.column;\n const shiftKey = sortEvent.shiftKey;\n const sort = state.sortParams.find(\n (sortParam: SortParam) => sortParam.field === column.sortField\n );\n if (sort) {\n state.sortParams = StateUtil.clearSortParam(sort, state.sortParams);\n }\n if (!shiftKey) {\n state.sortParams.length = 0;\n }\n state.sortParams.push(\n new SortParam({field: column.sortField, asc: asc, order: 0})\n );\n return new FilterState(state);\n }\n\n static clearSortParam(sort: SortParam, sortParams: SortParam[]) {\n const index = sortParams.indexOf(sort);\n sortParams.splice(index, 1);\n return sortParams;\n }\n\n static clearSort(column: TableColumn, state: FilterState): FilterState {\n state.sortParams = state.sortParams.filter(\n (_) => _.field !== column.sortField\n );\n return new FilterState(state);\n }\n\n static clearAllSort(state: FilterState): FilterState {\n state.sortParams = [];\n return new FilterState(state);\n }\n}\n","export enum SelectType {\n none,\n checkBox,\n mouse\n}\n","export enum EditType {\n none,\n cell,\n row\n}\n","export enum EditEvent {\n click,\n focus,\n doubleClick\n}\n","import {prependZero} from '../pipe/util/number-helper';\n\nexport class DateUtil {\n /**\n * Вычесть n-дней\n */\n\n public static subtractDays(date: Date, days = 0): Date | null {\n if (date && date instanceof Date) {\n const dt = new Date(date.getTime());\n\n dt.setDate(dt.getDate() - days);\n return dt;\n }\n\n return null;\n }\n\n /**\n * Добавить n-дней\n */\n\n public static addDays(date: Date, days = 0): Date | null {\n if (date && date instanceof Date) {\n const dt = new Date(date.getTime());\n\n dt.setDate(dt.getDate() + days);\n return dt;\n }\n\n return null;\n }\n\n /**\n * Получить дату из строки\n */\n public static parseString(dat: string): Date | null {\n if (!dat || dat.length < 1) {\n return null;\n }\n\n const parts = dat.split(' ');\n const dtPart = parts[0].split('.');\n const tPart = parts[1]?.split(':') ?? ['0', '0', '0'];\n const parsedDate = new Date(\n parseInt(dtPart[2], 10),\n parseInt(dtPart[1], 10) - 1,\n parseInt(dtPart[0], 10),\n parseInt(tPart[0], 10),\n parseInt(tPart[1], 10),\n parseInt(tPart[2], 10)\n );\n if (isNaN(parsedDate.getTime())) {\n return null;\n }\n return parsedDate;\n }\n\n /**\n * Привести дату к строке\n */\n public static toString(dat: Date): string {\n if (!dat || !(dat instanceof Date)) {\n return '';\n }\n const month = dat.getMonth() + 1;\n return `${prependZero(dat.getDate(), 2)}.${prependZero(month, 2)}.${dat.getFullYear()} ${prependZero(dat.getHours(), 2)}:${prependZero(dat.getMinutes(), 2)}:${prependZero(dat.getSeconds(), 2)}`;\n }\n\n /**\n * Подготовка даты к отправке на сервер, чтобы небыло смещения часов\n */\n public static convertUTC2DateLocal(date?: Date): Date | null {\n if (date && date instanceof Date) {\n const timezoneOffsetMs: number =\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n ).getTimezoneOffset() * 60000;\n return new Date(date.getTime() - timezoneOffsetMs);\n }\n return null;\n }\n\n /**\n * Подготовка даты к отправке на сервер, чтобы небыло смещения часов\n */\n public static convertDateLocal2UTC(date?: Date): Date | null {\n if (date && date instanceof Date) {\n const timezoneOffsetMs: number =\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n ).getTimezoneOffset() * 60000;\n return date == null ? null : new Date(date.getTime() + timezoneOffsetMs);\n }\n return null;\n }\n\n public static convertDateStringsToDates(input: any): any {\n const regexIso8601 =\n /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z)?$/i;\n if (typeof input === 'string' && regexIso8601.test(input)) {\n return DateUtil.convertStringToLocalDate(input);\n }\n if (typeof input !== 'object' || !input) {\n return input;\n }\n let res: any | any[];\n if (input instanceof Array) {\n res = [];\n } else {\n res = {};\n }\n return DateUtil.fillConvertDateStringsToDates(res, input);\n }\n\n public static convertDates(input: any | any[]): any | any[] {\n if (typeof input !== 'object' || !input) {\n return input;\n }\n if (input instanceof Date) {\n return DateUtil.convertUTC2DateLocal(input);\n }\n let res: any | any[];\n if (input instanceof Array) {\n res = [];\n } else {\n res = {};\n }\n return DateUtil.fillConvertDates(res, input);\n }\n\n public static getMonthDaysCount(date: Date): number {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n }\n\n // Возвращает список месяцев между двумя датами\n public static getRangeOfMonths(start: Date, end: Date): Date[] {\n if (start > end || !start || !end) {\n return null;\n }\n const resDates: Date[] = [];\n let i = 0;\n let dateTmp = new Date(start.getFullYear(), start.getMonth() + i, 1);\n while (end >= dateTmp) {\n resDates.push(dateTmp);\n i++;\n dateTmp = new Date(start.getFullYear(), start.getMonth() + i, 1);\n }\n return resDates;\n }\n\n public static truncateToMonth(date: Date): Date {\n const res = new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0);\n return res;\n }\n\n public static truncateToDay(date: Date): Date {\n const res = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n 0,\n 0,\n 0\n );\n return res;\n }\n\n public static truncateToHour(date: Date): Date {\n const res = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n 0,\n 0\n );\n return res;\n }\n\n public static toISOString(date: number): string {\n return (\n new Date(date - new Date().getTimezoneOffset() * 60000)\n .toISOString()\n .slice(0, -5) + 'Z'\n );\n }\n\n public static isValidDate(date: any): boolean {\n return date instanceof Date && !isNaN(date.getTime());\n }\n\n public static millisecondToHumanFormat(milliSeconds: number, maxValue = 5000, showDays = false): string {\n const negative = milliSeconds < 0;\n if (negative) {\n milliSeconds = -milliSeconds;\n }\n let d;\n if (showDays) {\n d = Math.trunc(milliSeconds / (60000 * 60 * 24));\n milliSeconds = milliSeconds - 60000 * 60 * 24 * d;\n }\n const h = Math.trunc(milliSeconds / (60000 * 60));\n milliSeconds = milliSeconds - 60000 * 60 * h;\n const m = Math.trunc(milliSeconds / 60000);\n milliSeconds = milliSeconds - 60000 * m;\n const s = Math.trunc(milliSeconds / 1000);\n milliSeconds = milliSeconds - 1000 * s;\n const frac = milliSeconds;\n let result = m ? m + ' м ' : ''; // start with minutes\n if (maxValue < 60000 * 60) {\n if (s) {\n result = result + s + ' с '; // add seconds value\n }\n\n if(s === 0 && !m) {\n result = result + '0 c'\n }\n }\n if (maxValue < 5000) {\n result = frac ? result + frac + ' мс ' : result;\n }\n\n if (h) {\n result = h + ' ч ' + result;\n }\n if (d) {\n result = d + 'д ' + result;\n }\n if (negative) {\n result = '-' + result;\n }\n\n\n\n return result.trim();\n }\n\n private static fillConvertDates(result: any, input: any): any {\n for (const key in input) {\n if (!input.hasOwnProperty || !input.hasOwnProperty(key)) {\n continue;\n }\n if (input.hasOwnProperty(key)) {\n let value = input[key];\n if (value instanceof Date) {\n if (value !== null && value !== undefined) {\n value = DateUtil.convertUTC2DateLocal(value);\n }\n result[key] = value;\n } else if (typeof value === 'object') {\n result[key] = DateUtil.convertDates(value);\n } else {\n result[key] = value;\n }\n }\n }\n return result;\n }\n\n private static fillConvertDateStringsToDates(result: any, input: any): any {\n const regexIso8601 =\n /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z?)?$/i;\n for (const key in input) {\n if (!input.hasOwnProperty(key)) {\n continue;\n }\n const value = input[key];\n if (typeof value === 'string' && regexIso8601.test(value)) {\n result[key] = DateUtil.convertStringToLocalDate(value);\n } else if (typeof value === 'object') {\n result[key] = DateUtil.convertDateStringsToDates(value);\n } else {\n result[key] = value;\n }\n }\n return result;\n }\n\n private static convertStringToLocalDate(dateString: string): Date | null {\n const milliseconds = Date.parse(dateString);\n if (!isNaN(milliseconds)) {\n const dt = new Date(milliseconds);\n return DateUtil.convertDateLocal2UTC(dt);\n }\n return null;\n }\n}\n","export class TableColumnStore {\n width: number;\n flex: number;\n locked: boolean;\n name: string;\n columns: TableColumnStore[];\n\n constructor(options?: {\n width?: number;\n flex?: number;\n sortOrder?: number;\n locked?: boolean;\n name?: string;\n columns?: any[];\n }) {\n if (options) {\n this.width = options?.width;\n this.flex = options?.flex;\n this.locked = options?.locked;\n this.name = options?.name;\n this.columns = options?.columns?.map((x) => new TableColumnStore(x));\n }\n }\n}\n","import {Injectable} from '@angular/core';\nimport {ICellCoordinates} from '../contract/i-cell-coordinates';\nimport {TableColumn} from '../contract/table-column';\nimport {FilterState} from '../../filter/contarct/filter-state';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {ColumnResizeEvent} from '../contract/column-resize-event';\nimport {ColumnReorderEvent} from '../contract/column-reorder-event';\nimport {SortEvent} from '../contract/sort-event';\nimport {ArrayUtil} from '../../../common/util/array-util';\nimport {StateUtil} from '../util/state-util';\nimport {SelectType} from '../enum/select-type.enum';\nimport {EditType} from '../enum/edit-type.enum';\nimport {EditEvent} from '../enum/edit-event.enum';\nimport {ListFilterType} from '../../filter/enum/list-filter-type.enum';\nimport {ListFilter} from '../../filter/contarct/list-filter';\nimport {FilterType} from '../../filter/enum/filter-type.enum';\nimport {NumericFilterValue} from '../../filter/contarct/numeric-filter-value';\nimport {NumericFilter} from '../../filter/contarct/numeric-filter';\nimport {StringFilter} from '../../filter/contarct/string-filter';\nimport {DateFilterValue} from '../../filter/contarct/date-filter-value';\nimport {DateFilter} from '../../filter/contarct/date-filter';\nimport {IDictionary} from '../../../common/contract/i-dictionary';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {DateUtil} from '../../../util/date-util';\nimport objectHash from 'object-hash';\nimport {TableColumnStore} from '../contract/table-column-store';\nimport {ICellValue} from '../contract/i-cell-value';\nimport {ICellEvent} from '../contract/i-cell-event';\nimport {ICellInstance, ICellInstanceValue} from '../contract/i-cell-instance';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TableService<T> {\n columns: Observable<TableColumn[]>;\n displayData: Observable<T[]>;\n dict: Observable<IDictionary<IIdName<any>[]>>;\n filterOptions: Observable<IDictionary<IIdName<any>[]>>;\n state: Observable<FilterState>;\n selectType: SelectType = SelectType.mouse;\n editRowStart: Observable<ICellEvent>;\n editRowStop: Observable<ICellCoordinates>;\n editCellStart: Observable<ICellEvent>;\n editCellStop: Observable<ICellCoordinates>;\n valueChanged: Observable<ICellCoordinates>;\n valueSet: Observable<ICellValue>;\n stateChanged: Observable<FilterState>;\n filterClear: Observable<TableColumn>;\n selectedRows: Observable<T[]>;\n activeRow: Observable<T>;\n hiddenColumns: Observable<string[]>;\n scrollIndex: Observable<number>;\n\n editType: EditType = EditType.cell;\n editEvent: EditEvent = EditEvent.doubleClick;\n rowEditable: boolean | ((row: T) => boolean);\n trackRow: (index: number, row: T) => any = (index: number, row: T) => {\n if (row['id']) {\n return row['id'];\n }\n return index;\n };\n\n get dragSource() {\n return this._dragSource;\n }\n\n private initialColumnsHash: string;\n private initialColumns: TableColumn[] = [];\n private displayColumns: TableColumn[] = [];\n private _columns: BehaviorSubject<TableColumn[]> = new BehaviorSubject<TableColumn[]>([]);\n private _hiddenColumns = new BehaviorSubject<string[]>([]);\n private _displayData: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\n private _dict: BehaviorSubject<IDictionary<IIdName<any>[]>> =\n new BehaviorSubject<IDictionary<IIdName<any>[]>>({});\n private _filterOptions: BehaviorSubject<IDictionary<IIdName<any>[]>> =\n new BehaviorSubject<IDictionary<IIdName<any>[]>>({});\n private _state: BehaviorSubject<FilterState> =\n new BehaviorSubject<FilterState>(new FilterState());\n private _cookieName: string;\n private _hiddenCookieName: string;\n private _columnsCookieName: string;\n private _editRowStart = new Subject<ICellEvent | null>();\n private _editRowStop = new Subject<ICellCoordinates | null>();\n private _editCellStart = new Subject<ICellEvent | null>();\n private _editCellStop = new Subject<ICellCoordinates | null>();\n private _valueChanged = new Subject<ICellCoordinates | null>();\n private _valueSet = new Subject<ICellValue>();\n private _stateChanged = new Subject<FilterState>();\n private _filterClear = new Subject<TableColumn>();\n private _dragSource: TableColumn;\n private _selectedRows = new BehaviorSubject<T[]>([]);\n private _activeRow = new BehaviorSubject<T>(null);\n private _scrollIndex = new Subject<number>();\n\n private _currentEditCell: ICellCoordinates;\n\n get currentEditCell(): ICellCoordinates {\n return this._currentEditCell;\n }\n\n constructor() {\n this.columns = this._columns.asObservable();\n this.displayData = this._displayData.asObservable();\n this.dict = this._dict.asObservable();\n this.filterOptions = this._filterOptions.asObservable();\n this.state = this._state.asObservable();\n this.editRowStart = this._editRowStart.asObservable();\n this.editRowStop = this._editRowStop.asObservable();\n this.editCellStart = this._editCellStart.asObservable();\n this.editCellStop = this._editCellStop.asObservable();\n this.valueChanged = this._valueChanged.asObservable();\n this.valueSet = this._valueSet.asObservable();\n this.stateChanged = this._stateChanged.asObservable();\n this.filterClear = this._filterClear.asObservable();\n this.selectedRows = this._selectedRows.asObservable();\n this.activeRow = this._activeRow.asObservable();\n this.hiddenColumns = this._hiddenColumns.asObservable();\n this.scrollIndex = this._scrollIndex.asObservable();\n }\n\n setData(data: T[]): void {\n this._displayData.next(data ? [...data] : []);\n }\n\n setDict(dict: IDictionary<IIdName<any>[]>): void {\n this._dict.next(dict);\n }\n\n setFilterOptions(filterOptions: IDictionary<IIdName<any>[]>): void {\n this._filterOptions.next(filterOptions);\n }\n\n setColumns(columns: TableColumn[]): void {\n this.initialColumns = columns ? columns.map((_) => new TableColumn(_)) : [];\n const excludeKeys = [\n 'editable',\n 'cellComponent',\n 'headCellComponent',\n 'headDropdownConfig'\n ];\n this.initialColumnsHash = objectHash(this.initialColumns, {\n algorithm: 'sha1',\n ignoreUnknown: true,\n excludeKeys: (key) => {\n return excludeKeys.indexOf(key) >= 0;\n },\n });\n const restored = this.restoreColumns();\n\n if (restored) {\n this.setDisplayColumns(restored);\n } else {\n this.setDisplayColumns(this.initialColumns);\n }\n }\n\n restoreDefaultColumns() {\n this.setDisplayColumns(this.initialColumns);\n this.clearColumnsState();\n }\n\n updateColumns(columns: TableColumn[]): void {\n this.setDisplayColumns(columns);\n this.saveColumnsState();\n }\n\n saveColumnsState() {\n if (this._cookieName) {\n localStorage.setItem(\n this._columnsCookieName,\n JSON.stringify({\n hash: this.initialColumnsHash,\n columns: this.displayColumns.map((_) => new TableColumnStore(_)),\n })\n );\n }\n }\n\n clearColumnsState() {\n localStorage.removeItem(this._columnsCookieName);\n }\n\n setDisplayColumns(columns: TableColumn[]): void {\n this.displayColumns = columns ? columns.map((_) => new TableColumn(_)) : [];\n this._columns.next(this.displayColumns);\n }\n\n restoreColumns() {\n const savedColumns = JSON.parse(\n localStorage.getItem(this._columnsCookieName)\n );\n if (savedColumns && savedColumns.hash === this.initialColumnsHash) {\n return this.restoreColumnsState(savedColumns.columns);\n }\n return null;\n }\n\n restoreColumnsState(columns: TableColumnStore[]) {\n return columns.map((column: TableColumnStore) => {\n const found = ArrayUtil.findRecursive(\n this.initialColumns,\n (item) => item.name === column.name,\n 'columns'\n );\n const resultColumn = new TableColumn(found);\n resultColumn.width = column.width;\n resultColumn.flex = column.flex;\n resultColumn.locked = column.locked;\n if (column.columns?.length > 0) {\n resultColumn.columns = this.restoreColumnsState(column.columns);\n }\n return resultColumn;\n });\n }\n\n setState(state: FilterState): void {\n state.save(this._cookieName);\n this._state.next(state);\n }\n\n setCookieName(name: string): void {\n this._cookieName = name;\n this._hiddenCookieName = `${this._cookieName}_hidden_columns`;\n this._columnsCookieName = `${this._cookieName}_columns`;\n }\n\n restoreState(): void {\n let state: FilterState;\n if (this._cookieName?.length > 0 && FilterState.restore(this._cookieName)) {\n let newState = Object.assign(\n this._state.value,\n FilterState.restore(this._cookieName)\n );\n newState = DateUtil.convertDateStringsToDates(newState);\n state = new FilterState(newState);\n } else {\n state = new FilterState();\n }\n this.setState(state);\n }\n\n saveHiddenColumns(hiddenColumns: string[]): void {\n localStorage.setItem(this._hiddenCookieName, JSON.stringify(hiddenColumns));\n }\n\n restoreHiddenColumns(): void {\n const hiddenColumns = localStorage.getItem(this._hiddenCookieName) || '[]';\n this._hiddenColumns.next(JSON.parse(hiddenColumns));\n }\n\n sortAsc(sortEvent: SortEvent): void {\n if (sortEvent.column.sortable) {\n this.setState(StateUtil.sortAsc(sortEvent, this._state.value));\n }\n }\n\n sortDesc(sortEvent: SortEvent): void {\n if (sortEvent.column.sortable) {\n this.setState(StateUtil.sortDesc(sortEvent, this._state.value));\n }\n }\n\n clearSort(column: TableColumn): void {\n this.setState(StateUtil.clearSort(column, this._state.value));\n }\n\n clearAllSort(): void {\n this.setState(StateUtil.clearAllSort(this._state.value));\n }\n\n clearFilter(column: TableColumn) {\n const state = this._state.value;\n if (column !== null && column !== undefined && column.filterable) {\n switch (column.filterType) {\n case FilterType.date:\n state.addDateFilter(\n new DateFilter({\n name: column.name,\n field: column.filterField,\n value: new DateFilterValue(),\n })\n );\n break;\n case FilterType.string:\n state.addStringFilter(\n new StringFilter({\n name: column.name,\n field: column.filterField,\n value: '',\n })\n );\n break;\n case FilterType.number:\n state.addNumericFilter(\n new NumericFilter({\n name: column.name,\n field: column.filterField,\n value: new NumericFilterValue(),\n })\n );\n break;\n case FilterType.list:\n state.addListFilter(\n new ListFilter({\n name: column.name,\n field: column.filterField,\n value: [],\n type: ListFilterType.None,\n })\n );\n break;\n }\n this.setState(new FilterState(state));\n }\n }\n\n clearAllFilters() {\n const state = this._state.value;\n state.stringFilters = [];\n state.listFilters = [];\n state.numericFilters = [];\n state.dateFilters = [];\n this.setState(new FilterState(state));\n }\n\n pinColumn(column: TableColumn): void {\n this.displayColumns.forEach((col: TableColumn) => {\n if (col.name === column.name) {\n col.locked = !col.locked;\n }\n });\n this.updateColumns(this.displayColumns);\n }\n\n dragStart(column: TableColumn): void {\n this._dragSource = column;\n }\n\n lockPreviousColumns(column: TableColumn, element: HTMLElement) {\n const flat = ArrayUtil.flatten(this.displayColumns, 'columns', true).sort(\n (a, b) => Number(b.locked) - Number(a.locked)\n );\n const index = flat.indexOf(column);\n const previous = flat.slice(0, index).filter((_) => _.flex > 0);\n if (previous?.length > 0) {\n const tableElement = this.getTableElement(element);\n previous.forEach((item: TableColumn) => {\n const itemCol = tableElement.querySelector(\n `teta-head-cell[data-column=${item.name}]`\n ) as HTMLElement;\n if (itemCol) {\n item.flex = 0;\n item.width = itemCol.clientWidth;\n }\n });\n }\n }\n\n resizeColumn(event: ColumnResizeEvent) {\n if (event.column !== null && event.column !== undefined) {\n event.column.width = event.newWidth < 50 ? 50 : event.newWidth;\n event.column.flex = 0;\n }\n this._columns.next(this.displayColumns);\n this.saveColumnsState();\n }\n\n autosizeColumn(column: TableColumn, target: HTMLElement) {\n const tableElement = this.getTableElement(target);\n this.setColumnAutoWidth(column, tableElement as HTMLElement);\n this._columns.next(this.displayColumns);\n this.saveColumnsState();\n }\n\n autosizeAllColumns(target: HTMLElement) {\n const tableElement = this.getTableElement(target);\n const flat = ArrayUtil.flatten(this.displayColumns, 'columns', true);\n flat.forEach((col) =>\n this.setColumnAutoWidth(col, tableElement as HTMLElement)\n );\n this._columns.next(this.displayColumns);\n this.saveColumnsState();\n }\n\n reorderColumn(column: TableColumn, insertBefore: boolean): void {\n const event = new ColumnReorderEvent(this._dragSource, column);\n if (event.source !== event.target) {\n const sourceParent = this.findParent(event.source, this.displayColumns);\n const targetParent = this.findParent(event.target, this.displayColumns);\n\n if (sourceParent && targetParent) {\n const sourceIndex = sourceParent.indexOf(event.source);\n sourceParent.splice(sourceIndex, 1);\n let targetIndex = targetParent.indexOf(event.target);\n if (!insertBefore) {\n targetIndex = targetIndex + 1;\n }\n targetParent.splice(targetIndex, 0, event.source);\n event.source.locked = event.target.locked;\n\n this.updateColumns(this.displayColumns);\n }\n }\n }\n\n getColumnParent(column: TableColumn) {\n return this.findParentColumn(column, this.displayColumns);\n }\n\n startEditRow(cellEvent: ICellEvent): void {\n if (this._currentEditCell?.row !== cellEvent?.row) {\n if (this._currentEditCell != null) {\n this._editRowStop.next(this._currentEditCell);\n }\n if (cellEvent === null) {\n this._editRowStart.next(cellEvent);\n this._currentEditCell = cellEvent;\n } else {\n if (\n this.boolOrFuncCallback<T>(this.rowEditable)(\n this.getRowByIndex(cellEvent?.row)\n )\n ) {\n this._editRowStart.next(cellEvent);\n this._currentEditCell = cellEvent;\n }\n }\n }\n }\n\n startEditCell(cellEvent: ICellEvent): void {\n if (\n this._currentEditCell?.column !== cellEvent?.column ||\n this._currentEditCell?.row !== cellEvent?.row\n ) {\n if (this._currentEditCell != null) {\n this._editCellStop.next(this._currentEditCell);\n }\n const column = this.getColumnByName(cellEvent?.column);\n if (\n this.boolOrFuncCallback<ICellInstance<T>>(column?.editable)({\n row: this.getRowByIndex(cellEvent?.row),\n column: column\n })\n ) {\n this._editCellStart.next(cellEvent);\n this._currentEditCell = cellEvent;\n const key = (cellEvent?.event as KeyboardEvent)?.key;\n if (key && (key.length === 1 || (key === 'Delete' && !column.required))) {\n this.clearValue(cellEvent);\n }\n }\n }\n }\n\n setActiveRow(row: T): void {\n this._activeRow.next(row);\n }\n\n selectRows(rows: T[]): void {\n this._selectedRows.next(rows);\n }\n\n selectOrDeselectRow(row: T): void {\n if (this._selectedRows.value.indexOf(row) >= 0) {\n this._selectedRows.next(\n this._selectedRows.value.filter((_) => _ !== row)\n );\n } else {\n this._selectedRows.next([...this._selectedRows.value, row]);\n }\n }\n\n selectRange(row: T): void {\n const index = this._displayData.value.indexOf(row);\n let minIndex = this._selectedRows.value.reduce((prev, curr) => {\n const newIndex = this._displayData.value.indexOf(curr);\n if (newIndex < prev) {\n return newIndex;\n }\n return prev;\n }, this._displayData.value.length);\n let maxIndex = this._selectedRows.value.reduce((prev, curr) => {\n const newIndex = this._displayData.value.indexOf(curr);\n if (newIndex > prev) {\n return newIndex;\n }\n return prev;\n }, 0);\n if (index > maxIndex) {\n maxIndex = index;\n }\n if (index < minIndex) {\n minIndex = index;\n }\n if (minIndex < index && index < maxIndex) {\n maxIndex = index;\n }\n this._selectedRows.next([...this._displayData.value.slice(minIndex, maxIndex + 1)]);\n }\n\n selectRow(row: T): void {\n if (this.selectType === SelectType.none) {\n return;\n }\n this._selectedRows.next([...this._selectedRows.value, row]);\n }\n\n deselectRow(row: T): void {\n if (this.selectType === SelectType.none) {\n return;\n }\n this._selectedRows.next(\n this._selectedRows.value.filter((_) => _ !== row)\n );\n }\n\n selectAll() {\n this._selectedRows.next(this._displayData.value);\n }\n\n deselectAll() {\n this._selectedRows.next([]);\n }\n\n allRowsSelected(): boolean | null {\n if (\n this._displayData.value?.length &&\n this._selectedRows.value?.length &&\n this._displayData.value.every(\n (_) => this._selectedRows.value.indexOf(_) >= 0\n )\n ) {\n return true;\n } else if (\n this._selectedRows.value == null ||\n this._selectedRows.value.length === 0\n ) {\n return false;\n }\n return null;\n }\n\n setHiddenColumns(value: string[]) {\n this.saveHiddenColumns(value);\n this._hiddenColumns.next(value);\n }\n\n columnIsHidden(column: TableColumn) {\n return this._hiddenColumns.value.indexOf(column.name) >= 0;\n }\n\n changeValue(coordinates: ICellCoordinates): void {\n this._valueChanged.next(coordinates);\n }\n\n setValue(cellValue: ICellValue): void;\n setValue(cellValue: ICellInstanceValue<T>): void;\n setValue(cellValue: ICellValue | ICellInstanceValue<T>): void {\n let value: ICellValue;\n if (typeof cellValue.row === 'object' && typeof cellValue.column === 'object') {\n value = {\n row: this.getRowIndex(cellValue.row),\n column: cellValue.column.name,\n value: cellValue.value\n };\n } else {\n value = cellValue as ICellValue;\n }\n this._valueSet.next(value);\n }\n\n getRowByIndex(rowIndex: number) {\n return this._displayData?.value[rowIndex];\n }\n\n getRowIndex(row: T) {\n return this._displayData.value.indexOf(row);\n }\n\n getEventCell(event: Event): HTMLElement | null {\n return event.composedPath().find((target: HTMLElement) => {\n return target.tagName?.toLowerCase() === 'teta-cell';\n }) as HTMLElement;\n }\n\n getEventRow(event: Event): HTMLElement | null {\n return event.composedPath().find((target: HTMLElement) => {\n return target?.getAttribute && target?.getAttribute('data-row');\n }) as HTMLElement;\n }\n\n getNextEditableCell(coords: ICellCoordinates): ICellCoordinates {\n const nextCell = this.getNextCell(coords);\n if (!nextCell) {\n return null;\n }\n const column = this.getColumnByName(nextCell?.column);\n if (this.boolOrFuncCallback<ICellInstance<T>>(column.editable)({\n row: this.getRowByIndex(nextCell.row),\n column\n })) {\n return nextCell;\n }\n return this.getNextEditableCell(nextCell);\n }\n\n getPreviousEditableCell(coords: ICellCoordinates): ICellCoordinates {\n const prevCell = this.getPreviousCell(coords);\n if (!prevCell) {\n return null;\n }\n const column = this.getColumnByName(prevCell?.column);\n if (this.boolOrFuncCallback<ICellInstance<T>>(column.editable)({\n row: this.getRowByIndex(prevCell.row),\n column\n })) {\n return prevCell;\n }\n return this.getPreviousEditableCell(prevCell);\n }\n\n getNextCell(coords: ICellCoordinates): ICellCoordinates {\n const columns = this.getFlatColumns();\n let colIndex = columns.findIndex((col: TableColumn) => col.name === coords?.column);\n let rowIndex = coords?.row;\n if (colIndex >= 0 && rowIndex >= 0) {\n if (colIndex === columns.length - 1) {\n colIndex = 0;\n rowIndex = rowIndex + 1;\n } else {\n colIndex = colIndex + 1;\n }\n return {\n column: columns[colIndex]?.name,\n row: rowIndex\n };\n }\n return null;\n }\n\n getPreviousCell(coords: ICellCoordinates): ICellCoordinates {\n const columns = this.getFlatColumns();\n let colIndex = columns.findIndex((col: TableColumn) => col.name === coords?.column);\n let rowIndex = coords?.row;\n if (colIndex >= 0 && rowIndex >= 0) {\n if (colIndex === 0) {\n colIndex = columns.length - 1;\n rowIndex = rowIndex - 1;\n } else {\n colIndex = colIndex - 1;\n }\n return {\n column: columns[colIndex]?.name,\n row: rowIndex\n };\n }\n return null;\n }\n\n getNextRowCell(coords: ICellCoordinates): ICellCoordinates {\n const columns = this.getFlatColumns();\n let colIndex = columns.findIndex((col: TableColumn) => col.name === coords?.column);\n let rowIndex = coords?.row;\n if (colIndex >= 0 && rowIndex >= 0 && rowIndex < this._displayData.value.length - 1) {\n return {\n column: columns[colIndex]?.name,\n row: rowIndex + 1\n };\n }\n return null;\n }\n\n getPreviousRowCell(coords: ICellCoordinates) {\n const columns = this.getFlatColumns();\n let colIndex = columns.findIndex((col: TableColumn) => col.name === coords?.column);\n let rowIndex = coords?.row;\n if (colIndex >= 0 && rowIndex > 1) {\n return {\n column: columns[colIndex]?.name,\n row: rowIndex - 1\n };\n }\n return null;\n }\n\n getColumnByName(columnName: string) {\n return ArrayUtil.findRecursive(\n this.displayColumns,\n (iterableNode) => columnName === iterableNode.name,\n 'columns'\n );\n }\n\n scrollToIndex(index: number) {\n this._scrollIndex.next(null);\n this._scrollIndex.next(index);\n }\n\n boolOrFuncCallback<M>(variable: boolean | ((row: M) => boolean)) {\n return (args: M) => {\n if (typeof variable === 'boolean') {\n return variable;\n } else if (this.isFunction(variable)) {\n return (variable as (row: M) => boolean)(args);\n }\n return true;\n };\n }\n\n getVisibleColumns() {\n const visible = ArrayUtil.flatten(this._columns.value, 'columns', true).filter(\n (_) => this._hiddenColumns.value.indexOf(_.name) < 0\n );\n return visible.sort((a, b) => Number(b.locked) - Number(a.locked));\n }\n\n getCellInstance(coords: ICellCoordinates): ICellInstance<T> {\n return coords ? {\n row: this.getRowByIndex(coords.row),\n column: this.getColumnByName(coords.column)\n } : null;\n }\n\n private getFlatColumns() {\n return ArrayUtil.flatten(this.displayColumns, 'columns', true).sort(\n (a, b) => Number(b.locked) - Number(a.locked)\n );\n }\n\n private findParent(\n column: TableColumn,\n columns: TableColumn[]\n ): TableColumn[] | null {\n const found = columns.find((x) => x.name === column.name);\n if (found !== null && found !== undefined) {\n return columns;\n }\n for (let i = 0, l = columns.length; i < l; i++) {\n const col = columns[i];\n if (col.columns && col.columns.length) {\n const result = this.findParent(column, col.columns);\n if (result !== null && result !== undefined) {\n return result;\n }\n }\n }\n return null;\n }\n\n private findParentColumn(\n column: TableColumn,\n columns: TableColumn[]\n ): TableColumn | null {\n const found = columns.find((x) => x.columns.indexOf(column) >= 0);\n if (found !== null && found !== undefined) {\n return found;\n }\n for (let i = 0, l = columns.length; i < l; i++) {\n const col = columns[i];\n if (col.columns && col.columns.length) {\n const result = this.findParentColumn(column, col.columns);\n if (result !== null && result !== undefined) {\n return result;\n }\n }\n }\n return null;\n }\n\n getTableElement(element: HTMLElement) {\n return element.closest('teta-table');\n }\n\n private isFunction(obj: any) {\n return !!(obj && obj?.constructor && obj?.call && obj?.apply);\n }\n\n private setColumnAutoWidth(column: TableColumn, table: HTMLElement) {\n const cells = table.querySelectorAll(\n `teta-cell[data-column=\"${column.name}\"] .cell-text`\n );\n let maxWidth = 0;\n cells.forEach((cell) => {\n if (cell.scrollWidth > maxWidth) {\n maxWidth = cell.scrollWidth;\n }\n });\n const aggCells = table.querySelectorAll(\n `.aggregate-cell[data-column=\"${column.name}\"] .cell-text`\n );\n aggCells?.forEach((cell) => {\n if (cell.scrollWidth > maxWidth) {\n maxWidth = cell.scrollWidth;\n }\n });\n column.flex = 0;\n column.width = maxWidth + 20;\n }\n\n private clearValue(event: ICellEvent) {\n this.setValue({\n ...event,\n value: null\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { fromEvent, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClickService {\n click: Observable<MouseEvent>;\n contextMenu: Observable<MouseEvent>;\n\n constructor(@Inject(DOCUMENT) protected _document: any) {\n this.click = fromEvent(this._document, 'click');\n this.contextMenu = fromEvent(this._document, 'contextmenu');\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport {DynamicComponentService} from '../../common/service/dynamic-component.service';\nimport {DOCUMENT} from '@angular/common';\nimport {ArrayUtil} from '../../common/util/array-util';\nimport {DomUtil} from '../../common/util/dom-util';\nimport {PositionUtil} from '../../common/util/position-util';\nimport {DynamicContentBaseDirective} from '../dynamic-content-base.directive';\nimport {ClickService} from '../../common/service/click.service';\nimport {AutoCloseIgnoreCase} from '../../common/contract/auto-close-ignore-case';\n\n@Directive({\n selector: '[tetaContextMenu]',\n})\nexport class ContextMenuDirective\n extends DynamicContentBaseDirective\n implements OnDestroy, OnInit {\n /**\n * Строка, шаблон или компонент для создания контекстного меню\n */\n @Input() tetaContextMenu: string | TemplateRef<any> | Type<any>;\n @Input() autoCloseIgnore: AutoCloseIgnoreCase[] = [];\n\n get _dynamicContent() {\n return this.tetaContextMenu;\n }\n\n private _eventPoint: {\n x: number;\n y: number;\n };\n\n constructor(\n @Inject(DOCUMENT)\n protected override _document: any,\n protected override _elementRef: ElementRef,\n protected override _service: DynamicComponentService,\n protected override _injector: Injector,\n protected override _zone: NgZone,\n protected override _cdr: ChangeDetectorRef,\n private _click: ClickService\n ) {\n super(_document, _elementRef, _service, _injector, _zone, _cdr);\n this.addScrollListener();\n }\n\n @HostListener('contextmenu', ['$event'])\n showContent(event: MouseEvent): void {\n if (this.tetaContextMenu && !event.defaultPrevented) {\n event.preventDefault();\n setTimeout(() => {\n this.createMenu(event);\n });\n }\n }\n\n @HostListener('click', ['$event'])\n click(event: MouseEvent): void {\n if (\n this._componentRef &&\n DomUtil.clickedInside(this._componentRef.location.nativeElement, event)\n ) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n @HostListener('document:click', ['$event'])\n @HostListener('document:contextmenu', ['$event'])\n documentClick(event: MouseEvent): void {\n if (this._open && this._componentRef && (!DomUtil.clickedInside(this._componentRef.location.nativeElement,\n event) || this.autoCloseIgnore.indexOf('inside') < 0)) {\n this.destroyContentRef();\n this.openChange.emit(false);\n }\n }\n\n protected addScrollListener() {\n window.addEventListener('scroll', this.scrollListener, true)\n }\n\n protected removeScrollListener() {\n window.removeEventListener('scroll', this.scrollListener, true)\n }\n\n private scrollListener = (event) => {\n if (\n this._open &&\n this._componentRef &&\n !this._componentRef.location.nativeElement.contains(event.target) &&\n this._componentRef.location.nativeElement !== event.target\n ) {\n this.destroyContentRef();\n this.openChange.emit(false);\n }\n }\n\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.removeScrollListener();\n }\n\n protected setPosition() {\n if (this._componentRef && this._open) {\n const position = PositionUtil.getPosition(\n {\n top: this._eventPoint.y,\n bottom: this._eventPoint.y,\n left: this._eventPoint.x,\n right: this._eventPoint.x,\n },\n this._componentRef.location.nativeElement.getBoundingClientRect(),\n this.align,\n this.verticalAlign\n );\n PositionUtil.setElementPosition(\n this._componentRef.location.nativeElement,\n position\n );\n }\n }\n\n private createMenu(event: MouseEvent): void {\n if (this.tetaContextMenu == null) {\n return;\n }\n this._eventPoint = event;\n this._componentRef = this.createContentRef();\n this._componentRef.instance.className = [\n ...ArrayUtil.asArray(this.className),\n 'context-menu',\n ];\n this.openChange.emit(true);\n }\n}\n","import {TableColumn} from '../contract/table-column';\nimport {ArrayUtil} from '../../../common/util/array-util';\nimport {SortParam} from '../../filter/contarct/sort-param';\nimport {ListFilterType} from '../../filter/enum/list-filter-type.enum';\nimport {ListFilter} from '../../filter/contarct/list-filter';\nimport {NumericFilter} from '../../filter/contarct/numeric-filter';\nimport {DateFilter} from '../../filter/contarct/date-filter';\nimport {StringFilterType} from '../../filter/enum/string-filter-type.enum';\nimport {StringFilter} from '../../filter/contarct/string-filter';\nimport {FilterState} from '../../filter/contarct/filter-state';\n\nexport class TableUtil {\n public static getColumnLeaves(column: TableColumn): TableColumn[] | null {\n if (column?.columns?.length > 0) {\n return ArrayUtil.flatten(column.columns, 'columns', true);\n }\n return null;\n }\n\n static getData<T>(data: T[], state: FilterState): T[] {\n let result: T[] = [...data];\n result = TableUtil.filterData(result, state);\n result = TableUtil.sortData(result, state);\n return result;\n }\n\n static sortData<T>(data: T[], state: FilterState): T[] {\n let result: T[] = [...data];\n const func = (sortParam: SortParam) => {\n result = TableUtil.sort(result, sortParam);\n };\n if (state?.sortParams?.length > 0) {\n state.sortParams.forEach(func);\n }\n return result;\n }\n\n static filterData<T>(data: T[], state: FilterState): T[] {\n let result: T[] = [...data];\n if (state?.stringFilters?.length) {\n const stringFilter = (filter: StringFilter) => {\n result = TableUtil.filterString(result, filter);\n };\n state.stringFilters.forEach(stringFilter);\n }\n if (state?.dateFilters?.length) {\n const dateFilter = (filter: DateFilter) => {\n result = TableUtil.filterDate(result, filter);\n };\n state.dateFilters.forEach(dateFilter);\n }\n if (state?.numericFilters?.length) {\n const numericFilter = (filter: NumericFilter) => {\n result = TableUtil.filterNumber(result, filter);\n };\n state.numericFilters.forEach(numericFilter);\n }\n if (state?.listFilters?.length) {\n const listFilter = (filter: ListFilter) => {\n result = TableUtil.filterList(result, filter);\n };\n state.listFilters.forEach(listFilter);\n }\n return result;\n }\n\n static filterString<T>(data: T[], filter: StringFilter): T[] {\n if (filter.value === null || filter.value === undefined) {\n return data;\n }\n const filterString = (row: T) => {\n const item = row as any;\n if (filter.type === StringFilterType.EndsWith) {\n return item[filter.field]?.toLowerCase().endsWith(filter.value?.toLowerCase());\n }\n if (filter.type === StringFilterType.Equals) {\n return item[filter.field]?.toLowerCase() === filter.value?.toLowerCase();\n }\n if (filter.type === StringFilterType.StartsWith) {\n return item[filter.field]?.toLowerCase().startsWith(filter.value?.toLowerCase());\n }\n return item[filter.field]?.toLowerCase().indexOf(filter.value?.toLowerCase()) >= 0;\n };\n return data.filter(filterString);\n }\n\n static filterDate<T>(data: T[], filter: DateFilter): T[] {\n const filterDate = (row: T) => {\n const item = row as any;\n return (filter.value.lessThan === null || filter.value.lessThan === undefined\n ? true\n : filter.value.lessThan?.getTime() >= item[filter.field]?.getTime()) &&\n (filter.value.greaterThan === null || filter.value.greaterThan === undefined\n ? true\n : filter.value.greaterThan?.getTime() <= item[filter.field]?.getTime());\n };\n return data.filter(filterDate);\n }\n\n static filterNumber<T>(data: T[], filter: NumericFilter): T[] {\n const filterNumber = (row: T) => {\n const item = row as any;\n return (filter.value.lessThan === null || filter.value.lessThan === undefined || filter.value.lessThan?.toString() === ''\n ? true\n : filter.value.lessThan >= item[filter.field]) &&\n (filter.value.greaterThan === null || filter.value.greaterThan === undefined || filter.value.greaterThan?.toString() === ''\n ? true\n : filter.value.greaterThan <= item[filter.field]) &&\n (filter.value.equalsTo === null || filter.value.equalsTo === undefined || filter.value.equalsTo?.toString() === ''\n ? true\n : filter.value.equalsTo === item[filter.field]);\n };\n return data.filter(filterNumber);\n }\n\n static filterList<T>(data: T[], filter: ListFilter): T[] {\n if (filter.value === null || filter.value === undefined || filter.value.length < 1) {\n return data;\n }\n const filterList = (row: T) => {\n const item = row as any;\n if (filter.type === ListFilterType.Excluded) {\n return filter.value.indexOf(item[filter.field]) < 0;\n }\n return filter.value.indexOf(item[filter.field]) >= 0;\n };\n return data.filter(filterList);\n }\n\n static sort<T>(data: T[], sortParam: SortParam): T[] {\n const res = data.sort(sortParam.asc ? TableUtil.asc(sortParam.field) : TableUtil.desc(sortParam.field));\n return [...res];\n }\n\n static desc(field: string) {\n const res = (a: any, b: any) => a[field] > b[field] ? -1 : 1;\n return res;\n }\n\n static asc(field: string) {\n const res = (a: any, b: any) => a[field] < b[field] ? -1 : 1;\n return res;\n }\n}\n","import { TableColumn } from './table-column';\n\nexport class ColumnResizeEvent {\n column: TableColumn;\n newWidth: number;\n\n constructor(column: TableColumn, newWidth: number) {\n this.column = column;\n this.newWidth = newWidth;\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({\n selector: '[tetaResizeDrag]',\n})\nexport class ResizeDragDirective {\n @Input() tetaResizeDrag: 'horizontal' | 'vertical' = 'vertical';\n\n @Output() resizeStart = new EventEmitter<MouseEvent>();\n @Output() resizeProcess = new EventEmitter<MouseEvent>();\n @Output() resizeEnd = new EventEmitter<MouseEvent>();\n\n @HostBinding('class.resize-drag_active')\n private _active: boolean;\n\n @HostBinding('class.resize-drag_horizontal')\n private get horizontal() {\n return this.tetaResizeDrag === 'horizontal';\n }\n\n @HostBinding('class.resize-drag_vertical')\n private get vertical() {\n return this.tetaResizeDrag === 'vertical';\n }\n\n constructor(@Inject(DOCUMENT) private _document: any) {}\n\n @HostListener('mousedown', ['$event']) mouseDown(event: MouseEvent) {\n this.resizeStart.emit(event);\n this.addListeners();\n }\n\n private addListeners() {\n this._active = true;\n this._document.addEventListener('mouseup', this.handleMouseUp);\n this._document.addEventListener('mousemove', this.handleMouseMove);\n }\n\n private removeListeners() {\n this._active = false;\n this._document.removeEventListener('mouseup', this.handleMouseUp);\n this._document.removeEventListener('mousemove', this.handleMouseMove);\n }\n\n private handleMouseUp = (event: MouseEvent) => {\n this.resizeEnd.emit(event);\n this.removeListeners();\n };\n\n private handleMouseMove = (event: MouseEvent) => {\n this.resizeProcess.emit(event);\n };\n}\n","import {Component, HostBinding} from '@angular/core';\nimport {TableColumn} from '../contract/table-column';\n\n@Component({\n template: ''\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport abstract class HeadCellComponentBase<T> {\n @HostBinding('class.table-head__cell__component')\n\n abstract column: TableColumn;\n abstract columns: TableColumn[];\n abstract data: T[];\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport {HeadCellComponentBase} from '../../base/head-cell-component-base';\nimport {TableColumn} from '../../contract/table-column';\n\n@Component({\n selector: 'teta-default-head-cell',\n templateUrl: './default-head-cell.component.html',\n styleUrls: ['./default-head-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultHeadCellComponent<T>\n extends HeadCellComponentBase<T>\n implements OnInit {\n private _column: TableColumn;\n private _columns: TableColumn[];\n private _data: T[];\n\n @Input()\n set column(val: TableColumn) {\n this._column = val;\n this._cdr.detectChanges();\n }\n\n get column(): TableColumn {\n return this._column;\n }\n\n @Input()\n set columns(val: TableColumn[]) {\n this._columns = val;\n this._cdr.detectChanges();\n }\n\n get columns(): TableColumn[] {\n return this._columns;\n }\n\n @Input()\n set data(data: T[]) {\n this._data = data;\n this._cdr.detectChanges();\n }\n\n get data(): T[] {\n return this._data;\n }\n\n constructor(private _cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n }\n}\n","<div class=\"column column_auto\" [tetaHint]=\"column.hint || column.caption\">\n <div class=\"table-head__cell__text\">\n {{column.caption}}\n </div>\n <div *ngIf=\"column.unit\" class=\"table-head__cell__text font-caption color-text-70\">\n [{{column.unit}}]\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n Input,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport {HeadCellComponentBase} from '../base/head-cell-component-base';\nimport {TableColumn} from '../contract/table-column';\nimport {DefaultHeadCellComponent} from '../default/default-head-cell/default-head-cell.component';\n\n@Component({\n selector: 'teta-head-cell-host',\n template: '',\n styleUrls: ['./head-cell-host.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeadCellHostComponent<T> implements OnInit {\n private _column: TableColumn;\n private _columns: TableColumn[];\n private _data: T[];\n\n private componentRef: ComponentRef<HeadCellComponentBase<T>>;\n private init: boolean;\n\n @Input()\n set column(column: TableColumn) {\n this._column = column;\n if (this.init) {\n this.componentRef.instance.column = this._column;\n }\n }\n\n get column(): TableColumn {\n return this._column;\n }\n\n @Input()\n set columns(columns: TableColumn[]) {\n this._columns = columns;\n if (this.init) {\n this.componentRef.instance.columns = this._columns;\n }\n }\n\n get columns(): TableColumn[] {\n return this._columns;\n }\n\n @Input()\n set data(data: T[]) {\n this._data = data;\n if (this.init) {\n this.componentRef.instance.data = this._data;\n }\n }\n\n get data(): T[] {\n return this._data;\n }\n\n constructor(\n private viewContainerRef: ViewContainerRef\n ) {\n }\n\n ngOnInit(): void {\n if (!HeadCellComponentBase.isPrototypeOf(this.column.headCellComponent)) {\n this.column.headCellComponent = DefaultHeadCellComponent;\n }\n this.componentRef =\n this.viewContainerRef.createComponent<HeadCellComponentBase<T>>(this.column.headCellComponent);\n this.componentRef.instance.column = this.column;\n this.componentRef.instance.columns = this.columns;\n this.componentRef.instance.data = this.data;\n this.init = true;\n }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaTabContent]'\n})\nexport class TabContentDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaTabTitle]'\n})\nexport class TabTitleDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n} from '@angular/core';\nimport { TabContentDirective } from '../tab-content.directive';\nimport { TabTitleDirective } from '../tab-title.directive';\n\nlet nextId = 0;\n\n@Component({\n selector: 'teta-tab',\n template: '',\n styleUrls: ['./tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements AfterContentChecked {\n /**\n * Unique tab identifier. Must be unique for the entire document for proper accessibility support.\n */\n @Input() id = `teta-tab-${nextId++}`;\n /**\n * Simple (string only) title. Use the \"ItskTabTitleDirective\" directive for more complex use-cases.\n */\n @Input() title: string;\n /**\n * Allows toggling disabled state of a given state. Disabled tabs can't be selected.\n */\n @Input() disabled = false;\n\n @ContentChild(TabTitleDirective, { static: false })\n titleTpl: TabTitleDirective;\n @ContentChild(TabContentDirective, { static: false })\n contentTpl: TabContentDirective;\n // titleTpl: TabTitleDirective | null;\n // contentTpl: TabContentDirective | null;\n\n ngAfterContentChecked(): void {\n // this.titleTpl = this.titleTemplates.first;\n // this.contentTpl = this.contentTemplates.first;\n }\n}\n","import {\n AfterContentChecked,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport { TabComponent } from '../tab/tab.component';\n\nexport interface ITabChangeEvent {\n activeId: string | null;\n nextId: string;\n preventDefault: () => void;\n}\n\n@Component({\n selector: 'teta-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements AfterContentChecked {\n @HostBinding('class.tabs') classTabs = true;\n /**\n * An identifier of an initially selected (active) tab. Use the \"select\" method to switch a tab programmatically.\n */\n @Input() activeId: string | null;\n\n /**\n * Whether the closed tabs should be hidden without destroying them\n */\n @Input() destroyOnHide = true;\n\n /**\n * A tab change event fired right before the tab selection happens. See NgbTabChangeEvent for payload details\n */\n @Output() tabChange = new EventEmitter<ITabChangeEvent>();\n\n @ContentChildren(TabComponent) tabs: QueryList<TabComponent>;\n\n constructor() {}\n\n /**\n * Selects the tab with the given id and shows its associated pane.\n * Any other tab that was previously selected becomes unselected and its associated pane is hidden.\n */\n select(tabId: string): void {\n const selectedTab = this._getTabById(tabId);\n if (\n selectedTab &&\n !selectedTab.disabled &&\n this.activeId !== selectedTab.id\n ) {\n let defaultPrevented = false;\n\n this.tabChange.emit({\n activeId: this.activeId,\n nextId: selectedTab.id,\n preventDefault: () => {\n defaultPrevented = true;\n },\n });\n\n if (!defaultPrevented) {\n this.activeId = selectedTab.id;\n }\n }\n }\n\n ngAfterContentChecked(): void {\n const activeTab = this._getTabById(this.activeId);\n this.activeId = activeTab\n ? activeTab.id\n : this.tabs.length\n ? this.tabs.first.id\n : null;\n }\n\n private _getTabById(id: string | null): TabComponent | null {\n const tabsWithId: TabComponent[] = this.tabs.filter((tab) => tab.id === id);\n return tabsWithId.length ? tabsWithId[0] : null;\n }\n}\n","<div class=\"tabs-head\" role=\"tablist\">\n <div class=\"tabs-head-item\"\n *ngFor=\"let tab of tabs\"\n (click)=\"select(tab.id);\"\n [class.tabs-head-item_active]=\"tab.id === activeId\"\n [class.tabs-head-item_disabled]=\"tab.disabled\">\n <span [id]=\"tab.id\" class=\"tabs-title\"\n role=\"tab\"\n [attr.tabindex]=\"(tab.disabled ? '-1': undefined)\"\n [attr.aria-controls]=\"(!destroyOnHide || tab.id === activeId ? tab.id + '-panel' : null)\"\n [attr.aria-expanded]=\"tab.id === activeId\"\n [attr.aria-disabled]=\"tab.disabled\">\n {{tab.title}}\n <ng-template [ngTemplateOutlet]=\"tab.titleTpl?.template\"></ng-template>\n </span>\n </div>\n <ng-content></ng-content>\n</div>\n<div class=\"tabs-content\">\n <ng-template ngFor let-tab [ngForOf]=\"tabs\">\n <ng-container *ngIf=\"!destroyOnHide || tab.id === activeId\">\n <ng-template [ngTemplateOutlet]=\"tab.contentTpl?.template\"></ng-template>\n </ng-container>\n </ng-template>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {TableService} from '../service/table.service';\nimport {TableColumn} from '../contract/table-column';\nimport {FilterState} from '../../filter/contarct/filter-state';\nimport {ITreeData} from '../../../common/contract/i-tree-data';\nimport {TetaConfigService} from '../../../locale/teta-config.service';\nimport {HeadDropdownTab} from '../contract/head-dropdown-tab';\n\n@Component({\n selector: 'teta-head-cell-dropdown',\n templateUrl: './head-cell-dropdown.component.html',\n styleUrls: ['./head-cell-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeadCellDropdownComponent<T> implements OnInit, OnDestroy {\n @Input() columns: ITreeData[];\n @Input() column: TableColumn;\n @Input() state: FilterState;\n @Input() data: T[];\n @Input() tabTemplates: HeadDropdownTab[];\n @Input() dropDownOpen: boolean;\n @Output() dropDownOpenChange: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n constructor(private _svc: TableService<T>,\n private _config: TetaConfigService,\n private _cdr: ChangeDetectorRef) {\n }\n\n closeDropdown = () => {\n this.dropDownOpen = false;\n this.dropDownOpenChange.emit(false);\n };\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n }\n\n trackIndex(index) {\n return index;\n }\n}\n","<teta-tabs class=\"column_auto\" *ngIf=\"dropDownOpen\">\n <ng-container *ngFor=\"let tab of tabTemplates; trackBy: trackIndex\">\n <teta-tab *ngIf=\"tab.showTab(column)\">\n <ng-template tetaTabTitle>\n <ng-container *ngIf=\"tab.icon\">\n <teta-icon [name]=\"tab.icon\"></teta-icon>\n </ng-container>\n </ng-template>\n <ng-template tetaTabContent>\n <ng-container\n *ngTemplateOutlet=\"tab.template; context: {\n column: column,\n columns: columns,\n data: data,\n state: state,\n close: closeDropdown\n }\"></ng-container>\n </ng-template>\n </teta-tab>\n </ng-container>\n</teta-tabs>\n","import {TableColumn} from './table-column';\n\nexport class SortEvent {\n column: TableColumn;\n shiftKey: boolean;\n\n constructor(column: TableColumn, shiftKey: boolean) {\n this.column = column;\n this.shiftKey = shiftKey;\n }\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit} from '@angular/core';\nimport {TableService} from '../../service/table.service';\nimport {TetaConfigService} from '../../../../locale/teta-config.service';\nimport {TableColumn} from '../../contract/table-column';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../../locale/teta-localisation';\nimport {SortParam} from '../../../filter/contarct/sort-param';\nimport {StateUtil} from '../../util/state-util';\nimport {FilterState} from '../../../filter/contarct/filter-state';\nimport {SortEvent} from '../../contract/sort-event';\nimport {ITreeData} from '../../../../common/contract/i-tree-data';\n\n@Component({\n selector: 'teta-main-dropdown-tab',\n templateUrl: './main-dropdown-tab.component.html',\n styleUrls: ['./main-dropdown-tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MainDropdownTabComponent<T> implements OnInit {\n @Input() columns: ITreeData[];\n @Input() column: TableColumn;\n @Input() state: FilterState;\n @Input() data: T[];\n @Input() close: () => void;\n @Input() headCellElementRef: ElementRef;\n\n locale: Observable<TetaLocalisation>;\n\n constructor(private _svc: TableService<T>,\n private _config: TetaConfigService,\n private _elementRef: ElementRef,\n private _cdr: ChangeDetectorRef) {\n this.locale = this._config.locale;\n }\n\n get sortParam(): SortParam {\n return StateUtil.getSortState(this.state, this.column);\n }\n\n get filtered() {\n return StateUtil.isColumnFiltered(this.state, this.column);\n }\n\n get parent() {\n return this._svc.getColumnParent(this.column);\n }\n\n pinColumn() {\n this._svc.pinColumn(this.column);\n }\n\n sortAsc(event: MouseEvent) {\n this._svc.sortAsc(new SortEvent(this.column, event.shiftKey));\n }\n\n sortDesc(event: MouseEvent) {\n this._svc.sortDesc(new SortEvent(this.column, event.shiftKey));\n }\n\n clearSort(): void {\n this._svc.clearSort(this.column);\n }\n\n clearAllSort(): void {\n this._svc.clearAllSort();\n }\n\n hasFilteredColumns() {\n return StateUtil.hasFilteredColumns(this.state);\n }\n\n hasSortedColumns() {\n return StateUtil.hasSortedColumns(this.state);\n }\n\n restoreDefaultColumns() {\n this._svc.restoreDefaultColumns();\n }\n\n clearFilter() {\n this._svc.clearFilter(this.column);\n this.close();\n this._cdr.markForCheck();\n }\n\n clearAllFilters() {\n this._svc.clearAllFilters();\n this.close()\n this._cdr.markForCheck();\n }\n\n autosizeColumn() {\n this._svc.autosizeColumn(this.column, this.headCellElementRef.nativeElement);\n }\n\n autosizeAllColumns() {\n this._svc.autosizeAllColumns(this.headCellElementRef.nativeElement);\n }\n\n ngOnInit(): void {\n }\n}\n","<div class=\"list column_auto\" *ngIf=\"locale | async as loc\">\n <ng-container *ngIf=\"!parent\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"pinColumn()\">\n {{column.locked ? loc.unpin : loc.pin}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <ng-container *ngIf=\"column.sortable\">\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortAsc($event)\">\n {{loc.sortAsc}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"sortDesc($event)\">\n {{loc.sortDesc}}\n </div>\n <ng-container *ngIf=\"hasSortedColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"sortParam\"\n (click)=\"clearSort()\">\n {{loc.clearSort}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllSort()\">\n {{loc.clearAllSort}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"hasFilteredColumns()\">\n <div class=\"list-item list-item_interactive\"\n *ngIf=\"filtered\"\n (click)=\"clearFilter()\">\n {{loc.clearFilter}}\n </div>\n <div class=\"list-item list-item_interactive\"\n (click)=\"clearAllFilters()\">\n {{loc.clearAllFilters}}\n </div>\n <div class=\"list-divider\"></div>\n </ng-container>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeColumn()\">\n {{loc.autosizeColumn}}\n </div>\n <div class=\"list-item list-item_interactive\" (click)=\"autosizeAllColumns()\">\n {{loc.autosizeAll}}\n </div>\n <div class=\"list-divider\"></div>\n <div class=\"list-item list-item_interactive\" (click)=\"restoreDefaultColumns()\">\n {{loc.resetColumnsSize}}\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnInit\n} from '@angular/core';\nimport {TableColumn} from '../../contract/table-column';\nimport {FilterState} from '../../../filter/contarct/filter-state';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../../locale/teta-localisation';\nimport {TableService} from '../../service/table.service';\nimport {TetaConfigService} from '../../../../locale/teta-config.service';\nimport {IDictionary} from '../../../../common/contract/i-dictionary';\nimport {IIdName} from '../../../../common/contract/i-id-name';\nimport {ITreeData} from '../../../../common/contract/i-tree-data';\n\n@Component({\n selector: 'teta-filter-dropdown-tab',\n templateUrl: './filter-dropdown-tab.component.html',\n styleUrls: ['./filter-dropdown-tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilterDropdownTabComponent<T> implements OnInit {\n @Input() columns: ITreeData[];\n @Input() column: TableColumn;\n @Input() state: FilterState;\n @Input() data: T[];\n @Input() close: () => void;\n\n locale: Observable<TetaLocalisation>;\n filterOptions: Observable<IDictionary<IIdName<any>[]>>;\n\n @HostListener('keydown.enter') enter() {\n this.applyFilter();\n }\n\n constructor(private _svc: TableService<T>,\n private _config: TetaConfigService,\n private _elementRef: ElementRef,\n private _cdr: ChangeDetectorRef) {\n this.locale = this._config.locale;\n this.filterOptions = this._svc.filterOptions;\n }\n\n clearFilter() {\n this._svc.clearFilter(this.column);\n this.close();\n this._cdr.markForCheck();\n }\n\n applyFilter() {\n this._svc.setState(new FilterState(this.state));\n this.close();\n this._cdr.markForCheck();\n }\n\n ngOnInit(): void {\n }\n}\n","<ng-container *ngIf=\"locale | async as loc\">\n <teta-filter-host [column]=\"column\"\n [data]=\"data\"\n [state]=\"state\"\n *ngIf=\"filterOptions | async as options\"\n [filterOptions]=\"options[column.name]\"></teta-filter-host>\n <teta-toolbar class=\"justify-content-between\">\n <button type=\"button\" teta-button [palette]=\"'text'\" [view]=\"'ghost'\" (click)=\"clearFilter()\">\n {{loc.clear}}\n </button>\n <button type=\"button\" teta-button [palette]=\"'primary'\" (click)=\"applyFilter()\">\n <teta-icon [name]=\"'tick'\"></teta-icon>\n {{loc.apply}}\n </button>\n </teta-toolbar>\n</ng-container>\n","import { Injectable } from '@angular/core';\nimport { ITreeData } from '../../common/contract/i-tree-data';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TreeService {\n openItems: Observable<ITreeData[]>;\n scrollToIndex: Observable<number>;\n\n private _openItems: BehaviorSubject<ITreeData[]> = new BehaviorSubject<\n ITreeData[]\n >([]);\n private _scrollToIndex = new BehaviorSubject<number>(0);\n\n constructor() {\n this.openItems = this._openItems.asObservable();\n this.scrollToIndex = this._scrollToIndex.asObservable();\n }\n\n compareItems: (item: ITreeData) => any = (item: ITreeData) => item;\n\n openItem(item: ITreeData) {\n const newValue = this.addOrRemove(item, this._openItems.value);\n this.setOpenItems(newValue);\n }\n\n setOpenItems(items: ITreeData[]) {\n this._openItems.next(items);\n }\n\n scrollTo(index: number) {\n this._scrollToIndex.next(index)\n }\n\n private addOrRemove<G>(needle: G, list: G[]): G[] {\n const found = list?.find(\n (x) => this.compareItems(x) === this.compareItems(needle)\n );\n if (found) {\n return list.filter(\n (x) => this.compareItems(x) !== this.compareItems(needle)\n );\n } else {\n return [...list, needle];\n }\n }\n\n\n}\n","import {Directive, Input, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaTemplate]'\n})\nexport class TetaTemplateDirective {\n @Input('tetaTemplate') id: string;\n\n constructor(public template: TemplateRef<any>) {\n }\n\n getId(): string {\n return this.id;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport {ITreeData} from '../../../common/contract/i-tree-data';\nimport {TreeService} from '../tree.service';\nimport {takeWhile} from 'rxjs/operators';\nimport {animate, style, transition, trigger} from '@angular/animations';\n\n/**\n * TODO: Lazy загрузка дочерних элементов, Output onExpand, шаблон для иконки expand\n */\n@Component({\n selector: 'teta-tree-item',\n templateUrl: './tree-item.component.html',\n styleUrls: ['./tree-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('treeItemInstance', [\n transition('void => *', [\n style({opacity: '0'}),\n animate(200, style({opacity: '1'})),\n ]),\n // transition('* => void', [animate(200, style({opacity: '0'}))]),\n ]),\n ],\n})\nexport class TreeItemComponent implements OnInit, OnChanges, OnDestroy {\n @Input() item: ITreeData;\n @Input() depth = 0;\n @Input() padding = 16;\n @Input() childNodeName = 'children';\n @Input() template: TemplateRef<any>;\n @Input() childPadding: boolean;\n\n @HostBinding('class.tree__item-container') private readonly treeItemClass =\n true;\n\n itemIsOpen = false;\n\n private _alive = true;\n @HostBinding('@treeItemInstance') private readonly treeItemInstance = true;\n\n get computedDepth(): number {\n return (\n this.depth +\n (this.item[this.childNodeName]?.length > 0 ? 0 : this.childPadding ? 2 : 1)\n );\n }\n\n constructor(public service: TreeService, private _cdr: ChangeDetectorRef) {\n }\n\n openItem() {\n this.service.openItem(this.item);\n }\n\n ngOnInit(): void {\n this.service.openItems\n .pipe(takeWhile((_) => this._alive))\n .subscribe((_) => {\n const found = _?.find(\n (x) =>\n this.service.compareItems(x) ===\n this.service.compareItems(this.item)\n );\n this.itemIsOpen = found != null;\n this._cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<div class=\"tree__item_content\" [ngClass]=\"'tree__item_content-' + computedDepth\" (click)=\"openItem()\">\n <ng-container\n *ngTemplateOutlet=\"template; context: {$implicit: item, item: item, open: itemIsOpen, service: service, depth: depth}\"></ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild, ElementRef,\n EventEmitter,\n HostBinding,\n Input, NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges, ViewChild,\n} from '@angular/core';\nimport {ITreeData} from '../../../common/contract/i-tree-data';\nimport {TreeService} from '../tree.service';\nimport {TetaTemplateDirective} from '../../../directive/teta-template/teta-template.directive';\nimport {filter, takeWhile} from 'rxjs/operators';\nimport {CdkVirtualScrollViewport} from \"@angular/cdk/scrolling\";\n\n@Component({\n selector: 'teta-tree',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n providers: [TreeService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n set data(data: ITreeData[]) {\n this._data = data;\n }\n\n get data() {\n return this._data;\n }\n\n @Input() padding = 8;\n @Input() childNodeName = 'children';\n @Input() virtual: boolean;\n @Input() height = 28;\n\n @Input()\n set openItems(items: ITreeData[]) {\n this._openItems = items;\n this._service.setOpenItems(items);\n }\n\n @Output() service: EventEmitter<TreeService> =\n new EventEmitter<TreeService>();\n @Output() openItemsChange = new EventEmitter();\n\n @ViewChild(CdkVirtualScrollViewport, {static: false}) viewport: CdkVirtualScrollViewport;\n\n @ContentChild(TetaTemplateDirective, {static: true})\n template: TetaTemplateDirective;\n childPadding: boolean;\n displayData: ITreeData[];\n\n private _data: ITreeData[];\n private _openItems: ITreeData[];\n private _alive = true;\n private _obs: ResizeObserver;\n\n constructor(private _service: TreeService,\n private _elementRef: ElementRef,\n private _cdr: ChangeDetectorRef,\n private _zone: NgZone) {\n this._service.openItems\n .pipe(\n takeWhile((_) => this._alive),\n filter((_) => this._openItems !== _)\n )\n .subscribe((_: ITreeData[]) => {\n this._openItems = _;\n this.displayData = this.getDisplayData(this._data, 0);\n this.openItemsChange.emit(_);\n this.viewport?.checkViewportSize();\n });\n }\n\n @Input()\n set compareItems(func: (item: ITreeData) => any) {\n this._service.compareItems = func;\n }\n\n get compareItems() {\n return this._service.compareItems;\n }\n\n @HostBinding('class.tree') private readonly treeClass = true;\n\n ngOnInit(): void {\n this.service.emit(this._service);\n this.addResizeObserver();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.displayData = this.getDisplayData(this._data, 0);\n this.childPadding = this.hasChildren(this._data);\n this.viewport?.checkViewportSize();\n }\n\n ngOnDestroy() {\n this._alive = false;\n this.removeResizeObserver()\n }\n\n ngAfterViewInit() {\n this._service.scrollToIndex.pipe(\n takeWhile(() => this._alive)\n ).subscribe((index) => {\n\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.viewport?.scrollToIndex(index, 'smooth')\n })\n })\n })\n }\n\n trackRow = (index: number, item: ITreeData): any => {\n if (this.compareItems) {\n return this.compareItems(item);\n }\n return index;\n };\n\n\n private hasChildren(data: ITreeData[]): boolean {\n return data?.some(\n (_) => _[this.childNodeName]?.length > 0\n );\n }\n\n private getDisplayData(data: ITreeData[], level: number) {\n const result: ITreeData[] = [];\n data?.forEach((item: ITreeData) => {\n item['level'] = level;\n result.push(item);\n if (item[this.childNodeName]?.length > 0\n && this._openItems?.find((openItem) => this.compareItems(openItem) === this.compareItems(item))) {\n result.push(...this.getDisplayData(item[this.childNodeName], level + 1));\n }\n });\n return result;\n }\n\n private addResizeObserver() {\n this._obs = new ResizeObserver((_) => {\n this.viewport?.checkViewportSize();\n });\n\n this._obs.observe(this._elementRef.nativeElement);\n }\n\n private removeResizeObserver() {\n this._obs.unobserve(this._elementRef.nativeElement);\n this._obs.disconnect();\n }\n}\n","<teta-scrollable *ngIf=\"virtual; else default\" class=\"column column_auto\">\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n [itemSize]=\"height\">\n <teta-tree-item *cdkVirtualFor=\"let item of displayData;templateCacheSize: 0; trackBy: trackRow;\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n<ng-template #default>\n <teta-scrollable class=\"column column_auto\" direction=\"column\">\n <teta-tree-item *ngFor=\"let item of displayData; trackBy: trackRow\"\n [item]=\"item\"\n [style.height.px]=\"height\"\n [depth]=\"item['level']\"\n [padding]=\"padding\"\n [childNodeName]=\"childNodeName\"\n [childPadding]=\"childPadding\"\n [template]=\"template?.template\"></teta-tree-item>\n </teta-scrollable>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { TreeService } from '../tree.service';\nimport { ITreeData } from '../../../common/contract/i-tree-data';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'teta-tree-item-toggle',\n templateUrl: './tree-item-toggle.component.html',\n styleUrls: ['./tree-item-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeItemToggleComponent implements OnInit {\n @Input() item: ITreeData;\n open: Observable<boolean>;\n\n constructor(public service: TreeService, private _cdr: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.open = this.service.openItems.pipe(\n map((_) => {\n const found = _?.find(\n (x) =>\n this.service.compareItems(x) ===\n this.service.compareItems(this.item)\n );\n return found != null;\n })\n );\n }\n}\n","<teta-icon [name]=\"(open | async) ? 'arrowDownKey' : 'arrowRightKey'\"\n class=\"tree__icon\"></teta-icon>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport {TableColumn} from '../../contract/table-column';\nimport {FilterState} from '../../../filter/contarct/filter-state';\nimport {Observable} from 'rxjs';\nimport {TetaLocalisation} from '../../../../locale/teta-localisation';\nimport {TableService} from '../../service/table.service';\nimport {TetaConfigService} from '../../../../locale/teta-config.service';\nimport {ITreeData} from '../../../../common/contract/i-tree-data';\nimport {map, takeWhile} from 'rxjs/operators';\nimport {ArrayUtil} from '../../../../common/util/array-util';\n\n@Component({\n selector: 'teta-visibility-dropdown-tab',\n templateUrl: './visibility-dropdown-tab.component.html',\n styleUrls: ['./visibility-dropdown-tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VisibilityDropdownTabComponent<T> implements OnInit, OnDestroy {\n @Input() columns: ITreeData[];\n @Input() column: TableColumn;\n @Input() state: FilterState;\n @Input() data: T[];\n @Input() close: () => void;\n\n locale: Observable<TetaLocalisation>;\n hiddenColumns: string[];\n\n get openItems() {\n if (this._openItems == null) {\n this._openItems = this.columns.map((_) => _);\n }\n return this._openItems;\n }\n\n set openItems(openItems: ITreeData[]) {\n this._openItems = openItems;\n }\n\n get childMode() {\n return this.columns.find((_: any) => _.columns?.length > 0);\n }\n\n private _openItems: ITreeData[];\n private _alive = true;\n\n constructor(private _svc: TableService<T>,\n private _config: TetaConfigService,\n private _elementRef: ElementRef,\n private _cdr: ChangeDetectorRef) {\n this.locale = this._config.locale;\n this._svc.hiddenColumns\n .pipe(\n takeWhile((_) => this._alive),\n map((_) => [..._])\n )\n .subscribe((_) => {\n this.hiddenColumns = _;\n });\n }\n\n columnIsHidden(column: TableColumn) {\n return this.hiddenColumns.indexOf(column.name) >= 0;\n }\n\n allColumnsVisible() {\n if (this.hiddenColumns?.length <= 0) {\n return true;\n }\n const columns = ArrayUtil.flatten(this.columns, 'columns');\n const notHidden = columns.find(\n (_) => this.hiddenColumns.indexOf(_.name) < 0\n );\n if (!notHidden) {\n return false;\n }\n return null;\n }\n\n setAllColumns(value: boolean) {\n if (value) {\n this.hiddenColumns = [];\n } else {\n this.hiddenColumns = ArrayUtil.flatten(this.columns, 'columns').map(\n (_) => _.name\n );\n }\n }\n\n setColumnsVisibility() {\n this._svc.setHiddenColumns(this.hiddenColumns);\n }\n\n compareItems = (item: TableColumn) => item.name;\n\n setColumnVisibility(item: TableColumn, visible: boolean) {\n this.setChildrenVisibility(item, visible, this.hiddenColumns);\n this.setParentsVisibility(item, visible, this.hiddenColumns);\n }\n\n setChildrenVisibility = (\n column: TableColumn,\n visible: boolean,\n hiddenColumns: string[]\n ) => {\n if (visible) {\n this.showColumn(column, hiddenColumns);\n } else {\n this.hideColumn(column, hiddenColumns);\n }\n if (column.columns) {\n column.columns.forEach((x) => {\n this.setChildrenVisibility(x, visible, hiddenColumns);\n });\n }\n };\n\n setParentsVisibility = (\n column: TableColumn,\n visible: boolean,\n hiddenColumns: string[]\n ) => {\n if (!visible) {\n this.hideParents(column, hiddenColumns);\n } else {\n this.showParents(column, hiddenColumns);\n }\n };\n\n showParents(column: TableColumn, hiddenColumns: string[]) {\n const parent = this.findParentColumn(column, this.columns as TableColumn[]);\n if (parent && this.columnIsHidden(parent)) {\n this.showColumn(parent, hiddenColumns);\n this.showParents(parent, hiddenColumns);\n }\n }\n\n hideParents(column: TableColumn, hiddenColumns: string[]) {\n const parent = this.findParentColumn(column, this.columns as TableColumn[]);\n if (\n parent &&\n !this.columnIsHidden(parent) &&\n parent.columns &&\n parent.columns.every((_) => this.columnIsHidden(_))\n ) {\n this.hideColumn(parent, hiddenColumns);\n this.hideParents(parent, hiddenColumns);\n }\n }\n\n hideColumn(column: TableColumn, hiddenColumns: string[]) {\n hiddenColumns.push(column.name);\n }\n\n showColumn(column: TableColumn, hiddenColumns: string[]) {\n hiddenColumns.splice(hiddenColumns.indexOf(column.name), 1);\n }\n\n private findParentColumn(\n column: TableColumn,\n columns: TableColumn[]\n ): TableColumn | null {\n return ArrayUtil.findRecursive(\n columns,\n (iterableNode) => iterableNode.columns?.indexOf(column) >= 0,\n 'columns'\n );\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-container *ngIf=\"locale | async as loc\">\n <div class=\"list-item padding-left-6 padding-top-2\" [class.padding-left-9]=\"childMode\">\n <teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [ngModel]=\"allColumnsVisible()\"\n (ngModelChange)=\"setAllColumns($event)\">\n {{loc.all}}\n </teta-checkbox>\n </div>\n <div class=\"list-divider\"></div>\n <teta-scrollable class=\"padding-v-2 column column_auto\">\n <teta-tree [data]=\"columns\"\n [openItems]=\"openItems\"\n (openItemsChange)=\"openItems = $event\"\n [childNodeName]=\"'columns'\"\n [compareItems]=\"compareItems\">\n <ng-template tetaTemplate let-item>\n <div class=\"tree__item\" style=\"align-items: unset\">\n <teta-tree-item-toggle [item]=\"item\" *ngIf=\"item.columns?.length > 0\"></teta-tree-item-toggle>\n <teta-checkbox\n style=\"flex-grow: 1;\"\n [ngModel]=\"!columnIsHidden(item)\"\n (ngModelChange)=\"setColumnVisibility(item, $event)\"\n (click)=\"$event.stopPropagation()\"\n [binary]=\"true\"\n >\n {{item.caption}}\n </teta-checkbox>\n </div>\n </ng-template>\n </teta-tree>\n </teta-scrollable>\n <teta-toolbar class=\"justify-content-end\">\n <button type=\"button\"\n teta-button\n [disabled]=\"allColumnsVisible() === false\"\n [palette]=\"'primary'\"\n (click)=\"setColumnsVisibility()\">\n {{loc.apply}}\n </button>\n </teta-toolbar>\n</ng-container>\n","import {\n ApplicationRef,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n ElementRef, HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit, TemplateRef, ViewChild,\n} from '@angular/core';\nimport {TableColumn} from '../contract/table-column';\nimport {ColumnResizeEvent} from '../contract/column-resize-event';\nimport {FilterState} from '../../filter/contarct/filter-state';\nimport {TableService} from '../service/table.service';\nimport {map} from 'rxjs/operators';\nimport {SortParam} from '../../filter/contarct/sort-param';\nimport {StateUtil} from '../util/state-util';\nimport {VerticalAlign} from '../../../common/enum/vertical-align.enum';\nimport {Align} from '../../../common/enum/align.enum';\nimport {combineLatest, Observable} from 'rxjs';\nimport {HeadDropdownTab} from '../contract/head-dropdown-tab';\n\n@Component({\n selector: 'teta-head-cell',\n templateUrl: './head-cell.component.html',\n styleUrls: ['./head-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeadCellComponent<T> implements OnInit, OnDestroy {\n @Input() column: TableColumn;\n @Input() showHeadCellMenu: boolean;\n @Input() data: T[];\n\n verticalAlign = VerticalAlign;\n align = Align;\n state: Observable<FilterState>;\n columns: Observable<TableColumn[]>;\n filtered: Observable<boolean>;\n sortParam: Observable<SortParam>;\n iconName: Observable<string>;\n @HostBinding('class.table-head__cell_active')\n dropDownOpen = false;\n showDrag: 'left' | 'right' | null = null;\n private rect: any;\n\n private _alive = true;\n private _startPosition: number;\n\n @ViewChild('mainTemplate', {static: true}) mainTemplate: TemplateRef<any>;\n @ViewChild('filterTemplate', {static: true}) filterTemplate: TemplateRef<any>;\n @ViewChild('columnsTemplate', {static: true}) columnsTemplate: TemplateRef<any>;\n\n get defaultTemplates(): HeadDropdownTab[] {\n return [\n {\n icon: 'menu',\n template: this.mainTemplate,\n order: 10,\n showTab: () => true,\n }, {\n icon: 'filter',\n template: this.filterTemplate,\n order: 20,\n showTab: (column) => column.filterable,\n }, {\n icon: 'eye',\n template: this.columnsTemplate,\n order: 30,\n showTab: () => true,\n }\n ];\n }\n\n get elementRef() {\n return this._elementRef;\n }\n\n get tabTemplates() {\n if (this.column?.headDropdownConfig && this.column.headDropdownConfig.tabs?.length > 0) {\n if (this.column.headDropdownConfig.strategy === 'replace') {\n return this.column.headDropdownConfig.tabs;\n }\n return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs]\n .sort((a, b) => a.order - b.order);\n }\n\n return this.defaultTemplates;\n }\n\n private observer: IntersectionObserver;\n\n constructor(\n private _svc: TableService<T>,\n private _app: ApplicationRef,\n private _elementRef: ElementRef,\n private _cdr: ChangeDetectorRef\n ) {\n }\n\n dragstart(event: DragEvent): void {\n if (event && event.dataTransfer) {\n event.dataTransfer.setData('text', 'move');\n }\n this._svc.dragStart(this.column);\n }\n\n @HostListener('dragenter', ['$event']) dragenter(event: DragEvent): void {\n this.rect = this._elementRef.nativeElement.getBoundingClientRect();\n }\n\n @HostListener('dragover', ['$event']) allowDrop(event: DragEvent): void {\n event.preventDefault();\n if (this.rect && this._svc.dragSource) {\n this.showDrag =\n event.clientX >= this.rect.x + this.rect.width / 2 ? 'right' : 'left';\n }\n }\n\n @HostListener('dragleave', ['$event']) dragleave(event: DragEvent): void {\n event.preventDefault();\n this.showDrag = null;\n }\n\n @HostListener('dragend', ['$event']) dragend(event: DragEvent): void {\n this.showDrag = null;\n }\n\n @HostListener('drop', ['$event']) drop(event: DragEvent): void {\n const move = event.dataTransfer && event.dataTransfer.getData('text');\n if (move === 'move') {\n this._svc.reorderColumn(this.column, this.showDrag === 'left');\n }\n this.showDrag = null;\n }\n\n ngOnInit(): void {\n this.columns = this._svc.columns;\n this.state = this._svc.state;\n this.sortParam = this.state.pipe(\n map((_) => StateUtil.getSortState(_, this.column))\n );\n this.filtered = this.state.pipe(\n map((_) => StateUtil.isColumnFiltered(_, this.column))\n );\n this.iconName = combineLatest([this.sortParam, this.filtered]).pipe(\n map((data: [SortParam, boolean]) => {\n const [sortParam, filtered] = data;\n if (sortParam && filtered) {\n return sortParam.asc ? 'filterSortUpColor' : 'filterSortDownColor';\n }\n if (sortParam) {\n return sortParam.asc ? 'sortUpColor' : 'sortDownColor';\n }\n if (filtered) {\n return 'filterColor';\n }\n return '';\n })\n );\n\n this.observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n entries.forEach((entry) => {\n if (!entry.isIntersecting && this.dropDownOpen) {\n this.dropDownOpen = false;\n this._cdr.detectChanges();\n }\n });\n }, {\n root: this._svc.getTableElement(this._elementRef.nativeElement),\n threshold: [1]\n });\n this.observer.observe(this._elementRef.nativeElement);\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n this.observer.unobserve(this._elementRef.nativeElement);\n this.observer.disconnect();\n }\n\n resizeStart(event: MouseEvent): void {\n const rect = this._elementRef.nativeElement.getBoundingClientRect();\n this._startPosition = rect.x;\n this._svc.lockPreviousColumns(this.column, this._elementRef.nativeElement);\n }\n\n resizeProcess(event: MouseEvent): void {\n if (this._startPosition && event.pageX > 0) {\n const position = this._startPosition;\n requestAnimationFrame(() => {\n this._svc.resizeColumn(\n new ColumnResizeEvent(this.column, event.pageX - position)\n );\n this._app.tick();\n });\n }\n }\n\n resizeEnd() {\n this._startPosition = null;\n }\n}\n","<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {TableColumn} from '../contract/table-column';\nimport {TableUtil} from '../util/table-util';\nimport {TableService} from '../service/table.service';\nimport {takeWhile} from 'rxjs/operators';\nimport {ArrayUtil} from '../../../common/util/array-util';\n\n@Component({\n selector: 'teta-table-head-group',\n templateUrl: './table-head-group.component.html',\n styleUrls: ['./table-head-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableHeadGroupComponent<T> implements OnInit, OnDestroy {\n @Input() showHeadCellMenu: boolean;\n @Input() data: T[];\n\n @Input()\n set column(column: TableColumn) {\n this._column = column;\n }\n\n get column(): TableColumn {\n return this._column;\n }\n\n @HostBinding('style.flex-grow') get flexGrow() {\n if (this.column?.columns?.length > 0) {\n const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true)\n .filter((_) => this._hiddenColumns.indexOf(_.name) < 0);\n return flat?.reduce((prev, curr) => prev + curr.flex, 0);\n }\n return this.column.flex;\n }\n\n @HostBinding('style.min-width.px')\n @HostBinding('style.flex-basis.px')\n get flexBasis() {\n if (this.column?.columns?.length > 0) {\n const flat = ArrayUtil.flatten(this.column?.columns, 'columns', true)\n .filter((_) => this._hiddenColumns.indexOf(_.name) < 0);\n return flat?.reduce((prev, curr) => prev + curr.width, 0);\n }\n return this.column.width;\n }\n\n private _alive = true;\n private _column: TableColumn;\n private _hiddenColumns: string[];\n\n private get _leaves() {\n return TableUtil.getColumnLeaves(this._column)?.filter(\n (_) => this._hiddenColumns.indexOf(_.name) < 0\n );\n }\n\n constructor(private _svc: TableService<T>, private _cdr: ChangeDetectorRef) {\n this._svc.hiddenColumns\n .pipe(takeWhile((_) => this._alive))\n .subscribe((_) => {\n this._hiddenColumns = _;\n this._cdr.markForCheck();\n });\n }\n\n columnIsHidden(column: TableColumn) {\n return this._svc.columnIsHidden(column);\n }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<ng-container *ngIf=\"column.columns && column.columns.length > 0\">\n <div class=\"table-head__group__container\">\n <div class=\"table-head__group__caption\">\n {{column.caption}}\n </div>\n <div class=\"table-head__group__children\">\n <ng-container *ngFor=\"let col of column.columns\">\n <teta-table-head-group\n class=\"table-head__group\"\n *ngIf=\"!columnIsHidden(col)\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"col\"></teta-table-head-group>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container *ngIf=\"!column.columns || column.columns.length === 0\">\n <teta-head-cell\n *ngIf=\"!columnIsHidden(column)\"\n class=\"table-head__cell\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"></teta-head-cell>\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TableService } from '../service/table.service';\nimport { takeWhile } from 'rxjs/operators';\n\n@Component({\n selector: 'teta-selection-head-cell',\n templateUrl: './selection-head-cell.component.html',\n styleUrls: ['./selection-head-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionHeadCellComponent<T> implements OnInit, OnDestroy {\n @HostBinding('class.table-head__group') private readonly tableCellClass = true;\n\n private _alive = true;\n\n constructor(private _svc: TableService<T>, private _cdr: ChangeDetectorRef) {}\n\n selectAll(value: boolean) {\n if (value) {\n this._svc.selectAll();\n } else {\n this._svc.deselectAll();\n }\n }\n\n allSelected() {\n return this._svc.allRowsSelected();\n }\n\n ngOnInit(): void {\n this._svc.selectedRows\n .pipe(takeWhile((_) => this._alive))\n .subscribe((_) => {\n this._cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<teta-checkbox [binary]=\"true\"\n [allowNull]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"allSelected()\"\n (ngModelChange)=\"selectAll($event)\"></teta-checkbox>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {TableColumn} from '../contract/table-column';\nimport {FilterState} from '../../filter/contarct/filter-state';\nimport {TableService} from '../service/table.service';\nimport {takeWhile} from 'rxjs/operators';\nimport {SelectType} from '../enum/select-type.enum';\nimport {combineLatest} from 'rxjs';\nimport {ArrayUtil} from '../../../common/util/array-util';\n\n@Component({\n selector: 'teta-table-head',\n templateUrl: './table-head.component.html',\n styleUrls: ['./table-head.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableHeadComponent<T> implements OnInit, OnDestroy {\n @Input() selectType: SelectType;\n @Input() showHeadCellMenu: boolean;\n @HostBinding('class.table-head') private readonly tableHeadClass = true;\n\n state: FilterState;\n selectTypeEnum = SelectType;\n lockedFlex: number;\n lockedWidth: number;\n\n private _alive = true;\n private _columns: TableColumn[] = [];\n private _hiddenColumns: string[] = [];\n\n set columns(columns: TableColumn[]) {\n this._columns = columns;\n this._cdr.markForCheck();\n }\n\n get columns(): TableColumn[] {\n return this._columns;\n }\n\n get locked(): TableColumn[] {\n return this._columns.filter(\n (_) => _.locked === true && this._hiddenColumns.indexOf(_.name) < 0\n );\n }\n\n get unlocked(): TableColumn[] {\n return this._columns.filter(\n (_) => _.locked === false && this._hiddenColumns.indexOf(_.name) < 0\n );\n }\n\n data: T[];\n\n constructor(private _svc: TableService<T>, private _cdr: ChangeDetectorRef) {\n\n }\n\n track(index: number, item: TableColumn): any {\n return item.name;\n }\n\n ngOnInit(): void {\n combineLatest([this._svc.columns, this._svc.hiddenColumns])\n .pipe(takeWhile((_) => this._alive))\n .subscribe((values: [TableColumn[], string[]]) => {\n const [columns, hiddenColumns] = values;\n this._hiddenColumns = hiddenColumns;\n this.columns = columns;\n const locked = ArrayUtil.flatten(columns, 'columns', true)\n .filter((_) => this._hiddenColumns.indexOf(_.name) < 0 && _.locked);\n const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;\n this.lockedFlex = locked.reduce((prev: number, curr: TableColumn) => prev + curr.flex, 0);\n this.lockedWidth = locked.reduce((prev: number, curr: TableColumn) => prev + curr.width, startWidth);\n this._cdr.markForCheck();\n });\n\n this._svc.state.pipe(takeWhile((_) => this._alive)).subscribe((_) => {\n this.state = _;\n this._cdr.markForCheck();\n });\n\n this._svc.displayData.pipe(takeWhile((_) => this._alive)).subscribe((_) => {\n this.data = _;\n this._cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<div class=\"table-head_locked\"\n *ngIf=\"locked?.length\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <teta-selection-head-cell\n *ngIf=\"selectType === selectTypeEnum.checkBox\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of locked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</div>\n<ng-container *ngIf=\"unlocked?.length\">\n <teta-selection-head-cell\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked?.length < 1\"\n style=\"width: 28px;\"></teta-selection-head-cell>\n <teta-table-head-group\n *ngFor=\"let column of unlocked; trackBy: track\"\n class=\"table-head__group\"\n [data]=\"data\"\n [showHeadCellMenu]=\"showHeadCellMenu\"\n [column]=\"column\"></teta-table-head-group>\n</ng-container>\n","export enum AggregationType {\n none,\n sum,\n avg,\n min,\n max,\n}\n","import {\n ChangeDetectorRef,\n Component,\n HostBinding, Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {TableService} from '../service/table.service';\nimport {takeWhile} from 'rxjs/operators';\nimport {ICellCoordinates} from '../contract/i-cell-coordinates';\nimport {TableColumn} from '../contract/table-column';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {ICellValue} from '../contract/i-cell-value';\nimport {IDictionary} from '../../../common/contract/i-dictionary';\n\n@Component({\n template: '',\n})\nexport abstract class CellComponentBase<T> implements OnInit, OnDestroy {\n @HostBinding('class.cell-component')\n private readonly tableCellComponent = true;\n\n get edit() {\n return (this._edit && this.editable);\n }\n\n get editable() {\n return this.svc.boolOrFuncCallback(this.column.editable)({\n column: this.column,\n row: this.row,\n });\n }\n\n get index() {\n return this.svc.getRowIndex(this.row);\n }\n\n _edit: boolean;\n @Input() column: TableColumn;\n @Input() filterOptions: IIdName<any>[] = [];\n dict: IDictionary<IIdName<any>[]> = {};\n @Input() row: T;\n\n protected _alive = true;\n\n protected constructor(\n protected svc: TableService<T>,\n protected cdr: ChangeDetectorRef\n ) {\n }\n\n valueChanged(): void {\n this.svc.changeValue({\n column: this.column.name,\n row: this.index,\n });\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n\n ngOnInit(): void {\n this.init();\n }\n\n private init(): void {\n this.svc.editRowStart\n .pipe(\n takeWhile((_) => this._alive)\n )\n .subscribe((cell: ICellCoordinates) => {\n if (this.index === cell?.row && !this._edit) {\n this.start(cell, 'row');\n }\n if (this.index !== cell?.row && this._edit) {\n this.stop();\n }\n });\n\n this.svc.editCellStart\n .pipe(\n takeWhile((_) => this._alive)\n )\n .subscribe((cell: ICellCoordinates) => {\n if (this.index === cell?.row && this.column.name === cell?.column && !this._edit) {\n this.start(cell, 'cell');\n }\n if ((this.index !== cell?.row || this.column.name !== cell?.column) && this._edit) {\n this.stop();\n }\n });\n\n this.svc.valueSet\n .pipe(takeWhile((_) => this._alive))\n .subscribe((cellValue: ICellValue) => {\n if (this.index === cellValue.row && this.column.name === cellValue.column) {\n this.row[this.column.name] = cellValue.value;\n this.cdr.detectChanges();\n }\n });\n\n this.svc.valueChanged\n .pipe(takeWhile((_) => this._alive))\n .subscribe((cellValue: ICellCoordinates) => {\n if (this.index === cellValue.row) {\n this.cdr.detectChanges();\n }\n });\n }\n\n private start(initiator: ICellCoordinates, type: 'cell' | 'row') {\n this._edit = true;\n this.cdr.detectChanges();\n this.startEdit(initiator, type);\n }\n\n private stop() {\n this._edit = false;\n this.stopEdit();\n this.cdr.markForCheck();\n }\n\n abstract startEdit(\n initiator: ICellCoordinates,\n type: 'cell' | 'row'\n ): void;\n\n abstract stopEdit(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport {CellComponentBase} from '../../base/cell-component-base';\nimport {TableService} from '../../service/table.service';\nimport {ICellCoordinates} from '../../contract/i-cell-coordinates';\n\n@Component({\n selector: 'teta-numeric-cell',\n templateUrl: './numeric-cell.component.html',\n styleUrls: ['./numeric-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumericCellComponent<T>\n extends CellComponentBase<T>\n implements OnInit {\n @ViewChild('input', {static: false}) input: ElementRef;\n\n constructor(\n protected override svc: TableService<T>,\n protected override cdr: ChangeDetectorRef\n ) {\n super(svc, cdr);\n }\n\n applyValue(value) {\n this.row[this.column.name] = value;\n }\n\n setValue(): void {\n this.valueChanged();\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void {\n if (initiator?.column === this.column.name) {\n this.cdr.detectChanges();\n this.input.nativeElement?.focus();\n // this.input.nativeElement?.select();\n // this.cdr.detectChanges();\n\n // setTimeout(() => {\n // this.input?.nativeElement.focus();\n // this.input?.nativeElement.select();\n // this.cdr.markForCheck();\n // }, 0);\n }\n }\n\n stopEdit(): void {\n this.cdr.markForCheck();\n }\n}\n","<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row[column.name] | tetaNumber : 2}}\n</span>\n<input #input\n *ngIf=\"edit\"\n [tetaOnlyNumber]=\"true\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row[column.name]\"\n (ngModelChange)=\"applyValue($event)\"/>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport {CellComponentBase} from '../../base/cell-component-base';\nimport {TableService} from '../../service/table.service';\nimport {ICellCoordinates} from '../../contract/i-cell-coordinates';\nimport {DatePickerComponent} from '../../../date-picker/date-picker/date-picker.component';\n\n@Component({\n selector: 'teta-date-cell',\n templateUrl: './date-cell.component.html',\n styleUrls: ['./date-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DateCellComponent<T>\n extends CellComponentBase<T>\n implements OnInit {\n\n @ViewChild('input', {static: false}) input: DatePickerComponent;\n\n constructor(\n protected override svc: TableService<T>,\n protected override cdr: ChangeDetectorRef\n ) {\n super(svc, cdr);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n setValue(value: Date): void {\n this.row[this.column.name] = value ? new Date(value) : value;\n this.valueChanged();\n this.cdr.detectChanges();\n }\n\n startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void {\n if (initiator?.column === this.column.name) {\n setTimeout(() => {\n this.input?.focus();\n this.cdr.markForCheck();\n }, 0);\n }\n }\n\n stopEdit(): void {\n this.cdr.markForCheck();\n }\n}\n","<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row[column.name] | date : 'dd.MM.yyyy'}}\n</span>\n<teta-date-picker class=\"datepicker-table\"\n #input\n *ngIf=\"edit\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [showTime]=\"false\"\n [ngModel]=\"row[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport {TableService} from '../../service/table.service';\nimport {CellComponentBase} from '../../base/cell-component-base';\nimport {SelectComponent} from '../../../select/select/select.component';\nimport {IIdName} from '../../../../common/contract/i-id-name';\nimport {ICellCoordinates} from '../../contract/i-cell-coordinates';\nimport {VerticalAlign} from '../../../../common/enum/vertical-align.enum';\n\n@Component({\n selector: 'teta-list-cell',\n templateUrl: './list-cell.component.html',\n styleUrls: ['./list-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListCellComponent<T>\n extends CellComponentBase<T>\n implements OnInit {\n\n get value() {\n return this.getValue();\n }\n\n get displayFilterOptions(): IIdName<any>[] {\n if (this.column?.parentName?.length > 0) {\n const parentValue = this.row[this.column.parentName];\n if (parentValue) {\n return this.filterOptions.filter(_ => _.parentId === parentValue);\n }\n }\n return this.filterOptions;\n }\n\n @ViewChild('input', {static: false}) input: SelectComponent;\n\n verticalAlign = VerticalAlign;\n\n constructor(\n protected override svc: TableService<T>,\n protected override cdr: ChangeDetectorRef\n ) {\n super(svc, cdr);\n }\n\n setValue(value: any): void {\n this.row[this.column.name] = value;\n this.valueChanged();\n }\n\n startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void {\n if (initiator?.column === this.column.name) {\n setTimeout(() => {\n this.input?.focus();\n this.cdr.markForCheck();\n }, 0);\n }\n }\n\n stopEdit() {\n this.cdr.markForCheck();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n }\n\n private getValue() {\n if (\n this.filterOptions === null ||\n this.filterOptions === undefined ||\n !(this.filterOptions instanceof Array)\n ) {\n return '';\n }\n const item = this.filterOptions.find(\n (option) => option.id === this.row[this.column.name]\n );\n if (item === null || item === undefined) {\n return '';\n }\n return item.name;\n }\n}\n","<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{value}}\n</span>\n<teta-select #input\n class=\"row_auto select-table\"\n *ngIf=\"edit\"\n [allowNull]=\"!column.required\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [options]=\"displayFilterOptions\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [ngModel]=\"row[column.name]\"\n (ngModelChange)=\"setValue($event)\">\n</teta-select>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport {CellComponentBase} from '../../base/cell-component-base';\nimport {TableService} from '../../service/table.service';\nimport {ICellCoordinates} from '../../contract/i-cell-coordinates';\nimport {Align} from '../../../../common/enum/align.enum';\n\n@Component({\n selector: 'teta-string-cell',\n templateUrl: './string-cell.component.html',\n styleUrls: ['./string-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StringCellComponent<T>\n extends CellComponentBase<T>\n implements OnInit {\n align = Align;\n @ViewChild('input', {static: false}) input: ElementRef;\n\n constructor(public override svc: TableService<T>, public override cdr: ChangeDetectorRef) {\n super(svc, cdr);\n }\n\n setValue(): void {\n this.valueChanged();\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void {\n if (initiator?.column === this.column.name) {\n this.cdr.detectChanges();\n this.input.nativeElement?.focus();\n this.input.nativeElement?.select();\n // this.cdr.detectChanges();\n // this.input.nativeElement?.focus();\n // this.input.nativeElement?.select();\n // this.cdr.detectChanges();\n // setTimeout(() => {\n // this.input.nativeElement?.focus();\n // this.input.nativeElement?.select();\n // }, 0);\n }\n }\n\n stopEdit(): void {\n this.cdr.detectChanges();\n }\n}\n","<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [tetaHint]=\"row[column.name]\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [overflownOnly]=\"true\"\n [class.cell-text_disabled]=\"!editable\">\n {{row[column.name]}}\n</span>\n<input #input\n *ngIf=\"edit\"\n type=\"text\"\n class=\"input row_auto border-radius-0\"\n (blur)=\"setValue()\"\n [ngModel]=\"row[column.name]\"\n (ngModelChange)=\"row[column.name]=$event\"/>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport {CellComponentBase} from '../../base/cell-component-base';\nimport {TableService} from '../../service/table.service';\nimport {ICellCoordinates} from '../../contract/i-cell-coordinates';\n\n@Component({\n selector: 'teta-boolean-cell',\n templateUrl: './boolean-cell.component.html',\n styleUrls: ['./boolean-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BooleanCellComponent<T>\n extends CellComponentBase<T>\n implements OnInit {\n @ViewChild('input', {static: false}) input: ElementRef;\n\n constructor(public override svc: TableService<T>, public override cdr: ChangeDetectorRef) {\n super(svc, cdr);\n }\n\n setValue(): void {\n this.valueChanged();\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void {\n if (initiator?.column === this.column.name) {\n this.cdr.markForCheck();\n setTimeout(() => {\n this.input?.nativeElement.focus();\n }, 0);\n }\n }\n\n stopEdit(): void {\n this.cdr.markForCheck();\n }\n}\n","<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{ row[column.name] }}\n</span>\n<teta-checkbox\n #input\n *ngIf=\"edit\"\n [binary]=\"true\"\n [(ngModel)]=\"row[column.name]\"\n (blur)=\"setValue()\"\n></teta-checkbox>\n","import { FilterType } from '../../filter/enum/filter-type.enum';\nimport { Type } from '@angular/core';\nimport { NumericCellComponent } from '../default/numeric-cell/numeric-cell.component';\nimport { DateCellComponent } from '../default/date-cell/date-cell.component';\nimport { ListCellComponent } from '../default/list-cell/list-cell.component';\nimport { StringCellComponent } from '../default/string-cell/string-cell.component';\nimport { TableColumn } from './table-column';\nimport { BooleanCellComponent } from '../default/boolean-cell/boolean-cell.component';\n\nconst cellComponentsMap: Map<FilterType, Type<any>> = new Map<\n FilterType,\n Type<any>\n>()\n .set(FilterType.number, NumericCellComponent)\n .set(FilterType.date, DateCellComponent)\n .set(FilterType.list, ListCellComponent)\n .set(FilterType.string, StringCellComponent)\n .set(FilterType.boolean, BooleanCellComponent)\n .set(FilterType.custom, StringCellComponent);\n\nexport const getCellComponent = (column: TableColumn): Type<any> =>\n cellComponentsMap.has(column.filterType)\n ? cellComponentsMap.get(column.filterType)\n : StringCellComponent;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { CellComponentBase } from '../base/cell-component-base';\nimport { TableColumn } from '../contract/table-column';\nimport { getCellComponent } from '../contract/cell-components-map';\nimport { IIdName } from '../../../common/contract/i-id-name';\nimport { IDictionary } from '../../../common/contract/i-dictionary';\n\n@Component({\n selector: 'teta-cell-host',\n template: '',\n styleUrls: ['./cell-host.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CellHostComponent<T> implements OnInit, OnDestroy, OnChanges {\n @Input() column: TableColumn;\n @Input() row: T;\n @Input() filterOptions: IIdName<any>[];\n @Input() dict: IDictionary<IIdName<any>[]>;\n private _init = false;\n private _componentRef: ComponentRef<any>;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n if (!CellComponentBase.isPrototypeOf(this.column.cellComponent)) {\n this.column.cellComponent = getCellComponent(this.column);\n }\n this._componentRef = this.viewContainerRef.createComponent(\n this.column.cellComponent\n );\n this._componentRef.instance.column = this.column;\n this._componentRef.instance.row = this.row;\n this._componentRef.instance.filterOptions = this.filterOptions;\n this._componentRef.instance.dict = this.dict;\n this._init = true;\n }\n\n ngOnDestroy(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n this._init &&\n (changes.hasOwnProperty('row') ||\n changes.hasOwnProperty('column') ||\n changes.hasOwnProperty('filterOptions') ||\n changes.hasOwnProperty('dict'))\n ) {\n this._componentRef.instance.row = this.row;\n this._componentRef.instance.column = this.column;\n this._componentRef.instance.filterOptions = this.filterOptions;\n this._componentRef.instance.dict = this.dict;\n this._componentRef.injector.get(ChangeDetectorRef).markForCheck();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TableColumn } from '../contract/table-column';\nimport { TableService } from '../service/table.service';\nimport { IIdName } from '../../../common/contract/i-id-name';\nimport { IDictionary } from '../../../common/contract/i-dictionary';\n\n@Component({\n selector: 'teta-cell',\n templateUrl: './cell.component.html',\n styleUrls: ['./cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CellComponent<T> implements OnInit, OnDestroy {\n @Input() column: TableColumn;\n @Input() filterOptions: IIdName<any>[];\n @Input() dict: IDictionary<IIdName<any>[]>;\n @Input() row: T;\n @HostBinding('class.cell') private readonly tableCellClass = true;\n\n private alive = true;\n\n constructor(protected _svc: TableService<T>) {}\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n this.alive = false;\n }\n}\n","<teta-cell-host [row]=\"row\"\n [column]=\"column\"\n [filterOptions]=\"filterOptions\"\n [dict]=\"dict\"></teta-cell-host>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TableService } from '../service/table.service';\nimport { takeWhile } from 'rxjs/operators';\n\n@Component({\n selector: 'teta-selection-cell',\n templateUrl: './selection-cell.component.html',\n styleUrls: ['./selection-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionCellComponent<T> implements OnInit, OnDestroy {\n @Input() row: T;\n\n @HostBinding('class.cell') private readonly tableCellClass = true;\n selectedRows: T[] = [];\n\n private _alive = true;\n\n constructor(private _svc: TableService<T>, private _cdr: ChangeDetectorRef) {}\n\n selectRow(value: boolean) {\n if (value) {\n this._svc.selectRow(this.row);\n } else {\n this._svc.deselectRow(this.row);\n }\n }\n\n ngOnInit(): void {\n this._svc.selectedRows\n .pipe(takeWhile((_) => this._alive))\n .subscribe((_) => {\n this.selectedRows = _;\n this._cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n}\n","<teta-checkbox [binary]=\"true\"\n [noLabel]=\"true\"\n [ngModel]=\"selectedRows?.indexOf(row) >= 0\"\n (ngModelChange)=\"selectRow($event)\"\n (click)=\"$event.stopPropagation()\"></teta-checkbox>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ElementRef, EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit, Output,\n Type,\n ViewChild,\n} from '@angular/core';\nimport {TableColumn} from '../contract/table-column';\nimport {TableService} from '../service/table.service';\nimport {DetailComponentBase} from '../base/detail-component-base';\nimport {takeWhile} from 'rxjs/operators';\nimport {SelectType} from '../enum/select-type.enum';\nimport {combineLatest, Observable} from 'rxjs';\nimport {ArrayUtil} from '../../../common/util/array-util';\nimport {IDictionary} from '../../../common/contract/i-dictionary';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {AggregationType} from '../enum/aggregation-type.enum';\nimport {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {TetaLocalisation} from '../../../locale/teta-localisation';\nimport {TetaConfigService} from '../../../locale/teta-config.service';\n\n@Component({\n selector: 'teta-table-body',\n templateUrl: './table-body.component.html',\n styleUrls: ['./table-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableBodyComponent<T> implements OnInit, OnDestroy {\n @Input() virtual: boolean;\n @Input() activeRow: T;\n @Input() selectedRows: T[] = [];\n @Input() additionalComponent: Type<DetailComponentBase<T>>;\n @Input() aggregate: boolean;\n @Input() selectType: SelectType;\n @Input() rowClass: (row: T, index?: number) => string;\n @Input() trackRow: (index: number, row: T) => any;\n @Input() trackColumns: (index: number, column: TableColumn) => any;\n @ViewChild(CdkVirtualScrollViewport, {static: false}) viewport: CdkVirtualScrollViewport;\n\n @HostBinding('class.table-body') private readonly tableBodyClass = true;\n @Output() scroll = new EventEmitter<Event>();\n set data(data: T[]) {\n this._data = data;\n }\n\n get data() {\n return this._data;\n }\n\n dict: IDictionary<IIdName<any>[]>;\n locked: TableColumn[] = [];\n unlocked: TableColumn[] = [];\n selectTypeEnum = SelectType;\n lockedFlex: number;\n lockedWidth: number;\n totalFlex: number;\n totalWidth: number;\n\n private _columns: TableColumn[] = [];\n private _alive = true;\n private _data: T[];\n private _hiddenColumns: string[] = [];\n private _obs: ResizeObserver;\n\n set columns(columns: TableColumn[]) {\n this._columns = columns;\n this.locked = this._columns?.filter((_) => _.locked === true);\n this.unlocked = this._columns?.filter((_) => _.locked === false);\n const startWidth = this.selectType === SelectType.checkBox ? 28 : 0;\n this.lockedFlex = this.locked.reduce((prev: number, curr: TableColumn) => prev + curr.flex, 0);\n this.lockedWidth = this.locked.reduce((prev: number, curr: TableColumn) => prev + curr.width, startWidth);\n this.totalFlex = this._columns.reduce((prev: number, curr: TableColumn) => prev + curr.flex, 0);\n this.totalWidth = this._columns.reduce((prev: number, curr: TableColumn) => prev + curr.width, startWidth);\n }\n\n get columns(): TableColumn[] {\n return this._columns;\n }\n\n locale: Observable<TetaLocalisation>;\n\n constructor(private _svc: TableService<T>,\n private _elementRef: ElementRef,\n private _config: TetaConfigService,\n private _cdr: ChangeDetectorRef) {\n\n }\n\n setActiveRow(row: T, event: MouseEvent) {\n if (!event.shiftKey && !event.ctrlKey) {\n this._svc.setActiveRow(row);\n }\n }\n\n ngOnInit(): void {\n this.locale = this._config.locale;\n combineLatest([this._svc.columns, this._svc.hiddenColumns])\n .pipe(takeWhile((_) => this._alive))\n .subscribe((values: [TableColumn[], string[]]) => {\n const [columns, hiddenColumns] = values;\n this._hiddenColumns = hiddenColumns;\n this.columns = ArrayUtil.flatten(columns, 'columns', true).filter(\n (_) => this._hiddenColumns.indexOf(_.name) < 0\n );\n this._cdr.markForCheck();\n });\n\n this._svc.displayData.pipe(\n takeWhile((_) => this._alive)\n ).subscribe((_) => {\n this.data = _;\n this._cdr.markForCheck();\n this.viewport?.checkViewportSize();\n });\n\n this._svc.dict.pipe(takeWhile((_) => this._alive)).subscribe((_) => {\n this.dict = _;\n this._cdr.markForCheck();\n });\n\n this._svc.scrollIndex\n .pipe(takeWhile(() => this._alive))\n .subscribe(async (index) => {\n if (this.viewport) {\n this.viewport.scrollToIndex(index, 'auto');\n } else {\n const row = this._elementRef.nativeElement.querySelector(`.table-row[data-row=\"${index}\"]`) as HTMLElement;\n row?.scrollIntoView();\n }\n this._cdr.markForCheck();\n });\n\n this._svc.activeRow\n .pipe(takeWhile((_) => this._alive))\n .subscribe(async (_) => {\n this.activeRow = _;\n this._cdr.markForCheck();\n });\n this.addResizeObserver();\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n this.removeResizeObserver()\n }\n\n getAggregateValue(column: TableColumn): number {\n if (column.aggregate === AggregationType.sum) {\n return this.getSum(column.name);\n }\n if (column.aggregate === AggregationType.avg) {\n return this.getSum(column.name) / this.data.length;\n }\n if (column.aggregate === AggregationType.min) {\n return this.getMin(column.name);\n }\n if (column.aggregate === AggregationType.max) {\n return this.getMax(column.name);\n }\n }\n\n getAggregateText(column: TableColumn): string {\n if (column.aggregate === AggregationType.sum) {\n return 'sum';\n }\n if (column.aggregate === AggregationType.avg) {\n return 'avg';\n }\n if (column.aggregate === AggregationType.min) {\n return 'min';\n }\n if (column.aggregate === AggregationType.max) {\n return 'max';\n }\n return '';\n }\n\n emitScroll(event) {\n this.scroll.emit(event)\n }\n\n // trackRow(index: number, row: T): any {\n // if (row['id']) {\n // return row['id'];\n // }\n // return index;\n // }\n //\n // trackColumns(index: number, column: TableColumn): any {\n // return column.name;\n // }\n\n private addResizeObserver() {\n this._obs = new ResizeObserver((_) => {\n this.viewport?.checkViewportSize();\n });\n\n this._obs.observe(this._elementRef.nativeElement);\n }\n\n private removeResizeObserver() {\n this._obs.unobserve(this._elementRef.nativeElement);\n this._obs.disconnect();\n }\n\n private getSum(columnName) {\n return this.data?.reduce((accum, current) => {\n const val = parseFloat(current[columnName]);\n return accum + (isNaN(val) ? 0 : val);\n }, 0);\n }\n\n private getMin(columnName) {\n return this.data?.reduce(\n (accum, current) =>\n accum != null && accum <= current[columnName]\n ? accum\n : current[columnName],\n null\n );\n }\n\n private getMax(columnName) {\n return this.data?.reduce(\n (accum, current) =>\n accum != null && accum >= current[columnName]\n ? accum\n : current[columnName],\n null\n );\n }\n}\n","<teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n showScrollbars=\"true\"\n *ngIf=\"virtual && data.length > 0; else nonVirtual\">\n <cdk-virtual-scroll-viewport tetaScrollable\n class=\"table-body-container\"\n (scroll)=\"emitScroll($event)\"\n [itemSize]=\"28\">\n <ng-container *cdkVirtualFor=\"let row of data;templateCacheSize: 0; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n</teta-scrollable>\n<ng-template #nonVirtual>\n <teta-scrollable class=\"table-body-container\"\n style=\"padding-bottom: 12px\"\n direction=\"column\"\n showScrollbars=\"true\"\n (scroll)=\"emitScroll($event)\">\n <div class=\"table-body-container\">\n <div class=\"column column_auto\"\n style=\"position: absolute; top:0; bottom:16px;left:0;right:0;\"\n *ngIf=\"!data?.length\">\n <ng-content></ng-content>\n </div>\n <ng-container *ngFor=\"let row of data; let rowIndex = index; trackBy: trackRow;\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate; context: {row: row, rowIndex: rowIndex}\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"aggregate\">\n <ng-container *ngTemplateOutlet=\"aggTemplate;\"></ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"emptyRow;\"></ng-container>\n </div>\n </teta-scrollable>\n</ng-template>\n\n<ng-template #bodyTemplate let-row=\"row\" let-rowIndex=\"rowIndex\">\n <div class=\"table-row\"\n (click)=\"setActiveRow(row, $event)\"\n [attr.data-row]=\"rowIndex\"\n [class.table-row_odd]=\"rowIndex % 2 === 1\"\n [ngClass]=\"rowClass ? rowClass(row, rowIndex) : ''\"\n [class.table-row_selected]=\"selectedRows && selectedRows.indexOf(row) >= 0\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\"\n [style.zIndex]=\"row === activeRow ? 2 : 1\">\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n <teta-selection-cell *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\"\n [row]=\"row\"\n style=\"width: 28px;\"></teta-selection-cell>\n <teta-cell\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-row]=\"rowIndex\"\n [attr.data-column]=\"column.name\"\n [column]=\"column\"\n [filterOptions]=\"dict?dict[column.name]:[]\"\n [dict]=\"dict\"\n [row]=\"row\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\"\n ></teta-cell>\n </div>\n</ng-template>\n\n<ng-template #aggTemplate>\n <ng-container *ngIf=\"locale | async as loc\">\n <div class=\"table-row\"\n *ngIf=\"aggregate\"\n [class.table-row_virtual]=\"virtual\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n <div class=\"table-row_locked\"\n *ngIf=\"locked.length > 0\"\n [style.flex-grow]=\"lockedFlex\"\n [style.flex-basis.px]=\"lockedWidth\"\n [style.min-width.px]=\"lockedWidth\">\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component aggregate-cell\"\n *ngFor=\"let column of locked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n <div class=\"cell align-center justify-content-center\"\n style=\"width: 28px;\"\n *ngIf=\"selectType === selectTypeEnum.checkBox && locked.length < 1\">\n <teta-icon [name]=\"'sumColor'\"></teta-icon>\n </div>\n <div class=\"cell cell-component aggregate-cell\"\n *ngFor=\"let column of unlocked; let colIndex = index; trackBy: trackColumns;\"\n [attr.data-column]=\"column.name\"\n [ngClass]=\"column.cellClass\"\n [attr.tabindex]=\"0\"\n [style.flex-grow]=\"column.flex\"\n [style.flex-basis.px]=\"column.width\">\n <span class=\"cell-text cell-text_numeric font-title-3\">\n {{loc[getAggregateText(column)]}}:\n {{getAggregateValue(column) | tetaNumber : 2}}\n </span>\n </div>\n </div>\n </ng-container>\n</ng-template>\n<ng-template #emptyRow>\n <div class=\"empty-table-row\"\n style=\"height: 0.1px\"\n [style.flex-grow]=\"totalFlex\"\n [style.flex-basis.px]=\"totalWidth\"\n [style.min-width.px]=\"totalWidth\">\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n} from '@angular/core';\nimport {TableService} from '../service/table.service';\nimport {TableColumn} from '../contract/table-column';\nimport {FilterState} from '../../filter/contarct/filter-state';\nimport {DetailComponentBase} from '../base/detail-component-base';\nimport {ICellEvent} from '../contract/i-cell-event';\nimport {ICellCoordinates} from '../contract/i-cell-coordinates';\nimport {filter, takeWhile} from 'rxjs/operators';\nimport {EditType} from '../enum/edit-type.enum';\nimport {EditEvent} from '../enum/edit-event.enum';\nimport {SelectType} from '../enum/select-type.enum';\nimport {IIdName} from '../../../common/contract/i-id-name';\nimport {IDictionary} from '../../../common/contract/i-dictionary';\nimport {ICellInstance, ICellInstanceEvent} from '../contract/i-cell-instance';\nimport {FilterType} from '../../filter/enum/filter-type.enum';\nimport {VerticalAlign} from '../../../common/enum/vertical-align.enum';\nimport {Align} from '../../../common/enum/align.enum';\n\n@Component({\n selector: 'teta-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TableService],\n})\nexport class TableComponent<T>\n implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @Input() data: T[] = [];\n @Input() columns: TableColumn[] = [];\n @Input() dict: IDictionary<IIdName<any>[]>;\n @Input() filterOptions: IDictionary<IIdName<any>[]>;\n\n @Input()\n set state(state: FilterState) {\n this._state = state;\n }\n\n @Input() cookieName: string;\n @Input() virtual: boolean;\n @Input() detailComponent: Type<DetailComponentBase<T>>;\n @Input() activeRow: T;\n @Input() selectedRows: T[];\n @Input() selectType: SelectType = SelectType.mouse;\n @Input() aggregate: boolean;\n @Input() trackRow: (index: number, row: T) => any = (index: number, row: T) => {\n if (row['id']) {\n return row['id'];\n }\n return index;\n };\n @Input() trackColumns: (index: number, column: TableColumn) => any = (index: number, column: TableColumn) => {\n return column.name;\n };\n @Input() editType: EditType = EditType.cell;\n @Input() editEvent: EditEvent = EditEvent.doubleClick;\n @Input() rowEditable: boolean | ((row: T) => boolean);\n @Input() rowClass: (row: T, index?: number) => string;\n\n @Input() set scrollToIndex(index: number) {\n this._svc.scrollToIndex(index);\n }\n\n @Input() showHeadCellMenu = true;\n @Input() contextMenu: TemplateRef<any>;\n @Input() contextMenuOpen: boolean;\n @Output() contextMenuOpenChange = new EventEmitter<boolean>();\n\n @Output()\n stateChange: EventEmitter<FilterState> = new EventEmitter<FilterState>();\n @Output() bodyLeft = new EventEmitter<T>();\n @Output() activeRowChange: EventEmitter<T> = new EventEmitter();\n @Output() selectedRowsChange: EventEmitter<T[]> =\n new EventEmitter();\n @Output() cellClick = new EventEmitter<ICellInstanceEvent<T>>();\n @Output() cellDoubleClick = new EventEmitter<ICellInstanceEvent<T>>();\n @Output() cellFocus = new EventEmitter<ICellInstanceEvent<T>>();\n @Output() cellKeyDown = new EventEmitter<ICellInstanceEvent<T>>();\n @Output() rowLeft = new EventEmitter<T>();\n @Output() rowEditStart = new EventEmitter<ICellInstance<T>>();\n @Output() rowEditEnd = new EventEmitter<T>();\n @Output() cellEditStart = new EventEmitter<ICellInstance<T>>();\n @Output() cellEditEnd = new EventEmitter<ICellInstance<T>>();\n @Output() valueChange = new EventEmitter<ICellInstance<T>>();\n @Output() tableService = new EventEmitter<TableService<T>>();\n @ViewChild('contextMenu', {static: true}) menu: ElementRef;\n @HostBinding('class.table') private readonly tableClass = true;\n\n selectedRowsList: T[];\n contextMenuRow: T;\n verticalAlign = VerticalAlign;\n align = Align;\n private _alive = true;\n private _headElement: HTMLElement;\n private _state: FilterState;\n\n constructor(private _svc: TableService<T>, private _elementRef: ElementRef) {\n this._svc.state\n .pipe(\n takeWhile((_) => this._alive),\n filter((state) => state !== this._state)\n )\n .subscribe((state: FilterState) => this.stateChange.next(state));\n\n this._svc.editCellStart\n .pipe(takeWhile((_) => this._alive))\n .subscribe((item: ICellEvent) => this.cellEditStart.emit(this._svc.getCellInstance(item)));\n\n this._svc.editCellStop\n .pipe(takeWhile((_) => this._alive))\n .subscribe((item: ICellCoordinates) => this.cellEditEnd.emit(this._svc.getCellInstance(item)));\n\n this._svc.editRowStart\n .pipe(takeWhile((_) => this._alive))\n .subscribe((item: ICellEvent) =>\n this.rowEditStart.emit(this._svc.getCellInstance(item))\n );\n\n this._svc.editRowStop\n .pipe(takeWhile((_) => this._alive))\n .subscribe((item: ICellCoordinates) =>\n this.rowEditEnd.emit(this._svc.getRowByIndex(item?.row))\n );\n\n this._svc.selectedRows\n .pipe(takeWhile((_) => this._alive))\n .subscribe((items: T[]) => {\n this.selectedRowsList = items;\n this.selectedRowsChange.emit(items);\n });\n\n this._svc.activeRow\n .pipe(takeWhile((_) => this._alive))\n .subscribe((item: T) => {\n this.activeRow = item;\n this.activeRowChange.emit(item)\n });\n\n this._svc.valueChanged\n .pipe(takeWhile((_) => this._alive))\n .subscribe((coordinates: ICellCoordinates) => {\n this.valueChange.emit(this._svc.getCellInstance(coordinates));\n });\n }\n\n @HostListener('document:click', ['$event']) handleClickOutsideAnyRow(\n event: MouseEvent\n ) {\n const coordinates = this.getCoordinates(event);\n const row = this.getRow(event);\n const eventIsOnRow = this.eventIsOnRow(event);\n setTimeout(() => {\n if (coordinates) {\n this.cellClick.emit({\n ...this._svc.getCellInstance(coordinates),\n event\n });\n if (this.editEvent === EditEvent.click) {\n this.startEditRowOrCell(coordinates);\n } else {\n if (this._svc.currentEditCell && (coordinates.row !== this._svc.currentEditCell.row || coordinates.column !== this._svc.currentEditCell.column)) {\n this.startEditRowOrCell(null);\n }\n }\n }\n if (row) {\n if (event.ctrlKey) {\n this._svc.selectOrDeselectRow(row);\n } else if (event.shiftKey) {\n this._svc.selectRange(row);\n } else {\n this._svc.selectRows([row]);\n }\n }\n if (!eventIsOnRow && !event.defaultPrevented) {\n if (this.editType === EditType.row) {\n this._svc.startEditRow(null);\n } else {\n this._svc.startEditCell(null);\n }\n }\n });\n }\n\n @HostListener('focusin', ['$event']) focusIn(event: any) {\n const coordinates = this.getCoordinates(event);\n if (coordinates) {\n this.cellFocus.emit({\n ...this._svc.getCellInstance(coordinates),\n event\n });\n if (this.editEvent === EditEvent.focus) {\n this.startEditRowOrCell(coordinates);\n }\n }\n }\n\n @HostListener('dblclick', ['$event'])\n dblclick(event: MouseEvent) {\n const coordinates = this.getCoordinates(event);\n if (coordinates) {\n setTimeout(() => {\n this.cellDoubleClick.emit({\n ...this._svc.getCellInstance(coordinates),\n event\n });\n if (this.editEvent === EditEvent.doubleClick) {\n this.startEditRowOrCell(coordinates);\n }\n });\n }\n }\n\n @HostListener('keydown', ['$event'])\n keydown(event: KeyboardEvent) {\n if (event.ctrlKey) {\n if (event.code === 'KeyA') {\n event.preventDefault();\n this._svc.selectAll();\n }\n return;\n }\n if (event.key === 'Escape') {\n this._svc.deselectAll();\n if (this.editType === EditType.row) {\n this._svc.startEditRow(null);\n } else {\n this._svc.startEditCell(null);\n }\n }\n const coordinates = this.getCoordinates(event);\n if (event.key === 'Enter') {\n if (this.editType === EditType.row) {\n this._svc.startEditRow(null);\n } else {\n if (this._svc.currentEditCell) {\n const target = this._svc.getNextRowCell(coordinates);\n if (target) {\n this.startEditRowOrCell({\n row: target.row,\n column: target.column,\n event: undefined\n });\n } else {\n this._svc.startEditCell(null);\n }\n }\n }\n }\n if (coordinates) {\n this.cellKeyDown.emit({\n ...this._svc.getCellInstance(coordinates),\n event\n });\n if (event.key && (event.key.length === 1 || event.key === 'Delete')) {\n const column = this._svc.getColumnByName(coordinates.column);\n if (column.filterType !== FilterType.number || isFinite(event.key as any)) {\n this.startEditRowOrCell({\n row: coordinates.row,\n column: coordinates.column,\n event: event\n });\n }\n }\n if (event.key === 'Tab' && this._svc.currentEditCell) {\n event.preventDefault();\n let target = this._svc.getNextEditableCell(coordinates);\n if (event.shiftKey) {\n target = this._svc.getPreviousEditableCell(coordinates);\n }\n if (target) {\n this.startEditRowOrCell({\n row: target.row,\n column: target.column,\n event: undefined\n });\n }\n }\n if (!this._svc.currentEditCell) {\n let target;\n if (event.key === 'ArrowRight') {\n target = this._svc.getNextCell(coordinates);\n }\n if (event.key === 'ArrowLeft') {\n target = this._svc.getPreviousCell(coordinates);\n }\n if (event.key === 'ArrowUp') {\n target = this._svc.getPreviousRowCell(coordinates);\n }\n if (event.key === 'ArrowDown') {\n target = this._svc.getNextRowCell(coordinates);\n }\n if (target) {\n event.preventDefault();\n const element = this.getCellElement(target);\n element?.focus();\n }\n }\n }\n }\n\n @HostListener('mousedown', ['$event']) mousedown(event: MouseEvent) {\n if (event.button === 2) {\n event.preventDefault();\n }\n }\n\n ngOnInit(): void {\n this._svc.restoreState();\n this._svc.restoreHiddenColumns();\n this.tableService.emit(this._svc);\n }\n\n ngAfterViewInit(): void {\n this._headElement =\n this._elementRef.nativeElement.querySelector('.table-head');\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('editType')) {\n this._svc.editType = this.editType;\n }\n if (changes.hasOwnProperty('selectType')) {\n this._svc.selectType = this.selectType;\n }\n if (changes.hasOwnProperty('selectedRows')) {\n this._svc.selectRows(this.selectedRows);\n }\n if (changes.hasOwnProperty('rowEditable')) {\n this._svc.rowEditable = this.rowEditable;\n }\n if (changes.hasOwnProperty('cookieName')) {\n this._svc.setCookieName(this.cookieName);\n }\n if (changes.hasOwnProperty('columns')) {\n if (this.columns !== null && this.columns !== undefined) {\n this._svc.setColumns(this.columns);\n }\n }\n if (changes.hasOwnProperty('data')) {\n this._svc.setData(this.data);\n this._svc.selectRows(this.data?.filter((row) => {\n return this.selectedRows?.some((selectedRow) =>\n this.trackRow(this._svc.getRowIndex(selectedRow), selectedRow) === this.trackRow(this._svc.getRowIndex(row), row));\n }));\n }\n if (changes.hasOwnProperty('dict')) {\n this._svc.setDict(this.dict);\n this._svc.setFilterOptions(this.dict);\n }\n if (changes.hasOwnProperty('filterOptions')) {\n this._svc.setFilterOptions(this.filterOptions);\n }\n if (changes.hasOwnProperty('trackRow')) {\n this._svc.trackRow = this.trackRow;\n }\n }\n\n setContextMenuOpen(value: boolean) {\n this.contextMenuOpen = value;\n this.contextMenuOpenChange.emit(this.contextMenuOpen);\n }\n\n setContextMenuRow(event: MouseEvent) {\n this.contextMenuRow = null;\n const rowElement = this._svc.getEventRow(event);\n if (rowElement) {\n const rowIndex = parseInt(rowElement.getAttribute('data-row'), 10);\n if (rowIndex >= 0) {\n this.contextMenuRow = this._svc.getRowByIndex(rowIndex);\n }\n }\n }\n\n private startEditRowOrCell(coordinates: ICellEvent): void {\n if (this.editType === EditType.row) {\n this._svc.startEditRow(coordinates);\n }\n if (this.editType === EditType.cell) {\n this._svc.startEditCell(coordinates);\n }\n }\n\n private getCellElement(coordinates: ICellCoordinates): HTMLElement | null {\n return this._elementRef.nativeElement.querySelector(\n `teta-cell[data-row=\"${coordinates.row}\"][data-column=\"${coordinates.column}\"]`\n );\n }\n\n private eventIsOnRow(event: Event): boolean {\n const row = event.composedPath().find((target: HTMLElement) => {\n return target?.getAttribute && target?.getAttribute('data-row');\n });\n return row && this._elementRef.nativeElement.contains(row);\n }\n\n private getCoordinates(event: Event): ICellEvent | null {\n if (event.composedPath().indexOf(this._elementRef.nativeElement) < 0) {\n return null;\n }\n const cell = this._svc.getEventCell(event);\n if (cell) {\n const rowIndex = parseInt(cell.getAttribute('data-row'), 10);\n const columnName = cell.getAttribute('data-column');\n if (rowIndex >= 0 && columnName) {\n return {\n row: rowIndex,\n column: columnName,\n event,\n };\n }\n }\n return null;\n }\n\n private getRow(event: Event): T | null {\n if (event.composedPath().indexOf(this._elementRef.nativeElement) < 0) {\n return null;\n }\n const rowElement = this._svc.getEventRow(event);\n if (rowElement) {\n const rowIndex = parseInt(rowElement.getAttribute('data-row'), 10);\n if (rowIndex >= 0) {\n return this._svc.getRowByIndex(rowIndex);\n }\n }\n return null;\n }\n\n onScroll = (event) => {\n this._headElement.scrollLeft = event.target.scrollLeft;\n };\n\n // private getSelectedText() {\n // let text = '';\n // if (typeof window.getSelection != 'undefined') {\n // text = window.getSelection().toString();\n // }\n // return text;\n // }\n}\n","<div class=\"column column_auto\">\n <teta-table-head\n style=\"z-index: 1\"\n [selectType]=\"selectType\"\n [showHeadCellMenu]=\"showHeadCellMenu\"></teta-table-head>\n <div class=\"column column_auto position-relative\"\n style=\"z-index: 0\"\n [tetaContextMenu]=\"contextMenu\"\n [verticalAlign]=\"verticalAlign.auto\"\n [align]=\"align.auto\"\n [appendToBody]=\"true\"\n [data]=\"contextMenuRow\"\n [open]=\"contextMenuOpen\"\n (openChange)=\"setContextMenuOpen($event)\">\n <teta-table-body\n (contextmenu)=\"setContextMenuRow($event)\"\n (scroll)=\"onScroll($event)\"\n [aggregate]=\"aggregate\"\n [virtual]=\"virtual\"\n [activeRow]=\"activeRow\"\n [trackRow]=\"trackRow\"\n [trackColumns]=\"trackColumns\"\n [selectedRows]=\"selectedRowsList\"\n [additionalComponent]=\"detailComponent\"\n [selectType]=\"selectType\"\n [rowClass]=\"rowClass\">\n <ng-content></ng-content>\n </teta-table-body>\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TabContentDirective} from './tab-content.directive';\nimport {TabTitleDirective} from './tab-title.directive';\nimport {TabComponent} from './tab/tab.component';\nimport {TabsComponent} from './tabs/tabs.component';\n\n@NgModule({\n declarations: [\n TabContentDirective,\n TabTitleDirective,\n TabComponent,\n TabsComponent\n ],\n exports: [\n TabContentDirective,\n TabTitleDirective,\n TabComponent,\n TabsComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class TabsModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TetaTemplateDirective} from './teta-template.directive';\n\n\n@NgModule({\n declarations: [\n TetaTemplateDirective\n ],\n exports: [\n TetaTemplateDirective\n ],\n imports: [\n CommonModule\n ]\n})\nexport class TetaTemplateModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TreeComponent } from './tree/tree.component';\nimport { TreeItemComponent } from './tree-item/tree-item.component';\nimport { TetaTemplateModule } from '../../directive/teta-template/teta-template.module';\nimport { IconModule } from '../icon/icon.module';\nimport { TreeItemToggleComponent } from './tree-item-toggle/tree-item-toggle.component';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {ScrollableModule} from \"../../directive/scrollable/scrollable.module\";\n\n@NgModule({\n declarations: [TreeComponent, TreeItemComponent, TreeItemToggleComponent],\n exports: [TreeComponent, TetaTemplateModule, TreeItemToggleComponent],\n imports: [CommonModule, IconModule, TetaTemplateModule, ScrollingModule, ScrollableModule],\n})\nexport class TreeModule {}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild,} from '@angular/core';\nimport {CellComponentBase} from '../../base/cell-component-base';\nimport {TableService} from '../../service/table.service';\nimport {ICellCoordinates} from '../../contract/i-cell-coordinates';\nimport {DatePickerComponent} from '../../../date-picker/date-picker/date-picker.component';\n\n@Component({\n selector: 'teta-date-time-cell',\n templateUrl: './date-time-cell.component.html',\n styleUrls: ['./date-time-cell.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateTimeCellComponent<T>\n extends CellComponentBase<T>\n implements OnInit {\n\n @ViewChild('input', {static: false}) input: DatePickerComponent;\n\n constructor(\n protected override svc: TableService<T>,\n protected override cdr: ChangeDetectorRef\n ) {\n super(svc, cdr);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n setValue(value: Date): void {\n this.row[this.column.name] = value;\n this.valueChanged();\n }\n\n startEdit(initiator: ICellCoordinates, type: 'cell' | 'row'): void {\n if (initiator?.column === this.column.name) {\n setTimeout(() => {\n this.input?.openPicker(true);\n this.cdr.markForCheck();\n }, 0);\n }\n }\n\n stopEdit(): void {\n this.cdr.markForCheck();\n }\n}\n","<span [style.display]=\"edit ? 'none' : 'block'\"\n class=\"cell-text\"\n [class.cell-text_disabled]=\"!editable\">\n {{row[column.name] | date : 'dd.MM.yyyy HH:mm:ss'}}\n</span>\n<teta-date-picker class=\"datepicker-table\" #input\n *ngIf=\"edit\"\n [appendToBody]=\"true\"\n [showTime]=\"true\"\n [ngModel]=\"row[column.name]\"\n (ngModelChange)=\"setValue($event)\"\n></teta-date-picker>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResizeDragDirective } from './resize-drag.directive';\n\n@NgModule({\n declarations: [ResizeDragDirective],\n exports: [ResizeDragDirective],\n imports: [CommonModule],\n})\nexport class ResizeDragModule {}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ContextMenuDirective} from './context-menu.directive';\nimport {DynamicComponentModule} from '../../component/dynamic-component/dynamic-component.module';\n\n@NgModule({\n declarations: [ContextMenuDirective],\n exports: [ContextMenuDirective],\n imports: [\n CommonModule,\n DynamicComponentModule\n ]\n})\nexport class ContextMenuModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TableComponent} from './table/table.component';\nimport {FilterModule} from '../filter/filter.module';\nimport {NumericCellComponent} from './default/numeric-cell/numeric-cell.component';\nimport {ListCellComponent} from './default/list-cell/list-cell.component';\nimport {DateCellComponent} from './default/date-cell/date-cell.component';\nimport {StringCellComponent} from './default/string-cell/string-cell.component';\nimport {HeadCellHostComponent} from './head-cell-host/head-cell-host.component';\nimport {TableHeadComponent} from './table-head/table-head.component';\nimport {TableBodyComponent} from './table-body/table-body.component';\nimport {CellComponent} from './cell/cell.component';\nimport {FormsModule} from '@angular/forms';\nimport {CheckboxModule} from '../checkbox/checkbox.module';\nimport {CellHostComponent} from './cell-host/cell-host.component';\nimport {TableHeadGroupComponent} from './table-head-group/table-head-group.component';\nimport {HeadCellComponent} from './head-cell/head-cell.component';\nimport {DefaultHeadCellComponent} from './default/default-head-cell/default-head-cell.component';\nimport {IconModule} from '../icon/icon.module';\nimport {DropdownModule} from '../dropdown/dropdown.module';\nimport {TabsModule} from '../tabs/tabs.module';\nimport {SelectModule} from '../select/select.module';\nimport {NumberPipeModule} from '../../pipe/number-pipe/number-pipe.module';\nimport {DatePickerModule} from '../date-picker/date-picker.module';\nimport {ButtonModule} from '../button/button.module';\nimport {SelectionCellComponent} from './selection-cell/selection-cell.component';\nimport {SelectionHeadCellComponent} from './selection-head-cell/selection-head-cell.component';\nimport {HintModule} from '../../directive/hint/hint.module';\nimport {TreeModule} from '../tree/tree.module';\nimport {HeadCellDropdownComponent} from './head-cell-dropdown/head-cell-dropdown.component';\nimport {DateTimeCellComponent} from './default/date-time-cell/date-time-cell.component';\nimport {OnlyNumberModule} from '../../directive/only-number/only-number.module';\nimport {BooleanCellComponent} from './default/boolean-cell/boolean-cell.component';\nimport {ToolbarModule} from '../toolbar/toolbar.module';\nimport {ClickOutsideModule} from '../../directive/click-outside/click-outside.module';\nimport {ResizeDragModule} from '../../directive/resize-drag/resize-drag.module';\nimport {ScrollingModule} from '@angular/cdk/scrolling';\nimport {ContextMenuModule} from '../../directive/context-menu/context-menu.module';\nimport { MainDropdownTabComponent } from './table-head/main-dropdown-tab/main-dropdown-tab.component';\nimport { FilterDropdownTabComponent } from './table-head/filter-dropdown-tab/filter-dropdown-tab.component';\nimport { VisibilityDropdownTabComponent } from './table-head/visibility-dropdown-tab/visibility-dropdown-tab.component';\nimport {ScrollableModule} from \"../../directive/scrollable/scrollable.module\";\n\n@NgModule({\n declarations: [\n TableComponent,\n NumericCellComponent,\n ListCellComponent,\n DateCellComponent,\n StringCellComponent,\n HeadCellHostComponent,\n TableHeadComponent,\n TableBodyComponent,\n CellComponent,\n CellHostComponent,\n TableHeadGroupComponent,\n HeadCellComponent,\n DefaultHeadCellComponent,\n SelectionCellComponent,\n SelectionHeadCellComponent,\n HeadCellDropdownComponent,\n DateTimeCellComponent,\n BooleanCellComponent,\n MainDropdownTabComponent,\n FilterDropdownTabComponent,\n VisibilityDropdownTabComponent,\n ],\n exports: [\n TableComponent,\n NumericCellComponent,\n ListCellComponent,\n DateCellComponent,\n StringCellComponent,\n HeadCellHostComponent,\n TableHeadComponent,\n TableBodyComponent,\n CellComponent,\n CellHostComponent,\n DateTimeCellComponent,\n BooleanCellComponent,\n ],\n imports: [\n CommonModule,\n FilterModule,\n FormsModule,\n CheckboxModule,\n IconModule,\n DropdownModule,\n TabsModule,\n SelectModule,\n NumberPipeModule,\n DatePickerModule,\n ButtonModule,\n HintModule,\n TreeModule,\n OnlyNumberModule,\n ToolbarModule,\n ClickOutsideModule,\n ResizeDragModule,\n ScrollingModule,\n ContextMenuModule,\n ScrollableModule,\n ],\n})\nexport class TableModule {\n}\n","import {TableColumn} from '../contract/table-column';\n\nexport abstract class DetailComponentBase<T> {\n /**\n * The row details are displayed for\n */\n abstract row: T;\n /**\n * displayed columns\n */\n abstract columns: TableColumn[];\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeSwitchService {\n theme: Observable<boolean>;\n private theme$: BehaviorSubject<boolean>;\n\n constructor() {\n const value = this.restoreTheme();\n this.theme$ = new BehaviorSubject<boolean>(value);\n this.theme = this.theme$.asObservable();\n }\n\n switchTheme() {\n const value = !this.theme$.value;\n this.saveTheme(value);\n this.theme$.next(value);\n }\n\n saveTheme(value: boolean) {\n localStorage.setItem('theme', value.toString());\n }\n\n restoreTheme(): boolean {\n const theme = localStorage.getItem('theme');\n if (theme) {\n return JSON.parse(theme);\n }\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ThemeSwitchService } from '../theme-switch.service';\nimport { Observable } from 'rxjs';\nimport {ButtonViewType} from '../../button/button/button.component';\n\n@Component({\n selector: 'teta-theme-switch',\n templateUrl: './theme-switch.component.html',\n styleUrls: ['./theme-switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ThemeSwitchComponent implements OnInit {\n @Input() palette = 'text';\n @Input() view: ButtonViewType = 'ghost';\n theme: Observable<boolean>;\n\n constructor(private _svc: ThemeSwitchService) {\n this.theme = this._svc.theme;\n }\n\n ngOnInit(): void {}\n\n switchTheme() {\n this._svc.switchTheme();\n }\n}\n","<button type=\"button\" teta-button [palette]=\"palette\" [view]=\"view\" [square]=\"true\" (click)=\"switchTheme()\">\n <teta-icon [name]=\"'lamp'\"></teta-icon>\n</button>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ThemeSwitchComponent} from './theme-switch/theme-switch.component';\nimport {ButtonModule} from '../button/button.module';\nimport {IconModule} from '../icon/icon.module';\n\n@NgModule({\n declarations: [ThemeSwitchComponent],\n exports: [ThemeSwitchComponent],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule\n ]\n})\nexport class ThemeSwitchModule {\n}\n","import {\n AfterViewInit, ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport * as THREE from 'three';\nimport {OrbitControls} from 'three/examples/jsm/controls/OrbitControls';\nimport * as d3 from 'd3';\nimport {Chart3dOptions} from '../model/chart-3d-options';\nimport {Base3dPoint} from '../model/base-3d-point';\nimport {Series3d} from '../model/series-3d';\nimport {ThemeSwitchService} from '../../theme-switch/theme-switch.service';\nimport {takeWhile, tap} from 'rxjs/operators';\n\n@Component({\n selector: 'teta-chart3d',\n templateUrl: './chart3d.component.html',\n styleUrls: ['./chart3d.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Chart3dComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('canvas') canvasRef: ElementRef;\n\n private _scene: THREE.Scene;\n private _camera: THREE.PerspectiveCamera;\n private _renderer: THREE.Renderer;\n private _controls: OrbitControls;\n private _obs: ResizeObserver;\n private _config: Chart3dOptions;\n\n private SIDE_SIZE = 100;\n private gridColor: any;\n private axesColor: any;\n\n private _alive = true;\n\n constructor(\n private _elementRef: ElementRef,\n private _themeService: ThemeSwitchService\n ) {\n }\n\n @Input() set config(config: Chart3dOptions) {\n if (config) {\n this._config = config;\n this.init();\n }\n }\n\n get config() {\n return this._config;\n }\n\n private get canvas(): HTMLCanvasElement {\n return this.canvasRef.nativeElement;\n }\n\n ngOnInit(): void {\n this._themeService.theme\n .pipe(\n takeWhile((_) => this._alive),\n tap((_) => {\n this.gridColor = _ ? '#5d6a73' : '#bdbdc6';\n this.axesColor = _ ? '#8e8f9d' : '#7d8f9a';\n this.init();\n })\n )\n .subscribe();\n }\n\n ngAfterViewInit() {\n this.addResizeObserver();\n this.createScene();\n this.startRenderingLoop();\n this.init();\n }\n\n ngOnDestroy() {\n this._alive = false;\n this.removeResizeObserver();\n }\n\n private init() {\n if (!this._scene) {\n return;\n }\n\n while (this._scene.children.length > 0) {\n this._scene.remove(this._scene.children[0]);\n }\n\n const {x, y, z} = this.getScales(this._config.series);\n\n this.config.series.forEach((data, idx) => {\n\n if (!data.points?.length) {\n return\n }\n\n const points = data.points.map((_) => new THREE.Vector3(x(_.x), y(_.y), z(_.z)));\n\n const color = d3.scaleOrdinal(d3.schemeTableau10);\n\n const material = new THREE.LineBasicMaterial({\n color: data?.color ?? color(idx.toString()),\n });\n\n const tubeGeometry = new THREE.TubeGeometry(\n new THREE.CatmullRomCurve3(points),\n 1024,\n 0.5,\n 20,\n false\n );\n\n let tube = new THREE.Line(tubeGeometry, material);\n this._scene.add(tube);\n\n\n });\n\n\n const circles = x.ticks(this.SIDE_SIZE / 10);\n\n\n const material = new THREE.LineBasicMaterial( { color: this.axesColor } );\n const pointsLines = [];\n pointsLines.push(new THREE.Vector3(0, 0 , 0));\n pointsLines.push(new THREE.Vector3(0, 0 , z(-z.domain()[1])));\n\n pointsLines.push(new THREE.Vector3(0, 0 , 0));\n pointsLines.push(new THREE.Vector3(x(-x.domain()[1]), 0 , 0));\n\n const geometryLines = new THREE.BufferGeometry().setFromPoints(pointsLines);\n const line = new THREE.Line(geometryLines, material);\n\n this._scene.add(line)\n\n circles.forEach((r) => {\n\n const material = new THREE.LineDashedMaterial({\n color: this.gridColor,\n dashSize: 1,\n gapSize: 3\n });\n\n const circleGeometry = new THREE.BufferGeometry().setFromPoints(\n new THREE.Path().absarc(0, 0, x(r), 0, Math.PI * 2, false).getSpacedPoints(100)\n );\n\n const circle = new THREE.LineSegments(circleGeometry, material);\n\n circle.geometry.rotateX(-Math.PI / 2)\n\n this._scene.add(circle);\n\n });\n\n this.drawTicks(x, y, z);\n\n if(!this._controls) {\n this._controls = new OrbitControls(this._camera, this._renderer.domElement);\n\n this._controls.enableDamping = true;\n this._controls.enablePan = true;\n this._controls.dampingFactor = 0.25;\n this._controls.screenSpacePanning = true;\n this._controls.minDistance = 0;\n this._controls.maxDistance = 10000;\n this._controls.maxPolarAngle = Math.PI / 2;\n\n this._controls.enableZoom = true;\n }\n\n\n }\n\n private createScene() {\n this._scene = new THREE.Scene();\n\n const aspectRatio =\n this._elementRef.nativeElement.clientWidth /\n this._elementRef.nativeElement.clientHeight;\n\n const fieldOfView = 10;\n const nearClippingPane = 1;\n const farClippingPane = 10000;\n\n this._camera = new THREE.PerspectiveCamera(\n fieldOfView,\n aspectRatio,\n nearClippingPane,\n farClippingPane\n );\n\n this._camera.position.set(1300, 1300, 1300).setLength(1300);\n this._scene.add(this._camera);\n\n\n }\n\n private setSize(width: number, height: number) {\n this._camera.aspect = width / height;\n this._renderer.setSize(width, height);\n\n this._camera.updateProjectionMatrix();\n }\n\n private render() {\n this._renderer.render(this._scene, this._camera);\n }\n\n private startRenderingLoop() {\n this._renderer = new THREE.WebGLRenderer({\n antialias: true,\n canvas: this.canvas,\n alpha: true,\n preserveDrawingBuffer: true,\n });\n\n const animate = () => {\n requestAnimationFrame(animate);\n this._controls?.update();\n this.render();\n };\n\n animate();\n }\n\n private addResizeObserver() {\n this._obs = new ResizeObserver((_) => {\n this.setSize(_[0]?.contentRect.width, _[0]?.contentRect.height);\n });\n\n this._obs.observe(this._elementRef.nativeElement);\n }\n private removeResizeObserver() {\n this._obs.unobserve(this._elementRef.nativeElement);\n this._obs.disconnect();\n }\n\n private makeSprite(text: string, opts?: { fontSize?: number }): THREE.Sprite {\n const fontSize = 20;\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const textWidth = text.length * 50;\n canvas.height = 50;\n canvas.width = 50;\n\n if (ctx) {\n ctx.font = `${fontSize}px Arial`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = '#A0A0A0';\n ctx.fillText(text, 25, 25);\n }\n\n const texture = new THREE.Texture(canvas);\n texture.minFilter = THREE.LinearFilter;\n texture.needsUpdate = true;\n const spriteMaterial = new THREE.SpriteMaterial({\n map: texture,\n });\n\n const sprite = new THREE.Sprite(spriteMaterial);\n sprite.scale.set(0.4 * fontSize, 0.4 * fontSize, 0.4 * fontSize);\n\n\n\n return sprite;\n }\n\n private drawTicks(x: any, y: any, z: any) {\n const ticks = new THREE.Object3D();\n const scalesExtrems: any[] = [];\n\n [x, y, z].forEach((scale, idx) => {\n const generatedTicks = scale.ticks(this.SIDE_SIZE / 10)\n\n scalesExtrems.push(d3.max(generatedTicks));\n\n generatedTicks.forEach((_: any) => {\n const sprite = this.makeSprite(_);\n\n if (idx === 0) {\n sprite.position.set(x(_), y(y.domain()[1]), 0);\n }\n\n if (idx === 1) {\n sprite.position.set(-10, y(_), 0);\n\n }\n\n if (idx === 2) {\n sprite.position.set(0, y(y.domain()[1]), z(_));\n }\n\n ticks.add(sprite);\n\n });\n });\n\n const northLabel = this.makeSprite('X', {fontSize: 28});\n const westLabel = this.makeSprite('Y', {fontSize: 28});\n const tvdLabel = this.makeSprite('TVD', {fontSize: 28});\n\n northLabel.position.set(x(x.domain()[1]) + 5, 0, 0);\n westLabel.position.set(0, 0, y(y.domain()[0]) + 5);\n tvdLabel.position.set(0, z(z.domain()[1]) + 5, 0);\n\n ticks.add(northLabel, westLabel, tvdLabel);\n\n\n const axesHelper = new THREE.AxesHelper(this.SIDE_SIZE);\n axesHelper.setColors(this.axesColor, this.axesColor, this.axesColor)\n\n this._scene.add(axesHelper);\n\n this._scene.add(ticks);\n }\n\n private getScales(series: Series3d<Base3dPoint>[]) {\n const extrems = series.map((_) => ({\n x: d3.extent(_.points, (p: any) => p.x),\n y: d3.extent(_.points, (p: any) => p.y),\n z: d3.extent(_.points, (p: any) => p.z),\n }));\n\n const flattenExtrems = extrems.reduce(\n (acc: any, _): { x: [number]; y: [number]; z: [number] } => {\n acc.x = acc.x.concat(_.x);\n acc.y = acc.y.concat(_.y);\n acc.z = acc.z.concat(_.z);\n return acc as any;\n },\n {x: [], y: [], z: []}\n );\n\n const x = d3\n .scaleLinear()\n .domain([0, this._config?.axes?.max == null\n ? parseInt(d3.max(flattenExtrems.x))\n : this._config.axes.max,\n ])\n .range([0, this.SIDE_SIZE]).nice()\n\n const y = d3\n .scaleLinear()\n .domain([0, parseInt(d3.max(flattenExtrems.y), 10)])\n .range([this.SIDE_SIZE, 0])\n\n const z = d3\n .scaleLinear()\n .domain([0,\n this._config?.axes?.max == null\n ? parseInt(d3.max(flattenExtrems.z))\n : this._config.axes.max])\n .range([0, this.SIDE_SIZE]).nice()\n\n\n return {x, y, z};\n }\n}\n","<canvas #canvas></canvas>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Chart3dComponent } from './chart3d/chart3d.component';\n\n@NgModule({\n declarations: [Chart3dComponent],\n exports: [Chart3dComponent],\n imports: [CommonModule],\n})\nexport class Chart3dModule {}\n","import { Base3dPoint } from './base-3d-point';\nimport { Series3d } from './series-3d';\n\nexport class Chart3dOptions {\n axes?: {\n min?: number;\n max?: number;\n\n };\n\n series: Series3d<Base3dPoint>[];\n\n constructor(options?: Chart3dOptions) {\n this.axes = { ...options?.axes };\n this.series = options?.series || [];\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'teta-resize-panel',\n templateUrl: './resize-panel.component.html',\n styleUrls: ['./resize-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ResizePanelComponent implements OnInit, OnDestroy {\n @Input() size = 8;\n\n @Input()\n set direction(val: 'vertical' | 'horizontal') {\n this._direction = val;\n }\n\n get direction() {\n return this._direction;\n }\n\n get icon() {\n return this.direction === \"horizontal\" ? 'moreHorizontal' : 'moreVertical'\n }\n @Input()\n set grabPosition(val: 'top' | 'left' | 'bottom' | 'right') {\n this._grabPosition = val;\n }\n\n get grabPosition() {\n if (this.direction === 'vertical') {\n if (['left', 'right'].includes(this._grabPosition)) {\n return this._grabPosition;\n }\n return 'left';\n }\n if (['top', 'bottom'].includes(this._grabPosition)) {\n return this._grabPosition;\n }\n return 'bottom';\n }\n\n @Input() name: string;\n @Input() minSize: number;\n @Input() maxSize: number;\n @HostBinding('class.resize-panel') private readonly resizePanelClass = true;\n\n private _direction: 'vertical' | 'horizontal' = 'horizontal';\n private _grabPosition: 'top' | 'left' | 'bottom' | 'right' = 'left';\n private _startSize: number;\n private _startPosition: number;\n\n private _positionMap: Map<string, string> = new Map<string, string>()\n .set('left', 'resize-grab_left')\n .set('right', 'resize-grab_right')\n .set('top', 'resize-grab_top')\n .set('bottom', 'resize-grab_bottom');\n\n constructor(\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n @Inject(DOCUMENT) private _document: any\n ) {\n }\n\n resizeStart(event: MouseEvent) {\n this.setStartPosition();\n if (this.direction === 'vertical') {\n this._startSize = this._elementRef.nativeElement.clientWidth;\n this._startPosition = event.clientX;\n } else {\n this._startSize = this._elementRef.nativeElement.clientHeight;\n this._startPosition = event.clientY;\n }\n }\n\n resizeProcess(event: MouseEvent) {\n event.preventDefault();\n if (this.direction === 'vertical') {\n this.manageVertical(event);\n } else {\n this.manageHorizontal(event);\n }\n }\n\n resizeEnd(event: MouseEvent) {\n window.dispatchEvent(new Event('resize'));\n }\n\n ngOnInit() {\n this.restorePosition();\n }\n\n ngOnDestroy(): void {\n }\n\n getClassName() {\n return this._positionMap.get(this.grabPosition) || '';\n }\n\n private setStartPosition() {\n if (this.direction === 'vertical') {\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'width',\n `${this._elementRef.nativeElement.offsetWidth}px`\n );\n } else {\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'height',\n `${this._elementRef.nativeElement.offsetHeight}px`\n );\n }\n this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);\n this._renderer.setStyle(this._elementRef.nativeElement, 'flex-shrink', `0`);\n this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);\n }\n\n private manageHorizontal(event: MouseEvent) {\n let newSize =\n this.grabPosition === 'bottom'\n ? this._startSize + (event.clientY - this._startPosition)\n : this._startSize - (event.clientY - this._startPosition);\n if (this.maxSize && newSize > this.maxSize) {\n newSize = this.maxSize;\n }\n if (this.minSize && newSize < this.minSize) {\n newSize = this.minSize;\n }\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'height',\n `${newSize}px`\n );\n this.save();\n }\n\n private manageVertical(event: MouseEvent) {\n let newSize =\n this.grabPosition === 'right'\n ? this._startSize + (event.clientX - this._startPosition)\n : this._startSize - (event.clientX - this._startPosition);\n if (this.maxSize && newSize > this.maxSize) {\n newSize = this.maxSize;\n }\n if (this.minSize && newSize < this.minSize) {\n newSize = this.minSize;\n }\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'width',\n `${newSize}px`\n );\n this.save();\n }\n\n private restore() {\n if (this.name?.length > 0) {\n return JSON.parse(localStorage.getItem(`resize-panel${this.name}`));\n }\n }\n\n private restorePosition() {\n const savedSize = this.restore();\n if (savedSize) {\n if (this.direction === 'vertical') {\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'width',\n `${savedSize}px`\n );\n } else {\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'height',\n `${savedSize}px`\n );\n }\n this._renderer.setStyle(this._elementRef.nativeElement, 'flex-grow', `0`);\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n 'flex-shrink',\n `0`\n );\n this._renderer.setStyle(this._elementRef.nativeElement, 'flex', `none`);\n }\n }\n\n private save() {\n if (this.name?.length > 0) {\n if (this.direction === 'vertical') {\n localStorage.setItem(\n `resize-panel${this.name}`,\n this._elementRef.nativeElement.clientWidth\n );\n } else {\n localStorage.setItem(\n `resize-panel${this.name}`,\n this._elementRef.nativeElement.clientHeight\n );\n }\n }\n }\n}\n","<ng-content></ng-content>\n<div #grab class=\"resize-grab\"\n [style.width.px]=\"direction === 'vertical' ? size : ''\"\n [style.height.px]=\"direction === 'horizontal' ? size : ''\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd($event)\"\n [tetaResizeDrag]=\"direction\"\n [ngClass]=\"getClassName()\">\n <teta-icon [name]=\"icon\"></teta-icon>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResizePanelComponent } from './resize-panel/resize-panel.component';\nimport { IconModule } from '../icon/icon.module';\nimport { ResizeDragModule } from '../../directive/resize-drag/resize-drag.module';\n\n@NgModule({\n declarations: [ResizePanelComponent],\n exports: [ResizePanelComponent],\n imports: [CommonModule, IconModule, ResizeDragModule],\n})\nexport class ResizePanelModule {}\n","import {\n ChangeDetectionStrategy,\n Component, Input,\n OnInit, TemplateRef,\n} from '@angular/core';\n\n@Component({\n selector: 'teta-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DividerComponent implements OnInit {\n\n @Input() label;\n\n @Input() template: TemplateRef<any>\n constructor() {}\n ngOnInit(): void {}\n}\n","<div class=\"divider\" style=\"width: 100%\">\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n <div class=\"divider-content padding-h-2\" *ngIf=\"!template; else templateOutlet\">{{ label }}</div>\n <div class=\"bg-text-20\" style=\"height: 1px\"></div>\n</div>\n\n<ng-template #templateOutlet>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DividerComponent} from \"./divider/divider.component\";\n\n@NgModule({\n declarations: [DividerComponent],\n exports: [DividerComponent],\n imports: [\n CommonModule\n ]\n})\nexport class DividerModule {\n}\n","/* accordion */\nexport * from './accordion/public-api';\n\n/* avatar */\nexport * from './avatar/public-api';\n\n/* autocomplete */\nexport * from './autocomplete/public-api';\n\n/* button */\nexport * from './button/public-api';\n\n/* checkbox */\nexport * from './checkbox/public-api';\n\n/* datepicker */\nexport * from './date-picker/public-api';\n\n/* delimiter */\nexport * from './delimiter/public-api';\n\n/* dropdown */\nexport * from './dropdown/public-api';\n\n/* dynamic-component */\nexport * from './dynamic-component/public-api';\n\n/* expand-card */\nexport * from './expand-card/public-api';\n\n/* expand-panel */\nexport * from './expand-panel/public-api';\n\n/* file */\nexport * from './file-upload/public-api';\n\n/* filter */\nexport * from './filter/public-api';\n\n/* icon */\nexport * from './icon/public-api';\n\n/* input */\nexport * from './input/public-api';\n\n/* message */\nexport * from './message/public-api';\n\n/* modal */\nexport * from './modal/public-api';\n\n/* pager */\nexport * from './pager/public-api';\n\n/* panel */\nexport * from './panel/public-api';\n\n/* progress-bar */\nexport * from './progress-bar/public-api';\n\n/* property-grid */\nexport * from './property-grid/public-api';\n\n/* radio */\nexport * from './radio/public-api';\n\n/* select */\nexport * from './select/public-api';\n\n/* sidebar */\nexport * from './sidebar/public-api';\n\n/* switch */\nexport * from './switch/public-api';\n\n/* table */\nexport * from './table/public-api';\n\n/* tabs */\nexport * from './tabs/public-api';\n\n/* theme-switch */\nexport * from './theme-switch/public-api';\n\n/* toggle */\nexport * from './toggle/public-api';\n\n/* toolbar */\nexport * from './toolbar/public-api';\n\n/* tree */\nexport * from './tree/public-api';\n\n/* 3d-chart */\nexport * from './chart-3d/public-api';\n\n/* Resize panel */\nexport * from './resize-panel/public-api';\n\nexport * from './divider/public-api'\n","import {AfterViewInit, Directive, ElementRef, HostBinding, Input, NgZone, OnDestroy} from '@angular/core';\nimport {Align} from '../../common/enum/align.enum';\nimport {VerticalAlign} from '../../common/enum/vertical-align.enum';\nimport {IRect} from '../../common/contract/i-rect';\nimport {DomUtil} from '../../common/util/dom-util';\nimport {PositionUtil} from '../../common/util/position-util';\nimport {takeWhile} from 'rxjs/operators';\n\n@Directive({\n selector: '[tetaAutoPosition]'\n})\nexport class AutoPositionDirective implements AfterViewInit, OnDestroy {\n @Input() align: Align;\n @Input() verticalAlign: VerticalAlign = VerticalAlign.auto;\n\n @HostBinding('style.position') fixed = 'fixed';\n\n private _alive = true;\n\n constructor(private _elementRef: ElementRef, private _zone: NgZone) {\n }\n\n ngAfterViewInit() {\n this.setPosition();\n this._zone.onStable.pipe(takeWhile(() => this._alive)).subscribe(() => {\n this.setPosition();\n });\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n\n private setPosition(): void {\n const target = this._elementRef.nativeElement;\n const containerPosition = this._elementRef.nativeElement.parentElement.getBoundingClientRect();\n const targetPosition = target.getBoundingClientRect();\n\n const rect: IRect = {\n bottom: containerPosition.bottom,\n top: containerPosition.top,\n left: containerPosition.left,\n right: containerPosition.right,\n };\n\n const targetRect: IRect = {\n bottom: targetPosition.bottom,\n top: targetPosition.top,\n left: targetPosition.left,\n right: targetPosition.right,\n };\n\n const targetTransformedParent = DomUtil.findTransformedParent(target);\n let parentPosition = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n if (targetTransformedParent) {\n parentPosition = targetTransformedParent.getBoundingClientRect();\n }\n\n const position = PositionUtil.getPosition(\n rect,\n targetRect,\n this.align,\n this.verticalAlign,\n 0,\n 0,\n parentPosition\n );\n\n PositionUtil.setElementPosition(target, position);\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoPositionDirective} from './auto-position.directive';\n\n@NgModule({\n declarations: [\n AutoPositionDirective\n ],\n exports: [\n AutoPositionDirective\n ],\n imports: [\n CommonModule\n ]\n})\nexport class AutoPositionModule {\n}\n","import {Directive, Input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\n@Directive({\n selector: '[tetaDisableControl]'\n})\nexport class DisableControlDirective {\n @Input() set tetaDisableControl(val: boolean) {\n if (this.ngControl.control) {\n if (val) {\n this.ngControl.control.disable();\n } else {\n this.ngControl.control.enable();\n }\n }\n }\n\n constructor(private ngControl: NgControl) {\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DisableControlDirective} from './disable-control.directive';\n\n\n@NgModule({\n declarations: [DisableControlDirective],\n imports: [\n CommonModule\n ],\n exports: [\n DisableControlDirective\n ]\n})\nexport class DisableControlModule {\n}\n","import {DragContainerInstance} from './drag-container-instance';\n\nexport class DragInstance<T> {\n container: DragContainerInstance<T>;\n data: T;\n\n constructor(options?: {\n container: DragContainerInstance<T>,\n data: T\n }) {\n this.container = options.container;\n this.data = options.data;\n }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[tetaDragPreview]'\n})\nexport class DragPreviewDirective {\n constructor(public templateRef: TemplateRef<any>) {\n }\n}\n","import {TemplateRef, ViewContainerRef} from '@angular/core';\n\nexport class DragContainerInstance<T> {\n data: T[];\n previewTemplate: TemplateRef<any>;\n viewContainer: ViewContainerRef;\n\n constructor(options: {\n data: T[],\n previewTemplate: TemplateRef<any>,\n viewContainer: ViewContainerRef\n }) {\n this.data = options.data;\n this.previewTemplate = options.previewTemplate;\n this.viewContainer = options.viewContainer;\n }\n}\n","import {EmbeddedViewRef, Inject, Injectable, Renderer2, RendererFactory2} from '@angular/core';\nimport {DragInstance} from './model/drag-instance';\nimport {DragSelection} from './model/drag-selection';\nimport {DragContainerInstance} from './model/drag-container-instance';\nimport {Point} from './model/point';\nimport {DOCUMENT} from '@angular/common';\nimport {BehaviorSubject, fromEvent, merge, Observable, Subject, tap} from 'rxjs';\nimport {filter, withLatestFrom} from 'rxjs/operators';\nimport {DragProcess} from './model/drag-process';\nimport {DropTarget} from './model/drop-target';\nimport {DropEvent} from './model/drop-event';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DragDropService<T> {\n selection: DragSelection<T>;\n startPosition: Point;\n dragProcess: DragProcess<T>;\n dropTarget: Observable<DropTarget<T>>;\n dropped: Observable<DropEvent<T>>;\n private dropTarget$ = new BehaviorSubject<DropTarget<T>>(null);\n private _delta = 10;\n private _renderer: Renderer2;\n private _preview: HTMLElement;\n private _previewRef: EmbeddedViewRef<any>;\n private dropped$ = new Subject<DropEvent<T>>();\n\n constructor(@Inject(DOCUMENT) private _document: Document,\n private _rendererFactory: RendererFactory2) {\n this._renderer = this._rendererFactory.createRenderer(null, null);\n this.dropTarget = this.dropTarget$.asObservable();\n this.dropped = this.dropped$.asObservable();\n merge(\n fromEvent(this._document, 'mousemove'),\n fromEvent(this._document, 'touchmove')\n ).pipe(\n filter(() => {\n return this.startPosition != null;\n })\n ).subscribe((event: MouseEvent) => {\n if (!this.dragProcess && this.getDelta(event) > this._delta) {\n this.startProcess();\n }\n if (this.dragProcess && this._preview) {\n this.movePreview(event);\n }\n });\n\n merge(\n fromEvent(this._document, 'mouseup'),\n fromEvent(this._document, 'touchend')\n ).pipe(\n withLatestFrom(this.dropTarget)\n ).subscribe((data: [MouseEvent, DropTarget<T>]) => {\n const [event, target] = data;\n if (target) {\n this.dropped$.next({\n target,\n container: this.dragProcess.selection.container,\n data: [...this.dragProcess.selection.items]\n });\n this.cancelDrag();\n }\n this.stopProcess();\n });\n\n merge(fromEvent(this._document, 'visibilitychange'), fromEvent(window, 'blur'))\n .subscribe(() => {\n this.cancelDrag();\n });\n }\n\n setDropTarget(target: DropTarget<T>) {\n if (this.dragProcess) {\n this.dropTarget$.next(target);\n }\n }\n\n setStartPosition(point: Point) {\n this.startPosition = point;\n }\n\n setSelection(instance: DragInstance<T>, container: DragContainerInstance<T>) {\n if (this.selection?.container === container && this.selection?.items?.indexOf(instance) >= 0) {\n return;\n }\n this.selection = {\n container,\n items: [instance]\n };\n }\n\n addSelection(instance: DragInstance<T>, container: DragContainerInstance<T>) {\n if (!this.selection) {\n this.setSelection(instance, container);\n return;\n }\n if (this.selection && this.selection.container !== container) {\n return;\n }\n\n const index = this.selection.items.indexOf(instance);\n if (index < 0) {\n this.selection.items.push(instance);\n } else {\n this.selection.items.splice(index, 1);\n }\n }\n\n clearSelection() {\n this.selection = null;\n }\n\n cancelDrag() {\n this.setDropTarget(null);\n this.clearSelection();\n this.stopProcess();\n }\n\n startProcess() {\n this.dragProcess = {\n selection: this.selection\n };\n this._document.body.style.cursor = 'copy';\n this._preview = this.createPreview();\n }\n\n stopProcess() {\n this.destroyPreview();\n this._document.body.style.cursor = 'default';\n this.dragProcess = null;\n this.startPosition = null;\n }\n\n private getDelta(event: MouseEvent) {\n return Math.max(Math.abs(this.startPosition.x - event.x), Math.abs(this.startPosition.y - event.y));\n }\n\n private createPreview() {\n if (this.dragProcess.selection.container.previewTemplate) {\n this._previewRef = this.dragProcess.selection.container.viewContainer.createEmbeddedView(\n this.dragProcess.selection.container.previewTemplate, {\n $implicit: this.dragProcess.selection.items,\n data: this.dragProcess.selection.items\n });\n const preview = this._renderer.createElement('div');\n this._renderer.setStyle(preview, 'position', 'fixed');\n this._renderer.setStyle(preview, 'pointer-events', 'none');\n this._renderer.setStyle(preview, 'top', '0');\n this._renderer.setStyle(preview, 'left', '0');\n this._renderer.appendChild(preview, this._previewRef.rootNodes[0]);\n this._renderer.appendChild(document.body, preview);\n return preview;\n }\n return null;\n }\n\n private movePreview(event: MouseEvent) {\n if (this._preview) {\n this._renderer.setStyle(this._preview, 'transform', `translate(${event.x}px, ${event.y}px)`);\n }\n }\n\n private destroyPreview() {\n if (this._preview) {\n this.dragProcess?.selection?.container?.viewContainer?.clear();\n this._preview?.remove();\n this._previewRef?.destroy();\n this._preview = this._previewRef = null;\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef, EventEmitter,\n HostListener, Input, NgZone, OnDestroy,\n OnInit, Output,\n ViewContainerRef\n} from '@angular/core';\nimport {DragPreviewDirective} from './drag-preview.directive';\nimport {DragContainerInstance} from './model/drag-container-instance';\nimport {DragDropService} from './drag-drop.service';\nimport {takeWhile} from 'rxjs/operators';\nimport {DropTarget} from './model/drop-target';\nimport {DropEvent} from './model/drop-event';\nimport {DragInstance} from './model/drag-instance';\n\n@Directive({\n selector: '[tetaDragContainer]',\n exportAs: 'dragContainer',\n host: {\n '[class.teta-drag-container]': '\"true\"',\n '[class.teta-drop-target]': 'isDropTarget'\n }\n})\nexport class DragContainerDirective<T> implements OnInit, OnDestroy {\n @Input('tetaDragContainer') data: T[];\n @Input() multiple = false;\n @Input() allowDrop = true;\n\n @Output() tetaDrop = new EventEmitter<DropEvent<T>>();\n @Output() tetaDragEnter = new EventEmitter<DragInstance<T>>();\n\n @ContentChild(DragPreviewDirective, {\n static: true\n }) private _previewTemplate: DragPreviewDirective;\n\n instance: DragContainerInstance<T>;\n dropTarget: DropTarget<T>;\n private _alive = true;\n\n get isDropTarget() {\n return this.dropTarget === this.instance;\n }\n\n @HostListener('mouseleave', ['$event']) mouseleave(event) {\n this._dragService.setDropTarget(null);\n }\n\n @HostListener('mouseover', ['$event']) mouseover(event) {\n if (this.allowDrop) {\n this._dragService.setDropTarget(this.instance);\n }\n }\n\n @HostListener('window:keydown.escape', ['$event']) escape(event) {\n this._dragService.cancelDrag();\n }\n\n constructor(private _dragService: DragDropService<T>,\n private _elementRef: ElementRef,\n private _viewContainerRef: ViewContainerRef,\n private _zone: NgZone,\n private _cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.instance = new DragContainerInstance<T>({\n data: this.data,\n previewTemplate: this._previewTemplate?.templateRef,\n viewContainer: this._viewContainerRef\n });\n this._dragService.dropTarget.pipe(takeWhile(() => this._alive))\n .subscribe((target) => {\n this.dropTarget = target;\n this._cdr.detectChanges();\n });\n\n this._dragService.dropped.pipe(takeWhile(() => this._alive))\n .subscribe((event) => {\n this.tetaDrop.emit(event);\n });\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input, NgZone, OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf\n} from '@angular/core';\nimport {DragInstance} from './model/drag-instance';\nimport {DragContainerDirective} from './drag-container.directive';\nimport {DragDropService} from './drag-drop.service';\nimport {DropTarget} from './model/drop-target';\nimport {filter, takeWhile} from 'rxjs/operators';\nimport {DropEvent} from './model/drop-event';\nimport {DragSelection} from './model/drag-selection';\n\n@Directive({\n selector: '[tetaDrag]',\n exportAs: 'drag',\n host: {\n '[style.userSelect]': '\"none\"',\n '[class.teta-drag-item]': '\"true\"'\n }\n})\nexport class DragDirective<T> implements OnInit, OnDestroy {\n @Input('tetaDrag') data: T;\n\n @HostBinding('class.teta_draggable_item')\n @Input() allowDrag = true;\n\n @HostBinding('class.teta_droppable_item')\n @Input() allowDrop = true;\n\n @Input() allowDropPredicate: (data: DragSelection<T>, target: T) => boolean;\n\n @Output() tetaDragEnter = new EventEmitter<DragInstance<T>>();\n @Output() tetaDrop = new EventEmitter<DropEvent<T>>();\n\n dropTarget: DropTarget<T>;\n instance: DragInstance<T>;\n\n @HostBinding('class.teta-drag-selection')\n get selection() {\n return this._dragService?.selection?.items?.indexOf(this.instance) >= 0;\n }\n\n @HostBinding('class.teta-drop-target')\n get isDropTarget() {\n return this.dropTarget === this.instance && this.allowDrop;\n }\n\n private _alive = true;\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n mousedown(event) {\n if(!this.allowDrag) {\n return;\n }\n if (event.ctrlKey && this._container?.multiple) {\n this._dragService.addSelection(this.instance, this._container?.instance);\n } else {\n this._dragService.setSelection(this.instance, this._container?.instance);\n }\n this._dragService.setStartPosition({\n x: event.x,\n y: event.y\n });\n }\n\n @HostListener('mouseenter', ['$event'])\n mouseenter(event: MouseEvent) {\n if (this.allowDrop) {\n event.stopPropagation();\n if(this.allowDropPredicate === undefined || this.allowDropPredicate(this._dragService.selection, this.data)) {\n this._dragService.setDropTarget(this.instance);\n }\n }\n }\n\n @HostListener('mouseleave', ['$event']) mouseleave(event) {\n this._dragService.setDropTarget(null);\n }\n\n constructor(@Inject(DragContainerDirective) @Optional() @SkipSelf() private _container: DragContainerDirective<T>,\n private _dragService: DragDropService<T>,\n private _zone: NgZone,\n private _cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.instance = new DragInstance({\n container: this._container?.instance,\n data: this.data\n });\n this._dragService.dropTarget.pipe(takeWhile(() => this._alive))\n .subscribe((target) => {\n this.dropTarget = target;\n if (target === this.instance) {\n this.tetaDragEnter.emit(this.instance);\n }\n this._cdr.detectChanges();\n this._cdr.markForCheck();\n });\n this._dragService.dropped.pipe(takeWhile(() => this._alive))\n .pipe(\n filter((event: DropEvent<T>) => {\n return event.target === this.instance;\n }))\n .subscribe((event) => {\n this.tetaDrop.emit(event);\n });\n }\n\n ngOnDestroy() {\n this._alive = false;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[tetaDragPlaceholder]'\n})\nexport class DragPlaceholderDirective {\n\n constructor() { }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DragContainerDirective} from './drag-container.directive';\nimport {DragDirective} from './drag.directive';\nimport {DragPreviewDirective} from './drag-preview.directive';\nimport {DragPlaceholderDirective} from './drag-placeholder.directive';\n\n@NgModule({\n declarations: [\n DragContainerDirective,\n DragDirective,\n DragPreviewDirective,\n DragPlaceholderDirective\n ],\n exports: [\n DragContainerDirective,\n DragDirective,\n DragPreviewDirective,\n DragPlaceholderDirective\n ],\n imports: [\n CommonModule\n ]\n})\nexport class DragDropModule {\n}\n","import {\n // ContentChildren,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n Output,\n // QueryList,\n} from '@angular/core';\nimport {DragSortEvent} from './drag-sort-event';\n// import {DragSortItemDirective} from './drag-sort-item.directive';\n\n@Directive({\n selector: '[tetaDragSortContainer]',\n})\nexport class DragSortContainerDirective<T> {\n @Input() dragSortList: T[];\n @Output() dragSorted: EventEmitter<DragSortEvent<T>> = new EventEmitter<DragSortEvent<T>>();\n\n // @ContentChildren(DragSortItemDirective, {descendants: true})\n // private items: QueryList<DragSortItemDirective<T>>;\n private _dragItem: T;\n\n constructor() {\n }\n\n @HostListener('drop', ['$event']) drop(event: DragEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n setDragItem(item: T) {\n this._dragItem = item;\n }\n\n getDragItem(): T {\n return this._dragItem;\n }\n\n getList(): T[] {\n return this.dragSortList;\n }\n\n setList(list: T[]) {\n this.dragSortList = list;\n }\n\n updateSortOrder(source: T, target: T, insertBefore: boolean) {\n if (source === target) {\n return;\n }\n const list = this.getList();\n const sourceIndex = list.indexOf(source);\n const targetIndex = list.indexOf(target);\n if (\n (insertBefore && sourceIndex + 1 === targetIndex) ||\n (!insertBefore && sourceIndex === targetIndex + 1)\n ) {\n return;\n }\n const newIndex = list.indexOf(target) + (insertBefore ? 0 : 1);\n\n this.dragSorted.emit({\n list,\n source,\n target,\n newIndex,\n previousIndex: sourceIndex,\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport {DragSortContainerDirective} from './drag-sort-container.directive';\n\n@Directive({\n selector: '[tetaDragSortItem]',\n})\nexport class DragSortItemDirective<T> implements OnInit, OnDestroy {\n @Input() tetaDragSortItem: T;\n @Input() dragSortDirection: 'horizontal' | 'vertical' = 'horizontal';\n\n @HostBinding('attr.draggable') private readonly draggable = true;\n @HostBinding('class.position-relative') private readonly relative = true;\n\n private _dragElement: HTMLElement;\n\n private rect: any;\n\n constructor(\n @Host() private _container: DragSortContainerDirective<T>,\n private _elementRef: ElementRef,\n private _renderer: Renderer2\n ) {\n }\n\n @HostListener('dragstart', ['$event']) dragstart(event: DragEvent): void {\n this._container.setDragItem(this.tetaDragSortItem);\n }\n\n @HostListener('dragenter', ['$event']) dragenter(event: DragEvent): void {\n this.rect = this._elementRef.nativeElement.getBoundingClientRect();\n }\n\n @HostListener('dragover', ['$event']) dragover(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n if (this.rect && this._container.getDragItem()) {\n this.showDrag(this.getDropPosition(event));\n }\n }\n\n @HostListener('dragleave', ['$event']) dragleave(event: DragEvent): void {\n event.preventDefault();\n this.hideDrag();\n }\n\n @HostListener('dragend', ['$event']) dragend(event: DragEvent): void {\n this._container.setDragItem(null);\n this.hideDrag();\n }\n\n @HostListener('drop', ['$event']) drop(event: DragEvent): void {\n event.stopPropagation();\n this._container.updateSortOrder(\n this._container.getDragItem(),\n this.tetaDragSortItem,\n this.getDropPosition(event) === 'start'\n );\n this.hideDrag();\n }\n\n ngOnInit() {\n this.createDrag();\n }\n\n ngOnDestroy() {\n this.destroyDrag();\n }\n\n private showDrag(position: 'start' | 'end') {\n this.hideDrag();\n this._renderer.addClass(this._dragElement, `drop-direction-${position}`);\n }\n\n private hideDrag() {\n this._renderer.removeClass(this._dragElement, 'drop-direction-start');\n this._renderer.removeClass(this._dragElement, 'drop-direction-end');\n }\n\n private createDrag() {\n this._dragElement = this._renderer.createElement('div');\n this._renderer.appendChild(\n this._elementRef.nativeElement,\n this._dragElement\n );\n this._renderer.addClass(this._dragElement, 'drop-direction');\n this._renderer.addClass(\n this._dragElement,\n this.dragSortDirection === 'horizontal'\n ? 'drop-direction-horizontal'\n : 'drop-direction-vertical'\n );\n }\n\n private destroyDrag() {\n this._renderer.removeChild(this._renderer, this._dragElement);\n }\n\n private getDropPosition(event: DragEvent) {\n if (this.dragSortDirection === 'horizontal') {\n return event.clientX >= this.rect.x + this.rect.width / 2\n ? 'end'\n : 'start';\n } else {\n return event.clientY >= this.rect.y + this.rect.height / 2\n ? 'end'\n : 'start';\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragSortContainerDirective } from './drag-sort-container.directive';\nimport { DragSortItemDirective } from './drag-sort-item.directive';\n\n@NgModule({\n declarations: [DragSortContainerDirective, DragSortItemDirective],\n exports: [DragSortContainerDirective, DragSortItemDirective],\n imports: [CommonModule],\n})\nexport class DragSortModule {}\n","import {\n Directive,\n ElementRef,\n Inject,\n Input, NgZone,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {takeWhile, throttleTime} from \"rxjs/operators\";\n\n@Directive({\n selector: '[tetaLoader]',\n})\nexport class LoaderDirective implements OnDestroy {\n @Input() appendToBody = false;\n @Input() mask = false;\n\n @Input()\n set tetaLoader(value: boolean) {\n this._loading = value;\n if (this._loading) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n get tetaLoader() {\n return this._loading;\n }\n\n private _element: HTMLElement;\n private _loader: any;\n private _mask: any;\n private _alive = true;\n private _loading: boolean;\n\n constructor(\n private _elementRef: ElementRef,\n private _renderer: Renderer2,\n @Inject(DOCUMENT) private _document: any,\n protected _zone: NgZone,\n ) {\n this._element = this._elementRef.nativeElement;\n this._zone.onStable\n .pipe(\n takeWhile((_) => this._alive)\n )\n .subscribe((_) => {\n if (this._loading && this._loader) {\n this.setPosition();\n }\n });\n }\n\n ngOnDestroy(): void {\n this._alive = false;\n this.hide();\n }\n\n private show() {\n if (this._loader === null || this._loader === undefined) {\n this._loader = this._renderer.createElement('div');\n this._loader.setAttribute('class', 'loader');\n }\n\n if ((this._mask === null || this._mask === undefined) && this.mask) {\n this._mask = this._renderer.createElement('div');\n this._mask.setAttribute('class', 'loader-mask');\n }\n\n if (this.mask) {\n this._renderer.appendChild(\n this.appendToBody ? this._document.body : this._element,\n this._mask\n );\n }\n\n this._renderer.appendChild(\n this.appendToBody ? this._document.body : this._element,\n this._loader\n );\n this.setPosition();\n }\n\n private hide() {\n if (this._loader && this._loader.parentElement) {\n this._renderer.removeChild(this._loader.parentElement, this._loader);\n }\n if (this._mask && this._mask.parentElement) {\n this._renderer.removeChild(this._loader.parentElement, this._mask);\n }\n }\n\n private setPosition() {\n const position = this._element.getBoundingClientRect();\n this._renderer.setStyle(\n this._loader,\n 'top',\n `${position.y + position.height / 2}px`\n );\n this._renderer.setStyle(\n this._loader,\n 'left',\n `${position.x + +position.width / 2}px`\n );\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LoaderDirective} from './loader.directive';\n\n@NgModule({\n declarations: [LoaderDirective],\n exports: [LoaderDirective],\n imports: [\n CommonModule\n ]\n})\nexport class LoaderModule {\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { DynamicContentBaseDirective } from '../dynamic-content-base.directive';\nimport { DOCUMENT } from '@angular/common';\nimport { DynamicComponentService } from '../../common/service/dynamic-component.service';\nimport { DomUtil } from '../../common/util/dom-util';\nimport { PositionUtil } from '../../common/util/position-util';\nimport { Align } from '../../common/enum/align.enum';\nimport { VerticalAlign } from '../../common/enum/vertical-align.enum';\nimport { merge } from 'rxjs';\nimport { filter, takeWhile, tap } from 'rxjs/operators';\nimport { ClickService } from '../../common/service/click.service';\n\n@Directive({\n selector: '[tetaTooltip]',\n})\nexport class TooltipDirective\n extends DynamicContentBaseDirective\n implements OnDestroy, OnInit\n{\n /**\n * Строка, шаблон или компонент для создания контекстного меню\n */\n @Input() tetaTooltip: string | TemplateRef<any> | Type<any>;\n @Input() override align: Align = Align.center;\n @Input() override verticalAlign: VerticalAlign = VerticalAlign.top;\n private _componentRect: any;\n\n get _dynamicContent() {\n return this.tetaTooltip;\n }\n\n constructor(\n @Inject(DOCUMENT)\n protected override _document: any,\n protected override _elementRef: ElementRef,\n protected override _service: DynamicComponentService,\n protected override _injector: Injector,\n protected override _zone: NgZone,\n protected override _cdr: ChangeDetectorRef,\n private _click: ClickService\n ) {\n super(_document, _elementRef, _service, _injector, _zone, _cdr);\n }\n\n @HostListener('click', ['$event'])\n showContent(event: MouseEvent): void {\n event.preventDefault();\n this.createTooltip();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n merge(this._click.click, this._click.contextMenu)\n .pipe(\n takeWhile(() => this._alive),\n filter(() => this._open),\n filter(() => this._componentRef != null),\n filter(\n (event: MouseEvent) =>\n !DomUtil.clickedInside(this._elementRef.nativeElement, event)\n ),\n filter(\n (event: MouseEvent) =>\n !DomUtil.clickedInside(\n this._componentRef.location.nativeElement,\n event\n )\n ),\n tap((_) => this.destroyContentRef())\n )\n .subscribe();\n }\n\n protected setPosition() {\n if (this._componentRef && this._open) {\n if (!this._componentRect) {\n this._componentRect =\n this._componentRef.location.nativeElement.getBoundingClientRect();\n }\n const containerPosition =\n this._elementRef.nativeElement.getBoundingClientRect();\n const position = PositionUtil.getPosition(\n containerPosition,\n this._componentRect,\n this.align,\n this.verticalAlign,\n 0,\n 12\n );\n PositionUtil.setElementPosition(\n this._componentRef.location.nativeElement,\n position\n );\n const verticalClass =\n containerPosition.top < position.top ? 'tooltip_bottom' : 'tooltip_top';\n this._componentRef.instance.addClass(verticalClass);\n }\n }\n\n private createTooltip(): void {\n this._componentRef = this.createContentRef('tooltip');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipDirective } from './tooltip.directive';\nimport { DynamicComponentModule } from '../../component/dynamic-component/dynamic-component.module';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n@NgModule({\n declarations: [TooltipDirective],\n exports: [TooltipDirective],\n imports: [CommonModule, DynamicComponentModule, BrowserAnimationsModule],\n})\nexport class TooltipModule {}\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[tetaNoAutofill]',\n})\n\n/**\n * Disable autofill inputs in Chrome. Append hidden inputs with text/password type, to element.\n */\nexport class NoAutofillDirective implements OnInit {\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef) {}\n\n ngOnInit() {\n const inputsTypes = ['text', 'password'];\n\n inputsTypes.forEach((_) => {\n const inputElement = this._renderer.createElement('input');\n this._renderer.setAttribute(inputElement, 'type', _);\n this._renderer.setAttribute(inputElement, 'class', 'position-absolute');\n this._renderer.setStyle(inputElement, 'left', '-9999px');\n this._renderer.insertBefore(\n this._elementRef.nativeElement,\n inputElement,\n this._elementRef.nativeElement.firstChild\n );\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NoAutofillDirective } from './no-autofill.directive';\n\n@NgModule({\n exports: [NoAutofillDirective],\n declarations: [NoAutofillDirective],\n imports: [CommonModule],\n})\nexport class NoAutofillModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { DateTime, DateTimeFormatOptions } from 'luxon';\n\n@Pipe({\n name: 'tetaDate',\n})\nexport class TetaDatePipe implements PipeTransform {\n constructor(private _transloco: TranslocoService) {}\n\n transform(\n value: Date,\n format: string | DateTimeFormatOptions,\n timezone?: string,\n locale?: string\n ): string {\n if (value == null) {\n return '';\n }\n\n const activeLang = this._transloco.getActiveLang();\n let luxonDate = DateTime.fromJSDate(value);\n\n if (timezone) {\n luxonDate = luxonDate.setZone(timezone);\n }\n\n const params = {\n locale: locale || activeLang,\n };\n\n return typeof format === 'string'\n ? luxonDate.toFormat(format, params)\n : luxonDate.toLocaleString(\n format || DateTime.DATETIME_MED_WITH_SECONDS,\n params\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TetaDatePipe } from './teta-date.pipe';\n\n@NgModule({\n declarations: [TetaDatePipe],\n exports: [TetaDatePipe],\n imports: [CommonModule],\n})\nexport class TetaDatePipeModule {}\n","import {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OverlayContainerService implements OnDestroy {\n private _containerClass = 'overlay-container';\n private _container: HTMLElement;\n\n constructor(@Inject(DOCUMENT) private document$: any) {\n }\n\n getContainer(): HTMLElement {\n if (!this._container) {\n this.createContainer();\n }\n return this._container;\n }\n\n private createContainer(): void {\n const container = this.document$.createElement('div');\n container.classList.add(this._containerClass);\n this.document$.body.appendChild(container);\n this._container = container;\n }\n\n private removeContainer(): void {\n if (this._container && this._container.parentNode) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n\n ngOnDestroy(): void {\n this.removeContainer();\n }\n}\n","import {toPng, toBlob, toCanvas, toJpeg, toSvg, toPixelData} from 'html-to-image';\n\nexport enum ExportType {\n png,\n svg,\n jpeg,\n blob,\n canvas,\n pixelData\n}\n\nexport type ExportOptions = {\n filter: (node: HTMLElement) => boolean\n}\n\nconst renderMapping = new Map<ExportType, any>()\n .set(ExportType.blob, toBlob)\n .set(ExportType.png, toPng)\n .set(ExportType.canvas, toCanvas)\n .set(ExportType.jpeg, toJpeg)\n .set(ExportType.svg, toSvg)\n .set(ExportType.pixelData, toPixelData)\n\nexport const exportDomToImage = (node: HTMLElement, type = ExportType.png, options?: ExportOptions) => {\n const render = renderMapping.get(type) ?? toPng;\n return render(node, {filter: options?.filter ?? null})\n}\n","import {TetaLocalisation} from './teta-localisation';\n\nexport const ruLocale: TetaLocalisation = {\n apply: 'Применить',\n cancel: 'Отменить',\n clear: 'Очистить',\n pin: 'Закрепить',\n unpin: 'Открепить',\n sortAsc: 'Сортировать по возрастанию',\n sortDesc: 'Сортировать по убыванию',\n clearSort: 'Сбросить сортировку',\n clearAllSort: 'Сбросить все сортировки',\n clearFilter: 'Очистить фильтр',\n clearAllFilters: 'Очистить все фильтры',\n autosizeColumn: 'Авторазмер колонки',\n autosizeAll: 'Авторазмер всех колонок',\n resetColumnsSize: 'Сбросить настройки колонок',\n from: 'От',\n to: 'До',\n all: 'Все',\n min: 'Мин',\n max: 'Макс',\n sum: 'Сумма',\n avg: 'Средн',\n search: 'Поиск',\n notFound:'Не найдено',\n selected:'Выбрано',\n notSelected: 'Не выбрано',\n yes: 'Да',\n no: 'Нет',\n months: [\n 'Январь',\n 'Февраль',\n 'Март',\n 'Апрель',\n 'Май',\n 'Июнь',\n 'Июль',\n 'Август',\n 'Сентябрь',\n 'Октябрь',\n 'Ноябрь',\n 'Декабрь'\n ],\n days: [\n 'Воскресенье',\n 'Понедельник',\n 'Вторник',\n 'Среда',\n 'Четверг',\n 'Пятниуа',\n 'Суббота'\n ],\n daysShort: [\n 'Вс',\n 'Пн',\n 'Вт',\n 'Ср',\n 'Чт',\n 'Пт',\n 'Сб'\n ]\n};\n","/**\n * Components\n */\n\nexport * from './component/public-api';\n\n/**\n * Directives\n */\nexport * from './directive/public-api';\n\n/**\n * Pipes\n */\nexport * from './pipe/public-api';\n\n/**\n * Common\n */\nexport * from './common/public-api';\n\n/**\n * Util\n */\nexport * from './util/public-api';\n\n/* locale */\nexport * from './locale/public-api';\n\n/* observable util */\nexport * from './observable/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent","i1","i1.IconService","i2.DayItemComponent","i2.ButtonComponent","i3.IconComponent","i2.ScrollToSelectedYearDirective","map","i4.DayPickerComponent","i5.MonthPickerComponent","i6.YearPickerComponent","takeWhile","filter","i1.DynamicComponentService","i2.HintDirective","i2.DropdownComponent","i3.DropdownHeadDirective","i4.DropdownContentDirective","i5","i7.IconComponent","i8.InputComponent","i9.DateCalendarComponent","i4.OnlyNumberDirective","i5.NumberPipe","i9.RangeCalendarComponent","i2.ToolbarComponent","i3.ButtonComponent","i4.IconComponent","i5.DelimiterComponent","i4","i1.TetaConfigService","i2","i4.InputComponent","i5.OnlyNumberDirective","i3.InputComponent","i2.LetDirective","i4.TextFieldComponent","i5.CheckboxComponent","i6.ScrollableComponent","i4.DatePickerComponent","i5.InputComponent","i1.RadioComponent","i4.RadioComponent","i5.RadioButtonComponent","i6","i7","i8.IconComponent","i9.HighlightDirective","i10.TextFieldComponent","i11.LetDirective","i1.MessageService","i3.MessageComponent","i1.CurrentModal","i2.DynamicData","i3","i4.ToolbarComponent","i5.ButtonComponent","i6.IconComponent","i1.ModalService","i5.SelectComponent","i6.InputComponent","i7.TextFieldComponent","i8.ToggleComponent","i2.ExpandItemComponent","i3.PropertyGridItemComponent","i1.SwitchService","i2.ClickService","i1.TableService","i2.TetaConfigService","i5.TabContentDirective","i6.TabTitleDirective","i7.TabComponent","i8.TabsComponent","i4.FilterHostComponent","i5.IconComponent","i6.ButtonComponent","i7.ToolbarComponent","i1.TreeService","i4.ScrollableDirective","i5.ScrollableComponent","i6.TreeItemComponent","i7.TreeComponent","i8.TetaTemplateDirective","i9.TreeItemToggleComponent","i10.ToolbarComponent","i11.ScrollableComponent","i4.DropdownComponent","i5.DropdownHeadDirective","i6.DropdownContentDirective","i7.ResizeDragDirective","i8.HeadCellHostComponent","i9.HeadCellDropdownComponent","i10.MainDropdownTabComponent","i11.FilterDropdownTabComponent","i12.VisibilityDropdownTabComponent","i3.HeadCellComponent","i3.CheckboxComponent","i3.TableHeadGroupComponent","i4.SelectionHeadCellComponent","i4.SelectComponent","i4.HintDirective","i4.CheckboxComponent","i2.CellHostComponent","i6.ScrollableDirective","i7.ScrollableComponent","i8.CellComponent","i9.SelectionCellComponent","i10.NumberPipe","i2.ContextMenuDirective","i3.TableHeadComponent","i4.TableBodyComponent","i1.ThemeSwitchService","tap","i3.ResizeDragDirective","i1.DragDropService","i1.DragSortContainerDirective"],"mappings":"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"}
|