ngx-tethys 18.2.5 → 18.2.7
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/CHANGELOG.md +23 -0
- package/carousel/carousel.component.d.ts +2 -2
- package/date-picker/date-picker.config.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -2
- package/date-picker/lib/date/date-table.component.d.ts +2 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -2
- package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
- package/date-picker/picker.util.d.ts +3 -3
- package/date-range/date-range.component.d.ts +1 -1
- package/esm2022/action/action.component.mjs +4 -4
- package/esm2022/action/action.module.mjs +5 -5
- package/esm2022/action/actions.component.mjs +4 -4
- package/esm2022/affix/affix.component.mjs +4 -4
- package/esm2022/affix/affix.module.mjs +5 -5
- package/esm2022/alert/alert.component.mjs +4 -4
- package/esm2022/alert/alert.directive.mjs +4 -4
- package/esm2022/alert/alert.module.mjs +5 -5
- package/esm2022/anchor/anchor-link.component.mjs +4 -4
- package/esm2022/anchor/anchor.component.mjs +4 -4
- package/esm2022/anchor/anchor.module.mjs +5 -5
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +4 -4
- package/esm2022/arrow-switcher/module.mjs +5 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +4 -4
- package/esm2022/autocomplete/module.mjs +5 -5
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +4 -4
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +4 -4
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +4 -4
- package/esm2022/avatar/avatar.module.mjs +5 -5
- package/esm2022/avatar/avatar.pipe.mjs +10 -10
- package/esm2022/avatar/avatar.service.mjs +4 -4
- package/esm2022/back-top/back-top.component.mjs +4 -4
- package/esm2022/back-top/back-top.module.mjs +5 -5
- package/esm2022/badge/badge.component.mjs +4 -4
- package/esm2022/badge/badge.module.mjs +5 -5
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/breadcrumb/module.mjs +5 -5
- package/esm2022/button/button-group.component.mjs +4 -4
- package/esm2022/button/button-icon.component.mjs +4 -4
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/button/button.module.mjs +5 -5
- package/esm2022/calendar/calendar-cells.mjs +7 -7
- package/esm2022/calendar/calendar-header.component.mjs +17 -17
- package/esm2022/calendar/calendar.component.mjs +6 -6
- package/esm2022/calendar/module.mjs +5 -5
- package/esm2022/card/card.component.mjs +4 -4
- package/esm2022/card/card.module.mjs +5 -5
- package/esm2022/card/content.component.mjs +4 -4
- package/esm2022/card/header.component.mjs +4 -4
- package/esm2022/carousel/carousel-item.directive.mjs +4 -4
- package/esm2022/carousel/carousel.component.mjs +13 -13
- package/esm2022/carousel/carousel.service.mjs +4 -4
- package/esm2022/carousel/module.mjs +5 -5
- package/esm2022/cascader/cascader-li.component.mjs +4 -4
- package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
- package/esm2022/cascader/cascader.component.mjs +4 -4
- package/esm2022/cascader/cascader.service.mjs +4 -4
- package/esm2022/cascader/module.mjs +5 -5
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/checkbox/module.mjs +5 -5
- package/esm2022/collapse/collapse-item.component.mjs +4 -4
- package/esm2022/collapse/collapse.component.mjs +4 -4
- package/esm2022/collapse/module.mjs +5 -5
- package/esm2022/color-picker/color-picker-custom-panel.component.mjs +4 -4
- package/esm2022/color-picker/color-picker-panel.component.mjs +4 -4
- package/esm2022/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/color-picker/coordinates.directive.mjs +4 -4
- package/esm2022/color-picker/module.mjs +5 -5
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +4 -4
- package/esm2022/color-picker/parts/hue/hue.component.mjs +4 -4
- package/esm2022/color-picker/parts/indicator/indicator.component.mjs +4 -4
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +4 -4
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +4 -4
- package/esm2022/comment/comment-actions.directive.mjs +4 -4
- package/esm2022/comment/comment-content.directive.mjs +4 -4
- package/esm2022/comment/comment.component.mjs +4 -4
- package/esm2022/comment/comment.module.mjs +5 -5
- package/esm2022/copy/copy.directive.mjs +4 -4
- package/esm2022/copy/module.mjs +5 -5
- package/esm2022/core/click-positioner.mjs +4 -4
- package/esm2022/core/overlay/portal-directives.mjs +4 -4
- package/esm2022/core/request-animation.mjs +3 -2
- package/esm2022/core/scroll.mjs +4 -4
- package/esm2022/core/store/store.mjs +4 -4
- package/esm2022/core/theme/store.mjs +4 -4
- package/esm2022/core/translate.mjs +4 -4
- package/esm2022/core/update-host-class.service.mjs +4 -4
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -4
- package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
- package/esm2022/date-picker/base-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-helper.service.mjs +4 -4
- package/esm2022/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-picker.config.mjs +12 -13
- package/esm2022/date-picker/date-picker.directive.mjs +4 -4
- package/esm2022/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/date-picker/date-picker.service.mjs +4 -4
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +9 -9
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -9
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/lib-packer.module.mjs +5 -5
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +21 -18
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +6 -6
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
- package/esm2022/date-picker/month-picker.component.mjs +4 -4
- package/esm2022/date-picker/picker.component.mjs +8 -8
- package/esm2022/date-picker/picker.pipes.mjs +13 -13
- package/esm2022/date-picker/picker.util.mjs +8 -6
- package/esm2022/date-picker/picker.validators.mjs +7 -7
- package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.directive.mjs +4 -4
- package/esm2022/date-picker/week-picker.component.mjs +4 -4
- package/esm2022/date-picker/year-picker.component.mjs +4 -4
- package/esm2022/date-range/date-range.component.mjs +15 -16
- package/esm2022/date-range/module.mjs +5 -5
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -4
- package/esm2022/dialog/body/dialog-body.component.mjs +4 -4
- package/esm2022/dialog/confirm/confirm.component.mjs +4 -4
- package/esm2022/dialog/dialog-container.component.mjs +4 -4
- package/esm2022/dialog/dialog.module.mjs +5 -5
- package/esm2022/dialog/dialog.service.mjs +4 -4
- package/esm2022/dialog/footer/dialog-footer.component.mjs +4 -4
- package/esm2022/dialog/header/dialog-header.component.mjs +4 -4
- package/esm2022/divider/divider.component.mjs +4 -4
- package/esm2022/divider/divider.module.mjs +5 -5
- package/esm2022/dot/dot.component.mjs +4 -4
- package/esm2022/dot/dot.module.mjs +5 -5
- package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
- package/esm2022/drag-drop/drag-drop.service.mjs +4 -4
- package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
- package/esm2022/drag-drop/drag.directive.mjs +4 -4
- package/esm2022/drag-drop/drop-container.directive.mjs +4 -4
- package/esm2022/drag-drop/module.mjs +5 -5
- package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +22 -22
- package/esm2022/dropdown/dropdown-menu.component.mjs +13 -13
- package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.directive.mjs +4 -4
- package/esm2022/dropdown/module.mjs +5 -5
- package/esm2022/empty/empty.component.mjs +4 -4
- package/esm2022/empty/empty.config.mjs +4 -4
- package/esm2022/empty/empty.module.mjs +5 -5
- package/esm2022/flexible-text/flexible-text.component.mjs +4 -4
- package/esm2022/flexible-text/flexible-text.module.mjs +5 -5
- package/esm2022/form/form-group-error/form-group-error.component.mjs +4 -4
- package/esm2022/form/form-group-label.directive.mjs +4 -4
- package/esm2022/form/form-group.component.mjs +4 -4
- package/esm2022/form/form-submit.directive.mjs +4 -4
- package/esm2022/form/form-validator-loader.mjs +4 -4
- package/esm2022/form/form-validator.service.mjs +4 -4
- package/esm2022/form/form.directive.mjs +4 -4
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
- package/esm2022/form/module.mjs +5 -5
- package/esm2022/form/validator/confirm-validator.directive.mjs +4 -4
- package/esm2022/form/validator/max-validator.directive.mjs +4 -4
- package/esm2022/form/validator/min-validator.directive.mjs +4 -4
- package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen-launch.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.module.mjs +5 -5
- package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
- package/esm2022/grid/flex.mjs +13 -13
- package/esm2022/grid/module.mjs +5 -5
- package/esm2022/grid/thy-col.directive.mjs +4 -4
- package/esm2022/grid/thy-grid-item.component.mjs +4 -4
- package/esm2022/grid/thy-grid.component.mjs +7 -7
- package/esm2022/grid/thy-row.directive.mjs +4 -4
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
- package/esm2022/guider/guider-manager.mjs +4 -4
- package/esm2022/guider/guider.directive.mjs +4 -4
- package/esm2022/guider/guider.module.mjs +5 -5
- package/esm2022/guider/guider.service.mjs +4 -4
- package/esm2022/i18n/i18n.mjs +1 -1
- package/esm2022/i18n/i18n.service.mjs +4 -4
- package/esm2022/i18n/locales/de-de.mjs +5 -1
- package/esm2022/i18n/locales/en-us.mjs +5 -1
- package/esm2022/i18n/locales/ja-jp.mjs +5 -1
- package/esm2022/i18n/locales/zh-hans.mjs +5 -1
- package/esm2022/i18n/locales/zh-hant.mjs +5 -1
- package/esm2022/icon/icon-registry.mjs +5 -5
- package/esm2022/icon/icon.component.mjs +4 -4
- package/esm2022/icon/icon.module.mjs +6 -7
- package/esm2022/image/image-group.component.mjs +4 -4
- package/esm2022/image/image.directive.mjs +4 -4
- package/esm2022/image/image.service.mjs +4 -4
- package/esm2022/image/module.mjs +5 -5
- package/esm2022/image/preview/image-preview.component.mjs +4 -4
- package/esm2022/input/input-count.component.mjs +4 -4
- package/esm2022/input/input-group.component.mjs +4 -4
- package/esm2022/input/input-search.component.mjs +4 -4
- package/esm2022/input/input.component.mjs +4 -4
- package/esm2022/input/input.directive.mjs +4 -4
- package/esm2022/input/module.mjs +5 -5
- package/esm2022/input-number/input-number.component.mjs +4 -4
- package/esm2022/input-number/module.mjs +5 -5
- package/esm2022/layout/content-main.component.mjs +7 -7
- package/esm2022/layout/content-section.component.mjs +7 -7
- package/esm2022/layout/content.component.mjs +7 -7
- package/esm2022/layout/header.component.mjs +7 -7
- package/esm2022/layout/layout.component.mjs +7 -7
- package/esm2022/layout/layout.module.mjs +5 -5
- package/esm2022/layout/sidebar-content.component.mjs +7 -7
- package/esm2022/layout/sidebar-footer.component.mjs +7 -7
- package/esm2022/layout/sidebar-header.component.mjs +7 -7
- package/esm2022/layout/sidebar.component.mjs +10 -8
- package/esm2022/list/list-item-meta.component.mjs +4 -4
- package/esm2022/list/list-item.component.mjs +4 -4
- package/esm2022/list/list.component.mjs +4 -4
- package/esm2022/list/list.module.mjs +5 -5
- package/esm2022/list/selection/selection-list.mjs +4 -4
- package/esm2022/loading/loading.component.mjs +4 -4
- package/esm2022/loading/loading.module.mjs +5 -5
- package/esm2022/mention/mention.directive.mjs +4 -4
- package/esm2022/mention/mention.module.mjs +5 -5
- package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
- package/esm2022/menu/divider/menu-divider.component.mjs +4 -4
- package/esm2022/menu/group/menu-group.component.mjs +4 -4
- package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
- package/esm2022/menu/item/icon/menu-item-icon.component.mjs +4 -4
- package/esm2022/menu/item/menu-item.component.mjs +4 -4
- package/esm2022/menu/item/name/menu-item-name.component.mjs +4 -4
- package/esm2022/menu/menu.component.mjs +4 -4
- package/esm2022/menu/menu.module.mjs +5 -5
- package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
- package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
- package/esm2022/message/message-container.component.mjs +4 -4
- package/esm2022/message/message-queue.service.mjs +4 -4
- package/esm2022/message/message.component.mjs +4 -4
- package/esm2022/message/message.service.mjs +4 -4
- package/esm2022/message/module.mjs +5 -5
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -4
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +4 -4
- package/esm2022/nav/nav-ink-bar.directive.mjs +4 -4
- package/esm2022/nav/nav-item.directive.mjs +4 -4
- package/esm2022/nav/nav.component.mjs +4 -4
- package/esm2022/nav/nav.module.mjs +5 -5
- package/esm2022/nav/nav.pipe.mjs +4 -4
- package/esm2022/notify/module.mjs +5 -5
- package/esm2022/notify/notify-container.component.mjs +4 -4
- package/esm2022/notify/notify-queue.service.mjs +4 -4
- package/esm2022/notify/notify.component.mjs +4 -4
- package/esm2022/notify/notify.service.mjs +4 -4
- package/esm2022/pagination/pagination.component.mjs +4 -4
- package/esm2022/pagination/pagination.module.mjs +5 -5
- package/esm2022/pagination/pagination.pipe.mjs +7 -7
- package/esm2022/popover/body/popover-body.component.mjs +4 -4
- package/esm2022/popover/header/popover-header.component.mjs +4 -4
- package/esm2022/popover/module.mjs +5 -5
- package/esm2022/popover/popover-container.component.mjs +4 -4
- package/esm2022/popover/popover.directive.mjs +4 -4
- package/esm2022/popover/popover.service.mjs +4 -4
- package/esm2022/progress/progress-circle.component.mjs +4 -4
- package/esm2022/progress/progress-strip.component.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +4 -4
- package/esm2022/progress/progress.module.mjs +5 -5
- package/esm2022/property/module.mjs +5 -5
- package/esm2022/property/properties.component.mjs +4 -4
- package/esm2022/property/property-item.component.mjs +4 -4
- package/esm2022/property-operation/group/property-operation-group.component.mjs +4 -4
- package/esm2022/property-operation/module.mjs +5 -5
- package/esm2022/property-operation/property-operation.component.mjs +4 -4
- package/esm2022/radio/button/radio-button.component.mjs +4 -4
- package/esm2022/radio/group/radio-group.component.mjs +4 -4
- package/esm2022/radio/module.mjs +5 -5
- package/esm2022/radio/radio.component.mjs +4 -4
- package/esm2022/rate/module.mjs +5 -5
- package/esm2022/rate/rate-item.component.mjs +4 -4
- package/esm2022/rate/rate.component.mjs +4 -4
- package/esm2022/resizable/module.mjs +5 -5
- package/esm2022/resizable/resizable.directive.mjs +4 -4
- package/esm2022/resizable/resizable.service.mjs +4 -4
- package/esm2022/resizable/resize-handle.component.mjs +4 -4
- package/esm2022/resizable/resize-handles.component.mjs +4 -4
- package/esm2022/result/result.component.mjs +4 -4
- package/esm2022/result/result.module.mjs +5 -5
- package/esm2022/segment/segment-item.component.mjs +4 -4
- package/esm2022/segment/segment.component.mjs +4 -4
- package/esm2022/segment/segment.module.mjs +5 -5
- package/esm2022/select/custom-select/custom-select.component.mjs +4 -4
- package/esm2022/select/module.mjs +5 -5
- package/esm2022/select/native-select/native-select.component.mjs +4 -4
- package/esm2022/shared/base-form-check.component.mjs +4 -4
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-show.mjs +4 -4
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +4 -4
- package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
- package/esm2022/shared/ng-transclude.directive.mjs +4 -4
- package/esm2022/shared/option/group/option-group.component.mjs +4 -4
- package/esm2022/shared/option/list-option/list-option.component.mjs +4 -4
- package/esm2022/shared/option/module.mjs +5 -5
- package/esm2022/shared/option/option-group.component.mjs +4 -4
- package/esm2022/shared/option/option.component.mjs +4 -4
- package/esm2022/shared/option/options-container.component.mjs +4 -4
- package/esm2022/shared/select/module.mjs +5 -5
- package/esm2022/shared/select/select-control/select-control.component.mjs +4 -4
- package/esm2022/shared/shared.module.mjs +5 -5
- package/esm2022/skeleton/module.mjs +5 -5
- package/esm2022/skeleton/skeleton-circle.component.mjs +4 -4
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +4 -4
- package/esm2022/skeleton/skeleton.component.mjs +4 -4
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +4 -4
- package/esm2022/skeleton/stylized/list.component.mjs +4 -4
- package/esm2022/skeleton/stylized/paragraph.component.mjs +4 -4
- package/esm2022/slide/drawer/drawer-container.directive.mjs +4 -4
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +4 -4
- package/esm2022/slide/slide-body/slide-body.component.mjs +4 -4
- package/esm2022/slide/slide-container.component.mjs +4 -4
- package/esm2022/slide/slide-footer/slide-footer.component.mjs +4 -4
- package/esm2022/slide/slide-header/slide-header.component.mjs +4 -4
- package/esm2022/slide/slide-layout/slide-layout.component.mjs +4 -4
- package/esm2022/slide/slide-ref.service.mjs +4 -4
- package/esm2022/slide/slide.module.mjs +5 -5
- package/esm2022/slide/slide.service.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/slider/slider.module.mjs +5 -5
- package/esm2022/space/space.component.mjs +7 -7
- package/esm2022/space/space.module.mjs +5 -5
- package/esm2022/statistic/statistic.component.mjs +4 -4
- package/esm2022/statistic/statistic.module.mjs +5 -5
- package/esm2022/stepper/step-header.component.mjs +4 -4
- package/esm2022/stepper/step.component.mjs +4 -4
- package/esm2022/stepper/stepper-button.directive.mjs +7 -7
- package/esm2022/stepper/stepper.component.mjs +4 -4
- package/esm2022/stepper/stepper.module.mjs +5 -5
- package/esm2022/strength/strength.component.mjs +4 -4
- package/esm2022/strength/strength.module.mjs +5 -5
- package/esm2022/switch/switch.component.mjs +4 -4
- package/esm2022/switch/switch.module.mjs +5 -5
- package/esm2022/table/pipes/drag.pipe.mjs +4 -4
- package/esm2022/table/pipes/table.pipe.mjs +4 -4
- package/esm2022/table/table-column.component.mjs +4 -4
- package/esm2022/table/table-skeleton.component.mjs +4 -4
- package/esm2022/table/table.component.mjs +4 -4
- package/esm2022/table/table.module.mjs +5 -5
- package/esm2022/tabs/tab-content.component.mjs +4 -4
- package/esm2022/tabs/tab.component.mjs +4 -4
- package/esm2022/tabs/tabs.component.mjs +4 -4
- package/esm2022/tabs/tabs.module.mjs +5 -5
- package/esm2022/tag/tag.component.mjs +4 -4
- package/esm2022/tag/tag.module.mjs +5 -5
- package/esm2022/tag/tags.component.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +5 -5
- package/esm2022/time-picker/inner/inner-time-picker.config.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.store.mjs +12 -9
- package/esm2022/time-picker/time-picker-panel.component.mjs +11 -12
- package/esm2022/time-picker/time-picker.component.mjs +17 -19
- package/esm2022/time-picker/time-picker.module.mjs +5 -5
- package/esm2022/time-picker/time-picker.utils.mjs +14 -8
- package/esm2022/timeline/timeline-item.component.mjs +4 -4
- package/esm2022/timeline/timeline.component.mjs +4 -4
- package/esm2022/timeline/timeline.module.mjs +5 -5
- package/esm2022/timeline/timeline.service.mjs +4 -4
- package/esm2022/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/tooltip/tooltip.service.mjs +4 -4
- package/esm2022/transfer/transfer-list.component.mjs +4 -4
- package/esm2022/transfer/transfer.component.mjs +4 -4
- package/esm2022/transfer/transfer.module.mjs +5 -5
- package/esm2022/tree/tree-node.component.mjs +4 -4
- package/esm2022/tree/tree.component.mjs +4 -4
- package/esm2022/tree/tree.module.mjs +5 -5
- package/esm2022/tree/tree.pipe.mjs +4 -4
- package/esm2022/tree/tree.service.mjs +4 -4
- package/esm2022/tree-select/module.mjs +5 -5
- package/esm2022/tree-select/tree-select.component.mjs +7 -7
- package/esm2022/typography/bg-color.directive.mjs +4 -4
- package/esm2022/typography/module.mjs +5 -5
- package/esm2022/typography/text/text.component.mjs +4 -4
- package/esm2022/typography/text-color.directive.mjs +4 -4
- package/esm2022/upload/file-drop.directive.mjs +4 -4
- package/esm2022/upload/file-select-base.mjs +4 -4
- package/esm2022/upload/file-select.component.mjs +4 -4
- package/esm2022/upload/module.mjs +6 -7
- package/esm2022/upload/upload.service.mjs +11 -11
- package/esm2022/util/date/functions.mjs +26 -1
- package/esm2022/util/date/tiny-date.mjs +78 -34
- package/esm2022/util/index.mjs +9 -9
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +4 -4
- package/esm2022/vote/vote.module.mjs +5 -5
- package/esm2022/watermark/watermark.directive.mjs +4 -4
- package/esm2022/watermark/watermark.module.mjs +5 -5
- package/fesm2022/ngx-tethys-action.mjs +10 -10
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +22 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +13 -13
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +26 -26
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +84 -84
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +16 -16
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +31 -31
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +7 -7
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +23 -23
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +242 -235
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +17 -18
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +22 -22
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +40 -40
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +13 -13
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +31 -31
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +16 -16
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +23 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +13 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +16 -16
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +19 -19
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +61 -59
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +16 -16
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +10 -10
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +25 -25
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +22 -22
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +22 -22
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +16 -16
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +13 -13
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +19 -19
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +10 -10
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +13 -13
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +16 -16
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +66 -66
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +31 -31
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +19 -19
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +19 -19
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +10 -10
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +46 -40
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +16 -16
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +13 -13
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +23 -24
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +107 -38
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/i18n/i18n.d.ts +6 -1
- package/i18n/locales/de-de.d.ts +4 -0
- package/i18n/locales/en-us.d.ts +4 -0
- package/i18n/locales/ja-jp.d.ts +4 -0
- package/i18n/locales/zh-hans.d.ts +4 -0
- package/i18n/locales/zh-hant.d.ts +4 -0
- package/layout/sidebar.component.d.ts +8 -42
- package/package.json +3 -2
- package/schematics/ng-add/index.js +2 -3
- package/schematics/ng-add/index.spec.js +21 -22
- package/schematics/ng-update/update-18/index.spec.js +7 -8
- package/schematics/testing/test-app.js +2 -5
- package/schematics/testing/test-project.js +7 -10
- package/schematics/testing/test-workspace.d.ts +1 -0
- package/schematics/testing/test-workspace.js +14 -15
- package/schematics/tsconfig.json +1 -1
- package/schematics/utils/get-workspace-tsconfig.js +8 -9
- package/schematics/utils/package-config.js +1 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/time-picker/inner/inner-time-picker.store.d.ts +1 -1
- package/util/date/functions.d.ts +25 -0
- package/util/date/tiny-date.d.ts +20 -4
- package/util/index.d.ts +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tree.mjs","sources":["../../../src/tree/tree-abstract.ts","../../../src/tree/tree.class.ts","../../../src/tree/tree-node.class.ts","../../../src/tree/tree.service.ts","../../../src/tree/tree-node.component.ts","../../../src/tree/tree-node.component.html","../../../src/tree/tree.pipe.ts","../../../src/tree/tree.component.ts","../../../src/tree/tree.component.html","../../../src/tree/tree.module.ts","../../../src/tree/ngx-tethys-tree.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeBeforeDragDropContext, ThyTreeBeforeDragStartContext, ThyTreeDragDropEvent, ThyTreeIcons } from './tree.class';\n\nexport interface ThyTreeAbstractComponent {\n thyMultiple: boolean;\n thyDraggable: boolean;\n thyShowExpand: boolean;\n treeNodes: ThyTreeNode[];\n thyIcons: ThyTreeIcons;\n thyBeforeDragStart(e: ThyTreeBeforeDragStartContext): boolean;\n thyBeforeDragDrop(e: ThyTreeBeforeDragDropContext): boolean;\n onDragDrop(event: ThyTreeDragDropEvent): void;\n selectTreeNode(node: ThyTreeNode): void;\n toggleTreeNode(node: ThyTreeNode): void;\n isShowExpand(node: ThyTreeNode): boolean;\n trackByFn(number: string, node: ThyTreeNode): string | number;\n isSelected(node: ThyTreeNode): boolean;\n}\n\nexport const THY_TREE_ABSTRACT_TOKEN = new InjectionToken<ThyTreeAbstractComponent>('thy-tree-abstract-token');\n","import { ThyTreeNode } from './tree-node.class';\n\nexport enum ThyTreeNodeCheckState {\n unchecked = 0,\n checked = 1,\n indeterminate = 2\n}\n\nexport enum ThyTreeDropPosition {\n in = 'in',\n before = 'before',\n after = 'after'\n}\n\nexport interface ThyTreeNodeData<T = any> {\n key?: number | string;\n\n title?: string;\n\n icon?: string;\n\n iconStyle?: {\n [key: string]: any;\n };\n\n children?: ThyTreeNodeData<T>[];\n\n origin?: any;\n\n expanded?: boolean;\n\n disabled?: boolean;\n\n checked?: boolean;\n\n data?: T;\n\n itemClass?: string | string[];\n\n [key: string]: any;\n}\n\nexport interface ThyTreeEmitEvent<T = any> {\n eventName: string;\n\n node?: ThyTreeNode<T>;\n\n event?: Event | any;\n\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n}\n\nexport interface ThyTreeBeforeDragStartContext {\n item: ThyTreeNode;\n}\n\nexport interface ThyTreeBeforeDragDropContext {\n item?: ThyTreeNode;\n containerItems?: ThyTreeNode[];\n previousItem?: ThyTreeNode;\n previousContainerItems?: ThyTreeNode[];\n position?: ThyTreeDropPosition;\n}\n\nexport interface ThyTreeDragDropEvent<T = any> {\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n\n afterNode?: ThyTreeNode<T>;\n}\n\nexport class ThyTreeIcons {\n expand?: string;\n collapse?: string;\n}\n\nexport type ThyClickBehavior = 'default' | 'selectCheckbox';\n","import { helpers, isArray } from 'ngx-tethys/util';\n\nimport { ThyTreeNodeCheckState, ThyTreeNodeData } from './tree.class';\nimport { ThyTreeService } from './tree.service';\n\nexport class ThyTreeNode<T = any> {\n key?: number | string;\n\n title?: string;\n\n children: ThyTreeNode[];\n\n parentNode: ThyTreeNode;\n\n level = 0;\n\n origin: ThyTreeNodeData<T>;\n\n isExpanded: boolean;\n\n isChecked: ThyTreeNodeCheckState;\n\n isLoading: boolean;\n\n isDisabled: boolean;\n\n itemClass?: string[];\n\n private readonly service: ThyTreeService;\n\n get treeService(): ThyTreeService {\n if (this.service) {\n return this.service;\n } else if (this.parentNode) {\n return this.parentNode.treeService;\n }\n }\n\n constructor(node: ThyTreeNodeData, parent: ThyTreeNode = null, service?: ThyTreeService) {\n this.title = node.title;\n this.key = node.key;\n this.children = [];\n this.parentNode = parent;\n this.level = parent ? parent.level + 1 : this.level;\n this.origin = node;\n this.isDisabled = node.disabled || false;\n this.isExpanded = node.expanded || false;\n this.isChecked = node.checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n this.isLoading = false;\n if (node.itemClass) {\n this.itemClass = isArray(node.itemClass) ? node.itemClass : [node.itemClass];\n }\n if (node.children) {\n node.children.forEach(childNode => {\n this.children.push(new ThyTreeNode(childNode, this, service));\n });\n }\n this.service = service;\n if (node.children && node.children.length && service) {\n this.isChecked = service.checkStateResolve(this);\n }\n }\n\n public setKey(key: string) {\n this.origin.key = key;\n this.key = key;\n }\n\n public setTitle(title: string) {\n this.origin.title = title;\n this.title = title;\n }\n\n public setLevel(level: number) {\n this.level = level;\n }\n\n private _setExpanded(expanded: boolean, propagate = false) {\n this.origin.expanded = expanded;\n this.isExpanded = expanded;\n if (propagate && this.children) {\n this.children.forEach(n => n._setExpanded(expanded, propagate));\n }\n }\n\n public setExpanded(expanded: boolean, propagate = false) {\n this._setExpanded(expanded, propagate);\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setLoading(loading: boolean): void {\n this.isLoading = loading;\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setChecked(checked: boolean, propagateUp = true, propagateDown = true) {\n this.treeService.setNodeChecked(this, checked, propagateUp, propagateDown);\n }\n\n public syncNodeCheckState() {\n this.treeService.syncNodeCheckState(this);\n }\n\n public getParentNode(): ThyTreeNode {\n return this.parentNode;\n }\n\n public getChildren(): ThyTreeNode[] {\n return this.children;\n }\n\n public addChildren(children: ThyTreeNodeData | ThyTreeNodeData[], index: number = -1): void {\n children = helpers.coerceArray(children);\n ((children as ThyTreeNodeData[]) || []).forEach((childNode: ThyTreeNodeData, i: number) => {\n if (index === -1) {\n this.children.push(new ThyTreeNode(childNode, this));\n } else {\n this.children.splice(index + i, 0, new ThyTreeNode(childNode, this, this.treeService));\n }\n });\n\n this.origin.children = this.getChildren().map(n => n.origin);\n this.setLoading(false);\n this.treeService.statusChange$.next({\n eventName: 'addChildren',\n node: this\n });\n }\n}\n","import { coerceArray, isFunction } from 'ngx-tethys/util';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeNodeCheckState, ThyTreeNodeData } from './tree.class';\n\nfunction checkStateResolve(node: ThyTreeNode) {\n const checkedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n const unCheckedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.unchecked);\n if (checkedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.checked;\n } else if (unCheckedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.unchecked;\n } else {\n return ThyTreeNodeCheckState.indeterminate;\n }\n}\n\ntype FlattenAllNodesCb = (treeNode: ThyTreeNode) => boolean;\n\nexport interface ThyTreeFormatEmitEvent {\n eventName: string;\n node: ThyTreeNode;\n event?: MouseEvent | DragEvent;\n}\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTreeService implements OnDestroy {\n selectedNode!: ThyTreeNode;\n\n flattenNodes$ = new BehaviorSubject<ThyTreeNode[]>([]);\n\n flattenTreeNodes: ThyTreeNode[] = [];\n\n private originTreeNodes: ThyTreeNodeData[] = [];\n\n public treeNodes: ThyTreeNode[] = [];\n\n public checkStateResolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve;\n\n statusChange$ = new Subject<ThyTreeFormatEmitEvent>();\n\n constructor() {\n this.statusChange$.pipe().subscribe(event => {\n this.syncFlattenTreeNodes();\n this.syncNodeCheckState(event.node);\n });\n }\n\n public initializeTreeNodes(rootNodes: ThyTreeNodeData[]) {\n this.originTreeNodes = rootNodes || [];\n this.treeNodes = (rootNodes || []).map(node => new ThyTreeNode(node, null, this));\n }\n\n public syncFlattenTreeNodes() {\n this.flattenTreeNodes = this.getParallelTreeNodes(this.treeNodes, false);\n this.flattenNodes$.next(this.flattenTreeNodes);\n return this.flattenTreeNodes;\n }\n\n private getParallelTreeNodes(rootTrees: ThyTreeNode[] = this.treeNodes, flattenAllNodes: boolean | FlattenAllNodesCb = true) {\n const flattenTreeData: ThyTreeNode[] = [];\n function _getParallelTreeNodes(list: ThyTreeNode[]) {\n return list.forEach((treeNode, index) => {\n flattenTreeData.push(treeNode);\n const flattenAllNodesFlag = isFunction(flattenAllNodes) ? flattenAllNodes(treeNode) : flattenAllNodes;\n if (flattenAllNodesFlag || treeNode.isExpanded) {\n _getParallelTreeNodes(treeNode.children);\n }\n });\n }\n _getParallelTreeNodes(rootTrees);\n return flattenTreeData;\n }\n\n setCheckStateResolve(resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve) {\n this.checkStateResolve = resolve;\n }\n\n public resetSortedTreeNodes(treeNodes: ThyTreeNode[], parent?: ThyTreeNode) {\n treeNodes.forEach(node => {\n node.level = node.parentNode ? node.parentNode.level + 1 : 0;\n node.origin.children = node.children.map(n => n.origin);\n node.parentNode = parent;\n this.resetSortedTreeNodes(node.children, node);\n });\n }\n\n public getTreeNode(key: string | number) {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.find(n => n.key === key);\n }\n\n public getExpandedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isExpanded);\n }\n\n public getCheckedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n }\n\n public deleteTreeNode(node: ThyTreeNode) {\n if (node.parentNode) {\n const children = node.parentNode.children;\n const index = children.findIndex(n => n.key === node.key);\n if (index > -1) {\n children.splice(index, 1);\n node.parentNode.origin.children = children.map(item => item.origin);\n this.syncNodeCheckState(node.parentNode);\n }\n } else {\n const index = this.treeNodes.findIndex(n => n.key === node.key);\n if (index > -1) {\n this.treeNodes.splice(index, 1);\n this.originTreeNodes.splice(index, 1);\n }\n }\n }\n\n public addTreeNode(node: ThyTreeNode, parent?: ThyTreeNode, index = -1) {\n if (parent) {\n const insertNode = new ThyTreeNode(node.origin, parent, this);\n if (index > -1) {\n parent.children.splice(index, 0, insertNode);\n } else {\n parent.children.push(insertNode);\n }\n parent.origin.children = parent.children.map(item => item.origin);\n this.syncNodeCheckState(parent);\n } else {\n const insertNode = new ThyTreeNode(node.origin, null, this);\n if (index > -1) {\n this.treeNodes.splice(index, 0, insertNode);\n } else {\n this.treeNodes.push(insertNode);\n }\n this.originTreeNodes = this.treeNodes.map(item => item.origin);\n // this.syncNodeCheckState(insertNode);\n }\n }\n\n public expandTreeNodes(keyOrKeys: string | number | (string | number)[] | true) {\n const keys = keyOrKeys === true ? [] : coerceArray(keyOrKeys);\n const needExpandNodes = this.getParallelTreeNodes(this.treeNodes).filter(node => {\n return keys.indexOf(node.key) > -1 || keyOrKeys === true;\n });\n needExpandNodes.forEach(node => {\n node.setExpanded(true);\n });\n this.syncFlattenTreeNodes();\n }\n\n // 设置节点选中状态\n public setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true) {\n this._setNodeChecked(node, checked, propagateUp, propagateDown);\n this.syncFlattenTreeNodes();\n }\n\n private _setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true) {\n if (propagateDown && node.children) {\n node.children.forEach(subNode => {\n this._setNodeChecked(subNode, checked, false, true);\n });\n }\n if (!node.isDisabled) {\n if (node.children.length) {\n if (checked) {\n const isAllChildrenChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.checked);\n node.isChecked = isAllChildrenChecked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenChecked && checked;\n } else {\n const isAllChildrenUnChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.unchecked);\n node.isChecked = isAllChildrenUnChecked ? ThyTreeNodeCheckState.unchecked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenUnChecked && checked;\n }\n } else {\n node.isChecked = checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n node.origin.checked = checked;\n }\n }\n if (propagateUp) {\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n public syncNodeCheckState(node: ThyTreeNode) {\n this._syncNodeCheckState(node);\n this.syncFlattenTreeNodes();\n }\n\n private _syncNodeCheckState(node: ThyTreeNode) {\n if (node) {\n node.isChecked = this.checkStateResolve(node);\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n ngOnDestroy(): void {\n this.statusChange$.complete();\n this.statusChange$ = null;\n }\n}\n","import { Subject } from 'rxjs';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n numberAttribute,\n inject\n} from '@angular/core';\n\nimport { THY_TREE_ABSTRACT_TOKEN, ThyTreeAbstractComponent } from './tree-abstract';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeEmitEvent, ThyTreeNodeCheckState, ThyClickBehavior } from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 树形控件的节点组件\n * @private\n * @name thy-tree-node\n */\n@Component({\n selector: 'thy-tree-node',\n templateUrl: './tree-node.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [ThyIcon, NgClass, NgStyle, NgTemplateOutlet, ThyLoading]\n})\nexport class ThyTreeNodeComponent implements OnDestroy, OnInit, OnChanges {\n root = inject(THY_TREE_ABSTRACT_TOKEN);\n thyTreeService = inject(ThyTreeService);\n\n /**\n * node 节点展现所需的数据\n */\n @Input() node: ThyTreeNode;\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n @Input({ transform: coerceBooleanProperty }) thyAsync = false;\n\n /**\n * 设置 TreeNode 是否支持多选节点\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple = false;\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n */\n @Input({ transform: coerceBooleanProperty }) thyDraggable = false;\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n */\n @Input({ transform: coerceBooleanProperty }) thyCheckable = false;\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n * @default default\n */\n @Input() thyClickBehavior: ThyClickBehavior;\n\n /**\n * 设置节点名称是否支持超出截取\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyTitleTruncate: boolean;\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n @Input() templateRef: TemplateRef<any>;\n\n /**\n * 设置子的空数据渲染模板\n */\n @Input() emptyChildrenTemplateRef: TemplateRef<any>;\n\n /**\n * 设置 node 点击事件\n */\n @Output() thyOnClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 双击 node 事件\n */\n @Output() thyDblClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 点击展开触发事件\n */\n @Output() thyOnExpandChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n @Output() thyOnCheckboxChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 childrenTree 的渲染模板\n */\n @ContentChild('childrenTree') childrenTreeTemplateRef: TemplateRef<any>;\n\n /** The native `<div class=\"thy-tree-node-wrapper thy-sortable-item\"></div>` element. */\n @ViewChild('treeNodeWrapper', { static: true }) treeNodeWrapper: ElementRef<HTMLElement>;\n\n @HostBinding('class.thy-tree-node') thyTreeNodeClass = true;\n\n @HostBinding('class') itemClass: string;\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n */\n @Input({ transform: numberAttribute }) thyItemSize = 44;\n\n /**\n * 设置节点缩进距离,缩进距离 = thyIndent * node.level\n */\n @Input({ transform: numberAttribute }) thyIndent = 25;\n\n public get nodeIcon() {\n return this.node.origin.icon;\n }\n\n public get nodeIconStyle() {\n return this.node.origin.iconStyle;\n }\n\n private destroy$ = new Subject<void>();\n\n checkState = ThyTreeNodeCheckState;\n\n public clickNode(event: Event) {\n if (this.node.isDisabled) {\n this.expandNode(event);\n } else {\n if (this.thyCheckable && this.thyClickBehavior === 'selectCheckbox') {\n this.clickNodeCheck(event);\n } else {\n if (this.root.thyMultiple) {\n this.root.toggleTreeNode(this.node);\n } else {\n this.root.selectTreeNode(this.node);\n }\n }\n }\n this.thyOnClick.emit({\n eventName: 'click',\n event: event,\n node: this.node\n });\n }\n\n public dbClickNode(event: Event) {\n this.thyDblClick.emit({\n eventName: 'dbclick',\n event: event,\n node: this.node\n });\n }\n\n public clickNodeCheck(event: Event) {\n event.stopPropagation();\n if (this.node.isChecked === ThyTreeNodeCheckState.unchecked) {\n this.node.setChecked(true);\n } else if (this.node.isChecked === ThyTreeNodeCheckState.checked) {\n this.node.setChecked(false);\n } else if (this.node.isChecked === ThyTreeNodeCheckState.indeterminate) {\n if (this.node.children?.length) {\n const activeChildren = this.node.children.filter(item => !item.isDisabled);\n const isAllActiveChildrenChecked = activeChildren.every(item => item.isChecked);\n this.node.setChecked(!isAllActiveChildrenChecked);\n } else {\n this.node.setChecked(true);\n }\n }\n this.thyOnCheckboxChange.emit({\n eventName: 'checkboxChange',\n event: event,\n node: this.node\n });\n }\n\n public expandNode(event: Event) {\n event.stopPropagation();\n this.node.setExpanded(!this.node.isExpanded);\n if (this.root.thyShowExpand) {\n this.thyOnExpandChange.emit({\n eventName: 'expand',\n event: event,\n node: this.node\n });\n if (this.thyAsync && this.node.children.length === 0) {\n this.node.setLoading(true);\n }\n }\n }\n\n public isShowExpand(node: ThyTreeNode) {\n return this.root.isShowExpand(node);\n }\n\n ngOnInit(): void {\n this.itemClass = this.node?.itemClass?.join(' ');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.node && !changes.node.isFirstChange()) {\n this.itemClass = changes?.node?.currentValue.itemClass?.join(' ');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node)\"\n [class.disabled]=\"node.isDisabled\"\n [class.expand]=\"node.children.length\"\n [style.height]=\"thyItemSize + 'px'\"\n (click)=\"clickNode($event)\"\n >\n <span class=\"thy-tree-index\" [style.width.px]=\"node.level * thyIndent\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n @if (isShowExpand(node)) {\n @if ((node.children && node.children.length > 0) || thyAsync || emptyChildrenTemplateRef) {\n @if (root.thyIcons?.expand && root.thyIcons?.collapse) {\n <thy-icon\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node.isExpanded ? root.thyIcons.expand : root.thyIcons.collapse\"\n ></thy-icon>\n } @else {\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node.isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n }\n }\n }\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n @if (thyCheckable) {\n <input\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node.isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node.isChecked === checkState.unchecked\"\n [checked]=\"node.isChecked === checkState.checked\"\n [disabled]=\"node.isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n }\n @if (!templateRef) {\n @if (nodeIcon) {\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon\" [ngStyle]=\"nodeIconStyle\"></i></span>\n }\n <span [title]=\"node.title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate\"> {{ node.title }}</span>\n }\n @if (templateRef) {\n <ng-template\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node, node: node, origin: node?.origin }\"\n ></ng-template>\n }\n </span>\n</div>\n@if (thyAsync) {\n @if (node.isLoading) {\n <thy-loading [thyDone]=\"!node.isLoading\"></thy-loading>\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeBeforeDragStartContext } from './tree.class';\n\n/**\n * @private\n */\n@Pipe({\n name: 'treeNodeDraggable',\n standalone: true\n})\nexport class ThyTreeNodeDraggablePipe implements PipeTransform {\n transform(node: ThyTreeNode, beforeDragStart: (e: ThyTreeBeforeDragStartContext) => boolean): boolean {\n if (beforeDragStart) {\n const draggable = beforeDragStart({ item: node } as ThyTreeBeforeDragStartContext);\n return draggable;\n } else {\n return true;\n }\n }\n}\n","import { coerceBooleanProperty, helpers } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';\nimport { ThyTreeNode } from './tree-node.class';\nimport {\n ThyTreeBeforeDragDropContext,\n ThyTreeBeforeDragStartContext,\n ThyClickBehavior,\n ThyTreeDragDropEvent,\n ThyTreeDropPosition,\n ThyTreeEmitEvent,\n ThyTreeIcons,\n ThyTreeNodeCheckState,\n ThyTreeNodeData\n} from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { DOCUMENT } from '@angular/common';\nimport { CdkDrag, CdkDragDrop, CdkDragEnd, CdkDragMove, CdkDragStart, CdkDropList } from '@angular/cdk/drag-drop';\nimport { auditTime, filter, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\n\ntype ThyTreeSize = 'sm' | 'default';\n\ntype ThyTreeType = 'default' | 'especial';\n\nconst treeTypeClassMap = {\n default: ['thy-tree-default'],\n especial: ['thy-tree-especial']\n};\n\nconst treeItemSizeMap = {\n default: 44,\n sm: 42\n};\n\n/**\n * 树形控件组件\n * @name thy-tree\n */\n@Component({\n selector: 'thy-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTree),\n multi: true\n },\n {\n provide: THY_TREE_ABSTRACT_TOKEN,\n useExisting: forwardRef(() => ThyTree)\n },\n ThyTreeService\n ],\n standalone: true,\n imports: [\n CdkDrag,\n CdkDropList,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ]\n})\nexport class ThyTree implements ControlValueAccessor, OnInit, OnChanges, AfterViewInit, OnDestroy {\n thyTreeService = inject(ThyTreeService);\n private cdr = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n\n private _templateRef: TemplateRef<any>;\n\n private _emptyChildrenTemplateRef: TemplateRef<any>;\n\n private _draggable = false;\n\n private _expandedKeys: (string | number)[];\n\n private _selectedKeys: (string | number)[];\n\n private hostRenderer = useHostRenderer();\n\n private _onTouched: () => void = () => {};\n\n private _onChange: (value: any) => void = (_: any) => {};\n\n private destroy$ = new Subject<void>();\n\n // 缓存 Element 和 DragRef 的关系,方便在 Item 拖动时查找\n private nodeDragsMap = new Map<HTMLElement, CdkDrag<ThyTreeNode>>();\n\n private nodeDragMoved = new Subject<CdkDragMove>();\n\n // private startDragNodeExpanded: boolean;\n\n private startDragNodeClone: ThyTreeNode;\n\n // Node 拖动经过目标时临时记录目标id以及相对应目标的位置\n private nodeDropTarget: {\n position?: ThyTreeDropPosition;\n key?: number | string;\n };\n\n private dropEnterPredicate?: (context: { source: ThyTreeNode; target: ThyTreeNode; dropPosition: ThyTreeDropPosition }) => boolean =\n context => {\n return (\n this.isShowExpand(context.target) || (!this.isShowExpand(context.target) && context.dropPosition !== ThyTreeDropPosition.in)\n );\n };\n\n public _selectionModel: SelectionModel<ThyTreeNode>;\n\n public get treeNodes() {\n return this.thyTreeService.treeNodes;\n }\n\n public flattenTreeNodes: ThyTreeNode[] = [];\n\n /**\n * 虚拟化滚动的视口\n */\n @Output() @ViewChild('viewport', { static: false }) viewport: CdkVirtualScrollViewport;\n\n /**\n * TreeNode 展现所需的数据\n * @type ThyTreeNodeData[]\n */\n @Input() thyNodes: ThyTreeNodeData[];\n\n /**\n * 设置 TreeNode 是否支持展开\n * @type boolean | Function\n */\n @Input() thyShowExpand: boolean | ((_: ThyTreeNodeData) => boolean) = true;\n\n /**\n * 设置是否支持多选节点\n */\n @HostBinding(`class.thy-multiple-selection-list`)\n @Input({ transform: coerceBooleanProperty })\n thyMultiple = false;\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n * @default false\n */\n @HostBinding('class.thy-tree-draggable')\n @Input({ transform: coerceBooleanProperty })\n set thyDraggable(value: boolean) {\n this._draggable = value;\n }\n\n get thyDraggable() {\n return this._draggable;\n }\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyCheckable: boolean;\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n */\n @Input() thyClickBehavior: ThyClickBehavior = 'default';\n\n /**\n * 设置 check 状态的计算策略\n */\n @Input() set thyCheckStateResolve(resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState) {\n if (resolve) {\n this.thyTreeService.setCheckStateResolve(resolve);\n }\n }\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n @Input({ transform: coerceBooleanProperty }) thyAsync = false;\n\n private _thyType: ThyTreeType = 'default';\n\n /**\n * 设置不同展示类型的 Tree,`default` 为小箭头展示, `especial` 为 加减号图标展示\n * @type ThyTreeType\n * @default default\n */\n @Input()\n set thyType(type: ThyTreeType) {\n this._thyType = type;\n if (type === 'especial') {\n this.thyIcons = { expand: 'minus-square', collapse: 'plus-square' };\n }\n }\n\n get thyType() {\n return this._thyType;\n }\n\n /**\n * 设置不同 Tree 展开折叠的图标,`expand` 为展开状态的图标,`collapse` 为折叠状态的图标\n * @type { expand: string, collapse: string }\n */\n @Input() thyIcons: ThyTreeIcons = {};\n\n private _thySize: ThyTreeSize = 'default';\n /**\n * 支持 `sm` | `default` 两种大小,默认值为 `default`\n * @type ThyTreeSize\n * @default default\n */\n @Input()\n set thySize(size: ThyTreeSize) {\n this._thySize = size;\n if (this._thySize) {\n this._thyItemSize = treeItemSizeMap[this._thySize];\n } else {\n this._thyItemSize = treeItemSizeMap.default;\n }\n }\n\n get thySize() {\n return this._thySize;\n }\n\n /**\n * 设置是否开启虚拟滚动\n */\n @HostBinding('class.thy-virtual-scrolling-tree')\n @Input({ transform: coerceBooleanProperty })\n thyVirtualScroll = false;\n\n private _thyItemSize = 44;\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n * @default 44\n */\n @Input({ transform: numberAttribute })\n set thyItemSize(itemSize: number) {\n if (this.thySize !== 'default') {\n throw new Error('setting thySize and thyItemSize at the same time is not allowed');\n }\n this._thyItemSize = itemSize;\n }\n\n get thyItemSize() {\n return this._thyItemSize;\n }\n\n /**\n * 设置节点名称是否支持超出截取\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyTitleTruncate = true;\n\n /**\n * 已选中的 node 节点集合\n * @default []\n */\n @Input() thySelectedKeys: string[];\n\n /**\n * 展开指定的树节点\n */\n @Input() thyExpandedKeys: (string | number)[];\n\n /**\n * 是否展开所有树节点\n */\n @Input({ transform: coerceBooleanProperty }) thyExpandAll: boolean = false;\n\n /**\n * 设置缩进距离,缩进距离 = thyIndent * node.level\n * @type number\n */\n @Input({ transform: numberAttribute }) thyIndent = 25;\n\n /**\n * 拖拽之前的回调,函数返回 false 则阻止拖拽\n */\n @Input() thyBeforeDragStart: (context: ThyTreeBeforeDragStartContext) => boolean;\n\n /**\n * 拖放到元素时回调,函数返回 false 则阻止拖放到当前元素\n */\n @Input() thyBeforeDragDrop: (context: ThyTreeBeforeDragDropContext) => boolean;\n\n /**\n * 设置子 TreeNode 点击事件\n */\n @Output() thyOnClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n @Output() thyOnCheckboxChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置点击展开触发事件\n */\n @Output() thyOnExpandChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 拖拽事件\n */\n @Output() thyOnDragDrop: EventEmitter<ThyTreeDragDropEvent> = new EventEmitter<ThyTreeDragDropEvent>();\n\n /**\n * 双击 TreeNode 事件\n */\n @Output() thyDblClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n @ContentChild('treeNodeTemplate', { static: true })\n set templateRef(template: TemplateRef<any>) {\n if (template) {\n this._templateRef = template;\n }\n }\n\n get templateRef() {\n return this._templateRef;\n }\n\n /**\n * 设置子的空数据渲染模板\n */\n @ContentChild('emptyChildrenTemplate', { static: true }) emptyChildrenTemplate: TemplateRef<any>;\n set emptyChildrenTemplateRef(template: TemplateRef<any>) {\n if (template) {\n this._emptyChildrenTemplateRef = template;\n }\n }\n\n get emptyChildrenTemplateRef() {\n return this._emptyChildrenTemplateRef;\n }\n\n @HostBinding('class.thy-tree')\n thyTreeClass = true;\n\n @HostBinding('class.thy-tree-dragging')\n dragging: boolean;\n\n @ViewChildren(CdkDrag) cdkDrags: QueryList<CdkDrag<ThyTreeNode>>;\n\n ngOnInit(): void {\n this._initThyNodes();\n this._setTreeType();\n this._setTreeSize();\n this._instanceSelectionModel();\n this._selectTreeNodes(this.thySelectedKeys);\n\n this.thyTreeService.flattenNodes$.subscribe(flattenTreeNodes => {\n this.flattenTreeNodes = flattenTreeNodes;\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit(): void {\n this.cdkDrags.changes\n .pipe(startWith(this.cdkDrags), takeUntil(this.destroy$))\n .subscribe((drags: QueryList<CdkDrag<ThyTreeNode>>) => {\n this.nodeDragsMap.clear();\n drags.forEach(drag => {\n if (drag.data) {\n // cdkDrag 变化时,缓存 Element 与 DragRef 的关系,方便 Drag Move 时查找\n this.nodeDragsMap.set(drag.element.nativeElement, drag);\n }\n });\n });\n\n this.nodeDragMoved\n .pipe(\n // auditTime(30),\n // auditTime 可能会导致拖动结束后仍然执行 moved ,所以通过判断 dragging 状态来过滤无效 moved\n filter((event: CdkDragMove) => event.source._dragRef.isDragging()),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n this.onDragMoved(event);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyNodes && !changes.thyNodes.isFirstChange()) {\n this._initThyNodes();\n }\n if (changes.thyType && !changes.thyType.isFirstChange()) {\n this._setTreeType();\n }\n if (changes.thyMultiple && !changes.thyMultiple.isFirstChange()) {\n this._instanceSelectionModel();\n }\n\n if (changes.thySelectedKeys && !changes.thySelectedKeys.isFirstChange()) {\n this._selectedKeys = changes.thySelectedKeys.currentValue;\n this._selectTreeNodes(changes.thySelectedKeys.currentValue);\n }\n\n if (changes.thyExpandedKeys && !changes.thyExpandedKeys.isFirstChange()) {\n this._handleExpandedKeys();\n }\n if (changes.thyExpandAll && !changes.thyExpandAll.isFirstChange()) {\n this._handleExpandedKeys();\n }\n }\n\n renderView = () => {};\n\n eventTriggerChanged(event: ThyTreeEmitEvent): void {\n switch (event.eventName) {\n case 'expand':\n this.thyOnExpandChange.emit(event);\n break;\n\n case 'checkboxChange':\n this.thyOnCheckboxChange.emit(event);\n break;\n }\n }\n\n private _initThyNodes() {\n this._expandedKeys = this.getExpandedNodes().map(node => node.key);\n this._selectedKeys = this.getSelectedNodes().map(node => node.key);\n this.thyTreeService.initializeTreeNodes(this.thyNodes);\n this.flattenTreeNodes = this.thyTreeService.flattenTreeNodes;\n this._selectTreeNodes(this._selectedKeys);\n this._handleExpandedKeys();\n }\n\n private _handleExpandedKeys() {\n if (this.thyExpandedKeys?.length) {\n this._expandedKeys = helpers.concatArray(\n this.thyExpandedKeys.filter(key => !this._expandedKeys.includes(key)),\n this._expandedKeys\n );\n }\n this.thyTreeService.expandTreeNodes(this.thyExpandAll || this._expandedKeys);\n }\n\n private _setTreeType() {\n if (this.thyType && treeTypeClassMap[this.thyType]) {\n treeTypeClassMap[this.thyType].forEach(className => {\n this.hostRenderer.addClass(className);\n });\n }\n }\n\n private _setTreeSize() {\n if (this.thySize) {\n this.hostRenderer.addClass(`thy-tree-${this.thySize}`);\n }\n }\n\n private _instanceSelectionModel() {\n this._selectionModel = new SelectionModel<any>(this.thyMultiple);\n }\n\n private _selectTreeNodes(keys: (string | number)[]) {\n (keys || []).forEach(key => {\n const node = this.thyTreeService.getTreeNode(key);\n if (node) {\n this.selectTreeNode(this.thyTreeService.getTreeNode(key));\n }\n });\n }\n\n isSelected(node: ThyTreeNode) {\n return this._selectionModel.isSelected(node);\n }\n\n toggleTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this._selectionModel.toggle(node);\n }\n }\n\n trackByFn(index: number, item: any) {\n return item.key || index;\n }\n\n isShowExpand(node: ThyTreeNode) {\n if (helpers.isFunction(this.thyShowExpand)) {\n return (this.thyShowExpand as Function)(node);\n } else {\n return this.thyShowExpand;\n }\n }\n\n writeValue(value: ThyTreeNodeData[]): void {\n if (value) {\n this.thyNodes = value;\n this._initThyNodes();\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n onDragStarted(event: CdkDragStart<ThyTreeNode>) {\n this.dragging = true;\n this.startDragNodeClone = Object.assign({}, event.source.data);\n if (event.source.data.isExpanded) {\n event.source.data.setExpanded(false);\n }\n }\n\n emitDragMoved(event: CdkDragMove) {\n this.nodeDragMoved.next(event);\n }\n\n onDragMoved(event: CdkDragMove<ThyTreeNode>) {\n // 通过鼠标位置查找对应的目标 Item 元素\n let currentPointElement = this.document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y) as HTMLElement;\n if (!currentPointElement) {\n this.cleanupDragArtifacts();\n return;\n }\n let targetElement = currentPointElement.classList.contains('thy-tree-node')\n ? currentPointElement\n : (currentPointElement.closest('.thy-tree-node') as HTMLElement);\n if (!targetElement) {\n this.cleanupDragArtifacts();\n return;\n }\n // 缓存放置目标Id 并计算鼠标相对应的位置\n this.nodeDropTarget = {\n key: this.nodeDragsMap.get(targetElement)?.data.key,\n position: this.getTargetPosition(targetElement, event)\n };\n // 执行外部传入的 dropEnterPredicate 判断是否允许拖入目标项\n if (this.dropEnterPredicate) {\n const targetDragRef = this.nodeDragsMap.get(targetElement);\n if (\n this.dropEnterPredicate({\n source: event.source.data,\n target: targetDragRef.data,\n dropPosition: this.nodeDropTarget.position\n })\n ) {\n this.showDropPositionPlaceholder(targetElement);\n } else {\n this.nodeDropTarget = null;\n this.cleanupDragArtifacts();\n }\n } else {\n this.showDropPositionPlaceholder(targetElement);\n }\n }\n\n onDragEnded(event: CdkDragEnd<ThyTreeNode>) {\n this.dragging = false;\n // 拖拽结束后恢复原始的展开状态\n event.source.data.setExpanded(this.startDragNodeClone.isExpanded);\n setTimeout(() => {\n this.startDragNodeClone = null;\n });\n }\n\n onListDropped(event: CdkDragDrop<ThyTreeNode[], ThyTreeNode[], ThyTreeNode>) {\n if (!this.nodeDropTarget) {\n return;\n }\n if (!this.isShowExpand(this.startDragNodeClone) && this.nodeDropTarget.position === ThyTreeDropPosition.in) {\n this.cleanupDragArtifacts();\n return;\n }\n\n const sourceNode = this.startDragNodeClone;\n const sourceNodeParent = sourceNode.parentNode;\n const targetDragRef = this.cdkDrags.find(item => item.data?.key === this.nodeDropTarget.key);\n const targetNode = targetDragRef?.data;\n const targetNodeParent = targetNode.parentNode;\n\n const beforeDragDropContext: ThyTreeBeforeDragDropContext = {\n previousItem: sourceNode,\n previousContainerItems: sourceNodeParent?.children,\n item: targetNode,\n containerItems: targetNodeParent?.children,\n position: this.nodeDropTarget.position\n };\n\n if (this.thyBeforeDragDrop && !this.thyBeforeDragDrop(beforeDragDropContext)) {\n this.cleanupDragArtifacts();\n return;\n }\n\n this.thyTreeService.deleteTreeNode(sourceNode);\n\n switch (this.nodeDropTarget.position) {\n case 'before':\n const beforeInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode);\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, beforeInsertIndex);\n break;\n case 'after':\n const afterInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode) + 1;\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, afterInsertIndex);\n break;\n case 'in':\n this.thyTreeService.addTreeNode(sourceNode, targetNode);\n break;\n }\n\n this.thyTreeService.syncFlattenTreeNodes();\n\n let after: ThyTreeNode = null;\n let targe: ThyTreeNode = null;\n if (beforeDragDropContext.position === ThyTreeDropPosition.before) {\n const targetContainerNodes = targetNodeParent?.children || this.treeNodes;\n after = targetContainerNodes[targetContainerNodes.indexOf(targetNode) - 2];\n targe = targetNodeParent;\n } else if (beforeDragDropContext.position === ThyTreeDropPosition.after) {\n after = targetNode;\n targe = targetNodeParent;\n } else {\n after = targetNode.children?.length > 0 ? targetNode.children[targetNode.children.length - 2] : null;\n targe = targetNode;\n }\n\n this.thyOnDragDrop.emit({\n dragNode: this.thyTreeService.getTreeNode(sourceNode.key),\n targetNode: targe,\n afterNode: after\n });\n\n this.cleanupDragArtifacts();\n }\n\n private getTargetPosition(target: HTMLElement, event: CdkDragMove) {\n const targetRect = target.getBoundingClientRect();\n const beforeOrAfterGap = targetRect.height * 0.3;\n // 将 Node 高度分为上中下三段,其中上下的 Gap 为 height 的 30%,通过判断鼠标位置在哪一段 gap 来计算对应的位置\n if (event.pointerPosition.y - targetRect.top < beforeOrAfterGap) {\n return ThyTreeDropPosition.before;\n } else if (event.pointerPosition.y >= targetRect.bottom - beforeOrAfterGap) {\n return ThyTreeDropPosition.after;\n } else {\n return ThyTreeDropPosition.in;\n }\n }\n\n private showDropPositionPlaceholder(targetElement: HTMLElement) {\n this.cleanupDropPositionPlaceholder();\n if (this.nodeDropTarget && targetElement) {\n targetElement.classList.add(`drop-position-${this.nodeDropTarget.position}`);\n }\n }\n\n private cleanupDropPositionPlaceholder() {\n this.document.querySelectorAll('.drop-position-before').forEach(element => element.classList.remove('drop-position-before'));\n this.document.querySelectorAll('.drop-position-after').forEach(element => element.classList.remove('drop-position-after'));\n this.document.querySelectorAll('.drop-position-in').forEach(element => element.classList.remove('drop-position-in'));\n }\n\n private cleanupDragArtifacts() {\n this.nodeDropTarget = null;\n this.cleanupDropPositionPlaceholder();\n }\n\n // region Public Functions\n\n selectTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this._selectionModel.select(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n }\n\n getRootNodes(): ThyTreeNode[] {\n return this.treeNodes;\n }\n\n getTreeNode(key: string) {\n return this.thyTreeService.getTreeNode(key);\n }\n\n getSelectedNode(): ThyTreeNode {\n return this._selectionModel ? this._selectionModel.selected[0] : null;\n }\n\n getSelectedNodes(): ThyTreeNode[] {\n return this._selectionModel ? this._selectionModel.selected : [];\n }\n\n getExpandedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getExpandedNodes();\n }\n\n getCheckedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getCheckedNodes();\n }\n\n addTreeNode(node: ThyTreeNodeData, parent?: ThyTreeNode, index = -1) {\n this.thyTreeService.addTreeNode(new ThyTreeNode(node, null, this.thyTreeService), parent, index);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n deleteTreeNode(node: ThyTreeNode) {\n if (this.isSelected(node)) {\n this._selectionModel.toggle(node);\n }\n this.thyTreeService.deleteTreeNode(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n expandAllNodes() {\n const nodes = this.getRootNodes();\n nodes.forEach(n => n.setExpanded(true, true));\n }\n\n collapsedAllNodes() {\n const nodes = this.getRootNodes();\n nodes.forEach(n => n.setExpanded(false, true));\n }\n\n // endregion\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","@if (thyVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #viewport\n [itemSize]=\"thyItemSize\"\n [style.height]=\"'100%'\"\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodes\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\"\n >\n <div class=\"virtual-trees-container\">\n <thy-tree-node\n *cdkVirtualFor=\"let node of flattenTreeNodes; trackBy: trackByFn; let i = index\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!thyDraggable || !(node | treeNodeDraggable : thyBeforeDragStart)\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate\"\n [thyAsync]=\"thyAsync\"\n [thyDraggable]=\"thyDraggable\"\n [thyCheckable]=\"thyCheckable\"\n [thyMultiple]=\"thyMultiple\"\n [thyClickBehavior]=\"thyClickBehavior\"\n [thyTitleTruncate]=\"thyTitleTruncate\"\n [thyItemSize]=\"thyItemSize\"\n [thyIndent]=\"thyIndent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"eventTriggerChanged($event)\">\n </thy-tree-node>\n </div>\n </cdk-virtual-scroll-viewport>\n}\n\n@if (!thyVirtualScroll) {\n <div\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodes\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\">\n @for (node of flattenTreeNodes; track trackByFn(i, node); let i = $index) {\n <thy-tree-node\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!thyDraggable || !(node | treeNodeDraggable : thyBeforeDragStart)\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate\"\n [thyAsync]=\"thyAsync\"\n [thyDraggable]=\"thyDraggable\"\n [thyCheckable]=\"thyCheckable\"\n [thyMultiple]=\"thyMultiple\"\n [thyTitleTruncate]=\"thyTitleTruncate\"\n [thyItemSize]=\"thyItemSize\"\n [thyClickBehavior]=\"thyClickBehavior\"\n [thyIndent]=\"thyIndent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"thyOnCheckboxChange.emit($event)\">\n </thy-tree-node>\n }\n </div>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyCheckboxModule } from 'ngx-tethys/checkbox';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyOptionModule, ThySharedModule } from 'ngx-tethys/shared';\n\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { ThyTree } from './tree.component';\nimport { ThyTreeService } from './tree.service';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\n\n@NgModule({\n imports: [\n DragDropModule,\n CommonModule,\n ThyInputModule,\n ThyButtonModule,\n ThySharedModule,\n FormsModule,\n ThyListModule,\n ThyOptionModule,\n ThyLoadingModule,\n ThyIconModule,\n ThyCheckboxModule,\n ScrollingModule,\n ThyTree,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ],\n exports: [ThyTree, ThyTreeNodeComponent],\n providers: [ThyTreeService]\n})\nexport class ThyTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-tree.mjs","sources":["../../../src/tree/tree-abstract.ts","../../../src/tree/tree.class.ts","../../../src/tree/tree-node.class.ts","../../../src/tree/tree.service.ts","../../../src/tree/tree-node.component.ts","../../../src/tree/tree-node.component.html","../../../src/tree/tree.pipe.ts","../../../src/tree/tree.component.ts","../../../src/tree/tree.component.html","../../../src/tree/tree.module.ts","../../../src/tree/ngx-tethys-tree.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeBeforeDragDropContext, ThyTreeBeforeDragStartContext, ThyTreeDragDropEvent, ThyTreeIcons } from './tree.class';\n\nexport interface ThyTreeAbstractComponent {\n thyMultiple: boolean;\n thyDraggable: boolean;\n thyShowExpand: boolean;\n treeNodes: ThyTreeNode[];\n thyIcons: ThyTreeIcons;\n thyBeforeDragStart(e: ThyTreeBeforeDragStartContext): boolean;\n thyBeforeDragDrop(e: ThyTreeBeforeDragDropContext): boolean;\n onDragDrop(event: ThyTreeDragDropEvent): void;\n selectTreeNode(node: ThyTreeNode): void;\n toggleTreeNode(node: ThyTreeNode): void;\n isShowExpand(node: ThyTreeNode): boolean;\n trackByFn(number: string, node: ThyTreeNode): string | number;\n isSelected(node: ThyTreeNode): boolean;\n}\n\nexport const THY_TREE_ABSTRACT_TOKEN = new InjectionToken<ThyTreeAbstractComponent>('thy-tree-abstract-token');\n","import { ThyTreeNode } from './tree-node.class';\n\nexport enum ThyTreeNodeCheckState {\n unchecked = 0,\n checked = 1,\n indeterminate = 2\n}\n\nexport enum ThyTreeDropPosition {\n in = 'in',\n before = 'before',\n after = 'after'\n}\n\nexport interface ThyTreeNodeData<T = any> {\n key?: number | string;\n\n title?: string;\n\n icon?: string;\n\n iconStyle?: {\n [key: string]: any;\n };\n\n children?: ThyTreeNodeData<T>[];\n\n origin?: any;\n\n expanded?: boolean;\n\n disabled?: boolean;\n\n checked?: boolean;\n\n data?: T;\n\n itemClass?: string | string[];\n\n [key: string]: any;\n}\n\nexport interface ThyTreeEmitEvent<T = any> {\n eventName: string;\n\n node?: ThyTreeNode<T>;\n\n event?: Event | any;\n\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n}\n\nexport interface ThyTreeBeforeDragStartContext {\n item: ThyTreeNode;\n}\n\nexport interface ThyTreeBeforeDragDropContext {\n item?: ThyTreeNode;\n containerItems?: ThyTreeNode[];\n previousItem?: ThyTreeNode;\n previousContainerItems?: ThyTreeNode[];\n position?: ThyTreeDropPosition;\n}\n\nexport interface ThyTreeDragDropEvent<T = any> {\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n\n afterNode?: ThyTreeNode<T>;\n}\n\nexport class ThyTreeIcons {\n expand?: string;\n collapse?: string;\n}\n\nexport type ThyClickBehavior = 'default' | 'selectCheckbox';\n","import { helpers, isArray } from 'ngx-tethys/util';\n\nimport { ThyTreeNodeCheckState, ThyTreeNodeData } from './tree.class';\nimport { ThyTreeService } from './tree.service';\n\nexport class ThyTreeNode<T = any> {\n key?: number | string;\n\n title?: string;\n\n children: ThyTreeNode[];\n\n parentNode: ThyTreeNode;\n\n level = 0;\n\n origin: ThyTreeNodeData<T>;\n\n isExpanded: boolean;\n\n isChecked: ThyTreeNodeCheckState;\n\n isLoading: boolean;\n\n isDisabled: boolean;\n\n itemClass?: string[];\n\n private readonly service: ThyTreeService;\n\n get treeService(): ThyTreeService {\n if (this.service) {\n return this.service;\n } else if (this.parentNode) {\n return this.parentNode.treeService;\n }\n }\n\n constructor(node: ThyTreeNodeData, parent: ThyTreeNode = null, service?: ThyTreeService) {\n this.title = node.title;\n this.key = node.key;\n this.children = [];\n this.parentNode = parent;\n this.level = parent ? parent.level + 1 : this.level;\n this.origin = node;\n this.isDisabled = node.disabled || false;\n this.isExpanded = node.expanded || false;\n this.isChecked = node.checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n this.isLoading = false;\n if (node.itemClass) {\n this.itemClass = isArray(node.itemClass) ? node.itemClass : [node.itemClass];\n }\n if (node.children) {\n node.children.forEach(childNode => {\n this.children.push(new ThyTreeNode(childNode, this, service));\n });\n }\n this.service = service;\n if (node.children && node.children.length && service) {\n this.isChecked = service.checkStateResolve(this);\n }\n }\n\n public setKey(key: string) {\n this.origin.key = key;\n this.key = key;\n }\n\n public setTitle(title: string) {\n this.origin.title = title;\n this.title = title;\n }\n\n public setLevel(level: number) {\n this.level = level;\n }\n\n private _setExpanded(expanded: boolean, propagate = false) {\n this.origin.expanded = expanded;\n this.isExpanded = expanded;\n if (propagate && this.children) {\n this.children.forEach(n => n._setExpanded(expanded, propagate));\n }\n }\n\n public setExpanded(expanded: boolean, propagate = false) {\n this._setExpanded(expanded, propagate);\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setLoading(loading: boolean): void {\n this.isLoading = loading;\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setChecked(checked: boolean, propagateUp = true, propagateDown = true) {\n this.treeService.setNodeChecked(this, checked, propagateUp, propagateDown);\n }\n\n public syncNodeCheckState() {\n this.treeService.syncNodeCheckState(this);\n }\n\n public getParentNode(): ThyTreeNode {\n return this.parentNode;\n }\n\n public getChildren(): ThyTreeNode[] {\n return this.children;\n }\n\n public addChildren(children: ThyTreeNodeData | ThyTreeNodeData[], index: number = -1): void {\n children = helpers.coerceArray(children);\n ((children as ThyTreeNodeData[]) || []).forEach((childNode: ThyTreeNodeData, i: number) => {\n if (index === -1) {\n this.children.push(new ThyTreeNode(childNode, this));\n } else {\n this.children.splice(index + i, 0, new ThyTreeNode(childNode, this, this.treeService));\n }\n });\n\n this.origin.children = this.getChildren().map(n => n.origin);\n this.setLoading(false);\n this.treeService.statusChange$.next({\n eventName: 'addChildren',\n node: this\n });\n }\n}\n","import { coerceArray, isFunction } from 'ngx-tethys/util';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeNodeCheckState, ThyTreeNodeData } from './tree.class';\n\nfunction checkStateResolve(node: ThyTreeNode) {\n const checkedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n const unCheckedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.unchecked);\n if (checkedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.checked;\n } else if (unCheckedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.unchecked;\n } else {\n return ThyTreeNodeCheckState.indeterminate;\n }\n}\n\ntype FlattenAllNodesCb = (treeNode: ThyTreeNode) => boolean;\n\nexport interface ThyTreeFormatEmitEvent {\n eventName: string;\n node: ThyTreeNode;\n event?: MouseEvent | DragEvent;\n}\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTreeService implements OnDestroy {\n selectedNode!: ThyTreeNode;\n\n flattenNodes$ = new BehaviorSubject<ThyTreeNode[]>([]);\n\n flattenTreeNodes: ThyTreeNode[] = [];\n\n private originTreeNodes: ThyTreeNodeData[] = [];\n\n public treeNodes: ThyTreeNode[] = [];\n\n public checkStateResolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve;\n\n statusChange$ = new Subject<ThyTreeFormatEmitEvent>();\n\n constructor() {\n this.statusChange$.pipe().subscribe(event => {\n this.syncFlattenTreeNodes();\n this.syncNodeCheckState(event.node);\n });\n }\n\n public initializeTreeNodes(rootNodes: ThyTreeNodeData[]) {\n this.originTreeNodes = rootNodes || [];\n this.treeNodes = (rootNodes || []).map(node => new ThyTreeNode(node, null, this));\n }\n\n public syncFlattenTreeNodes() {\n this.flattenTreeNodes = this.getParallelTreeNodes(this.treeNodes, false);\n this.flattenNodes$.next(this.flattenTreeNodes);\n return this.flattenTreeNodes;\n }\n\n private getParallelTreeNodes(rootTrees: ThyTreeNode[] = this.treeNodes, flattenAllNodes: boolean | FlattenAllNodesCb = true) {\n const flattenTreeData: ThyTreeNode[] = [];\n function _getParallelTreeNodes(list: ThyTreeNode[]) {\n return list.forEach((treeNode, index) => {\n flattenTreeData.push(treeNode);\n const flattenAllNodesFlag = isFunction(flattenAllNodes) ? flattenAllNodes(treeNode) : flattenAllNodes;\n if (flattenAllNodesFlag || treeNode.isExpanded) {\n _getParallelTreeNodes(treeNode.children);\n }\n });\n }\n _getParallelTreeNodes(rootTrees);\n return flattenTreeData;\n }\n\n setCheckStateResolve(resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve) {\n this.checkStateResolve = resolve;\n }\n\n public resetSortedTreeNodes(treeNodes: ThyTreeNode[], parent?: ThyTreeNode) {\n treeNodes.forEach(node => {\n node.level = node.parentNode ? node.parentNode.level + 1 : 0;\n node.origin.children = node.children.map(n => n.origin);\n node.parentNode = parent;\n this.resetSortedTreeNodes(node.children, node);\n });\n }\n\n public getTreeNode(key: string | number) {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.find(n => n.key === key);\n }\n\n public getExpandedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isExpanded);\n }\n\n public getCheckedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n }\n\n public deleteTreeNode(node: ThyTreeNode) {\n if (node.parentNode) {\n const children = node.parentNode.children;\n const index = children.findIndex(n => n.key === node.key);\n if (index > -1) {\n children.splice(index, 1);\n node.parentNode.origin.children = children.map(item => item.origin);\n this.syncNodeCheckState(node.parentNode);\n }\n } else {\n const index = this.treeNodes.findIndex(n => n.key === node.key);\n if (index > -1) {\n this.treeNodes.splice(index, 1);\n this.originTreeNodes.splice(index, 1);\n }\n }\n }\n\n public addTreeNode(node: ThyTreeNode, parent?: ThyTreeNode, index = -1) {\n if (parent) {\n const insertNode = new ThyTreeNode(node.origin, parent, this);\n if (index > -1) {\n parent.children.splice(index, 0, insertNode);\n } else {\n parent.children.push(insertNode);\n }\n parent.origin.children = parent.children.map(item => item.origin);\n this.syncNodeCheckState(parent);\n } else {\n const insertNode = new ThyTreeNode(node.origin, null, this);\n if (index > -1) {\n this.treeNodes.splice(index, 0, insertNode);\n } else {\n this.treeNodes.push(insertNode);\n }\n this.originTreeNodes = this.treeNodes.map(item => item.origin);\n // this.syncNodeCheckState(insertNode);\n }\n }\n\n public expandTreeNodes(keyOrKeys: string | number | (string | number)[] | true) {\n const keys = keyOrKeys === true ? [] : coerceArray(keyOrKeys);\n const needExpandNodes = this.getParallelTreeNodes(this.treeNodes).filter(node => {\n return keys.indexOf(node.key) > -1 || keyOrKeys === true;\n });\n needExpandNodes.forEach(node => {\n node.setExpanded(true);\n });\n this.syncFlattenTreeNodes();\n }\n\n // 设置节点选中状态\n public setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true) {\n this._setNodeChecked(node, checked, propagateUp, propagateDown);\n this.syncFlattenTreeNodes();\n }\n\n private _setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true) {\n if (propagateDown && node.children) {\n node.children.forEach(subNode => {\n this._setNodeChecked(subNode, checked, false, true);\n });\n }\n if (!node.isDisabled) {\n if (node.children.length) {\n if (checked) {\n const isAllChildrenChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.checked);\n node.isChecked = isAllChildrenChecked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenChecked && checked;\n } else {\n const isAllChildrenUnChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.unchecked);\n node.isChecked = isAllChildrenUnChecked ? ThyTreeNodeCheckState.unchecked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenUnChecked && checked;\n }\n } else {\n node.isChecked = checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n node.origin.checked = checked;\n }\n }\n if (propagateUp) {\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n public syncNodeCheckState(node: ThyTreeNode) {\n this._syncNodeCheckState(node);\n this.syncFlattenTreeNodes();\n }\n\n private _syncNodeCheckState(node: ThyTreeNode) {\n if (node) {\n node.isChecked = this.checkStateResolve(node);\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n ngOnDestroy(): void {\n this.statusChange$.complete();\n this.statusChange$ = null;\n }\n}\n","import { Subject } from 'rxjs';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n numberAttribute,\n inject\n} from '@angular/core';\n\nimport { THY_TREE_ABSTRACT_TOKEN, ThyTreeAbstractComponent } from './tree-abstract';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeEmitEvent, ThyTreeNodeCheckState, ThyClickBehavior } from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 树形控件的节点组件\n * @private\n * @name thy-tree-node\n */\n@Component({\n selector: 'thy-tree-node',\n templateUrl: './tree-node.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [ThyIcon, NgClass, NgStyle, NgTemplateOutlet, ThyLoading]\n})\nexport class ThyTreeNodeComponent implements OnDestroy, OnInit, OnChanges {\n root = inject(THY_TREE_ABSTRACT_TOKEN);\n thyTreeService = inject(ThyTreeService);\n\n /**\n * node 节点展现所需的数据\n */\n @Input() node: ThyTreeNode;\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n @Input({ transform: coerceBooleanProperty }) thyAsync = false;\n\n /**\n * 设置 TreeNode 是否支持多选节点\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple = false;\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n */\n @Input({ transform: coerceBooleanProperty }) thyDraggable = false;\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n */\n @Input({ transform: coerceBooleanProperty }) thyCheckable = false;\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n * @default default\n */\n @Input() thyClickBehavior: ThyClickBehavior;\n\n /**\n * 设置节点名称是否支持超出截取\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyTitleTruncate: boolean;\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n @Input() templateRef: TemplateRef<any>;\n\n /**\n * 设置子的空数据渲染模板\n */\n @Input() emptyChildrenTemplateRef: TemplateRef<any>;\n\n /**\n * 设置 node 点击事件\n */\n @Output() thyOnClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 双击 node 事件\n */\n @Output() thyDblClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 点击展开触发事件\n */\n @Output() thyOnExpandChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n @Output() thyOnCheckboxChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 childrenTree 的渲染模板\n */\n @ContentChild('childrenTree') childrenTreeTemplateRef: TemplateRef<any>;\n\n /** The native `<div class=\"thy-tree-node-wrapper thy-sortable-item\"></div>` element. */\n @ViewChild('treeNodeWrapper', { static: true }) treeNodeWrapper: ElementRef<HTMLElement>;\n\n @HostBinding('class.thy-tree-node') thyTreeNodeClass = true;\n\n @HostBinding('class') itemClass: string;\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n */\n @Input({ transform: numberAttribute }) thyItemSize = 44;\n\n /**\n * 设置节点缩进距离,缩进距离 = thyIndent * node.level\n */\n @Input({ transform: numberAttribute }) thyIndent = 25;\n\n public get nodeIcon() {\n return this.node.origin.icon;\n }\n\n public get nodeIconStyle() {\n return this.node.origin.iconStyle;\n }\n\n private destroy$ = new Subject<void>();\n\n checkState = ThyTreeNodeCheckState;\n\n public clickNode(event: Event) {\n if (this.node.isDisabled) {\n this.expandNode(event);\n } else {\n if (this.thyCheckable && this.thyClickBehavior === 'selectCheckbox') {\n this.clickNodeCheck(event);\n } else {\n if (this.root.thyMultiple) {\n this.root.toggleTreeNode(this.node);\n } else {\n this.root.selectTreeNode(this.node);\n }\n }\n }\n this.thyOnClick.emit({\n eventName: 'click',\n event: event,\n node: this.node\n });\n }\n\n public dbClickNode(event: Event) {\n this.thyDblClick.emit({\n eventName: 'dbclick',\n event: event,\n node: this.node\n });\n }\n\n public clickNodeCheck(event: Event) {\n event.stopPropagation();\n if (this.node.isChecked === ThyTreeNodeCheckState.unchecked) {\n this.node.setChecked(true);\n } else if (this.node.isChecked === ThyTreeNodeCheckState.checked) {\n this.node.setChecked(false);\n } else if (this.node.isChecked === ThyTreeNodeCheckState.indeterminate) {\n if (this.node.children?.length) {\n const activeChildren = this.node.children.filter(item => !item.isDisabled);\n const isAllActiveChildrenChecked = activeChildren.every(item => item.isChecked);\n this.node.setChecked(!isAllActiveChildrenChecked);\n } else {\n this.node.setChecked(true);\n }\n }\n this.thyOnCheckboxChange.emit({\n eventName: 'checkboxChange',\n event: event,\n node: this.node\n });\n }\n\n public expandNode(event: Event) {\n event.stopPropagation();\n this.node.setExpanded(!this.node.isExpanded);\n if (this.root.thyShowExpand) {\n this.thyOnExpandChange.emit({\n eventName: 'expand',\n event: event,\n node: this.node\n });\n if (this.thyAsync && this.node.children.length === 0) {\n this.node.setLoading(true);\n }\n }\n }\n\n public isShowExpand(node: ThyTreeNode) {\n return this.root.isShowExpand(node);\n }\n\n ngOnInit(): void {\n this.itemClass = this.node?.itemClass?.join(' ');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.node && !changes.node.isFirstChange()) {\n this.itemClass = changes?.node?.currentValue.itemClass?.join(' ');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node)\"\n [class.disabled]=\"node.isDisabled\"\n [class.expand]=\"node.children.length\"\n [style.height]=\"thyItemSize + 'px'\"\n (click)=\"clickNode($event)\"\n >\n <span class=\"thy-tree-index\" [style.width.px]=\"node.level * thyIndent\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n @if (isShowExpand(node)) {\n @if ((node.children && node.children.length > 0) || thyAsync || emptyChildrenTemplateRef) {\n @if (root.thyIcons?.expand && root.thyIcons?.collapse) {\n <thy-icon\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node.isExpanded ? root.thyIcons.expand : root.thyIcons.collapse\"\n ></thy-icon>\n } @else {\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node.isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n }\n }\n }\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n @if (thyCheckable) {\n <input\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node.isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node.isChecked === checkState.unchecked\"\n [checked]=\"node.isChecked === checkState.checked\"\n [disabled]=\"node.isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n }\n @if (!templateRef) {\n @if (nodeIcon) {\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon\" [ngStyle]=\"nodeIconStyle\"></i></span>\n }\n <span [title]=\"node.title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate\"> {{ node.title }}</span>\n }\n @if (templateRef) {\n <ng-template\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node, node: node, origin: node?.origin }\"\n ></ng-template>\n }\n </span>\n</div>\n@if (thyAsync) {\n @if (node.isLoading) {\n <thy-loading [thyDone]=\"!node.isLoading\"></thy-loading>\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThyTreeNode } from './tree-node.class';\nimport { ThyTreeBeforeDragStartContext } from './tree.class';\n\n/**\n * @private\n */\n@Pipe({\n name: 'treeNodeDraggable',\n standalone: true\n})\nexport class ThyTreeNodeDraggablePipe implements PipeTransform {\n transform(node: ThyTreeNode, beforeDragStart: (e: ThyTreeBeforeDragStartContext) => boolean): boolean {\n if (beforeDragStart) {\n const draggable = beforeDragStart({ item: node } as ThyTreeBeforeDragStartContext);\n return draggable;\n } else {\n return true;\n }\n }\n}\n","import { coerceBooleanProperty, helpers } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';\nimport { ThyTreeNode } from './tree-node.class';\nimport {\n ThyTreeBeforeDragDropContext,\n ThyTreeBeforeDragStartContext,\n ThyClickBehavior,\n ThyTreeDragDropEvent,\n ThyTreeDropPosition,\n ThyTreeEmitEvent,\n ThyTreeIcons,\n ThyTreeNodeCheckState,\n ThyTreeNodeData\n} from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { DOCUMENT } from '@angular/common';\nimport { CdkDrag, CdkDragDrop, CdkDragEnd, CdkDragMove, CdkDragStart, CdkDropList } from '@angular/cdk/drag-drop';\nimport { auditTime, filter, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\n\ntype ThyTreeSize = 'sm' | 'default';\n\ntype ThyTreeType = 'default' | 'especial';\n\nconst treeTypeClassMap = {\n default: ['thy-tree-default'],\n especial: ['thy-tree-especial']\n};\n\nconst treeItemSizeMap = {\n default: 44,\n sm: 42\n};\n\n/**\n * 树形控件组件\n * @name thy-tree\n */\n@Component({\n selector: 'thy-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTree),\n multi: true\n },\n {\n provide: THY_TREE_ABSTRACT_TOKEN,\n useExisting: forwardRef(() => ThyTree)\n },\n ThyTreeService\n ],\n standalone: true,\n imports: [\n CdkDrag,\n CdkDropList,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ]\n})\nexport class ThyTree implements ControlValueAccessor, OnInit, OnChanges, AfterViewInit, OnDestroy {\n thyTreeService = inject(ThyTreeService);\n private cdr = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n\n private _templateRef: TemplateRef<any>;\n\n private _emptyChildrenTemplateRef: TemplateRef<any>;\n\n private _draggable = false;\n\n private _expandedKeys: (string | number)[];\n\n private _selectedKeys: (string | number)[];\n\n private hostRenderer = useHostRenderer();\n\n private _onTouched: () => void = () => {};\n\n private _onChange: (value: any) => void = (_: any) => {};\n\n private destroy$ = new Subject<void>();\n\n // 缓存 Element 和 DragRef 的关系,方便在 Item 拖动时查找\n private nodeDragsMap = new Map<HTMLElement, CdkDrag<ThyTreeNode>>();\n\n private nodeDragMoved = new Subject<CdkDragMove>();\n\n // private startDragNodeExpanded: boolean;\n\n private startDragNodeClone: ThyTreeNode;\n\n // Node 拖动经过目标时临时记录目标id以及相对应目标的位置\n private nodeDropTarget: {\n position?: ThyTreeDropPosition;\n key?: number | string;\n };\n\n private dropEnterPredicate?: (context: { source: ThyTreeNode; target: ThyTreeNode; dropPosition: ThyTreeDropPosition }) => boolean =\n context => {\n return (\n this.isShowExpand(context.target) || (!this.isShowExpand(context.target) && context.dropPosition !== ThyTreeDropPosition.in)\n );\n };\n\n public _selectionModel: SelectionModel<ThyTreeNode>;\n\n public get treeNodes() {\n return this.thyTreeService.treeNodes;\n }\n\n public flattenTreeNodes: ThyTreeNode[] = [];\n\n /**\n * 虚拟化滚动的视口\n */\n @Output() @ViewChild('viewport', { static: false }) viewport: CdkVirtualScrollViewport;\n\n /**\n * TreeNode 展现所需的数据\n * @type ThyTreeNodeData[]\n */\n @Input() thyNodes: ThyTreeNodeData[];\n\n /**\n * 设置 TreeNode 是否支持展开\n * @type boolean | Function\n */\n @Input() thyShowExpand: boolean | ((_: ThyTreeNodeData) => boolean) = true;\n\n /**\n * 设置是否支持多选节点\n */\n @HostBinding(`class.thy-multiple-selection-list`)\n @Input({ transform: coerceBooleanProperty })\n thyMultiple = false;\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n * @default false\n */\n @HostBinding('class.thy-tree-draggable')\n @Input({ transform: coerceBooleanProperty })\n set thyDraggable(value: boolean) {\n this._draggable = value;\n }\n\n get thyDraggable() {\n return this._draggable;\n }\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyCheckable: boolean;\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n */\n @Input() thyClickBehavior: ThyClickBehavior = 'default';\n\n /**\n * 设置 check 状态的计算策略\n */\n @Input() set thyCheckStateResolve(resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState) {\n if (resolve) {\n this.thyTreeService.setCheckStateResolve(resolve);\n }\n }\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n @Input({ transform: coerceBooleanProperty }) thyAsync = false;\n\n private _thyType: ThyTreeType = 'default';\n\n /**\n * 设置不同展示类型的 Tree,`default` 为小箭头展示, `especial` 为 加减号图标展示\n * @type ThyTreeType\n * @default default\n */\n @Input()\n set thyType(type: ThyTreeType) {\n this._thyType = type;\n if (type === 'especial') {\n this.thyIcons = { expand: 'minus-square', collapse: 'plus-square' };\n }\n }\n\n get thyType() {\n return this._thyType;\n }\n\n /**\n * 设置不同 Tree 展开折叠的图标,`expand` 为展开状态的图标,`collapse` 为折叠状态的图标\n * @type { expand: string, collapse: string }\n */\n @Input() thyIcons: ThyTreeIcons = {};\n\n private _thySize: ThyTreeSize = 'default';\n /**\n * 支持 `sm` | `default` 两种大小,默认值为 `default`\n * @type ThyTreeSize\n * @default default\n */\n @Input()\n set thySize(size: ThyTreeSize) {\n this._thySize = size;\n if (this._thySize) {\n this._thyItemSize = treeItemSizeMap[this._thySize];\n } else {\n this._thyItemSize = treeItemSizeMap.default;\n }\n }\n\n get thySize() {\n return this._thySize;\n }\n\n /**\n * 设置是否开启虚拟滚动\n */\n @HostBinding('class.thy-virtual-scrolling-tree')\n @Input({ transform: coerceBooleanProperty })\n thyVirtualScroll = false;\n\n private _thyItemSize = 44;\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n * @default 44\n */\n @Input({ transform: numberAttribute })\n set thyItemSize(itemSize: number) {\n if (this.thySize !== 'default') {\n throw new Error('setting thySize and thyItemSize at the same time is not allowed');\n }\n this._thyItemSize = itemSize;\n }\n\n get thyItemSize() {\n return this._thyItemSize;\n }\n\n /**\n * 设置节点名称是否支持超出截取\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyTitleTruncate = true;\n\n /**\n * 已选中的 node 节点集合\n * @default []\n */\n @Input() thySelectedKeys: string[];\n\n /**\n * 展开指定的树节点\n */\n @Input() thyExpandedKeys: (string | number)[];\n\n /**\n * 是否展开所有树节点\n */\n @Input({ transform: coerceBooleanProperty }) thyExpandAll: boolean = false;\n\n /**\n * 设置缩进距离,缩进距离 = thyIndent * node.level\n * @type number\n */\n @Input({ transform: numberAttribute }) thyIndent = 25;\n\n /**\n * 拖拽之前的回调,函数返回 false 则阻止拖拽\n */\n @Input() thyBeforeDragStart: (context: ThyTreeBeforeDragStartContext) => boolean;\n\n /**\n * 拖放到元素时回调,函数返回 false 则阻止拖放到当前元素\n */\n @Input() thyBeforeDragDrop: (context: ThyTreeBeforeDragDropContext) => boolean;\n\n /**\n * 设置子 TreeNode 点击事件\n */\n @Output() thyOnClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n @Output() thyOnCheckboxChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置点击展开触发事件\n */\n @Output() thyOnExpandChange: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 拖拽事件\n */\n @Output() thyOnDragDrop: EventEmitter<ThyTreeDragDropEvent> = new EventEmitter<ThyTreeDragDropEvent>();\n\n /**\n * 双击 TreeNode 事件\n */\n @Output() thyDblClick: EventEmitter<ThyTreeEmitEvent> = new EventEmitter<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n @ContentChild('treeNodeTemplate', { static: true })\n set templateRef(template: TemplateRef<any>) {\n if (template) {\n this._templateRef = template;\n }\n }\n\n get templateRef() {\n return this._templateRef;\n }\n\n /**\n * 设置子的空数据渲染模板\n */\n @ContentChild('emptyChildrenTemplate', { static: true }) emptyChildrenTemplate: TemplateRef<any>;\n set emptyChildrenTemplateRef(template: TemplateRef<any>) {\n if (template) {\n this._emptyChildrenTemplateRef = template;\n }\n }\n\n get emptyChildrenTemplateRef() {\n return this._emptyChildrenTemplateRef;\n }\n\n @HostBinding('class.thy-tree')\n thyTreeClass = true;\n\n @HostBinding('class.thy-tree-dragging')\n dragging: boolean;\n\n @ViewChildren(CdkDrag) cdkDrags: QueryList<CdkDrag<ThyTreeNode>>;\n\n ngOnInit(): void {\n this._initThyNodes();\n this._setTreeType();\n this._setTreeSize();\n this._instanceSelectionModel();\n this._selectTreeNodes(this.thySelectedKeys);\n\n this.thyTreeService.flattenNodes$.subscribe(flattenTreeNodes => {\n this.flattenTreeNodes = flattenTreeNodes;\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit(): void {\n this.cdkDrags.changes\n .pipe(startWith(this.cdkDrags), takeUntil(this.destroy$))\n .subscribe((drags: QueryList<CdkDrag<ThyTreeNode>>) => {\n this.nodeDragsMap.clear();\n drags.forEach(drag => {\n if (drag.data) {\n // cdkDrag 变化时,缓存 Element 与 DragRef 的关系,方便 Drag Move 时查找\n this.nodeDragsMap.set(drag.element.nativeElement, drag);\n }\n });\n });\n\n this.nodeDragMoved\n .pipe(\n // auditTime(30),\n // auditTime 可能会导致拖动结束后仍然执行 moved ,所以通过判断 dragging 状态来过滤无效 moved\n filter((event: CdkDragMove) => event.source._dragRef.isDragging()),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n this.onDragMoved(event);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyNodes && !changes.thyNodes.isFirstChange()) {\n this._initThyNodes();\n }\n if (changes.thyType && !changes.thyType.isFirstChange()) {\n this._setTreeType();\n }\n if (changes.thyMultiple && !changes.thyMultiple.isFirstChange()) {\n this._instanceSelectionModel();\n }\n\n if (changes.thySelectedKeys && !changes.thySelectedKeys.isFirstChange()) {\n this._selectedKeys = changes.thySelectedKeys.currentValue;\n this._selectTreeNodes(changes.thySelectedKeys.currentValue);\n }\n\n if (changes.thyExpandedKeys && !changes.thyExpandedKeys.isFirstChange()) {\n this._handleExpandedKeys();\n }\n if (changes.thyExpandAll && !changes.thyExpandAll.isFirstChange()) {\n this._handleExpandedKeys();\n }\n }\n\n renderView = () => {};\n\n eventTriggerChanged(event: ThyTreeEmitEvent): void {\n switch (event.eventName) {\n case 'expand':\n this.thyOnExpandChange.emit(event);\n break;\n\n case 'checkboxChange':\n this.thyOnCheckboxChange.emit(event);\n break;\n }\n }\n\n private _initThyNodes() {\n this._expandedKeys = this.getExpandedNodes().map(node => node.key);\n this._selectedKeys = this.getSelectedNodes().map(node => node.key);\n this.thyTreeService.initializeTreeNodes(this.thyNodes);\n this.flattenTreeNodes = this.thyTreeService.flattenTreeNodes;\n this._selectTreeNodes(this._selectedKeys);\n this._handleExpandedKeys();\n }\n\n private _handleExpandedKeys() {\n if (this.thyExpandedKeys?.length) {\n this._expandedKeys = helpers.concatArray(\n this.thyExpandedKeys.filter(key => !this._expandedKeys.includes(key)),\n this._expandedKeys\n );\n }\n this.thyTreeService.expandTreeNodes(this.thyExpandAll || this._expandedKeys);\n }\n\n private _setTreeType() {\n if (this.thyType && treeTypeClassMap[this.thyType]) {\n treeTypeClassMap[this.thyType].forEach(className => {\n this.hostRenderer.addClass(className);\n });\n }\n }\n\n private _setTreeSize() {\n if (this.thySize) {\n this.hostRenderer.addClass(`thy-tree-${this.thySize}`);\n }\n }\n\n private _instanceSelectionModel() {\n this._selectionModel = new SelectionModel<any>(this.thyMultiple);\n }\n\n private _selectTreeNodes(keys: (string | number)[]) {\n (keys || []).forEach(key => {\n const node = this.thyTreeService.getTreeNode(key);\n if (node) {\n this.selectTreeNode(this.thyTreeService.getTreeNode(key));\n }\n });\n }\n\n isSelected(node: ThyTreeNode) {\n return this._selectionModel.isSelected(node);\n }\n\n toggleTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this._selectionModel.toggle(node);\n }\n }\n\n trackByFn(index: number, item: any) {\n return item.key || index;\n }\n\n isShowExpand(node: ThyTreeNode) {\n if (helpers.isFunction(this.thyShowExpand)) {\n return (this.thyShowExpand as Function)(node);\n } else {\n return this.thyShowExpand;\n }\n }\n\n writeValue(value: ThyTreeNodeData[]): void {\n if (value) {\n this.thyNodes = value;\n this._initThyNodes();\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n onDragStarted(event: CdkDragStart<ThyTreeNode>) {\n this.dragging = true;\n this.startDragNodeClone = Object.assign({}, event.source.data);\n if (event.source.data.isExpanded) {\n event.source.data.setExpanded(false);\n }\n }\n\n emitDragMoved(event: CdkDragMove) {\n this.nodeDragMoved.next(event);\n }\n\n onDragMoved(event: CdkDragMove<ThyTreeNode>) {\n // 通过鼠标位置查找对应的目标 Item 元素\n let currentPointElement = this.document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y) as HTMLElement;\n if (!currentPointElement) {\n this.cleanupDragArtifacts();\n return;\n }\n let targetElement = currentPointElement.classList.contains('thy-tree-node')\n ? currentPointElement\n : (currentPointElement.closest('.thy-tree-node') as HTMLElement);\n if (!targetElement) {\n this.cleanupDragArtifacts();\n return;\n }\n // 缓存放置目标Id 并计算鼠标相对应的位置\n this.nodeDropTarget = {\n key: this.nodeDragsMap.get(targetElement)?.data.key,\n position: this.getTargetPosition(targetElement, event)\n };\n // 执行外部传入的 dropEnterPredicate 判断是否允许拖入目标项\n if (this.dropEnterPredicate) {\n const targetDragRef = this.nodeDragsMap.get(targetElement);\n if (\n this.dropEnterPredicate({\n source: event.source.data,\n target: targetDragRef.data,\n dropPosition: this.nodeDropTarget.position\n })\n ) {\n this.showDropPositionPlaceholder(targetElement);\n } else {\n this.nodeDropTarget = null;\n this.cleanupDragArtifacts();\n }\n } else {\n this.showDropPositionPlaceholder(targetElement);\n }\n }\n\n onDragEnded(event: CdkDragEnd<ThyTreeNode>) {\n this.dragging = false;\n // 拖拽结束后恢复原始的展开状态\n event.source.data.setExpanded(this.startDragNodeClone.isExpanded);\n setTimeout(() => {\n this.startDragNodeClone = null;\n });\n }\n\n onListDropped(event: CdkDragDrop<ThyTreeNode[], ThyTreeNode[], ThyTreeNode>) {\n if (!this.nodeDropTarget) {\n return;\n }\n if (!this.isShowExpand(this.startDragNodeClone) && this.nodeDropTarget.position === ThyTreeDropPosition.in) {\n this.cleanupDragArtifacts();\n return;\n }\n\n const sourceNode = this.startDragNodeClone;\n const sourceNodeParent = sourceNode.parentNode;\n const targetDragRef = this.cdkDrags.find(item => item.data?.key === this.nodeDropTarget.key);\n const targetNode = targetDragRef?.data;\n const targetNodeParent = targetNode.parentNode;\n\n const beforeDragDropContext: ThyTreeBeforeDragDropContext = {\n previousItem: sourceNode,\n previousContainerItems: sourceNodeParent?.children,\n item: targetNode,\n containerItems: targetNodeParent?.children,\n position: this.nodeDropTarget.position\n };\n\n if (this.thyBeforeDragDrop && !this.thyBeforeDragDrop(beforeDragDropContext)) {\n this.cleanupDragArtifacts();\n return;\n }\n\n this.thyTreeService.deleteTreeNode(sourceNode);\n\n switch (this.nodeDropTarget.position) {\n case 'before':\n const beforeInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode);\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, beforeInsertIndex);\n break;\n case 'after':\n const afterInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode) + 1;\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, afterInsertIndex);\n break;\n case 'in':\n this.thyTreeService.addTreeNode(sourceNode, targetNode);\n break;\n }\n\n this.thyTreeService.syncFlattenTreeNodes();\n\n let after: ThyTreeNode = null;\n let targe: ThyTreeNode = null;\n if (beforeDragDropContext.position === ThyTreeDropPosition.before) {\n const targetContainerNodes = targetNodeParent?.children || this.treeNodes;\n after = targetContainerNodes[targetContainerNodes.indexOf(targetNode) - 2];\n targe = targetNodeParent;\n } else if (beforeDragDropContext.position === ThyTreeDropPosition.after) {\n after = targetNode;\n targe = targetNodeParent;\n } else {\n after = targetNode.children?.length > 0 ? targetNode.children[targetNode.children.length - 2] : null;\n targe = targetNode;\n }\n\n this.thyOnDragDrop.emit({\n dragNode: this.thyTreeService.getTreeNode(sourceNode.key),\n targetNode: targe,\n afterNode: after\n });\n\n this.cleanupDragArtifacts();\n }\n\n private getTargetPosition(target: HTMLElement, event: CdkDragMove) {\n const targetRect = target.getBoundingClientRect();\n const beforeOrAfterGap = targetRect.height * 0.3;\n // 将 Node 高度分为上中下三段,其中上下的 Gap 为 height 的 30%,通过判断鼠标位置在哪一段 gap 来计算对应的位置\n if (event.pointerPosition.y - targetRect.top < beforeOrAfterGap) {\n return ThyTreeDropPosition.before;\n } else if (event.pointerPosition.y >= targetRect.bottom - beforeOrAfterGap) {\n return ThyTreeDropPosition.after;\n } else {\n return ThyTreeDropPosition.in;\n }\n }\n\n private showDropPositionPlaceholder(targetElement: HTMLElement) {\n this.cleanupDropPositionPlaceholder();\n if (this.nodeDropTarget && targetElement) {\n targetElement.classList.add(`drop-position-${this.nodeDropTarget.position}`);\n }\n }\n\n private cleanupDropPositionPlaceholder() {\n this.document.querySelectorAll('.drop-position-before').forEach(element => element.classList.remove('drop-position-before'));\n this.document.querySelectorAll('.drop-position-after').forEach(element => element.classList.remove('drop-position-after'));\n this.document.querySelectorAll('.drop-position-in').forEach(element => element.classList.remove('drop-position-in'));\n }\n\n private cleanupDragArtifacts() {\n this.nodeDropTarget = null;\n this.cleanupDropPositionPlaceholder();\n }\n\n // region Public Functions\n\n selectTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this._selectionModel.select(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n }\n\n getRootNodes(): ThyTreeNode[] {\n return this.treeNodes;\n }\n\n getTreeNode(key: string) {\n return this.thyTreeService.getTreeNode(key);\n }\n\n getSelectedNode(): ThyTreeNode {\n return this._selectionModel ? this._selectionModel.selected[0] : null;\n }\n\n getSelectedNodes(): ThyTreeNode[] {\n return this._selectionModel ? this._selectionModel.selected : [];\n }\n\n getExpandedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getExpandedNodes();\n }\n\n getCheckedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getCheckedNodes();\n }\n\n addTreeNode(node: ThyTreeNodeData, parent?: ThyTreeNode, index = -1) {\n this.thyTreeService.addTreeNode(new ThyTreeNode(node, null, this.thyTreeService), parent, index);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n deleteTreeNode(node: ThyTreeNode) {\n if (this.isSelected(node)) {\n this._selectionModel.toggle(node);\n }\n this.thyTreeService.deleteTreeNode(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n expandAllNodes() {\n const nodes = this.getRootNodes();\n nodes.forEach(n => n.setExpanded(true, true));\n }\n\n collapsedAllNodes() {\n const nodes = this.getRootNodes();\n nodes.forEach(n => n.setExpanded(false, true));\n }\n\n // endregion\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","@if (thyVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #viewport\n [itemSize]=\"thyItemSize\"\n [style.height]=\"'100%'\"\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodes\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\"\n >\n <div class=\"virtual-trees-container\">\n <thy-tree-node\n *cdkVirtualFor=\"let node of flattenTreeNodes; trackBy: trackByFn; let i = index\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!thyDraggable || !(node | treeNodeDraggable : thyBeforeDragStart)\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate\"\n [thyAsync]=\"thyAsync\"\n [thyDraggable]=\"thyDraggable\"\n [thyCheckable]=\"thyCheckable\"\n [thyMultiple]=\"thyMultiple\"\n [thyClickBehavior]=\"thyClickBehavior\"\n [thyTitleTruncate]=\"thyTitleTruncate\"\n [thyItemSize]=\"thyItemSize\"\n [thyIndent]=\"thyIndent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"eventTriggerChanged($event)\">\n </thy-tree-node>\n </div>\n </cdk-virtual-scroll-viewport>\n}\n\n@if (!thyVirtualScroll) {\n <div\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodes\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\">\n @for (node of flattenTreeNodes; track trackByFn(i, node); let i = $index) {\n <thy-tree-node\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!thyDraggable || !(node | treeNodeDraggable : thyBeforeDragStart)\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate\"\n [thyAsync]=\"thyAsync\"\n [thyDraggable]=\"thyDraggable\"\n [thyCheckable]=\"thyCheckable\"\n [thyMultiple]=\"thyMultiple\"\n [thyTitleTruncate]=\"thyTitleTruncate\"\n [thyItemSize]=\"thyItemSize\"\n [thyClickBehavior]=\"thyClickBehavior\"\n [thyIndent]=\"thyIndent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"thyOnCheckboxChange.emit($event)\">\n </thy-tree-node>\n }\n </div>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyCheckboxModule } from 'ngx-tethys/checkbox';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyOptionModule, ThySharedModule } from 'ngx-tethys/shared';\n\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { ThyTree } from './tree.component';\nimport { ThyTreeService } from './tree.service';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\n\n@NgModule({\n imports: [\n DragDropModule,\n CommonModule,\n ThyInputModule,\n ThyButtonModule,\n ThySharedModule,\n FormsModule,\n ThyListModule,\n ThyOptionModule,\n ThyLoadingModule,\n ThyIconModule,\n ThyCheckboxModule,\n ScrollingModule,\n ThyTree,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ],\n exports: [ThyTree, ThyTreeNodeComponent],\n providers: [ThyTreeService]\n})\nexport class ThyTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,10 @@ import { useHostRenderer } from '@tethys/cdk/dom';
|
|
|
13
13
|
class ThyText {
|
|
14
14
|
constructor() { }
|
|
15
15
|
ngOnInit() { }
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyText, isStandalone: true, selector: "thy-text, [thyText]:not(thy-divider)", inputs: { thyIcon: "thyIcon" }, host: { classAttribute: "thy-text" }, ngImport: i0, template: "@if (thyIcon) {\n <thy-icon [thyIconName]=\"thyIcon\"></thy-icon>\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyText, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'thy-text, [thyText]:not(thy-divider)', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
22
22
|
class: 'thy-text'
|
|
@@ -59,10 +59,10 @@ class ThyTextColorDirective {
|
|
|
59
59
|
this.hostRenderer.removeClass(`text-${this.color}`);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
63
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTextColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
63
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ThyTextColorDirective, isStandalone: true, selector: "[thyTextColor]", inputs: { thyTextColor: "thyTextColor" }, exportAs: ["thyTextColor"], ngImport: i0 }); }
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTextColorDirective, decorators: [{
|
|
66
66
|
type: Directive,
|
|
67
67
|
args: [{
|
|
68
68
|
selector: '[thyTextColor]',
|
|
@@ -106,10 +106,10 @@ class ThyBackgroundColorDirective {
|
|
|
106
106
|
this.hostRenderer.removeClass(`bg-${this.bgColor}`);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
110
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyBackgroundColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
110
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ThyBackgroundColorDirective, isStandalone: true, selector: "[thyBgColor]", inputs: { thyBgColor: "thyBgColor" }, exportAs: ["thyBgColor"], ngImport: i0 }); }
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyBackgroundColorDirective, decorators: [{
|
|
113
113
|
type: Directive,
|
|
114
114
|
args: [{
|
|
115
115
|
selector: '[thyBgColor]',
|
|
@@ -121,11 +121,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
121
121
|
}] } });
|
|
122
122
|
|
|
123
123
|
class ThyTypographyModule {
|
|
124
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
125
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
126
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTypographyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
125
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyTypographyModule, imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective], exports: [ThyText, ThyTextColorDirective, ThyBackgroundColorDirective] }); }
|
|
126
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTypographyModule, imports: [CommonModule, ThyIconModule, ThyText] }); }
|
|
127
127
|
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTypographyModule, decorators: [{
|
|
129
129
|
type: NgModule,
|
|
130
130
|
args: [{
|
|
131
131
|
imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-typography.mjs","sources":["../../../src/typography/text/text.component.ts","../../../src/typography/text/text.component.html","../../../src/typography/text-color.directive.ts","../../../src/typography/bg-color.directive.ts","../../../src/typography/module.ts","../../../src/typography/ngx-tethys-typography.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 文本组件\n * @name thy-text,[thyText]\n * @order 10\n */\n@Component({\n selector: 'thy-text, [thyText]:not(thy-divider)',\n templateUrl: './text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-text'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyText implements OnInit {\n /**\n * 前置图标\n */\n @Input() thyIcon: string;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","@if (thyIcon) {\n <thy-icon [thyIconName]=\"thyIcon\"></thy-icon>\n}\n<ng-content></ng-content>\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\nimport { isTextColor, isThemeColor, ThyTextColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyTextColor\n * @order 20\n */\n@Directive({\n selector: '[thyTextColor]',\n exportAs: 'thyTextColor',\n standalone: true\n})\nexport class ThyTextColorDirective implements OnInit {\n private elementRef = inject(ElementRef);\n\n private color: ThyThemeColor | ThyTextColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyTextColor | string\n * @description 文本颜色,支持设置主题色和自定义颜色值,主题色为 `default`、`primary`、`success`、`info`、`warning`、`danger`、`light`、`secondary`、`muted`、`desc`、`placeholder`\n */\n @Input() set thyTextColor(value: ThyThemeColor | ThyTextColor | string) {\n this.clearColor();\n this.color = value;\n this.setColor();\n }\n\n ngOnInit(): void {}\n\n private setColor() {\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.addClass(`text-${this.color}`);\n } else {\n this.hostRenderer.setStyle('color', this.color);\n }\n }\n\n private clearColor() {\n this.hostRenderer.setStyle('color', '');\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.removeClass(`text-${this.color}`);\n }\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { isBgColor, isThemeColor, ThyBgColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyBgColor\n * @order 30\n */\n@Directive({\n selector: '[thyBgColor]',\n exportAs: 'thyBgColor',\n standalone: true\n})\nexport class ThyBackgroundColorDirective {\n private elementRef = inject(ElementRef);\n\n private bgColor: ThyThemeColor | ThyBgColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyBgColor | string\n * @description 背景颜色,支持设置主题色和自定义颜色值,主题色为 `primary`、`success`、`info`、`danger`、`warning`、`dark`、`secondary`、`light`、`lighter`、`bright`、`content`、`white`、`transparent`\n */\n @Input() set thyBgColor(value: ThyThemeColor | ThyBgColor | string) {\n this.clearBgColor();\n this.bgColor = value;\n this.setBgColor();\n }\n\n private setBgColor() {\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.addClass(`bg-${this.bgColor}`);\n } else {\n this.hostRenderer.setStyle('background-color', this.bgColor);\n }\n }\n\n private clearBgColor() {\n this.hostRenderer.setStyle('background-color', '');\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.removeClass(`bg-${this.bgColor}`);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyText } from './text/text.component';\nimport { ThyTextColorDirective } from './text-color.directive';\nimport { ThyBackgroundColorDirective } from './bg-color.directive';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n exports: [ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n providers: []\n})\nexport class ThyTypographyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAGA;;;;AAIG;MAWU,OAAO,CAAA;AAMhB,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAW
|
|
1
|
+
{"version":3,"file":"ngx-tethys-typography.mjs","sources":["../../../src/typography/text/text.component.ts","../../../src/typography/text/text.component.html","../../../src/typography/text-color.directive.ts","../../../src/typography/bg-color.directive.ts","../../../src/typography/module.ts","../../../src/typography/ngx-tethys-typography.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 文本组件\n * @name thy-text,[thyText]\n * @order 10\n */\n@Component({\n selector: 'thy-text, [thyText]:not(thy-divider)',\n templateUrl: './text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-text'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyText implements OnInit {\n /**\n * 前置图标\n */\n @Input() thyIcon: string;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","@if (thyIcon) {\n <thy-icon [thyIconName]=\"thyIcon\"></thy-icon>\n}\n<ng-content></ng-content>\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\nimport { isTextColor, isThemeColor, ThyTextColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyTextColor\n * @order 20\n */\n@Directive({\n selector: '[thyTextColor]',\n exportAs: 'thyTextColor',\n standalone: true\n})\nexport class ThyTextColorDirective implements OnInit {\n private elementRef = inject(ElementRef);\n\n private color: ThyThemeColor | ThyTextColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyTextColor | string\n * @description 文本颜色,支持设置主题色和自定义颜色值,主题色为 `default`、`primary`、`success`、`info`、`warning`、`danger`、`light`、`secondary`、`muted`、`desc`、`placeholder`\n */\n @Input() set thyTextColor(value: ThyThemeColor | ThyTextColor | string) {\n this.clearColor();\n this.color = value;\n this.setColor();\n }\n\n ngOnInit(): void {}\n\n private setColor() {\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.addClass(`text-${this.color}`);\n } else {\n this.hostRenderer.setStyle('color', this.color);\n }\n }\n\n private clearColor() {\n this.hostRenderer.setStyle('color', '');\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.removeClass(`text-${this.color}`);\n }\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { isBgColor, isThemeColor, ThyBgColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyBgColor\n * @order 30\n */\n@Directive({\n selector: '[thyBgColor]',\n exportAs: 'thyBgColor',\n standalone: true\n})\nexport class ThyBackgroundColorDirective {\n private elementRef = inject(ElementRef);\n\n private bgColor: ThyThemeColor | ThyBgColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyBgColor | string\n * @description 背景颜色,支持设置主题色和自定义颜色值,主题色为 `primary`、`success`、`info`、`danger`、`warning`、`dark`、`secondary`、`light`、`lighter`、`bright`、`content`、`white`、`transparent`\n */\n @Input() set thyBgColor(value: ThyThemeColor | ThyBgColor | string) {\n this.clearBgColor();\n this.bgColor = value;\n this.setBgColor();\n }\n\n private setBgColor() {\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.addClass(`bg-${this.bgColor}`);\n } else {\n this.hostRenderer.setStyle('background-color', this.bgColor);\n }\n }\n\n private clearBgColor() {\n this.hostRenderer.setStyle('background-color', '');\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.removeClass(`bg-${this.bgColor}`);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyText } from './text/text.component';\nimport { ThyTextColorDirective } from './text-color.directive';\nimport { ThyBackgroundColorDirective } from './bg-color.directive';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n exports: [ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n providers: []\n})\nexport class ThyTypographyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|