@tetacom/ng-components 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/color-icons.svg +374 -697
- package/assets/file-icons.svg +0 -1
- package/assets/icons.svg +205 -138
- package/common/contract/auto-close-ignore-case.d.ts +1 -1
- package/common/contract/constructor-type.d.ts +1 -1
- package/common/model/public-api.d.ts +1 -0
- package/common/model/view-type.model.d.ts +1 -0
- package/common/public-api.d.ts +1 -0
- package/component/accordion/accordion/accordion.component.d.ts +1 -1
- package/component/accordion/accordion-content.directive.d.ts +1 -1
- package/component/accordion/accordion-head/accordion-head.component.d.ts +1 -1
- package/component/accordion/accordion-item/accordion-item.component.d.ts +4 -1
- package/component/autocomplete/autocomplete/autocomplete.component.d.ts +1 -1
- package/component/avatar/avatar/avatar.component.d.ts +17 -0
- package/component/avatar/avatar.module.d.ts +9 -0
- package/component/avatar/model/avatar-color.enum.d.ts +20 -0
- package/component/avatar/public-api.d.ts +2 -0
- package/component/button/button/button.component.d.ts +5 -2
- package/component/chart-3d/chart3d/chart3d.component.d.ts +1 -1
- package/component/checkbox/checkbox/checkbox.component.d.ts +2 -1
- package/component/date-picker/base-calendar.d.ts +49 -0
- package/component/date-picker/base-picker.d.ts +60 -0
- package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +20 -0
- package/component/date-picker/date-picker/date-picker.component.d.ts +38 -66
- 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 +214 -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 +7290 -6537
- 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,143 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, SkipSelf } from '@angular/core';
|
|
2
|
+
import { DragInstance } from './model/drag-instance';
|
|
3
|
+
import { DragContainerDirective } from './drag-container.directive';
|
|
4
|
+
import { filter, takeWhile } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./drag-drop.service";
|
|
7
|
+
import * as i2 from "./drag-container.directive";
|
|
8
|
+
export class DragDirective {
|
|
9
|
+
_container;
|
|
10
|
+
_dragService;
|
|
11
|
+
_zone;
|
|
12
|
+
_cdr;
|
|
13
|
+
data;
|
|
14
|
+
allowDrag = true;
|
|
15
|
+
allowDrop = true;
|
|
16
|
+
allowDropPredicate;
|
|
17
|
+
tetaDragEnter = new EventEmitter();
|
|
18
|
+
tetaDrop = new EventEmitter();
|
|
19
|
+
dropTarget;
|
|
20
|
+
instance;
|
|
21
|
+
get selection() {
|
|
22
|
+
return this._dragService?.selection?.items?.indexOf(this.instance) >= 0;
|
|
23
|
+
}
|
|
24
|
+
get isDropTarget() {
|
|
25
|
+
return this.dropTarget === this.instance && this.allowDrop;
|
|
26
|
+
}
|
|
27
|
+
_alive = true;
|
|
28
|
+
mousedown(event) {
|
|
29
|
+
if (!this.allowDrag) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (event.ctrlKey && this._container?.multiple) {
|
|
33
|
+
this._dragService.addSelection(this.instance, this._container?.instance);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this._dragService.setSelection(this.instance, this._container?.instance);
|
|
37
|
+
}
|
|
38
|
+
this._dragService.setStartPosition({
|
|
39
|
+
x: event.x,
|
|
40
|
+
y: event.y
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
mouseenter(event) {
|
|
44
|
+
if (this.allowDrop) {
|
|
45
|
+
event.stopPropagation();
|
|
46
|
+
if (this.allowDropPredicate === undefined || this.allowDropPredicate(this._dragService.selection, this.data)) {
|
|
47
|
+
this._dragService.setDropTarget(this.instance);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
mouseleave(event) {
|
|
52
|
+
this._dragService.setDropTarget(null);
|
|
53
|
+
}
|
|
54
|
+
constructor(_container, _dragService, _zone, _cdr) {
|
|
55
|
+
this._container = _container;
|
|
56
|
+
this._dragService = _dragService;
|
|
57
|
+
this._zone = _zone;
|
|
58
|
+
this._cdr = _cdr;
|
|
59
|
+
}
|
|
60
|
+
ngOnInit() {
|
|
61
|
+
this.instance = new DragInstance({
|
|
62
|
+
container: this._container?.instance,
|
|
63
|
+
data: this.data
|
|
64
|
+
});
|
|
65
|
+
this._dragService.dropTarget.pipe(takeWhile(() => this._alive))
|
|
66
|
+
.subscribe((target) => {
|
|
67
|
+
this.dropTarget = target;
|
|
68
|
+
if (target === this.instance) {
|
|
69
|
+
this.tetaDragEnter.emit(this.instance);
|
|
70
|
+
}
|
|
71
|
+
this._cdr.detectChanges();
|
|
72
|
+
this._cdr.markForCheck();
|
|
73
|
+
});
|
|
74
|
+
this._dragService.dropped.pipe(takeWhile(() => this._alive))
|
|
75
|
+
.pipe(filter((event) => {
|
|
76
|
+
return event.target === this.instance;
|
|
77
|
+
}))
|
|
78
|
+
.subscribe((event) => {
|
|
79
|
+
this.tetaDrop.emit(event);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
ngOnDestroy() {
|
|
83
|
+
this._alive = false;
|
|
84
|
+
}
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragDirective, deps: [{ token: DragContainerDirective, optional: true, skipSelf: true }, { token: i1.DragDropService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DragDirective, selector: "[tetaDrag]", inputs: { data: ["tetaDrag", "data"], allowDrag: "allowDrag", allowDrop: "allowDrop", allowDropPredicate: "allowDropPredicate" }, outputs: { tetaDragEnter: "tetaDragEnter", tetaDrop: "tetaDrop" }, host: { listeners: { "mousedown": "mousedown($event)", "touchstart": "mousedown($event)", "mouseenter": "mouseenter($event)", "mouseleave": "mouseleave($event)" }, properties: { "style.userSelect": "\"none\"", "class.teta-drag-item": "\"true\"", "class.teta_draggable_item": "this.allowDrag", "class.teta_droppable_item": "this.allowDrop", "class.teta-drag-selection": "this.selection", "class.teta-drop-target": "this.isDropTarget" } }, exportAs: ["drag"], ngImport: i0 });
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragDirective, decorators: [{
|
|
89
|
+
type: Directive,
|
|
90
|
+
args: [{
|
|
91
|
+
selector: '[tetaDrag]',
|
|
92
|
+
exportAs: 'drag',
|
|
93
|
+
host: {
|
|
94
|
+
'[style.userSelect]': '"none"',
|
|
95
|
+
'[class.teta-drag-item]': '"true"'
|
|
96
|
+
}
|
|
97
|
+
}]
|
|
98
|
+
}], ctorParameters: function () { return [{ type: i2.DragContainerDirective, decorators: [{
|
|
99
|
+
type: Inject,
|
|
100
|
+
args: [DragContainerDirective]
|
|
101
|
+
}, {
|
|
102
|
+
type: Optional
|
|
103
|
+
}, {
|
|
104
|
+
type: SkipSelf
|
|
105
|
+
}] }, { type: i1.DragDropService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
106
|
+
type: Input,
|
|
107
|
+
args: ['tetaDrag']
|
|
108
|
+
}], allowDrag: [{
|
|
109
|
+
type: HostBinding,
|
|
110
|
+
args: ['class.teta_draggable_item']
|
|
111
|
+
}, {
|
|
112
|
+
type: Input
|
|
113
|
+
}], allowDrop: [{
|
|
114
|
+
type: HostBinding,
|
|
115
|
+
args: ['class.teta_droppable_item']
|
|
116
|
+
}, {
|
|
117
|
+
type: Input
|
|
118
|
+
}], allowDropPredicate: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], tetaDragEnter: [{
|
|
121
|
+
type: Output
|
|
122
|
+
}], tetaDrop: [{
|
|
123
|
+
type: Output
|
|
124
|
+
}], selection: [{
|
|
125
|
+
type: HostBinding,
|
|
126
|
+
args: ['class.teta-drag-selection']
|
|
127
|
+
}], isDropTarget: [{
|
|
128
|
+
type: HostBinding,
|
|
129
|
+
args: ['class.teta-drop-target']
|
|
130
|
+
}], mousedown: [{
|
|
131
|
+
type: HostListener,
|
|
132
|
+
args: ['mousedown', ['$event']]
|
|
133
|
+
}, {
|
|
134
|
+
type: HostListener,
|
|
135
|
+
args: ['touchstart', ['$event']]
|
|
136
|
+
}], mouseenter: [{
|
|
137
|
+
type: HostListener,
|
|
138
|
+
args: ['mouseenter', ['$event']]
|
|
139
|
+
}], mouseleave: [{
|
|
140
|
+
type: HostListener,
|
|
141
|
+
args: ['mouseleave', ['$event']]
|
|
142
|
+
}] } });
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctZHJvcC9kcmFnLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBR2xFLE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFZakQsTUFBTSxPQUFPLGFBQWE7SUE0RG9EO0lBQ3hEO0lBQ0E7SUFDQTtJQTlERCxJQUFJLENBQUk7SUFHbEIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUdqQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWpCLGtCQUFrQixDQUFpRDtJQUVsRSxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFDcEQsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0lBRXRELFVBQVUsQ0FBZ0I7SUFDMUIsUUFBUSxDQUFrQjtJQUUxQixJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sTUFBTSxHQUFHLElBQUksQ0FBQztJQUl0QixT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UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7dUdBNUZVLGFBQWEsa0JBNERKLHNCQUFzQjsyRkE1RC9CLGFBQWE7OzJGQUFiLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxNQUFNO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osb0JBQW9CLEVBQUUsUUFBUTt3QkFDOUIsd0JBQXdCLEVBQUUsUUFBUTtxQkFDbkM7aUJBQ0Y7OzBCQTZEYyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQUcsUUFBUTs7MEJBQUksUUFBUTsrSEEzRDlDLElBQUk7c0JBQXRCLEtBQUs7dUJBQUMsVUFBVTtnQkFHUixTQUFTO3NCQURqQixXQUFXO3VCQUFDLDJCQUEyQjs7c0JBQ3ZDLEtBQUs7Z0JBR0csU0FBUztzQkFEakIsV0FBVzt1QkFBQywyQkFBMkI7O3NCQUN2QyxLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBTUgsU0FBUztzQkFEWixXQUFXO3VCQUFDLDJCQUEyQjtnQkFNcEMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLHdCQUF3QjtnQkFTckMsU0FBUztzQkFGUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCdEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVRSxVQUFVO3NCQUFqRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2tpcFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RyYWdJbnN0YW5jZX0gZnJvbSAnLi9tb2RlbC9kcmFnLWluc3RhbmNlJztcbmltcG9ydCB7RHJhZ0NvbnRhaW5lckRpcmVjdGl2ZX0gZnJvbSAnLi9kcmFnLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEcmFnRHJvcFNlcnZpY2V9IGZyb20gJy4vZHJhZy1kcm9wLnNlcnZpY2UnO1xuaW1wb3J0IHtEcm9wVGFyZ2V0fSBmcm9tICcuL21vZGVsL2Ryb3AtdGFyZ2V0JztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlV2hpbGV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RHJvcEV2ZW50fSBmcm9tICcuL21vZGVsL2Ryb3AtZXZlbnQnO1xuaW1wb3J0IHtEcmFnU2VsZWN0aW9ufSBmcm9tICcuL21vZGVsL2RyYWctc2VsZWN0aW9uJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RldGFEcmFnXScsXG4gIGV4cG9ydEFzOiAnZHJhZycsXG4gIGhvc3Q6IHtcbiAgICAnW3N0eWxlLnVzZXJTZWxlY3RdJzogJ1wibm9uZVwiJyxcbiAgICAnW2NsYXNzLnRldGEtZHJhZy1pdGVtXSc6ICdcInRydWVcIidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEcmFnRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ3RldGFEcmFnJykgZGF0YTogVDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRldGFfZHJhZ2dhYmxlX2l0ZW0nKVxuICBASW5wdXQoKSBhbGxvd0RyYWcgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGV0YV9kcm9wcGFibGVfaXRlbScpXG4gIEBJbnB1dCgpIGFsbG93RHJvcCA9IHRydWU7XG5cbiAgQElucHV0KCkgYWxsb3dEcm9wUHJlZGljYXRlOiAoZGF0YTogRHJhZ1NlbGVjdGlvbjxUPiwgdGFyZ2V0OiBUKSA9PiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSB0ZXRhRHJhZ0VudGVyID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnSW5zdGFuY2U8VD4+KCk7XG4gIEBPdXRwdXQoKSB0ZXRhRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8RHJvcEV2ZW50PFQ+PigpO1xuXG4gIGRyb3BUYXJnZXQ6IERyb3BUYXJnZXQ8VD47XG4gIGluc3RhbmNlOiBEcmFnSW5zdGFuY2U8VD47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZXRhLWRyYWctc2VsZWN0aW9uJylcbiAgZ2V0IHNlbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ1NlcnZpY2U/LnNlbGVjdGlvbj8uaXRlbXM/LmluZGV4T2YodGhpcy5pbnN0YW5jZSkgPj0gMDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGV0YS1kcm9wLXRhcmdldCcpXG4gIGdldCBpc0Ryb3BUYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHJvcFRhcmdldCA9PT0gdGhpcy5pbnN0YW5jZSAmJiB0aGlzLmFsbG93RHJvcDtcbiAgfVxuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgbW91c2Vkb3duKGV2ZW50KSB7XG4gICAgaWYoIXRoaXMuYWxsb3dEcmFnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIHRoaXMuX2NvbnRhaW5lcj8ubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuX2RyYWdTZXJ2aWNlLmFkZFNlbGVjdGlvbih0aGlzLmluc3RhbmNlLCB0aGlzLl9jb250YWluZXI/Lmluc3RhbmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZHJhZ1NlcnZpY2Uuc2V0U2VsZWN0aW9uKHRoaXMuaW5zdGFuY2UsIHRoaXMuX2NvbnRhaW5lcj8uaW5zdGFuY2UpO1xuICAgIH1cbiAgICB0aGlzLl9kcmFnU2VydmljZS5zZXRTdGFydFBvc2l0aW9uKHtcbiAgICAgIHg6IGV2ZW50LngsXG4gICAgICB5OiBldmVudC55XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgbW91c2VlbnRlcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93RHJvcCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBpZih0aGlzLmFsbG93RHJvcFByZWRpY2F0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYWxsb3dEcm9wUHJlZGljYXRlKHRoaXMuX2RyYWdTZXJ2aWNlLnNlbGVjdGlvbiwgdGhpcy5kYXRhKSkge1xuICAgICAgICB0aGlzLl9kcmFnU2VydmljZS5zZXREcm9wVGFyZ2V0KHRoaXMuaW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKSBtb3VzZWxlYXZlKGV2ZW50KSB7XG4gICAgdGhpcy5fZHJhZ1NlcnZpY2Uuc2V0RHJvcFRhcmdldChudWxsKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRHJhZ0NvbnRhaW5lckRpcmVjdGl2ZSkgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBfY29udGFpbmVyOiBEcmFnQ29udGFpbmVyRGlyZWN0aXZlPFQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIF9kcmFnU2VydmljZTogRHJhZ0Ryb3BTZXJ2aWNlPFQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgRHJhZ0luc3RhbmNlKHtcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5fY29udGFpbmVyPy5pbnN0YW5jZSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YVxuICAgIH0pO1xuICAgIHRoaXMuX2RyYWdTZXJ2aWNlLmRyb3BUYXJnZXQucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnN1YnNjcmliZSgodGFyZ2V0KSA9PiB7XG4gICAgICAgIHRoaXMuZHJvcFRhcmdldCA9IHRhcmdldDtcbiAgICAgICAgaWYgKHRhcmdldCA9PT0gdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgIHRoaXMudGV0YURyYWdFbnRlci5lbWl0KHRoaXMuaW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuX2RyYWdTZXJ2aWNlLmRyb3BwZWQucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQ6IERyb3BFdmVudDxUPikgPT4ge1xuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQgPT09IHRoaXMuaW5zdGFuY2U7XG4gICAgICAgIH0pKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50ZXRhRHJvcC5lbWl0KGV2ZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class DragContainerInstance {
|
|
2
|
+
data;
|
|
3
|
+
previewTemplate;
|
|
4
|
+
viewContainer;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.data = options.data;
|
|
7
|
+
this.previewTemplate = options.previewTemplate;
|
|
8
|
+
this.viewContainer = options.viewContainer;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1jb250YWluZXItaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctZHJvcC9tb2RlbC9kcmFnLWNvbnRhaW5lci1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLElBQUksQ0FBTTtJQUNWLGVBQWUsQ0FBbUI7SUFDbEMsYUFBYSxDQUFtQjtJQUVoQyxZQUFZLE9BSVg7UUFDQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIERyYWdDb250YWluZXJJbnN0YW5jZTxUPiB7XG4gIGRhdGE6IFRbXTtcbiAgcHJldmlld1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHtcbiAgICBkYXRhOiBUW10sXG4gICAgcHJldmlld1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgfSkge1xuICAgIHRoaXMuZGF0YSA9IG9wdGlvbnMuZGF0YTtcbiAgICB0aGlzLnByZXZpZXdUZW1wbGF0ZSA9IG9wdGlvbnMucHJldmlld1RlbXBsYXRlO1xuICAgIHRoaXMudmlld0NvbnRhaW5lciA9IG9wdGlvbnMudmlld0NvbnRhaW5lcjtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class DragInstance {
|
|
2
|
+
container;
|
|
3
|
+
data;
|
|
4
|
+
constructor(options) {
|
|
5
|
+
this.container = options.container;
|
|
6
|
+
this.data = options.data;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvZHJhZy1kcm9wL21vZGVsL2RyYWctaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7SUFDdkIsU0FBUyxDQUEyQjtJQUNwQyxJQUFJLENBQUk7SUFFUixZQUFZLE9BR1g7UUFDQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHJhZ0NvbnRhaW5lckluc3RhbmNlfSBmcm9tICcuL2RyYWctY29udGFpbmVyLWluc3RhbmNlJztcblxuZXhwb3J0IGNsYXNzIERyYWdJbnN0YW5jZTxUPiB7XG4gIGNvbnRhaW5lcjogRHJhZ0NvbnRhaW5lckluc3RhbmNlPFQ+O1xuICBkYXRhOiBUO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7XG4gICAgY29udGFpbmVyOiBEcmFnQ29udGFpbmVySW5zdGFuY2U8VD4sXG4gICAgZGF0YTogVFxuICB9KSB7XG4gICAgdGhpcy5jb250YWluZXIgPSBvcHRpb25zLmNvbnRhaW5lcjtcbiAgICB0aGlzLmRhdGEgPSBvcHRpb25zLmRhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
// ContentChildren,
|
|
3
|
+
Directive, EventEmitter, HostListener, Input, Output,
|
|
4
|
+
// QueryList,
|
|
5
|
+
} from '@angular/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
// import {DragSortItemDirective} from './drag-sort-item.directive';
|
|
8
|
+
export class DragSortContainerDirective {
|
|
9
|
+
dragSortList;
|
|
10
|
+
dragSorted = new EventEmitter();
|
|
11
|
+
// @ContentChildren(DragSortItemDirective, {descendants: true})
|
|
12
|
+
// private items: QueryList<DragSortItemDirective<T>>;
|
|
13
|
+
_dragItem;
|
|
14
|
+
constructor() {
|
|
15
|
+
}
|
|
16
|
+
drop(event) {
|
|
17
|
+
event.stopPropagation();
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
}
|
|
20
|
+
setDragItem(item) {
|
|
21
|
+
this._dragItem = item;
|
|
22
|
+
}
|
|
23
|
+
getDragItem() {
|
|
24
|
+
return this._dragItem;
|
|
25
|
+
}
|
|
26
|
+
getList() {
|
|
27
|
+
return this.dragSortList;
|
|
28
|
+
}
|
|
29
|
+
setList(list) {
|
|
30
|
+
this.dragSortList = list;
|
|
31
|
+
}
|
|
32
|
+
updateSortOrder(source, target, insertBefore) {
|
|
33
|
+
if (source === target) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const list = this.getList();
|
|
37
|
+
const sourceIndex = list.indexOf(source);
|
|
38
|
+
const targetIndex = list.indexOf(target);
|
|
39
|
+
if ((insertBefore && sourceIndex + 1 === targetIndex) ||
|
|
40
|
+
(!insertBefore && sourceIndex === targetIndex + 1)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const newIndex = list.indexOf(target) + (insertBefore ? 0 : 1);
|
|
44
|
+
this.dragSorted.emit({
|
|
45
|
+
list,
|
|
46
|
+
source,
|
|
47
|
+
target,
|
|
48
|
+
newIndex,
|
|
49
|
+
previousIndex: sourceIndex,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DragSortContainerDirective, selector: "[tetaDragSortContainer]", inputs: { dragSortList: "dragSortList" }, outputs: { dragSorted: "dragSorted" }, host: { listeners: { "drop": "drop($event)" } }, ngImport: i0 });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortContainerDirective, decorators: [{
|
|
56
|
+
type: Directive,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: '[tetaDragSortContainer]',
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: function () { return []; }, propDecorators: { dragSortList: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], dragSorted: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}], drop: [{
|
|
65
|
+
type: HostListener,
|
|
66
|
+
args: ['drop', ['$event']]
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zb3J0LWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL2RyYWctc29ydC9kcmFnLXNvcnQtY29udGFpbmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPO0FBQ0wsbUJBQW1CO0FBQ25CLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNO0FBQ04sYUFBYTtFQUNkLE1BQU0sZUFBZSxDQUFDOztBQUV2QixvRUFBb0U7QUFLcEUsTUFBTSxPQUFPLDBCQUEwQjtJQUM1QixZQUFZLENBQU07SUFDakIsVUFBVSxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUU1RiwrREFBK0Q7SUFDL0Qsc0RBQXNEO0lBQzlDLFNBQVMsQ0FBSTtJQUVyQjtJQUNBLENBQUM7SUFFaUMsSUFBSSxDQUFDLEtBQWdCO1FBQ3JELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFPO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBUztRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBUyxFQUFFLE1BQVMsRUFBRSxZQUFxQjtRQUN6RCxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUNFLENBQUMsWUFBWSxJQUFJLFdBQVcsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxZQUFZLElBQUksV0FBVyxLQUFLLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFDbEQ7WUFDQSxPQUFPO1NBQ1I7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUk7WUFDSixNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixhQUFhLEVBQUUsV0FBVztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXREVSwwQkFBMEI7MkZBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO2lCQUNwQzswRUFFVSxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBUzJCLElBQUk7c0JBQXJDLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgLy8gQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICAvLyBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEcmFnU29ydEV2ZW50fSBmcm9tICcuL2RyYWctc29ydC1ldmVudCc7XG4vLyBpbXBvcnQge0RyYWdTb3J0SXRlbURpcmVjdGl2ZX0gZnJvbSAnLi9kcmFnLXNvcnQtaXRlbS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YURyYWdTb3J0Q29udGFpbmVyXScsXG59KVxuZXhwb3J0IGNsYXNzIERyYWdTb3J0Q29udGFpbmVyRGlyZWN0aXZlPFQ+IHtcbiAgQElucHV0KCkgZHJhZ1NvcnRMaXN0OiBUW107XG4gIEBPdXRwdXQoKSBkcmFnU29ydGVkOiBFdmVudEVtaXR0ZXI8RHJhZ1NvcnRFdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdTb3J0RXZlbnQ8VD4+KCk7XG5cbiAgLy8gQENvbnRlbnRDaGlsZHJlbihEcmFnU29ydEl0ZW1EaXJlY3RpdmUsIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gIC8vIHByaXZhdGUgaXRlbXM6IFF1ZXJ5TGlzdDxEcmFnU29ydEl0ZW1EaXJlY3RpdmU8VD4+O1xuICBwcml2YXRlIF9kcmFnSXRlbTogVDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgc2V0RHJhZ0l0ZW0oaXRlbTogVCkge1xuICAgIHRoaXMuX2RyYWdJdGVtID0gaXRlbTtcbiAgfVxuXG4gIGdldERyYWdJdGVtKCk6IFQge1xuICAgIHJldHVybiB0aGlzLl9kcmFnSXRlbTtcbiAgfVxuXG4gIGdldExpc3QoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5kcmFnU29ydExpc3Q7XG4gIH1cblxuICBzZXRMaXN0KGxpc3Q6IFRbXSkge1xuICAgIHRoaXMuZHJhZ1NvcnRMaXN0ID0gbGlzdDtcbiAgfVxuXG4gIHVwZGF0ZVNvcnRPcmRlcihzb3VyY2U6IFQsIHRhcmdldDogVCwgaW5zZXJ0QmVmb3JlOiBib29sZWFuKSB7XG4gICAgaWYgKHNvdXJjZSA9PT0gdGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmdldExpc3QoKTtcbiAgICBjb25zdCBzb3VyY2VJbmRleCA9IGxpc3QuaW5kZXhPZihzb3VyY2UpO1xuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gbGlzdC5pbmRleE9mKHRhcmdldCk7XG4gICAgaWYgKFxuICAgICAgKGluc2VydEJlZm9yZSAmJiBzb3VyY2VJbmRleCArIDEgPT09IHRhcmdldEluZGV4KSB8fFxuICAgICAgKCFpbnNlcnRCZWZvcmUgJiYgc291cmNlSW5kZXggPT09IHRhcmdldEluZGV4ICsgMSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3SW5kZXggPSBsaXN0LmluZGV4T2YodGFyZ2V0KSArIChpbnNlcnRCZWZvcmUgPyAwIDogMSk7XG5cbiAgICB0aGlzLmRyYWdTb3J0ZWQuZW1pdCh7XG4gICAgICBsaXN0LFxuICAgICAgc291cmNlLFxuICAgICAgdGFyZ2V0LFxuICAgICAgbmV3SW5kZXgsXG4gICAgICBwcmV2aW91c0luZGV4OiBzb3VyY2VJbmRleCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Directive, Host, HostBinding, HostListener, Input, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./drag-sort-container.directive";
|
|
4
|
+
export class DragSortItemDirective {
|
|
5
|
+
_container;
|
|
6
|
+
_elementRef;
|
|
7
|
+
_renderer;
|
|
8
|
+
tetaDragSortItem;
|
|
9
|
+
dragSortDirection = 'horizontal';
|
|
10
|
+
draggable = true;
|
|
11
|
+
relative = true;
|
|
12
|
+
_dragElement;
|
|
13
|
+
rect;
|
|
14
|
+
constructor(_container, _elementRef, _renderer) {
|
|
15
|
+
this._container = _container;
|
|
16
|
+
this._elementRef = _elementRef;
|
|
17
|
+
this._renderer = _renderer;
|
|
18
|
+
}
|
|
19
|
+
dragstart(event) {
|
|
20
|
+
this._container.setDragItem(this.tetaDragSortItem);
|
|
21
|
+
}
|
|
22
|
+
dragenter(event) {
|
|
23
|
+
this.rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
24
|
+
}
|
|
25
|
+
dragover(event) {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
event.stopPropagation();
|
|
28
|
+
if (this.rect && this._container.getDragItem()) {
|
|
29
|
+
this.showDrag(this.getDropPosition(event));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
dragleave(event) {
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
this.hideDrag();
|
|
35
|
+
}
|
|
36
|
+
dragend(event) {
|
|
37
|
+
this._container.setDragItem(null);
|
|
38
|
+
this.hideDrag();
|
|
39
|
+
}
|
|
40
|
+
drop(event) {
|
|
41
|
+
event.stopPropagation();
|
|
42
|
+
this._container.updateSortOrder(this._container.getDragItem(), this.tetaDragSortItem, this.getDropPosition(event) === 'start');
|
|
43
|
+
this.hideDrag();
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.createDrag();
|
|
47
|
+
}
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
this.destroyDrag();
|
|
50
|
+
}
|
|
51
|
+
showDrag(position) {
|
|
52
|
+
this.hideDrag();
|
|
53
|
+
this._renderer.addClass(this._dragElement, `drop-direction-${position}`);
|
|
54
|
+
}
|
|
55
|
+
hideDrag() {
|
|
56
|
+
this._renderer.removeClass(this._dragElement, 'drop-direction-start');
|
|
57
|
+
this._renderer.removeClass(this._dragElement, 'drop-direction-end');
|
|
58
|
+
}
|
|
59
|
+
createDrag() {
|
|
60
|
+
this._dragElement = this._renderer.createElement('div');
|
|
61
|
+
this._renderer.appendChild(this._elementRef.nativeElement, this._dragElement);
|
|
62
|
+
this._renderer.addClass(this._dragElement, 'drop-direction');
|
|
63
|
+
this._renderer.addClass(this._dragElement, this.dragSortDirection === 'horizontal'
|
|
64
|
+
? 'drop-direction-horizontal'
|
|
65
|
+
: 'drop-direction-vertical');
|
|
66
|
+
}
|
|
67
|
+
destroyDrag() {
|
|
68
|
+
this._renderer.removeChild(this._renderer, this._dragElement);
|
|
69
|
+
}
|
|
70
|
+
getDropPosition(event) {
|
|
71
|
+
if (this.dragSortDirection === 'horizontal') {
|
|
72
|
+
return event.clientX >= this.rect.x + this.rect.width / 2
|
|
73
|
+
? 'end'
|
|
74
|
+
: 'start';
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return event.clientY >= this.rect.y + this.rect.height / 2
|
|
78
|
+
? 'end'
|
|
79
|
+
: 'start';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortItemDirective, deps: [{ token: i1.DragSortContainerDirective, host: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
83
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DragSortItemDirective, selector: "[tetaDragSortItem]", inputs: { tetaDragSortItem: "tetaDragSortItem", dragSortDirection: "dragSortDirection" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "dragover($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "attr.draggable": "this.draggable", "class.position-relative": "this.relative" } }, ngImport: i0 });
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortItemDirective, decorators: [{
|
|
86
|
+
type: Directive,
|
|
87
|
+
args: [{
|
|
88
|
+
selector: '[tetaDragSortItem]',
|
|
89
|
+
}]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.DragSortContainerDirective, decorators: [{
|
|
91
|
+
type: Host
|
|
92
|
+
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { tetaDragSortItem: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], dragSortDirection: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], draggable: [{
|
|
97
|
+
type: HostBinding,
|
|
98
|
+
args: ['attr.draggable']
|
|
99
|
+
}], relative: [{
|
|
100
|
+
type: HostBinding,
|
|
101
|
+
args: ['class.position-relative']
|
|
102
|
+
}], dragstart: [{
|
|
103
|
+
type: HostListener,
|
|
104
|
+
args: ['dragstart', ['$event']]
|
|
105
|
+
}], dragenter: [{
|
|
106
|
+
type: HostListener,
|
|
107
|
+
args: ['dragenter', ['$event']]
|
|
108
|
+
}], dragover: [{
|
|
109
|
+
type: HostListener,
|
|
110
|
+
args: ['dragover', ['$event']]
|
|
111
|
+
}], dragleave: [{
|
|
112
|
+
type: HostListener,
|
|
113
|
+
args: ['dragleave', ['$event']]
|
|
114
|
+
}], dragend: [{
|
|
115
|
+
type: HostListener,
|
|
116
|
+
args: ['dragend', ['$event']]
|
|
117
|
+
}], drop: [{
|
|
118
|
+
type: HostListener,
|
|
119
|
+
args: ['drop', ['$event']]
|
|
120
|
+
}] } });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zb3J0LWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZS9kcmFnLXNvcnQvZHJhZy1zb3J0LWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDOzs7QUFNdkIsTUFBTSxPQUFPLHFCQUFxQjtJQVlkO0lBQ1I7SUFDQTtJQWJELGdCQUFnQixDQUFJO0lBQ3BCLGlCQUFpQixHQUE4QixZQUFZLENBQUM7SUFFckIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNSLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFakUsWUFBWSxDQUFjO0lBRTFCLElBQUksQ0FBTTtJQUVsQixZQUNrQixVQUF5QyxFQUNqRCxXQUF1QixFQUN2QixTQUFvQjtRQUZaLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQ2pELGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFFOUIsQ0FBQztJQUVzQyxTQUFTLENBQUMsS0FBZ0I7UUFDL0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVzQyxTQUFTLENBQUMsS0FBZ0I7UUFDL0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFcUMsUUFBUSxDQUFDLEtBQWdCO1FBQzdELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUU7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QUFPLENBQUM7U0FDYjtJQUNILENBQUM7dUdBckdVLHFCQUFxQjsyRkFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9COzswQkFhSSxJQUFJOzZGQVhFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRTBDLFNBQVM7c0JBQXhELFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUM0QixRQUFRO3NCQUFoRSxXQUFXO3VCQUFDLHlCQUF5QjtnQkFhQyxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRSxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJQyxRQUFRO3NCQUE3QyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRRyxTQUFTO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLQSxPQUFPO3NCQUEzQyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLRCxJQUFJO3NCQUFyQyxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEcmFnU29ydENvbnRhaW5lckRpcmVjdGl2ZX0gZnJvbSAnLi9kcmFnLXNvcnQtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhRHJhZ1NvcnRJdGVtXScsXG59KVxuZXhwb3J0IGNsYXNzIERyYWdTb3J0SXRlbURpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGV0YURyYWdTb3J0SXRlbTogVDtcbiAgQElucHV0KCkgZHJhZ1NvcnREaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRyYWdnYWJsZScpIHByaXZhdGUgcmVhZG9ubHkgZHJhZ2dhYmxlID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1yZWxhdGl2ZScpIHByaXZhdGUgcmVhZG9ubHkgcmVsYXRpdmUgPSB0cnVlO1xuXG4gIHByaXZhdGUgX2RyYWdFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHJlY3Q6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASG9zdCgpIHByaXZhdGUgX2NvbnRhaW5lcjogRHJhZ1NvcnRDb250YWluZXJEaXJlY3RpdmU8VD4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSkgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250YWluZXIuc2V0RHJhZ0l0ZW0odGhpcy50ZXRhRHJhZ1NvcnRJdGVtKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pIGRyYWdlbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5yZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKSBkcmFnb3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX2NvbnRhaW5lci5nZXREcmFnSXRlbSgpKSB7XG4gICAgICB0aGlzLnNob3dEcmFnKHRoaXMuZ2V0RHJvcFBvc2l0aW9uKGV2ZW50KSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSkgZHJhZ2xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaGlkZURyYWcoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250YWluZXIuc2V0RHJhZ0l0ZW0obnVsbCk7XG4gICAgdGhpcy5oaWRlRHJhZygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pIGRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2NvbnRhaW5lci51cGRhdGVTb3J0T3JkZXIoXG4gICAgICB0aGlzLl9jb250YWluZXIuZ2V0RHJhZ0l0ZW0oKSxcbiAgICAgIHRoaXMudGV0YURyYWdTb3J0SXRlbSxcbiAgICAgIHRoaXMuZ2V0RHJvcFBvc2l0aW9uKGV2ZW50KSA9PT0gJ3N0YXJ0J1xuICAgICk7XG4gICAgdGhpcy5oaWRlRHJhZygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVEcmFnKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lEcmFnKCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dEcmFnKHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcpIHtcbiAgICB0aGlzLmhpZGVEcmFnKCk7XG4gICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZHJhZ0VsZW1lbnQsIGBkcm9wLWRpcmVjdGlvbi0ke3Bvc2l0aW9ufWApO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlRHJhZygpIHtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9kcmFnRWxlbWVudCwgJ2Ryb3AtZGlyZWN0aW9uLXN0YXJ0Jyk7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZHJhZ0VsZW1lbnQsICdkcm9wLWRpcmVjdGlvbi1lbmQnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRHJhZygpIHtcbiAgICB0aGlzLl9kcmFnRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKFxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5fZHJhZ0VsZW1lbnRcbiAgICApO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2RyYWdFbGVtZW50LCAnZHJvcC1kaXJlY3Rpb24nKTtcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgIHRoaXMuX2RyYWdFbGVtZW50LFxuICAgICAgdGhpcy5kcmFnU29ydERpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgID8gJ2Ryb3AtZGlyZWN0aW9uLWhvcml6b250YWwnXG4gICAgICAgIDogJ2Ryb3AtZGlyZWN0aW9uLXZlcnRpY2FsJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lEcmFnKCkge1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuX3JlbmRlcmVyLCB0aGlzLl9kcmFnRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldERyb3BQb3NpdGlvbihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuZHJhZ1NvcnREaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgcmV0dXJuIGV2ZW50LmNsaWVudFggPj0gdGhpcy5yZWN0LnggKyB0aGlzLnJlY3Qud2lkdGggLyAyXG4gICAgICAgID8gJ2VuZCdcbiAgICAgICAgOiAnc3RhcnQnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZXZlbnQuY2xpZW50WSA+PSB0aGlzLnJlY3QueSArIHRoaXMucmVjdC5oZWlnaHQgLyAyXG4gICAgICAgID8gJ2VuZCdcbiAgICAgICAgOiAnc3RhcnQnO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -4,11 +4,11 @@ import { DragSortContainerDirective } from './drag-sort-container.directive';
|
|
|
4
4
|
import { DragSortItemDirective } from './drag-sort-item.directive';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class DragSortModule {
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DragSortModule, declarations: [DragSortContainerDirective, DragSortItemDirective], imports: [CommonModule], exports: [DragSortContainerDirective, DragSortItemDirective] });
|
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortModule, imports: [CommonModule] });
|
|
7
10
|
}
|
|
8
|
-
|
|
9
|
-
DragSortModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: DragSortModule, declarations: [DragSortContainerDirective, DragSortItemDirective], imports: [CommonModule], exports: [DragSortContainerDirective, DragSortItemDirective] });
|
|
10
|
-
DragSortModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DragSortModule, imports: [CommonModule] });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DragSortModule, decorators: [{
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DragSortModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
declarations: [DragSortContainerDirective, DragSortItemDirective],
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
16
16
|
imports: [CommonModule],
|
|
17
17
|
}]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvZHJhZy1zb3J0L2RyYWctc29ydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT25FLE1BQU0sT0FBTyxjQUFjO3VHQUFkLGNBQWM7d0dBQWQsY0FBYyxpQkFKViwwQkFBMEIsRUFBRSxxQkFBcUIsYUFFdEQsWUFBWSxhQURaLDBCQUEwQixFQUFFLHFCQUFxQjt3R0FHaEQsY0FBYyxZQUZmLFlBQVk7OzJGQUVYLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUscUJBQXFCLENBQUM7b0JBQ2pFLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLHFCQUFxQixDQUFDO29CQUM1RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEcmFnU29ydENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vZHJhZy1zb3J0LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJhZ1NvcnRJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLXNvcnQtaXRlbS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtEcmFnU29ydENvbnRhaW5lckRpcmVjdGl2ZSwgRHJhZ1NvcnRJdGVtRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0RyYWdTb3J0Q29udGFpbmVyRGlyZWN0aXZlLCBEcmFnU29ydEl0ZW1EaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ1NvcnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { Align } from '../common/enum/align.enum';
|
|
3
|
+
import { VerticalAlign } from '../common/enum/vertical-align.enum';
|
|
4
|
+
import { filter, takeWhile } from 'rxjs/operators';
|
|
5
|
+
import { PopupContentComponent } from '../component/dynamic-component/popup-content/popup-content.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../common/service/dynamic-component.service";
|
|
8
|
+
export class DynamicContentBaseDirective {
|
|
9
|
+
_document;
|
|
10
|
+
_elementRef;
|
|
11
|
+
_service;
|
|
12
|
+
_injector;
|
|
13
|
+
_zone;
|
|
14
|
+
_cdr;
|
|
15
|
+
data;
|
|
16
|
+
className;
|
|
17
|
+
align = Align.left;
|
|
18
|
+
verticalAlign = VerticalAlign.auto;
|
|
19
|
+
appendToBody;
|
|
20
|
+
set open(open) {
|
|
21
|
+
this._open = open;
|
|
22
|
+
if (this._open) {
|
|
23
|
+
this.createContentRef();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.destroyContentRef();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
openChange = new EventEmitter();
|
|
30
|
+
_alive = true;
|
|
31
|
+
_componentRef;
|
|
32
|
+
_content;
|
|
33
|
+
_open = false;
|
|
34
|
+
constructor(_document, _elementRef, _service, _injector, _zone, _cdr) {
|
|
35
|
+
this._document = _document;
|
|
36
|
+
this._elementRef = _elementRef;
|
|
37
|
+
this._service = _service;
|
|
38
|
+
this._injector = _injector;
|
|
39
|
+
this._zone = _zone;
|
|
40
|
+
this._cdr = _cdr;
|
|
41
|
+
this._zone.onStable
|
|
42
|
+
.pipe(takeWhile((_) => this._alive), filter((_) => this._open))
|
|
43
|
+
.subscribe((_) => {
|
|
44
|
+
this.setPosition();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
this._alive = false;
|
|
49
|
+
this.destroyContentRef();
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
}
|
|
53
|
+
createContentRef(className) {
|
|
54
|
+
if (!this._componentRef) {
|
|
55
|
+
this._open = true;
|
|
56
|
+
const injector = this._service.getInjector(this.data, this._injector);
|
|
57
|
+
const context = this._service.getContext(this._dynamicContent, this.data);
|
|
58
|
+
this._content = this._service.createContent(this._dynamicContent, this._injector, context);
|
|
59
|
+
this._componentRef = this._service.createComponent(PopupContentComponent, this._content, injector, this.appendToBody ? this._document.body : this._elementRef.nativeElement);
|
|
60
|
+
if (className) {
|
|
61
|
+
this._componentRef.instance.addClass(className);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return this._componentRef;
|
|
65
|
+
}
|
|
66
|
+
destroyContentRef() {
|
|
67
|
+
this._open = false;
|
|
68
|
+
this._service.destroy(this._componentRef, this._content, this.appendToBody ? this._document.body : this._elementRef.nativeElement);
|
|
69
|
+
this._componentRef = null;
|
|
70
|
+
}
|
|
71
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DynamicContentBaseDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
72
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DynamicContentBaseDirective, inputs: { data: "data", className: "className", align: "align", verticalAlign: "verticalAlign", appendToBody: "appendToBody", open: "open" }, outputs: { openChange: "openChange" }, ngImport: i0 });
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DynamicContentBaseDirective, decorators: [{
|
|
75
|
+
type: Directive
|
|
76
|
+
}], ctorParameters: function () { return [{ type: undefined }, { type: i0.ElementRef }, { type: i1.DynamicComponentService }, { type: i0.Injector }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], className: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], align: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], verticalAlign: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], appendToBody: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], open: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], openChange: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}] } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb250ZW50LWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZS9keW5hbWljLWNvbnRlbnQtYmFzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7OztBQUczRyxNQUFNLE9BQWdCLDJCQUEyQjtJQTZCbkM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBakNILElBQUksQ0FBTTtJQUNWLFNBQVMsQ0FBb0I7SUFDN0IsS0FBSyxHQUFVLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDMUIsYUFBYSxHQUFrQixhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2xELFlBQVksQ0FBVTtJQUUvQixJQUFhLElBQUksQ0FBQyxJQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFUyxVQUFVLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFFaEUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNkLGFBQWEsQ0FBb0I7SUFDakMsUUFBUSxDQUFpQjtJQUN6QixLQUFLLEdBQUcsS0FBSyxD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SUFBSTtzQkFBaEIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0R5bmFtaWNDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZS9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlV2hpbGV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VGV0YUNvbnRlbnRSZWZ9IGZyb20gJy4uL2NvbW1vbi9jb250cmFjdC90ZXRhLWNvbnRlbnQtcmVmJztcbmltcG9ydCB7UG9wdXBDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQvcG9wdXAtY29udGVudC9wb3B1cC1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNDb250ZW50QmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGF0YTogYW55O1xuICBASW5wdXQoKSBjbGFzc05hbWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBASW5wdXQoKSBhbGlnbjogQWxpZ24gPSBBbGlnbi5sZWZ0O1xuICBASW5wdXQoKSB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5hdXRvO1xuICBASW5wdXQoKSBhcHBlbmRUb0JvZHk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIHRoaXMuX29wZW4gPSBvcGVuO1xuICAgIGlmICh0aGlzLl9vcGVuKSB7XG4gICAgICB0aGlzLmNyZWF0ZUNvbnRlbnRSZWYoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXN0cm95Q29udGVudFJlZigpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJvdGVjdGVkIF9hbGl2ZSA9IHRydWU7XG4gIHByb3RlY3RlZCBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgcHJvdGVjdGVkIF9jb250ZW50OiBUZXRhQ29udGVudFJlZjtcbiAgcHJvdGVjdGVkIF9vcGVuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBfZHluYW1pY0NvbnRlbnQoKTpcbiAgICB8IHN0cmluZ1xuICAgIHwgVGVtcGxhdGVSZWY8YW55PlxuICAgIHwgVHlwZTxhbnk+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2RvY3VtZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBfc2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIF96b25lOiBOZ1pvbmUsXG4gICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuX3pvbmUub25TdGFibGVcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgZmlsdGVyKChfKSA9PiB0aGlzLl9vcGVuKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gICAgdGhpcy5kZXN0cm95Q29udGVudFJlZigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29udGVudFJlZjxUPihcbiAgICBjbGFzc05hbWU/OiBzdHJpbmcgfCBzdHJpbmdbXVxuICApOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLl9vcGVuID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fc2VydmljZS5nZXRJbmplY3Rvcih0aGlzLmRhdGEsIHRoaXMuX2luamVjdG9yKTtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9zZXJ2aWNlLmdldENvbnRleHQodGhpcy5fZHluYW1pY0NvbnRlbnQsIHRoaXMuZGF0YSk7XG4gICAgICB0aGlzLl9jb250ZW50ID0gdGhpcy5fc2VydmljZS5jcmVhdGVDb250ZW50KFxuICAgICAgICB0aGlzLl9keW5hbWljQ29udGVudCxcbiAgICAgICAgdGhpcy5faW5qZWN0b3IsXG4gICAgICAgIGNvbnRleHRcbiAgICAgICk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLl9zZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgUG9wdXBDb250ZW50Q29tcG9uZW50LFxuICAgICAgICB0aGlzLl9jb250ZW50LFxuICAgICAgICBpbmplY3RvcixcbiAgICAgICAgdGhpcy5hcHBlbmRUb0JvZHkgPyB0aGlzLl9kb2N1bWVudC5ib2R5IDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICApO1xuICAgICAgaWYgKGNsYXNzTmFtZSkge1xuICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXN0cm95Q29udGVudFJlZigpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5fc2VydmljZS5kZXN0cm95KFxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLFxuICAgICAgdGhpcy5fY29udGVudCxcbiAgICAgIHRoaXMuYXBwZW5kVG9Cb2R5ID8gdGhpcy5fZG9jdW1lbnQuYm9keSA6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICk7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRQb3NpdGlvbigpOiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class HighlightDirective {
|
|
4
|
+
elementRef;
|
|
5
|
+
set tetaHighlight(text) {
|
|
6
|
+
setTimeout(() => {
|
|
7
|
+
if (this._initialElement) {
|
|
8
|
+
this.elementRef.nativeElement.innerHTML = this._initialElement;
|
|
9
|
+
}
|
|
10
|
+
if (!text) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const pattern = /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;
|
|
14
|
+
const searchWithOutRegExp = text
|
|
15
|
+
.toLowerCase()
|
|
16
|
+
.replace(pattern, '\\$&')
|
|
17
|
+
.split(' ')
|
|
18
|
+
.filter(t => t.length > 0)
|
|
19
|
+
.join('|');
|
|
20
|
+
this._initialElement = this.elementRef.nativeElement.innerHTML;
|
|
21
|
+
this.recursiveReplaceNode(this.elementRef.nativeElement.childNodes, searchWithOutRegExp);
|
|
22
|
+
}, 10);
|
|
23
|
+
}
|
|
24
|
+
_initialElement = null;
|
|
25
|
+
constructor(elementRef) {
|
|
26
|
+
this.elementRef = elementRef;
|
|
27
|
+
}
|
|
28
|
+
recursiveReplaceNode(nodes, searchWithOutRegExp) {
|
|
29
|
+
let match = false;
|
|
30
|
+
const cacheNodes = [];
|
|
31
|
+
nodes.forEach((node) => {
|
|
32
|
+
cacheNodes.push(node);
|
|
33
|
+
});
|
|
34
|
+
cacheNodes.forEach(node => {
|
|
35
|
+
if (node.nodeType === 3) {
|
|
36
|
+
if (node.nodeValue && node.nodeValue.search(new RegExp(searchWithOutRegExp, 'i')) > -1) {
|
|
37
|
+
match = true;
|
|
38
|
+
this.wrapNode(node, searchWithOutRegExp);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
match = this.recursiveReplaceNode(node.childNodes, searchWithOutRegExp) || match;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return match;
|
|
46
|
+
}
|
|
47
|
+
wrapNode(textNode, searchWithOutRegExp) {
|
|
48
|
+
if (!textNode || !textNode.nodeValue) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const tempDiv = document.createElement('div');
|
|
52
|
+
tempDiv.innerHTML = textNode.nodeValue
|
|
53
|
+
.replace(new RegExp(searchWithOutRegExp, 'gi'), match => `<mark>${match}</mark>`);
|
|
54
|
+
const parentNode = textNode.parentNode;
|
|
55
|
+
if (parentNode) {
|
|
56
|
+
while (tempDiv.firstChild) {
|
|
57
|
+
parentNode.insertBefore(tempDiv.firstChild, textNode);
|
|
58
|
+
}
|
|
59
|
+
parentNode.removeChild(textNode);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HighlightDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
63
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: HighlightDirective, selector: "[tetaHighlight]", inputs: { tetaHighlight: "tetaHighlight" }, ngImport: i0 });
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HighlightDirective, decorators: [{
|
|
66
|
+
type: Directive,
|
|
67
|
+
args: [{
|
|
68
|
+
selector: '[tetaHighlight]',
|
|
69
|
+
}]
|
|
70
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { tetaHighlight: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}] } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvaGlnaGxpZ2h0L2hpZ2hsaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBSzNELE1BQU0sT0FBTyxrQkFBa0I7SUF1QlQ7SUF0QnBCLElBQWEsYUFBYSxDQUFDLElBQVk7UUFDckMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDaEU7WUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU87YUFDUjtZQUNELE1BQU0sT0FBTyxHQUFHLHFDQUFxQyxDQUFDO1lBQ3RELE1BQU0sbUJBQW1CLEdBQUcsSUFBSTtpQkFDN0IsV0FBVyxFQUFFO2lCQUNiLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO2lCQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUMvRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDM0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVPLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUMxQyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBNEIsRUFBRSxtQkFBMkI7UUFDcEYsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE1BQU0sVUFBVSxHQUFnQixFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFO1lBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUN0RixLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUM7aUJBQzFDO2FBQ0Y7aUJBQU07Z0JBQ0wsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLElBQUksS0FBSyxDQUFDO2FBQ2xGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRLENBQUMsUUFBbUIsRUFBRSxtQkFBMkI7UUFDL0QsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDcEMsT0FBTztTQUNSO1FBQ0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTO2FBQ25DLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUVwRixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUN6QixVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDdkQ7WUFDRCxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzt1R0E3RFUsa0JBQWtCOzJGQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUdBRWMsYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhSGlnaGxpZ2h0XScsXG59KVxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHNldCB0ZXRhSGlnaGxpZ2h0KHRleHQ6IHN0cmluZykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2luaXRpYWxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuX2luaXRpYWxFbGVtZW50O1xuICAgICAgfVxuICAgICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhdHRlcm4gPSAvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF5cXCRcXHxdL2c7XG4gICAgICBjb25zdCBzZWFyY2hXaXRoT3V0UmVnRXhwID0gdGV4dFxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAucmVwbGFjZShwYXR0ZXJuLCAnXFxcXCQmJylcbiAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgLmZpbHRlcih0ID0+IHQubGVuZ3RoID4gMClcbiAgICAgICAgLmpvaW4oJ3wnKTtcbiAgICAgIHRoaXMuX2luaXRpYWxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgdGhpcy5yZWN1cnNpdmVSZXBsYWNlTm9kZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzLCBzZWFyY2hXaXRoT3V0UmVnRXhwKTtcbiAgICB9LCAxMCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsRWxlbWVudCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZVJlcGxhY2VOb2RlKG5vZGVzOiBOb2RlTGlzdE9mPENoaWxkTm9kZT4sIHNlYXJjaFdpdGhPdXRSZWdFeHA6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBtYXRjaCA9IGZhbHNlO1xuICAgIGNvbnN0IGNhY2hlTm9kZXM6IENoaWxkTm9kZVtdID0gW107XG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZTogQ2hpbGROb2RlKSA9PiB7XG4gICAgICBjYWNoZU5vZGVzLnB1c2gobm9kZSk7XG4gICAgfSk7XG4gICAgY2FjaGVOb2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDMpIHtcbiAgICAgICAgaWYgKG5vZGUubm9kZVZhbHVlICYmIG5vZGUubm9kZVZhbHVlLnNlYXJjaChuZXcgUmVnRXhwKHNlYXJjaFdpdGhPdXRSZWdFeHAsICdpJykpID4gLTEpIHtcbiAgICAgICAgICBtYXRjaCA9IHRydWU7XG4gICAgICAgICAgdGhpcy53cmFwTm9kZShub2RlLCBzZWFyY2hXaXRoT3V0UmVnRXhwKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWF0Y2ggPSB0aGlzLnJlY3Vyc2l2ZVJlcGxhY2VOb2RlKG5vZGUuY2hpbGROb2Rlcywgc2VhcmNoV2l0aE91dFJlZ0V4cCkgfHwgbWF0Y2g7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH1cblxuICBwcml2YXRlIHdyYXBOb2RlKHRleHROb2RlOiBDaGlsZE5vZGUsIHNlYXJjaFdpdGhPdXRSZWdFeHA6IHN0cmluZykge1xuICAgIGlmICghdGV4dE5vZGUgfHwgIXRleHROb2RlLm5vZGVWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGVtcERpdi5pbm5lckhUTUwgPSB0ZXh0Tm9kZS5ub2RlVmFsdWVcbiAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoc2VhcmNoV2l0aE91dFJlZ0V4cCwgJ2dpJyksIG1hdGNoID0+IGA8bWFyaz4ke21hdGNofTwvbWFyaz5gKTtcblxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0ZXh0Tm9kZS5wYXJlbnROb2RlO1xuICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICB3aGlsZSAodGVtcERpdi5maXJzdENoaWxkKSB7XG4gICAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRlbXBEaXYuZmlyc3RDaGlsZCwgdGV4dE5vZGUpO1xuICAgICAgfVxuICAgICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZXh0Tm9kZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|