ngx-tethys 18.2.4 → 18.2.6
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.service.mjs +4 -4
- 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 +7 -7
- 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 +3 -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 +58 -58
- 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/nav/styles/nav.scss +18 -2
- 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-transfer.mjs","sources":["../../../src/transfer/transfer.interface.ts","../../../src/transfer/transfer-list.component.ts","../../../src/transfer/transfer-list.component.html","../../../src/transfer/transfer.component.ts","../../../src/transfer/transfer.component.html","../../../src/transfer/transfer.module.ts","../../../src/transfer/ngx-tethys-transfer.ts"],"sourcesContent":["export type Direction = 'left' | 'right';\n\nexport enum TransferDirection {\n left = 'left',\n right = 'right'\n}\n\nexport interface ThyTransferData {\n source: ThyTransferModel;\n target: ThyTransferModel;\n}\n\nexport interface ThyTransferModel {\n title?: string;\n data: Array<any>;\n}\n\n/**\n * @public\n * @order 20\n */\nexport interface ThyTransferItem {\n /**\n * 数据标题\n */\n title: string;\n\n /**\n * 设置方向,可选值 [left,right]\n */\n direction?: Direction;\n\n order?: number;\n\n disabled?: boolean;\n\n /**\n * 选中状态\n */\n checked?: boolean;\n\n isLock?: boolean;\n\n groupId?: string;\n\n isFixed?: boolean;\n\n /**\n * 自定义数据\n */\n [key: string]: any;\n}\n\nexport interface ThyTransferSelectEvent {\n item: ThyTransferItem;\n}\n\nexport interface ThyTransferChangeEvent {\n from?: string;\n to?: string;\n items?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface ThyTransferDragEvent {\n oldIndex?: number;\n newIndex?: number;\n model?: ThyTransferItem;\n models?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface InnerTransferDragEvent {\n dragEvent?: ThyTransferDragEvent;\n listData?: InnerTransferList;\n}\n\nexport interface InnerTransferList {\n lock?: ThyTransferItem[];\n unlock?: ThyTransferItem[];\n}\n","import { CdkDrag, CdkDragDrop, CdkDropList, CdkDropListGroup, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport {\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnInit,\n Output,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyList, ThyListItem } from 'ngx-tethys/list';\nimport { ThyDragDropDirective } from 'ngx-tethys/shared';\nimport { InnerTransferDragEvent, ThyTransferDragEvent, ThyTransferItem, ThyTransferSelectEvent } from './transfer.interface';\nimport { injectLocale, ThyTransferLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-transfer-list',\n templateUrl: './transfer-list.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet]\n})\nexport class ThyTransferList implements OnInit, DoCheck {\n private differs = inject(IterableDiffers);\n\n public lockItems: ThyTransferItem[] = [];\n\n public unlockItems: ThyTransferItem[] = [];\n\n private _diff: IterableDiffer<ThyTransferItem>;\n\n private _lockDiff: IterableDiffer<ThyTransferItem>;\n\n private _unlockDiff: IterableDiffer<ThyTransferItem>;\n\n locale: Signal<ThyTransferLocale> = injectLocale('transfer');\n\n @Input() title: string;\n\n @Input() items: ThyTransferItem[];\n\n @Input() draggable: boolean;\n\n @Input() canLock: boolean;\n\n @Input() maxLock: number;\n\n @Input() max: number;\n\n @Input() disabled: boolean;\n\n @Input() template: TemplateRef<any>;\n\n @Input('renderContentRef') contentRef: TemplateRef<any>;\n\n @Output() draggableUpdate: EventEmitter<InnerTransferDragEvent> = new EventEmitter<InnerTransferDragEvent>();\n\n @Output() selectItem: EventEmitter<ThyTransferSelectEvent> = new EventEmitter<ThyTransferSelectEvent>();\n\n @Output() unselectItem: EventEmitter<ThyTransferSelectEvent> = new EventEmitter<ThyTransferSelectEvent>();\n\n @HostBinding('class') hostClass = 'thy-transfer-list';\n\n ngOnInit() {\n this._combineTransferData();\n if (this.canLock) {\n this._lockDiff = this.differs.find(this.lockItems).create();\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n } else {\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n }\n this._diff = this.differs.find(this.items).create();\n }\n\n private _combineTransferData() {\n this.lockItems = [];\n this.unlockItems = [];\n if (this.canLock) {\n (this.items || []).forEach(item => {\n if (item.isLock) {\n this.lockItems.push(item);\n } else {\n this.unlockItems.push(item);\n }\n });\n } else {\n this.unlockItems = this.items;\n }\n }\n\n private _afterChangeItems(changes: IterableChanges<ThyTransferItem>, items: ThyTransferItem[]) {\n // 数据发生变化时,更改order值\n changes.forEachAddedItem(record => {\n record.item.order = record.currentIndex;\n });\n changes.forEachRemovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n changes.forEachMovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n }\n\n ngDoCheck() {\n const changes = this._diff.diff(this.items);\n if (changes) {\n this._afterChangeItems(changes, this.items);\n this._combineTransferData();\n }\n if (this._lockDiff) {\n const lockChanges = this._lockDiff.diff(this.lockItems);\n if (lockChanges) {\n this._afterChangeItems(lockChanges, this.lockItems);\n }\n }\n const unlockChanges = this._unlockDiff.diff(this.unlockItems);\n if (unlockChanges) {\n this._afterChangeItems(unlockChanges, this.unlockItems);\n }\n }\n\n lockListEnterPredicate = () => {\n return this.lockItems.length < this.maxLock;\n };\n\n unlockListEnterPredicate = (event: CdkDrag<ThyTransferItem>) => {\n return !event.data.isFixed;\n };\n\n onSelectItem = (item: ThyTransferItem) => {\n this.selectItem.emit({ item });\n };\n\n onUnselectItem = (item: ThyTransferItem) => {\n this.unselectItem.emit({ item });\n };\n\n drop(event: CdkDragDrop<ThyTransferItem[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n (event.previousContainer.data || []).forEach(item => {\n item.isLock = event.previousContainer.id === 'lock';\n });\n\n (event.container.data || []).forEach(item => {\n item.isLock = event.container.id === 'lock';\n });\n }\n const dragEvent: ThyTransferDragEvent = {\n model: event.item.data,\n models: event.container.data,\n oldIndex: event.previousIndex,\n newIndex: event.currentIndex\n };\n this.draggableUpdate.emit({\n dragEvent: dragEvent,\n listData: { lock: this.lockItems, unlock: this.unlockItems }\n });\n }\n}\n","<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} · {{ items?.length }}\n @if (max) {\n <span>{{ locale().maxLimit.replace('{max}', max) }}</span>\n }\n </span>\n</div>\n@if (!contentRef) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n @if (canLock) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock) }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n","import { Component, ContentChild, EventEmitter, HostBinding, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport {\n Direction,\n InnerTransferDragEvent,\n ThyTransferChangeEvent,\n ThyTransferDragEvent,\n ThyTransferItem,\n ThyTransferSelectEvent,\n TransferDirection\n} from './transfer.interface';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyTransferList } from './transfer-list.component';\n\n/**\n * 穿梭框组件\n * @name thy-transfer\n * @order 10\n */\n@Component({\n selector: 'thy-transfer',\n templateUrl: './transfer.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText]\n})\nexport class ThyTransfer implements OnInit {\n @HostBinding('class') hostClass = 'thy-transfer';\n\n public leftDataSource: ThyTransferItem[] = [];\n\n public rightDataSource: ThyTransferItem[] = [];\n\n public allDataSource: ThyTransferItem[] = [];\n\n public leftTitle: string;\n\n public rightTitle: string;\n\n public rightDraggable = false;\n\n private _autoMove = true;\n\n /**\n * 数据源\n * @type ThyTransferItem[]\n */\n @Input()\n set thyData(value: ThyTransferItem[]) {\n if (value) {\n this.initializeTransferData(value);\n }\n }\n\n @Input() thyrenderLeftTemplateRef: TemplateRef<any>;\n\n @Input() thyrenderRightTemplateRef: TemplateRef<any>;\n\n /**\n * title集合,title[0]为左标题,title[1]为右标题\n * @type string[]\n */\n @Input()\n set thyTitles(value: string[]) {\n this.leftTitle = value[0] || '';\n this.rightTitle = value[1] || '';\n }\n\n /**\n * 右侧列表是否可以锁定\n * @default false\n */\n @Input() thyRightCanLock: boolean;\n\n /**\n * 右侧锁定最大数量\n */\n @Input() thyRightLockMax: number;\n\n /**\n * 右侧选择最大数量\n */\n @Input() thyRightMax: number;\n\n /**\n * 设置是否自动移动\n * @description.en-us Currently not implemented, in order to support the selections move\n * @default true\n */\n @Input()\n set thyAutoMove(value: boolean) {\n this._autoMove = value;\n }\n\n /**\n * 左侧列表是否拖动\n * @default false\n */\n @Input() thyLeftDraggable: boolean;\n\n /**\n * 右侧列表是否拖动\n * @default false\n */\n @Input() thyRightDraggable: boolean;\n\n /**\n * @type EventEmitter<ThyTransferDragEvent>\n */\n @Output() thyDraggableUpdate: EventEmitter<ThyTransferDragEvent> = new EventEmitter<ThyTransferDragEvent>();\n\n /**\n * Transfer变化的回调事件\n * @type EventEmitter<ThyTransferChangeEvent>\n */\n @Output() thyChange: EventEmitter<ThyTransferChangeEvent> = new EventEmitter<ThyTransferChangeEvent>();\n\n /**\n * 设置自定义Item渲染数据模板\n * @type TemplateRef\n */\n @ContentChild('renderTemplate') templateRef: TemplateRef<any>;\n\n /**\n * 设置自定义左侧内容模板\n * @type TemplateRef\n */\n @ContentChild('renderLeftTemplate') leftContentRef: TemplateRef<any>;\n\n /**\n * 设置自定义右侧内容模板\n * @type TemplateRef\n */\n @ContentChild('renderRightTemplate') rightContentRef: TemplateRef<any>;\n\n ngOnInit() {}\n\n initializeTransferData(data: ThyTransferItem[] = []) {\n this.allDataSource = [];\n this.leftDataSource = [];\n this.rightDataSource = [];\n data.forEach(item => {\n this.allDataSource.push(item);\n if (item.direction === TransferDirection.left) {\n this.leftDataSource.push(item);\n }\n if (item.direction === TransferDirection.right) {\n this.rightDataSource.push(item);\n }\n });\n }\n\n onSelect(from: Direction, event: ThyTransferSelectEvent) {\n if (event.item.isFixed) {\n return;\n }\n if (this.thyRightMax <= this.rightDataSource.length && from === TransferDirection.left) {\n return;\n }\n const to = from === TransferDirection.left ? TransferDirection.right : TransferDirection.left;\n event.item.checked = !event.item.checked;\n if (this._autoMove) {\n this.onMove(to);\n }\n }\n\n selectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.left, event);\n }\n\n unselectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.right, event);\n }\n\n private groupListByIsLock(list: ThyTransferItem[] = []) {\n const lock: ThyTransferItem[] = [],\n unlock: ThyTransferItem[] = [];\n list.forEach(item => {\n if (item.isLock) {\n lock.push(item);\n } else {\n unlock.push(item);\n }\n });\n return { lock: lock, unlock: unlock };\n }\n\n onMove(to: Direction) {\n const fromDataSource = to === TransferDirection.right ? this.leftDataSource : this.rightDataSource;\n const toDataSource = to === TransferDirection.right ? this.rightDataSource : this.leftDataSource;\n const selections = fromDataSource.filter(item => item.checked);\n const changeEvent: ThyTransferChangeEvent = {\n from: to === TransferDirection.right ? TransferDirection.left : TransferDirection.right,\n to: to,\n items: [...selections]\n };\n selections.forEach(item => {\n const index = fromDataSource.indexOf(item);\n const removed = fromDataSource.splice(index, 1)[0];\n removed.checked = !removed.checked;\n removed.direction = to;\n toDataSource.push(removed);\n });\n this.thyChange.emit({\n ...changeEvent,\n left: this.groupListByIsLock(this.leftDataSource),\n right: this.groupListByIsLock(this.rightDataSource)\n });\n }\n\n onDragUpdate(direction: Direction, event: InnerTransferDragEvent) {\n const otherDirectionData = direction === TransferDirection.left ? this.rightDataSource : this.leftDataSource;\n const otherListData = this.groupListByIsLock(otherDirectionData);\n this.thyDraggableUpdate.emit({\n ...event.dragEvent,\n left: direction === TransferDirection.left ? event.listData : otherListData,\n right: direction === TransferDirection.right ? event.listData : otherListData\n });\n\n this.rightDataSource =\n direction === TransferDirection.right\n ? [...event.listData.lock, ...event.listData.unlock]\n : [...otherListData.lock, ...otherListData.unlock];\n }\n}\n","<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTransfer } from './transfer.component';\nimport { ThyTransferList } from './transfer-list.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\n@NgModule({\n imports: [\n CommonModule,\n ThyButtonModule,\n DragDropModule,\n ThyIconModule,\n ThyListModule,\n ThySharedModule,\n ThyFlexibleTextModule,\n ThyTransfer,\n ThyTransferList\n ],\n exports: [ThyTransfer]\n})\nexport class ThyTransferModule {}\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-transfer.mjs","sources":["../../../src/transfer/transfer.interface.ts","../../../src/transfer/transfer-list.component.ts","../../../src/transfer/transfer-list.component.html","../../../src/transfer/transfer.component.ts","../../../src/transfer/transfer.component.html","../../../src/transfer/transfer.module.ts","../../../src/transfer/ngx-tethys-transfer.ts"],"sourcesContent":["export type Direction = 'left' | 'right';\n\nexport enum TransferDirection {\n left = 'left',\n right = 'right'\n}\n\nexport interface ThyTransferData {\n source: ThyTransferModel;\n target: ThyTransferModel;\n}\n\nexport interface ThyTransferModel {\n title?: string;\n data: Array<any>;\n}\n\n/**\n * @public\n * @order 20\n */\nexport interface ThyTransferItem {\n /**\n * 数据标题\n */\n title: string;\n\n /**\n * 设置方向,可选值 [left,right]\n */\n direction?: Direction;\n\n order?: number;\n\n disabled?: boolean;\n\n /**\n * 选中状态\n */\n checked?: boolean;\n\n isLock?: boolean;\n\n groupId?: string;\n\n isFixed?: boolean;\n\n /**\n * 自定义数据\n */\n [key: string]: any;\n}\n\nexport interface ThyTransferSelectEvent {\n item: ThyTransferItem;\n}\n\nexport interface ThyTransferChangeEvent {\n from?: string;\n to?: string;\n items?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface ThyTransferDragEvent {\n oldIndex?: number;\n newIndex?: number;\n model?: ThyTransferItem;\n models?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface InnerTransferDragEvent {\n dragEvent?: ThyTransferDragEvent;\n listData?: InnerTransferList;\n}\n\nexport interface InnerTransferList {\n lock?: ThyTransferItem[];\n unlock?: ThyTransferItem[];\n}\n","import { CdkDrag, CdkDragDrop, CdkDropList, CdkDropListGroup, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport {\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnInit,\n Output,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyList, ThyListItem } from 'ngx-tethys/list';\nimport { ThyDragDropDirective } from 'ngx-tethys/shared';\nimport { InnerTransferDragEvent, ThyTransferDragEvent, ThyTransferItem, ThyTransferSelectEvent } from './transfer.interface';\nimport { injectLocale, ThyTransferLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-transfer-list',\n templateUrl: './transfer-list.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet]\n})\nexport class ThyTransferList implements OnInit, DoCheck {\n private differs = inject(IterableDiffers);\n\n public lockItems: ThyTransferItem[] = [];\n\n public unlockItems: ThyTransferItem[] = [];\n\n private _diff: IterableDiffer<ThyTransferItem>;\n\n private _lockDiff: IterableDiffer<ThyTransferItem>;\n\n private _unlockDiff: IterableDiffer<ThyTransferItem>;\n\n locale: Signal<ThyTransferLocale> = injectLocale('transfer');\n\n @Input() title: string;\n\n @Input() items: ThyTransferItem[];\n\n @Input() draggable: boolean;\n\n @Input() canLock: boolean;\n\n @Input() maxLock: number;\n\n @Input() max: number;\n\n @Input() disabled: boolean;\n\n @Input() template: TemplateRef<any>;\n\n @Input('renderContentRef') contentRef: TemplateRef<any>;\n\n @Output() draggableUpdate: EventEmitter<InnerTransferDragEvent> = new EventEmitter<InnerTransferDragEvent>();\n\n @Output() selectItem: EventEmitter<ThyTransferSelectEvent> = new EventEmitter<ThyTransferSelectEvent>();\n\n @Output() unselectItem: EventEmitter<ThyTransferSelectEvent> = new EventEmitter<ThyTransferSelectEvent>();\n\n @HostBinding('class') hostClass = 'thy-transfer-list';\n\n ngOnInit() {\n this._combineTransferData();\n if (this.canLock) {\n this._lockDiff = this.differs.find(this.lockItems).create();\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n } else {\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n }\n this._diff = this.differs.find(this.items).create();\n }\n\n private _combineTransferData() {\n this.lockItems = [];\n this.unlockItems = [];\n if (this.canLock) {\n (this.items || []).forEach(item => {\n if (item.isLock) {\n this.lockItems.push(item);\n } else {\n this.unlockItems.push(item);\n }\n });\n } else {\n this.unlockItems = this.items;\n }\n }\n\n private _afterChangeItems(changes: IterableChanges<ThyTransferItem>, items: ThyTransferItem[]) {\n // 数据发生变化时,更改order值\n changes.forEachAddedItem(record => {\n record.item.order = record.currentIndex;\n });\n changes.forEachRemovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n changes.forEachMovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n }\n\n ngDoCheck() {\n const changes = this._diff.diff(this.items);\n if (changes) {\n this._afterChangeItems(changes, this.items);\n this._combineTransferData();\n }\n if (this._lockDiff) {\n const lockChanges = this._lockDiff.diff(this.lockItems);\n if (lockChanges) {\n this._afterChangeItems(lockChanges, this.lockItems);\n }\n }\n const unlockChanges = this._unlockDiff.diff(this.unlockItems);\n if (unlockChanges) {\n this._afterChangeItems(unlockChanges, this.unlockItems);\n }\n }\n\n lockListEnterPredicate = () => {\n return this.lockItems.length < this.maxLock;\n };\n\n unlockListEnterPredicate = (event: CdkDrag<ThyTransferItem>) => {\n return !event.data.isFixed;\n };\n\n onSelectItem = (item: ThyTransferItem) => {\n this.selectItem.emit({ item });\n };\n\n onUnselectItem = (item: ThyTransferItem) => {\n this.unselectItem.emit({ item });\n };\n\n drop(event: CdkDragDrop<ThyTransferItem[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n (event.previousContainer.data || []).forEach(item => {\n item.isLock = event.previousContainer.id === 'lock';\n });\n\n (event.container.data || []).forEach(item => {\n item.isLock = event.container.id === 'lock';\n });\n }\n const dragEvent: ThyTransferDragEvent = {\n model: event.item.data,\n models: event.container.data,\n oldIndex: event.previousIndex,\n newIndex: event.currentIndex\n };\n this.draggableUpdate.emit({\n dragEvent: dragEvent,\n listData: { lock: this.lockItems, unlock: this.unlockItems }\n });\n }\n}\n","<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title }} · {{ items?.length }}\n @if (max) {\n <span>{{ locale().maxLimit.replace('{max}', max) }}</span>\n }\n </span>\n</div>\n@if (!contentRef) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable\">\n @if (canLock) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock) }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n contentRef;\n context: {\n $implicit: items,\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n","import { Component, ContentChild, EventEmitter, HostBinding, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport {\n Direction,\n InnerTransferDragEvent,\n ThyTransferChangeEvent,\n ThyTransferDragEvent,\n ThyTransferItem,\n ThyTransferSelectEvent,\n TransferDirection\n} from './transfer.interface';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyTransferList } from './transfer-list.component';\n\n/**\n * 穿梭框组件\n * @name thy-transfer\n * @order 10\n */\n@Component({\n selector: 'thy-transfer',\n templateUrl: './transfer.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText]\n})\nexport class ThyTransfer implements OnInit {\n @HostBinding('class') hostClass = 'thy-transfer';\n\n public leftDataSource: ThyTransferItem[] = [];\n\n public rightDataSource: ThyTransferItem[] = [];\n\n public allDataSource: ThyTransferItem[] = [];\n\n public leftTitle: string;\n\n public rightTitle: string;\n\n public rightDraggable = false;\n\n private _autoMove = true;\n\n /**\n * 数据源\n * @type ThyTransferItem[]\n */\n @Input()\n set thyData(value: ThyTransferItem[]) {\n if (value) {\n this.initializeTransferData(value);\n }\n }\n\n @Input() thyrenderLeftTemplateRef: TemplateRef<any>;\n\n @Input() thyrenderRightTemplateRef: TemplateRef<any>;\n\n /**\n * title集合,title[0]为左标题,title[1]为右标题\n * @type string[]\n */\n @Input()\n set thyTitles(value: string[]) {\n this.leftTitle = value[0] || '';\n this.rightTitle = value[1] || '';\n }\n\n /**\n * 右侧列表是否可以锁定\n * @default false\n */\n @Input() thyRightCanLock: boolean;\n\n /**\n * 右侧锁定最大数量\n */\n @Input() thyRightLockMax: number;\n\n /**\n * 右侧选择最大数量\n */\n @Input() thyRightMax: number;\n\n /**\n * 设置是否自动移动\n * @description.en-us Currently not implemented, in order to support the selections move\n * @default true\n */\n @Input()\n set thyAutoMove(value: boolean) {\n this._autoMove = value;\n }\n\n /**\n * 左侧列表是否拖动\n * @default false\n */\n @Input() thyLeftDraggable: boolean;\n\n /**\n * 右侧列表是否拖动\n * @default false\n */\n @Input() thyRightDraggable: boolean;\n\n /**\n * @type EventEmitter<ThyTransferDragEvent>\n */\n @Output() thyDraggableUpdate: EventEmitter<ThyTransferDragEvent> = new EventEmitter<ThyTransferDragEvent>();\n\n /**\n * Transfer变化的回调事件\n * @type EventEmitter<ThyTransferChangeEvent>\n */\n @Output() thyChange: EventEmitter<ThyTransferChangeEvent> = new EventEmitter<ThyTransferChangeEvent>();\n\n /**\n * 设置自定义Item渲染数据模板\n * @type TemplateRef\n */\n @ContentChild('renderTemplate') templateRef: TemplateRef<any>;\n\n /**\n * 设置自定义左侧内容模板\n * @type TemplateRef\n */\n @ContentChild('renderLeftTemplate') leftContentRef: TemplateRef<any>;\n\n /**\n * 设置自定义右侧内容模板\n * @type TemplateRef\n */\n @ContentChild('renderRightTemplate') rightContentRef: TemplateRef<any>;\n\n ngOnInit() {}\n\n initializeTransferData(data: ThyTransferItem[] = []) {\n this.allDataSource = [];\n this.leftDataSource = [];\n this.rightDataSource = [];\n data.forEach(item => {\n this.allDataSource.push(item);\n if (item.direction === TransferDirection.left) {\n this.leftDataSource.push(item);\n }\n if (item.direction === TransferDirection.right) {\n this.rightDataSource.push(item);\n }\n });\n }\n\n onSelect(from: Direction, event: ThyTransferSelectEvent) {\n if (event.item.isFixed) {\n return;\n }\n if (this.thyRightMax <= this.rightDataSource.length && from === TransferDirection.left) {\n return;\n }\n const to = from === TransferDirection.left ? TransferDirection.right : TransferDirection.left;\n event.item.checked = !event.item.checked;\n if (this._autoMove) {\n this.onMove(to);\n }\n }\n\n selectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.left, event);\n }\n\n unselectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.right, event);\n }\n\n private groupListByIsLock(list: ThyTransferItem[] = []) {\n const lock: ThyTransferItem[] = [],\n unlock: ThyTransferItem[] = [];\n list.forEach(item => {\n if (item.isLock) {\n lock.push(item);\n } else {\n unlock.push(item);\n }\n });\n return { lock: lock, unlock: unlock };\n }\n\n onMove(to: Direction) {\n const fromDataSource = to === TransferDirection.right ? this.leftDataSource : this.rightDataSource;\n const toDataSource = to === TransferDirection.right ? this.rightDataSource : this.leftDataSource;\n const selections = fromDataSource.filter(item => item.checked);\n const changeEvent: ThyTransferChangeEvent = {\n from: to === TransferDirection.right ? TransferDirection.left : TransferDirection.right,\n to: to,\n items: [...selections]\n };\n selections.forEach(item => {\n const index = fromDataSource.indexOf(item);\n const removed = fromDataSource.splice(index, 1)[0];\n removed.checked = !removed.checked;\n removed.direction = to;\n toDataSource.push(removed);\n });\n this.thyChange.emit({\n ...changeEvent,\n left: this.groupListByIsLock(this.leftDataSource),\n right: this.groupListByIsLock(this.rightDataSource)\n });\n }\n\n onDragUpdate(direction: Direction, event: InnerTransferDragEvent) {\n const otherDirectionData = direction === TransferDirection.left ? this.rightDataSource : this.leftDataSource;\n const otherListData = this.groupListByIsLock(otherDirectionData);\n this.thyDraggableUpdate.emit({\n ...event.dragEvent,\n left: direction === TransferDirection.left ? event.listData : otherListData,\n right: direction === TransferDirection.right ? event.listData : otherListData\n });\n\n this.rightDataSource =\n direction === TransferDirection.right\n ? [...event.listData.lock, ...event.listData.unlock]\n : [...otherListData.lock, ...otherListData.unlock];\n }\n}\n","<thy-transfer-list\n [items]=\"allDataSource\"\n [title]=\"leftTitle\"\n [draggable]=\"thyLeftDraggable\"\n [disabled]=\"thyRightMax <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle\"\n [draggable]=\"thyRightDraggable\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock\"\n [maxLock]=\"thyRightLockMax\"\n [max]=\"thyRightMax\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\"\n >\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef) {\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTransfer } from './transfer.component';\nimport { ThyTransferList } from './transfer-list.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\n@NgModule({\n imports: [\n CommonModule,\n ThyButtonModule,\n DragDropModule,\n ThyIconModule,\n ThyListModule,\n ThySharedModule,\n ThyFlexibleTextModule,\n ThyTransfer,\n ThyTransferList\n ],\n exports: [ThyTransfer]\n})\nexport class ThyTransferModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -411,8 +411,8 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
411
411
|
return result;
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
415
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
414
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
415
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyTreeSelect, isStandalone: true, selector: "thy-tree-select", inputs: { thyTreeNodes: "thyTreeNodes", thyVirtualScroll: ["thyVirtualScroll", "thyVirtualScroll", coerceBooleanProperty], thyPrimaryKey: "thyPrimaryKey", thyShowKey: "thyShowKey", thyChildCountKey: "thyChildCountKey", thyAllowClear: ["thyAllowClear", "thyAllowClear", coerceBooleanProperty], thyMultiple: ["thyMultiple", "thyMultiple", coerceBooleanProperty], thyDisable: ["thyDisable", "thyDisable", coerceBooleanProperty], thyPlaceholder: "thyPlaceholder", thySize: "thySize", thyEmptyOptionsText: "thyEmptyOptionsText", thyHiddenNodeKey: "thyHiddenNodeKey", thyDisableNodeKey: "thyDisableNodeKey", thyAsyncNode: ["thyAsyncNode", "thyAsyncNode", coerceBooleanProperty], thyShowWholeName: ["thyShowWholeName", "thyShowWholeName", coerceBooleanProperty], thyShowSearch: ["thyShowSearch", "thyShowSearch", coerceBooleanProperty], thyIconType: "thyIconType", thyHiddenNodeFn: "thyHiddenNodeFn", thyDisableNodeFn: "thyDisableNodeFn", thyGetNodeChildren: "thyGetNodeChildren" }, outputs: { thyExpandStatusChange: "thyExpandStatusChange" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" }, properties: { "attr.tabindex": "tabIndex", "class.thy-select-custom": "this.treeSelectClass", "class.thy-select": "this.isTreeSelect", "class.menu-is-opened": "this.expandTreeSelectOptions", "class.thy-select-custom--multiple": "this.isMulti" } }, providers: [
|
|
416
416
|
{
|
|
417
417
|
provide: NG_VALUE_ACCESSOR,
|
|
418
418
|
useExisting: forwardRef(() => ThyTreeSelect),
|
|
@@ -420,7 +420,7 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
420
420
|
}
|
|
421
421
|
], queries: [{ propertyName: "thyTreeSelectTriggerDisplayRef", first: true, predicate: ["thyTreeSelectTriggerDisplay"], descendants: true }, { propertyName: "treeNodeTemplateRef", first: true, predicate: ["treeNodeTemplate"], descendants: true }], viewQueries: [{ propertyName: "cdkOverlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "customDisplayTemplate", first: true, predicate: ["customDisplayTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions\"\n [thySelectedOptions]=\"selectedValueObject\"\n [thyIsMultiple]=\"thyMultiple\"\n [thyAllowClear]=\"thyAllowClear\"\n [thySize]=\"thySize\"\n [thyPlaceholder]=\"placeholder\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch\"\n [thyDisabled]=\"thyDisable\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n @if (thyTreeSelectTriggerDisplayRef) {\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n {{ node[thyShowKey] }}\n }\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll\"\n [treeNodes]=\"thyVirtualScroll ? virtualTreeNodes : treeNodes\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => CdkOverlayOrigin), selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i0.forwardRef(() => ThySelectControl), selector: "thy-select-control,[thySelectControl]", inputs: ["thyPanelOpened", "thyIsMultiple", "thyShowSearch", "thySelectedOptions", "thyDisabled", "customDisplayTemplate", "thyAllowClear", "thyPlaceholder", "thySize", "thyMaxTagCount", "thyBorderless", "thyPreset"], outputs: ["thyOnSearch", "thyOnRemove", "thyOnClear", "thyOnBlur"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => CdkConnectedOverlay), selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: i0.forwardRef(() => ThyTreeSelectNodes), selector: "thy-tree-select-nodes", inputs: ["treeNodes", "thyVirtualScroll"] }, { kind: "directive", type: i0.forwardRef(() => ThyStopPropagationDirective), selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }], animations: [scaleYMotion] }); }
|
|
422
422
|
}
|
|
423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelect, decorators: [{
|
|
424
424
|
type: Component,
|
|
425
425
|
args: [{ selector: 'thy-tree-select', providers: [
|
|
426
426
|
{
|
|
@@ -626,10 +626,10 @@ class ThyTreeSelectNodes {
|
|
|
626
626
|
tabTrackBy(index, item) {
|
|
627
627
|
return index;
|
|
628
628
|
}
|
|
629
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
630
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
629
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelectNodes, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
630
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyTreeSelectNodes, isStandalone: true, selector: "thy-tree-select-nodes", inputs: { treeNodes: "treeNodes", thyVirtualScroll: "thyVirtualScroll" }, host: { properties: { "attr.tabindex": "-1", "class": "this.class" } }, ngImport: i0, template: "@if (nodeList?.length > 0) {\n <div class=\"thy-tree-select-options\">\n <div class=\"thy-tree-select-node\">\n @if (!thyVirtualScroll) {\n @for (node of nodeList; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n }\n @if (thyVirtualScroll) {\n <cdk-virtual-scroll-viewport #viewport [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n </div>\n </div>\n} @else {\n <thy-empty\n class=\"thy-select-empty-content\"\n thySize=\"sm\"\n [thyMessage]=\"parent.thyEmptyOptionsText\"\n [thyIconName]=\"emptyIcon()\"></thy-empty>\n}\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n @if (!treeNodeIsHidden(node)) {\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon\n class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n @if (treeNodeTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"treeNodeTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n }\n </span>\n @if (isMultiple) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n }\n </a>\n }\n @if (!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0) {\n @for (node of node.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n }\n }\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }] }); }
|
|
631
631
|
}
|
|
632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelectNodes, decorators: [{
|
|
633
633
|
type: Component,
|
|
634
634
|
args: [{ selector: 'thy-tree-select-nodes', standalone: true, imports: [
|
|
635
635
|
NgTemplateOutlet,
|
|
@@ -654,8 +654,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
654
654
|
}] } });
|
|
655
655
|
|
|
656
656
|
class ThyTreeSelectModule {
|
|
657
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
658
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
657
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
658
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelectModule, imports: [CommonModule,
|
|
659
659
|
FormsModule,
|
|
660
660
|
OverlayModule,
|
|
661
661
|
ThyListModule,
|
|
@@ -665,7 +665,7 @@ class ThyTreeSelectModule {
|
|
|
665
665
|
ThySharedModule,
|
|
666
666
|
ThyTreeSelect,
|
|
667
667
|
ThyTreeSelectNodes], exports: [ThyTreeSelect, ThyTreeSelectNodes] }); }
|
|
668
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
668
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelectModule, imports: [CommonModule,
|
|
669
669
|
FormsModule,
|
|
670
670
|
OverlayModule,
|
|
671
671
|
ThyListModule,
|
|
@@ -676,7 +676,7 @@ class ThyTreeSelectModule {
|
|
|
676
676
|
ThyTreeSelect,
|
|
677
677
|
ThyTreeSelectNodes] }); }
|
|
678
678
|
}
|
|
679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
679
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTreeSelectModule, decorators: [{
|
|
680
680
|
type: NgModule,
|
|
681
681
|
args: [{
|
|
682
682
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tree-select.mjs","sources":["../../../src/tree-select/tree-select.component.ts","../../../src/tree-select/tree-select.component.html","../../../src/tree-select/tree-select-nodes.component.html","../../../src/tree-select/module.ts","../../../src/tree-select/ngx-tethys-tree-select.ts"],"sourcesContent":["import {\n EXPANDED_DROPDOWN_POSITIONS,\n injectPanelEmptyIcon,\n scaleYMotion,\n TabIndexDisabledControlValueAccessorMixin,\n ThyClickDispatcher\n} from 'ngx-tethys/core';\nimport { ThyEmpty } from 'ngx-tethys/empty';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelectControl, ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { ThyTreeNode } from 'ngx-tethys/tree';\nimport { coerceBooleanProperty, elementMatchClosest, isArray, isObject, produce, warnDeprecation } from 'ngx-tethys/util';\nimport { Observable, of, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ViewportRuler } from '@angular/cdk/overlay';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n inject,\n Signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ThyTreeSelectNode, ThyTreeSelectType } from './tree-select.class';\nimport { injectLocale, ThyTreeSelectLocale } from 'ngx-tethys/i18n';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nexport function filterTreeData(treeNodes: ThyTreeSelectNode[], searchText: string, searchKey: string = 'name') {\n const filterNodes = (node: ThyTreeSelectNode, result: ThyTreeSelectNode[]) => {\n if (node[searchKey] && node[searchKey].indexOf(searchText) !== -1) {\n result.push(node);\n return result;\n }\n if (Array.isArray(node.children)) {\n const nodes = node.children.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n if (nodes.length) {\n const parentNode = { ...node, children: nodes, expand: true };\n result.push(parentNode);\n }\n }\n return result;\n };\n const treeData = treeNodes.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n return treeData;\n}\n\n/**\n * 树选择组件\n * @name thy-tree-select\n * @order 10\n */\n@Component({\n selector: 'thy-tree-select',\n templateUrl: './tree-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTreeSelect),\n multi: true\n }\n ],\n standalone: true,\n imports: [\n CdkOverlayOrigin,\n ThySelectControl,\n NgTemplateOutlet,\n CdkConnectedOverlay,\n forwardRef(() => ThyTreeSelectNodes),\n ThyStopPropagationDirective\n ],\n host: {\n '[attr.tabindex]': 'tabIndex',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)'\n },\n animations: [scaleYMotion]\n})\nexport class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin implements OnInit, OnDestroy, ControlValueAccessor {\n elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private ref = inject(ChangeDetectorRef);\n private platformId = inject(PLATFORM_ID);\n private thyClickDispatcher = inject(ThyClickDispatcher);\n private viewportRuler = inject(ViewportRuler);\n\n @HostBinding('class.thy-select-custom') treeSelectClass = true;\n\n @HostBinding('class.thy-select') isTreeSelect = true;\n\n // 菜单是否展开\n @HostBinding('class.menu-is-opened') expandTreeSelectOptions = false;\n\n @HostBinding('class.thy-select-custom--multiple') isMulti = false;\n\n public treeNodes: ThyTreeSelectNode[];\n\n public selectedValue: any;\n\n public selectedNode: ThyTreeSelectNode;\n\n public selectedNodes: ThyTreeSelectNode[] = [];\n\n public flattenTreeNodes: ThyTreeSelectNode[] = [];\n\n virtualTreeNodes: ThyTreeSelectNode[] = [];\n\n public cdkConnectOverlayWidth = 0;\n\n public expandedDropdownPositions = EXPANDED_DROPDOWN_POSITIONS;\n\n public icons: { expand: string; collapse: string; gap?: number } = {\n expand: 'angle-down',\n collapse: 'angle-right',\n gap: 15\n };\n\n private initialled = false;\n\n private destroy$ = new Subject<void>();\n\n private locale: Signal<ThyTreeSelectLocale> = injectLocale('treeSelect');\n\n public valueIsObject = false;\n\n originTreeNodes: ThyTreeSelectNode[];\n\n @ContentChild('thyTreeSelectTriggerDisplay')\n thyTreeSelectTriggerDisplayRef: TemplateRef<any>;\n\n @ContentChild('treeNodeTemplate')\n treeNodeTemplateRef: TemplateRef<any>;\n\n @ViewChild(CdkOverlayOrigin, { static: true }) cdkOverlayOrigin: CdkOverlayOrigin;\n\n @ViewChild(CdkConnectedOverlay, { static: true }) cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('customDisplayTemplate', { static: true }) customDisplayTemplate: TemplateRef<any>;\n\n /**\n * treeNodes 数据\n * @type ThyTreeSelectNode[]\n */\n @Input()\n set thyTreeNodes(value: ThyTreeSelectNode[]) {\n this.treeNodes = value;\n this.originTreeNodes = value;\n if (this.initialled) {\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n }\n }\n\n /**\n * 开启虚拟滚动\n */\n @Input({ transform: coerceBooleanProperty }) thyVirtualScroll: boolean = false;\n\n /**\n * 树节点的唯一标识\n * @type string\n */\n @Input() thyPrimaryKey = '_id';\n\n /**\n * 树节点的显示的字段 key\n * @type string\n */\n @Input() thyShowKey = 'name';\n\n @Input() thyChildCountKey = 'childCount';\n\n /**\n * 单选时,是否显示清除按钮,当为 true 时,显示清除按钮\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyAllowClear: boolean;\n\n /**\n * 是否多选\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple = false;\n\n /**\n * 是否禁用树选择器,当为 true 禁用树选择器\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyDisable = false;\n\n get thyDisabled(): boolean {\n return this.thyDisable;\n }\n\n /**\n * 树选择框默认文字\n * @type string\n */\n @Input() thyPlaceholder = this.locale().placeholder;\n\n get placeholder() {\n return this.thyPlaceholder;\n }\n\n /**\n * 控制树选择的输入框大小\n * @type xs | sm | md | default | lg\n */\n @Input() thySize: InputSize;\n\n /**\n * 改变空选项的情况下的提示文本\n * @type string\n */\n @Input() thyEmptyOptionsText = this.locale().empty;\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级高于 thyHiddenNodeFn\n * @type string\n */\n @Input() thyHiddenNodeKey = 'hidden';\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级高于 thyDisableNodeFn\n * @type string\n */\n @Input() thyDisableNodeKey = 'disabled';\n\n /**\n * 是否异步加载节点的子节点(显示加载状态),当为 true 时,异步获取\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyAsyncNode = false;\n\n /**\n * 是否展示全名\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowWholeName = false;\n\n /**\n * 是否展示搜索\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSearch = false;\n\n /**\n * 图标类型,支持 default | especial,已废弃\n * @deprecated\n */\n @Input()\n set thyIconType(type: ThyTreeSelectType) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('This parameter has been deprecation');\n }\n // if (type === 'especial') {\n // this.icons = { expand: 'minus-square', collapse: 'plus-square', gap: 20 };\n // } else {\n // this.icons = { expand: 'caret-right-down', collapse: 'caret-right', gap: 15 };\n // }\n }\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级低于 thyHiddenNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden\n */\n @Input() thyHiddenNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden;\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级低于 thyDisableNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled\n */\n @Input() thyDisableNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled;\n\n /**\n * 获取节点的子节点,返回 Observable<ThyTreeSelectNode>。\n * @default (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([])\n */\n @Input() thyGetNodeChildren: (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([]);\n\n /**\n * 树选择组件展开和折叠状态事件\n */\n @Output() thyExpandStatusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _getNgModelType() {\n if (this.thyMultiple) {\n this.valueIsObject = !this.selectedValue[0] || isObject(this.selectedValue[0]);\n } else {\n this.valueIsObject = isObject(this.selectedValue);\n }\n }\n\n public buildFlattenTreeNodes() {\n this.virtualTreeNodes = this.getFlattenTreeNodes(this.treeNodes);\n }\n\n private getFlattenTreeNodes(rootTrees: ThyTreeSelectNode[] = this.treeNodes) {\n const forEachTree = (tree: ThyTreeSelectNode[], fn: any, result: ThyTreeSelectNode[] = []) => {\n tree.forEach(item => {\n result.push(item);\n if (item.children && fn(item)) {\n forEachTree(item.children, fn, result);\n }\n });\n return result;\n };\n return forEachTree(rootTrees, (node: ThyTreeSelectNode) => !!node.expand);\n }\n\n writeValue(value: any): void {\n this.selectedValue = value;\n\n if (value) {\n this._getNgModelType();\n }\n this.setSelectedNodes();\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.isMulti = this.thyMultiple;\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n this.initialled = true;\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.thyClickDispatcher\n .clicked(0)\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.stopPropagation();\n if (!this.elementRef.nativeElement.contains(event.target) && this.expandTreeSelectOptions) {\n this.ngZone.run(() => {\n this.close();\n this.ref.markForCheck();\n });\n }\n });\n }\n this.viewportRuler\n .change()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.init();\n });\n }\n\n onFocus($event: FocusEvent) {\n const inputElement: HTMLInputElement = this.elementRef.nativeElement.querySelector('input');\n inputElement?.focus();\n }\n\n onBlur($event: FocusEvent) {\n // 1. Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn\n // 2. 打开选择框后如果点击弹框内导致 input 失焦,无需触发 onTouchedFn\n if (elementMatchClosest($event?.relatedTarget as HTMLElement, ['thy-tree-select', 'thy-tree-select-nodes'])) {\n return;\n }\n this.onTouchedFn();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n get selectedValueObject() {\n return this.thyMultiple ? this.selectedNodes : this.selectedNode;\n }\n\n searchValue(searchText: string) {\n this.treeNodes = filterTreeData(this.originTreeNodes, searchText.trim(), this.thyShowKey);\n }\n\n public setPosition() {\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n });\n }\n\n private init() {\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n private flattenNodes(\n nodes: ThyTreeSelectNode[] = [],\n resultNodes: ThyTreeSelectNode[] = [],\n parentPrimaryValue: string[] = []\n ): ThyTreeSelectNode[] {\n resultNodes = resultNodes.concat(nodes);\n let nodesLeafs: ThyTreeSelectNode[] = [];\n (nodes || []).forEach(item => {\n item.parentValues = parentPrimaryValue;\n item.level = item.parentValues.length;\n if (item.children && isArray(item.children)) {\n const nodeLeafs = this.flattenNodes(item.children, resultNodes, [...parentPrimaryValue, item[this.thyPrimaryKey]]);\n nodesLeafs = [...nodesLeafs, ...nodeLeafs];\n }\n });\n return [...nodes, ...nodesLeafs];\n }\n\n private _findTreeNode(value: string): ThyTreeSelectNode {\n return (this.flattenTreeNodes || []).find(item => item[this.thyPrimaryKey] === value);\n }\n\n private setSelectedNodes() {\n if (this.selectedValue) {\n // 多选数据初始化\n if (this.thyMultiple) {\n if (this.selectedValue.length > 0) {\n if (this.valueIsObject && Object.keys(this.selectedValue[0]).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item[this.thyPrimaryKey]);\n });\n } else {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item);\n });\n }\n }\n } else {\n // 单选数据初始化\n if (this.valueIsObject) {\n if (Object.keys(this.selectedValue).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNode = this._findTreeNode(this.selectedValue[this.thyPrimaryKey]);\n }\n } else {\n this.selectedNode = this._findTreeNode(this.selectedValue);\n }\n }\n } else {\n this.selectedNodes = [];\n this.selectedNode = null;\n }\n }\n\n openSelectPop() {\n if (this.thyDisable) {\n return;\n }\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n this.expandTreeSelectOptions = !this.expandTreeSelectOptions;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n }\n\n close() {\n if (this.expandTreeSelectOptions) {\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this.onTouchedFn();\n }\n }\n\n clearSelectedValue(event: Event) {\n event.stopPropagation();\n this.selectedValue = null;\n this.selectedNode = null;\n this.selectedNodes = [];\n this.onChangeFn(this.selectedValue);\n }\n\n private _changeSelectValue() {\n if (this.valueIsObject) {\n this.selectedValue = this.thyMultiple ? this.selectedNodes : this.selectedNode;\n } else {\n this.selectedValue = this.thyMultiple\n ? this.selectedNodes.map(item => item[this.thyPrimaryKey])\n : this.selectedNode[this.thyPrimaryKey];\n }\n this.onChangeFn(this.selectedValue);\n if (!this.thyMultiple) {\n this.onTouchedFn();\n }\n }\n\n removeMultipleSelectedNode(event: { item: ThyTreeSelectNode; $eventOrigin: Event }) {\n this.removeSelectedNode(event.item, event.$eventOrigin);\n }\n\n // thyMultiple = true 时,移除数据时调用\n removeSelectedNode(node: ThyTreeSelectNode, event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n if (this.thyDisable) {\n return;\n }\n if (this.thyMultiple) {\n this.selectedNodes = produce(this.selectedNodes).remove((item: ThyTreeSelectNode) => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n });\n this._changeSelectValue();\n }\n }\n\n selectNode(node: ThyTreeSelectNode) {\n if (!this.thyMultiple) {\n this.selectedNode = node;\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this._changeSelectValue();\n } else {\n if (\n this.selectedNodes.find(item => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n })\n ) {\n this.removeSelectedNode(node);\n } else {\n this.selectedNodes = produce(this.selectedNodes).add(node);\n this._changeSelectValue();\n }\n }\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n const result = this.thyGetNodeChildren(node);\n if (result && result.subscribe) {\n result.pipe().subscribe((data: ThyTreeSelectNode[]) => {\n const nodes = this.flattenNodes(data, this.flattenTreeNodes, [...node.parentValues, node[this.thyPrimaryKey]]);\n const otherNodes = nodes.filter((item: ThyTreeNode) => {\n return !this.flattenTreeNodes.find(hasItem => {\n return hasItem[this.thyPrimaryKey] === item[this.thyPrimaryKey];\n });\n });\n this.flattenTreeNodes = [...this.flattenTreeNodes, ...otherNodes];\n node.children = data;\n });\n return result;\n }\n }\n}\n\nconst DEFAULT_ITEM_SIZE = 40;\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tree-select-nodes',\n templateUrl: './tree-select-nodes.component.html',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyEmpty,\n NgClass,\n NgStyle,\n ThyIcon,\n ThyFlexibleText\n ],\n host: {\n '[attr.tabindex]': '-1'\n }\n})\nexport class ThyTreeSelectNodes implements OnInit {\n parent = inject(ThyTreeSelect);\n emptyIcon: Signal<string> = injectPanelEmptyIcon();\n\n @HostBinding('class') class: string;\n\n nodeList: ThyTreeSelectNode[] = [];\n\n @Input() set treeNodes(value: ThyTreeSelectNode[]) {\n const treeSelectHeight = this.defaultItemSize * value.length;\n // 父级设置了max-height:300 & padding:10 0; 故此处最多设置280,否则将出现滚动条\n this.thyVirtualHeight = treeSelectHeight > 300 ? '280px' : `${treeSelectHeight}px`;\n this.nodeList = value;\n this.hasNodeChildren = this.nodeList.every(\n item => !item.hasOwnProperty('children') || (!item?.children?.length && !item?.childCount)\n );\n }\n\n @Input() thyVirtualScroll: boolean = false;\n\n public primaryKey = this.parent.thyPrimaryKey;\n\n public showKey = this.parent.thyShowKey;\n\n public isMultiple = this.parent.thyMultiple;\n\n public valueIsObject = this.parent.valueIsObject;\n\n public selectedValue = this.parent.selectedValue;\n\n public childCountKey = this.parent.thyChildCountKey;\n\n public treeNodeTemplateRef = this.parent.treeNodeTemplateRef;\n\n public defaultItemSize = DEFAULT_ITEM_SIZE;\n\n public thyVirtualHeight: string = null;\n\n public hasNodeChildren: boolean = false;\n\n ngOnInit() {\n this.class = this.isMultiple ? 'thy-tree-select-dropdown thy-tree-select-dropdown-multiple' : 'thy-tree-select-dropdown';\n }\n\n treeNodeIsSelected(node: ThyTreeSelectNode) {\n if (this.parent.thyMultiple) {\n return (this.parent.selectedNodes || []).find(item => {\n return item[this.primaryKey] === node[this.primaryKey];\n });\n } else {\n return this.parent.selectedNode && this.parent.selectedNode[this.primaryKey] === node[this.primaryKey];\n }\n }\n\n treeNodeIsHidden(node: ThyTreeSelectNode) {\n if (this.parent.thyHiddenNodeKey) {\n return node[this.parent.thyHiddenNodeKey];\n }\n if (this.parent.thyHiddenNodeFn) {\n return this.parent.thyHiddenNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsDisable(node: ThyTreeSelectNode) {\n if (this.parent.thyDisableNodeKey) {\n return node[this.parent.thyDisableNodeKey];\n }\n if (this.parent.thyDisableNodeFn) {\n return this.parent.thyDisableNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsExpand(node: ThyTreeSelectNode) {\n let isSelectedNodeParent = false;\n if (this.parent.thyMultiple) {\n isSelectedNodeParent = !!(this.parent.selectedNodes || []).find(item => {\n return item.parentValues.indexOf(node[this.primaryKey]) > -1;\n });\n } else {\n isSelectedNodeParent = this.parent.selectedNode\n ? this.parent.selectedNode.parentValues.indexOf(node[this.primaryKey]) > -1\n : false;\n }\n const isExpand = node.expand || (Object.keys(node).indexOf('expand') < 0 && isSelectedNodeParent);\n node.expand = isExpand;\n return isExpand;\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n return this.parent.getNodeChildren(node);\n }\n\n selectTreeNode(event: Event, node: ThyTreeSelectNode) {\n if (!this.treeNodeIsDisable(node)) {\n this.parent.selectNode(node);\n }\n }\n\n nodeExpandToggle(event: Event, node: ThyTreeSelectNode) {\n event.stopPropagation();\n if (Object.keys(node).indexOf('expand') > -1) {\n node.expand = !node.expand;\n } else {\n if (this.treeNodeIsExpand(node)) {\n node.expand = false;\n } else {\n node.expand = true;\n }\n }\n\n if (node.expand && this.parent.thyAsyncNode) {\n this.getNodeChildren(node).subscribe(() => {\n this.parent.setPosition();\n });\n }\n // this.parent.setPosition();\n if (this.thyVirtualScroll) {\n this.parent.buildFlattenTreeNodes();\n }\n }\n\n tabTrackBy(index: number, item: ThyTreeSelectNode) {\n return index;\n }\n}\n","<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions\"\n [thySelectedOptions]=\"selectedValueObject\"\n [thyIsMultiple]=\"thyMultiple\"\n [thyAllowClear]=\"thyAllowClear\"\n [thySize]=\"thySize\"\n [thyPlaceholder]=\"placeholder\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch\"\n [thyDisabled]=\"thyDisable\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n @if (thyTreeSelectTriggerDisplayRef) {\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n {{ node[thyShowKey] }}\n }\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll\"\n [treeNodes]=\"thyVirtualScroll ? virtualTreeNodes : treeNodes\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n","@if (nodeList?.length > 0) {\n <div class=\"thy-tree-select-options\">\n <div class=\"thy-tree-select-node\">\n @if (!thyVirtualScroll) {\n @for (node of nodeList; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n }\n @if (thyVirtualScroll) {\n <cdk-virtual-scroll-viewport #viewport [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n </div>\n </div>\n} @else {\n <thy-empty\n class=\"thy-select-empty-content\"\n thySize=\"sm\"\n [thyMessage]=\"parent.thyEmptyOptionsText\"\n [thyIconName]=\"emptyIcon()\"></thy-empty>\n}\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n @if (!treeNodeIsHidden(node)) {\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon\n class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n @if (treeNodeTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"treeNodeTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n }\n </span>\n @if (isMultiple) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n }\n </a>\n }\n @if (!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0) {\n @for (node of node.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n }\n }\n </ng-container>\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyEmptyModule } from 'ngx-tethys/empty';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySelectCommonModule, ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTreeSelect, ThyTreeSelectNodes } from './tree-select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n ThyListModule,\n ThyIconModule,\n ThyEmptyModule,\n ThySelectCommonModule,\n ThySharedModule,\n ThyTreeSelect,\n ThyTreeSelectNodes\n ],\n exports: [ThyTreeSelect, ThyTreeSelectNodes]\n})\nexport class ThyTreeSelectModule {}\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-select.mjs","sources":["../../../src/tree-select/tree-select.component.ts","../../../src/tree-select/tree-select.component.html","../../../src/tree-select/tree-select-nodes.component.html","../../../src/tree-select/module.ts","../../../src/tree-select/ngx-tethys-tree-select.ts"],"sourcesContent":["import {\n EXPANDED_DROPDOWN_POSITIONS,\n injectPanelEmptyIcon,\n scaleYMotion,\n TabIndexDisabledControlValueAccessorMixin,\n ThyClickDispatcher\n} from 'ngx-tethys/core';\nimport { ThyEmpty } from 'ngx-tethys/empty';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelectControl, ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { ThyTreeNode } from 'ngx-tethys/tree';\nimport { coerceBooleanProperty, elementMatchClosest, isArray, isObject, produce, warnDeprecation } from 'ngx-tethys/util';\nimport { Observable, of, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ViewportRuler } from '@angular/cdk/overlay';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser, NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n inject,\n Signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ThyTreeSelectNode, ThyTreeSelectType } from './tree-select.class';\nimport { injectLocale, ThyTreeSelectLocale } from 'ngx-tethys/i18n';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nexport function filterTreeData(treeNodes: ThyTreeSelectNode[], searchText: string, searchKey: string = 'name') {\n const filterNodes = (node: ThyTreeSelectNode, result: ThyTreeSelectNode[]) => {\n if (node[searchKey] && node[searchKey].indexOf(searchText) !== -1) {\n result.push(node);\n return result;\n }\n if (Array.isArray(node.children)) {\n const nodes = node.children.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n if (nodes.length) {\n const parentNode = { ...node, children: nodes, expand: true };\n result.push(parentNode);\n }\n }\n return result;\n };\n const treeData = treeNodes.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n return treeData;\n}\n\n/**\n * 树选择组件\n * @name thy-tree-select\n * @order 10\n */\n@Component({\n selector: 'thy-tree-select',\n templateUrl: './tree-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTreeSelect),\n multi: true\n }\n ],\n standalone: true,\n imports: [\n CdkOverlayOrigin,\n ThySelectControl,\n NgTemplateOutlet,\n CdkConnectedOverlay,\n forwardRef(() => ThyTreeSelectNodes),\n ThyStopPropagationDirective\n ],\n host: {\n '[attr.tabindex]': 'tabIndex',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)'\n },\n animations: [scaleYMotion]\n})\nexport class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin implements OnInit, OnDestroy, ControlValueAccessor {\n elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private ref = inject(ChangeDetectorRef);\n private platformId = inject(PLATFORM_ID);\n private thyClickDispatcher = inject(ThyClickDispatcher);\n private viewportRuler = inject(ViewportRuler);\n\n @HostBinding('class.thy-select-custom') treeSelectClass = true;\n\n @HostBinding('class.thy-select') isTreeSelect = true;\n\n // 菜单是否展开\n @HostBinding('class.menu-is-opened') expandTreeSelectOptions = false;\n\n @HostBinding('class.thy-select-custom--multiple') isMulti = false;\n\n public treeNodes: ThyTreeSelectNode[];\n\n public selectedValue: any;\n\n public selectedNode: ThyTreeSelectNode;\n\n public selectedNodes: ThyTreeSelectNode[] = [];\n\n public flattenTreeNodes: ThyTreeSelectNode[] = [];\n\n virtualTreeNodes: ThyTreeSelectNode[] = [];\n\n public cdkConnectOverlayWidth = 0;\n\n public expandedDropdownPositions = EXPANDED_DROPDOWN_POSITIONS;\n\n public icons: { expand: string; collapse: string; gap?: number } = {\n expand: 'angle-down',\n collapse: 'angle-right',\n gap: 15\n };\n\n private initialled = false;\n\n private destroy$ = new Subject<void>();\n\n private locale: Signal<ThyTreeSelectLocale> = injectLocale('treeSelect');\n\n public valueIsObject = false;\n\n originTreeNodes: ThyTreeSelectNode[];\n\n @ContentChild('thyTreeSelectTriggerDisplay')\n thyTreeSelectTriggerDisplayRef: TemplateRef<any>;\n\n @ContentChild('treeNodeTemplate')\n treeNodeTemplateRef: TemplateRef<any>;\n\n @ViewChild(CdkOverlayOrigin, { static: true }) cdkOverlayOrigin: CdkOverlayOrigin;\n\n @ViewChild(CdkConnectedOverlay, { static: true }) cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('customDisplayTemplate', { static: true }) customDisplayTemplate: TemplateRef<any>;\n\n /**\n * treeNodes 数据\n * @type ThyTreeSelectNode[]\n */\n @Input()\n set thyTreeNodes(value: ThyTreeSelectNode[]) {\n this.treeNodes = value;\n this.originTreeNodes = value;\n if (this.initialled) {\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n }\n }\n\n /**\n * 开启虚拟滚动\n */\n @Input({ transform: coerceBooleanProperty }) thyVirtualScroll: boolean = false;\n\n /**\n * 树节点的唯一标识\n * @type string\n */\n @Input() thyPrimaryKey = '_id';\n\n /**\n * 树节点的显示的字段 key\n * @type string\n */\n @Input() thyShowKey = 'name';\n\n @Input() thyChildCountKey = 'childCount';\n\n /**\n * 单选时,是否显示清除按钮,当为 true 时,显示清除按钮\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyAllowClear: boolean;\n\n /**\n * 是否多选\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple = false;\n\n /**\n * 是否禁用树选择器,当为 true 禁用树选择器\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyDisable = false;\n\n get thyDisabled(): boolean {\n return this.thyDisable;\n }\n\n /**\n * 树选择框默认文字\n * @type string\n */\n @Input() thyPlaceholder = this.locale().placeholder;\n\n get placeholder() {\n return this.thyPlaceholder;\n }\n\n /**\n * 控制树选择的输入框大小\n * @type xs | sm | md | default | lg\n */\n @Input() thySize: InputSize;\n\n /**\n * 改变空选项的情况下的提示文本\n * @type string\n */\n @Input() thyEmptyOptionsText = this.locale().empty;\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级高于 thyHiddenNodeFn\n * @type string\n */\n @Input() thyHiddenNodeKey = 'hidden';\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级高于 thyDisableNodeFn\n * @type string\n */\n @Input() thyDisableNodeKey = 'disabled';\n\n /**\n * 是否异步加载节点的子节点(显示加载状态),当为 true 时,异步获取\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyAsyncNode = false;\n\n /**\n * 是否展示全名\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowWholeName = false;\n\n /**\n * 是否展示搜索\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSearch = false;\n\n /**\n * 图标类型,支持 default | especial,已废弃\n * @deprecated\n */\n @Input()\n set thyIconType(type: ThyTreeSelectType) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('This parameter has been deprecation');\n }\n // if (type === 'especial') {\n // this.icons = { expand: 'minus-square', collapse: 'plus-square', gap: 20 };\n // } else {\n // this.icons = { expand: 'caret-right-down', collapse: 'caret-right', gap: 15 };\n // }\n }\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级低于 thyHiddenNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden\n */\n @Input() thyHiddenNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden;\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级低于 thyDisableNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled\n */\n @Input() thyDisableNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled;\n\n /**\n * 获取节点的子节点,返回 Observable<ThyTreeSelectNode>。\n * @default (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([])\n */\n @Input() thyGetNodeChildren: (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([]);\n\n /**\n * 树选择组件展开和折叠状态事件\n */\n @Output() thyExpandStatusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _getNgModelType() {\n if (this.thyMultiple) {\n this.valueIsObject = !this.selectedValue[0] || isObject(this.selectedValue[0]);\n } else {\n this.valueIsObject = isObject(this.selectedValue);\n }\n }\n\n public buildFlattenTreeNodes() {\n this.virtualTreeNodes = this.getFlattenTreeNodes(this.treeNodes);\n }\n\n private getFlattenTreeNodes(rootTrees: ThyTreeSelectNode[] = this.treeNodes) {\n const forEachTree = (tree: ThyTreeSelectNode[], fn: any, result: ThyTreeSelectNode[] = []) => {\n tree.forEach(item => {\n result.push(item);\n if (item.children && fn(item)) {\n forEachTree(item.children, fn, result);\n }\n });\n return result;\n };\n return forEachTree(rootTrees, (node: ThyTreeSelectNode) => !!node.expand);\n }\n\n writeValue(value: any): void {\n this.selectedValue = value;\n\n if (value) {\n this._getNgModelType();\n }\n this.setSelectedNodes();\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.isMulti = this.thyMultiple;\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n this.initialled = true;\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.thyClickDispatcher\n .clicked(0)\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.stopPropagation();\n if (!this.elementRef.nativeElement.contains(event.target) && this.expandTreeSelectOptions) {\n this.ngZone.run(() => {\n this.close();\n this.ref.markForCheck();\n });\n }\n });\n }\n this.viewportRuler\n .change()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.init();\n });\n }\n\n onFocus($event: FocusEvent) {\n const inputElement: HTMLInputElement = this.elementRef.nativeElement.querySelector('input');\n inputElement?.focus();\n }\n\n onBlur($event: FocusEvent) {\n // 1. Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn\n // 2. 打开选择框后如果点击弹框内导致 input 失焦,无需触发 onTouchedFn\n if (elementMatchClosest($event?.relatedTarget as HTMLElement, ['thy-tree-select', 'thy-tree-select-nodes'])) {\n return;\n }\n this.onTouchedFn();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n get selectedValueObject() {\n return this.thyMultiple ? this.selectedNodes : this.selectedNode;\n }\n\n searchValue(searchText: string) {\n this.treeNodes = filterTreeData(this.originTreeNodes, searchText.trim(), this.thyShowKey);\n }\n\n public setPosition() {\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n });\n }\n\n private init() {\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n private flattenNodes(\n nodes: ThyTreeSelectNode[] = [],\n resultNodes: ThyTreeSelectNode[] = [],\n parentPrimaryValue: string[] = []\n ): ThyTreeSelectNode[] {\n resultNodes = resultNodes.concat(nodes);\n let nodesLeafs: ThyTreeSelectNode[] = [];\n (nodes || []).forEach(item => {\n item.parentValues = parentPrimaryValue;\n item.level = item.parentValues.length;\n if (item.children && isArray(item.children)) {\n const nodeLeafs = this.flattenNodes(item.children, resultNodes, [...parentPrimaryValue, item[this.thyPrimaryKey]]);\n nodesLeafs = [...nodesLeafs, ...nodeLeafs];\n }\n });\n return [...nodes, ...nodesLeafs];\n }\n\n private _findTreeNode(value: string): ThyTreeSelectNode {\n return (this.flattenTreeNodes || []).find(item => item[this.thyPrimaryKey] === value);\n }\n\n private setSelectedNodes() {\n if (this.selectedValue) {\n // 多选数据初始化\n if (this.thyMultiple) {\n if (this.selectedValue.length > 0) {\n if (this.valueIsObject && Object.keys(this.selectedValue[0]).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item[this.thyPrimaryKey]);\n });\n } else {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item);\n });\n }\n }\n } else {\n // 单选数据初始化\n if (this.valueIsObject) {\n if (Object.keys(this.selectedValue).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNode = this._findTreeNode(this.selectedValue[this.thyPrimaryKey]);\n }\n } else {\n this.selectedNode = this._findTreeNode(this.selectedValue);\n }\n }\n } else {\n this.selectedNodes = [];\n this.selectedNode = null;\n }\n }\n\n openSelectPop() {\n if (this.thyDisable) {\n return;\n }\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n this.expandTreeSelectOptions = !this.expandTreeSelectOptions;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n }\n\n close() {\n if (this.expandTreeSelectOptions) {\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this.onTouchedFn();\n }\n }\n\n clearSelectedValue(event: Event) {\n event.stopPropagation();\n this.selectedValue = null;\n this.selectedNode = null;\n this.selectedNodes = [];\n this.onChangeFn(this.selectedValue);\n }\n\n private _changeSelectValue() {\n if (this.valueIsObject) {\n this.selectedValue = this.thyMultiple ? this.selectedNodes : this.selectedNode;\n } else {\n this.selectedValue = this.thyMultiple\n ? this.selectedNodes.map(item => item[this.thyPrimaryKey])\n : this.selectedNode[this.thyPrimaryKey];\n }\n this.onChangeFn(this.selectedValue);\n if (!this.thyMultiple) {\n this.onTouchedFn();\n }\n }\n\n removeMultipleSelectedNode(event: { item: ThyTreeSelectNode; $eventOrigin: Event }) {\n this.removeSelectedNode(event.item, event.$eventOrigin);\n }\n\n // thyMultiple = true 时,移除数据时调用\n removeSelectedNode(node: ThyTreeSelectNode, event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n if (this.thyDisable) {\n return;\n }\n if (this.thyMultiple) {\n this.selectedNodes = produce(this.selectedNodes).remove((item: ThyTreeSelectNode) => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n });\n this._changeSelectValue();\n }\n }\n\n selectNode(node: ThyTreeSelectNode) {\n if (!this.thyMultiple) {\n this.selectedNode = node;\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this._changeSelectValue();\n } else {\n if (\n this.selectedNodes.find(item => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n })\n ) {\n this.removeSelectedNode(node);\n } else {\n this.selectedNodes = produce(this.selectedNodes).add(node);\n this._changeSelectValue();\n }\n }\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n const result = this.thyGetNodeChildren(node);\n if (result && result.subscribe) {\n result.pipe().subscribe((data: ThyTreeSelectNode[]) => {\n const nodes = this.flattenNodes(data, this.flattenTreeNodes, [...node.parentValues, node[this.thyPrimaryKey]]);\n const otherNodes = nodes.filter((item: ThyTreeNode) => {\n return !this.flattenTreeNodes.find(hasItem => {\n return hasItem[this.thyPrimaryKey] === item[this.thyPrimaryKey];\n });\n });\n this.flattenTreeNodes = [...this.flattenTreeNodes, ...otherNodes];\n node.children = data;\n });\n return result;\n }\n }\n}\n\nconst DEFAULT_ITEM_SIZE = 40;\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tree-select-nodes',\n templateUrl: './tree-select-nodes.component.html',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyEmpty,\n NgClass,\n NgStyle,\n ThyIcon,\n ThyFlexibleText\n ],\n host: {\n '[attr.tabindex]': '-1'\n }\n})\nexport class ThyTreeSelectNodes implements OnInit {\n parent = inject(ThyTreeSelect);\n emptyIcon: Signal<string> = injectPanelEmptyIcon();\n\n @HostBinding('class') class: string;\n\n nodeList: ThyTreeSelectNode[] = [];\n\n @Input() set treeNodes(value: ThyTreeSelectNode[]) {\n const treeSelectHeight = this.defaultItemSize * value.length;\n // 父级设置了max-height:300 & padding:10 0; 故此处最多设置280,否则将出现滚动条\n this.thyVirtualHeight = treeSelectHeight > 300 ? '280px' : `${treeSelectHeight}px`;\n this.nodeList = value;\n this.hasNodeChildren = this.nodeList.every(\n item => !item.hasOwnProperty('children') || (!item?.children?.length && !item?.childCount)\n );\n }\n\n @Input() thyVirtualScroll: boolean = false;\n\n public primaryKey = this.parent.thyPrimaryKey;\n\n public showKey = this.parent.thyShowKey;\n\n public isMultiple = this.parent.thyMultiple;\n\n public valueIsObject = this.parent.valueIsObject;\n\n public selectedValue = this.parent.selectedValue;\n\n public childCountKey = this.parent.thyChildCountKey;\n\n public treeNodeTemplateRef = this.parent.treeNodeTemplateRef;\n\n public defaultItemSize = DEFAULT_ITEM_SIZE;\n\n public thyVirtualHeight: string = null;\n\n public hasNodeChildren: boolean = false;\n\n ngOnInit() {\n this.class = this.isMultiple ? 'thy-tree-select-dropdown thy-tree-select-dropdown-multiple' : 'thy-tree-select-dropdown';\n }\n\n treeNodeIsSelected(node: ThyTreeSelectNode) {\n if (this.parent.thyMultiple) {\n return (this.parent.selectedNodes || []).find(item => {\n return item[this.primaryKey] === node[this.primaryKey];\n });\n } else {\n return this.parent.selectedNode && this.parent.selectedNode[this.primaryKey] === node[this.primaryKey];\n }\n }\n\n treeNodeIsHidden(node: ThyTreeSelectNode) {\n if (this.parent.thyHiddenNodeKey) {\n return node[this.parent.thyHiddenNodeKey];\n }\n if (this.parent.thyHiddenNodeFn) {\n return this.parent.thyHiddenNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsDisable(node: ThyTreeSelectNode) {\n if (this.parent.thyDisableNodeKey) {\n return node[this.parent.thyDisableNodeKey];\n }\n if (this.parent.thyDisableNodeFn) {\n return this.parent.thyDisableNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsExpand(node: ThyTreeSelectNode) {\n let isSelectedNodeParent = false;\n if (this.parent.thyMultiple) {\n isSelectedNodeParent = !!(this.parent.selectedNodes || []).find(item => {\n return item.parentValues.indexOf(node[this.primaryKey]) > -1;\n });\n } else {\n isSelectedNodeParent = this.parent.selectedNode\n ? this.parent.selectedNode.parentValues.indexOf(node[this.primaryKey]) > -1\n : false;\n }\n const isExpand = node.expand || (Object.keys(node).indexOf('expand') < 0 && isSelectedNodeParent);\n node.expand = isExpand;\n return isExpand;\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n return this.parent.getNodeChildren(node);\n }\n\n selectTreeNode(event: Event, node: ThyTreeSelectNode) {\n if (!this.treeNodeIsDisable(node)) {\n this.parent.selectNode(node);\n }\n }\n\n nodeExpandToggle(event: Event, node: ThyTreeSelectNode) {\n event.stopPropagation();\n if (Object.keys(node).indexOf('expand') > -1) {\n node.expand = !node.expand;\n } else {\n if (this.treeNodeIsExpand(node)) {\n node.expand = false;\n } else {\n node.expand = true;\n }\n }\n\n if (node.expand && this.parent.thyAsyncNode) {\n this.getNodeChildren(node).subscribe(() => {\n this.parent.setPosition();\n });\n }\n // this.parent.setPosition();\n if (this.thyVirtualScroll) {\n this.parent.buildFlattenTreeNodes();\n }\n }\n\n tabTrackBy(index: number, item: ThyTreeSelectNode) {\n return index;\n }\n}\n","<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions\"\n [thySelectedOptions]=\"selectedValueObject\"\n [thyIsMultiple]=\"thyMultiple\"\n [thyAllowClear]=\"thyAllowClear\"\n [thySize]=\"thySize\"\n [thyPlaceholder]=\"placeholder\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch\"\n [thyDisabled]=\"thyDisable\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n @if (thyTreeSelectTriggerDisplayRef) {\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n {{ node[thyShowKey] }}\n }\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll\"\n [treeNodes]=\"thyVirtualScroll ? virtualTreeNodes : treeNodes\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n","@if (nodeList?.length > 0) {\n <div class=\"thy-tree-select-options\">\n <div class=\"thy-tree-select-node\">\n @if (!thyVirtualScroll) {\n @for (node of nodeList; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n }\n @if (thyVirtualScroll) {\n <cdk-virtual-scroll-viewport #viewport [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n </div>\n </div>\n} @else {\n <thy-empty\n class=\"thy-select-empty-content\"\n thySize=\"sm\"\n [thyMessage]=\"parent.thyEmptyOptionsText\"\n [thyIconName]=\"emptyIcon()\"></thy-empty>\n}\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n @if (!treeNodeIsHidden(node)) {\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon\n class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n @if (treeNodeTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"treeNodeTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n }\n </span>\n @if (isMultiple) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n }\n </a>\n }\n @if (!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0) {\n @for (node of node.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n }\n }\n </ng-container>\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyEmptyModule } from 'ngx-tethys/empty';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySelectCommonModule, ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTreeSelect, ThyTreeSelectNodes } from './tree-select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n ThyListModule,\n ThyIconModule,\n ThyEmptyModule,\n ThySelectCommonModule,\n ThySharedModule,\n ThyTreeSelect,\n ThyTreeSelectNodes\n ],\n exports: [ThyTreeSelect, ThyTreeSelectNodes]\n})\nexport class ThyTreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA6CM,SAAU,cAAc,CAAC,SAA8B,EAAE,UAAkB,EAAE,YAAoB,MAAM,EAAA;AACzG,IAAA,MAAM,WAAW,GAAG,CAAC,IAAuB,EAAE,MAA2B,KAAI;AACzE,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/D,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,YAAA,OAAO,MAAM,CAAC;SACjB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAyB,CAAC,CAAC;AACrH,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AACd,gBAAA,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC9D,gBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC3B;SACJ;AACD,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAC;IACF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAyB,CAAC,CAAC;AACpH,IAAA,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;AAIG;AA2BG,MAAO,aAAc,SAAQ,yCAAyC,CAAA;AA6DxE;;;AAGG;IACH,IACI,YAAY,CAAC,KAA0B,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;SACJ;KACJ;AAuCD,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;AAQD,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;AA4CD;;;AAGG;IACH,IACI,WAAW,CAAC,IAAuB,EAAA;AACnC,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YAC/C,eAAe,CAAC,qCAAqC,CAAC,CAAC;SAC1D;;;;;;KAMJ;IAyBO,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SAClF;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACrD;KACJ;IAEM,qBAAqB,GAAA;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpE;AAEO,IAAA,mBAAmB,CAAC,SAAA,GAAiC,IAAI,CAAC,SAAS,EAAA;QACvE,MAAM,WAAW,GAAG,CAAC,IAAyB,EAAE,EAAO,EAAE,MAAA,GAA8B,EAAE,KAAI;AACzF,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,IAAG;AAChB,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC3B,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;iBAC1C;AACL,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,MAAM,CAAC;AAClB,SAAC,CAAC;AACF,QAAA,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC,IAAuB,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7E;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;AAED,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AArPZ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAEN,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QAE9B,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;;QAGhB,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;QAEnB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAQ3D,IAAa,CAAA,aAAA,GAAwB,EAAE,CAAC;QAExC,IAAgB,CAAA,gBAAA,GAAwB,EAAE,CAAC;QAElD,IAAgB,CAAA,gBAAA,GAAwB,EAAE,CAAC;QAEpC,IAAsB,CAAA,sBAAA,GAAG,CAAC,CAAC;QAE3B,IAAyB,CAAA,yBAAA,GAAG,2BAA2B,CAAC;AAExD,QAAA,IAAA,CAAA,KAAK,GAAuD;AAC/D,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,GAAG,EAAE,EAAE;SACV,CAAC;QAEM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAEnB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAE/B,QAAA,IAAA,CAAA,MAAM,GAAgC,YAAY,CAAC,YAAY,CAAC,CAAC;QAElE,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAkC7B;;AAEG;QAC0C,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAE/E;;;AAGG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAE/B;;;AAGG;QACM,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC;QAEpB,IAAgB,CAAA,gBAAA,GAAG,YAAY,CAAC;AAQzC;;;AAGG;QAC0C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAEjE;;;AAGG;QAC0C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAMhE;;;AAGG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC;AAYpD;;;AAGG;AACM,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;AAEnD;;;AAGG;QACM,IAAgB,CAAA,gBAAA,GAAG,QAAQ,CAAC;AAErC;;;AAGG;QACM,IAAiB,CAAA,iBAAA,GAAG,UAAU,CAAC;AAExC;;;AAGG;QAC0C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAElE;;;AAGG;QAC0C,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAEtE;;;AAGG;QAC0C,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAkBnE;;;AAGG;QACM,IAAe,CAAA,eAAA,GAAyC,CAAC,IAAuB,KAAK,IAAI,CAAC,MAAM,CAAC;AAE1G;;;AAGG;QACM,IAAgB,CAAA,gBAAA,GAAyC,CAAC,IAAuB,KAAK,IAAI,CAAC,QAAQ,CAAC;AAE7G;;;AAGG;QACM,IAAkB,CAAA,kBAAA,GAA+D,CAAC,IAAuB,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAE9H;;AAEG;AACO,QAAA,IAAA,CAAA,qBAAqB,GAA0B,IAAI,YAAY,EAAW,CAAC;KAsCpF;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC;AAED,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,kBAAkB;iBAClB,OAAO,CAAC,CAAC,CAAC;AACV,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,KAAK,IAAG;gBACf,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAAE;AACvF,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;wBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,wBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,qBAAC,CAAC,CAAC;iBACN;AACL,aAAC,CAAC,CAAC;SACV;AACD,QAAA,IAAI,CAAC,aAAa;AACb,aAAA,MAAM,EAAE;AACR,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;KACV;AAED,IAAA,OAAO,CAAC,MAAkB,EAAA;AACtB,QAAA,MAAM,YAAY,GAAqB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5F,YAAY,EAAE,KAAK,EAAE,CAAC;KACzB;AAED,IAAA,MAAM,CAAC,MAAkB,EAAA;;;AAGrB,QAAA,IAAI,mBAAmB,CAAC,MAAM,EAAE,aAA4B,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,EAAE;YACzG,OAAO;SACV;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;AAED,IAAA,IAAI,mBAAmB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;KACpE;AAED,IAAA,WAAW,CAAC,UAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7F;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ;AACf,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;AACzD,SAAC,CAAC,CAAC;KACV;IAEO,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;KAC9G;IAEO,YAAY,CAChB,QAA6B,EAAE,EAC/B,cAAmC,EAAE,EACrC,qBAA+B,EAAE,EAAA;AAEjC,QAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,UAAU,GAAwB,EAAE,CAAC;QACzC,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAG;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACtC,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnH,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;aAC9C;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;KACpC;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;QAC/B,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,CAAC;KACzF;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;;AAEpB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/B,IAAI,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC3F,wBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;4BACtD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACxD,yBAAC,CAAC,CAAC;qBACN;yBAAM;AACH,wBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACtD,4BAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACpC,yBAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;iBAAM;;AAEH,gBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,oBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAClE,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;qBAClF;iBACJ;qBAAM;oBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBAC9D;aACJ;SACJ;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;KACJ;IAED,aAAa,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAC3G,QAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACjE;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;AAED,IAAA,kBAAkB,CAAC,KAAY,EAAA;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACvC;IAEO,kBAAkB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;SAClF;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW;AACjC,kBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;kBACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC/C;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;AAED,IAAA,0BAA0B,CAAC,KAAuD,EAAA;QAC9E,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;KAC3D;;IAGD,kBAAkB,CAAC,IAAuB,EAAE,KAAa,EAAA;QACrD,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAuB,KAAI;AAChF,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjE,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;KACJ;AAED,IAAA,UAAU,CAAC,IAAuB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC9D,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;aAAM;YACH,IACI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3B,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAChE,CAAC,EACJ;AACE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aACjC;iBAAM;AACH,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC7B;SACJ;KACJ;AAED,IAAA,eAAe,CAAC,IAAuB,EAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YAC5B,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,IAAyB,KAAI;gBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC/G,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAiB,KAAI;oBAClD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,IAAG;AACzC,wBAAA,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpE,qBAAC,CAAC,CAAC;AACP,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,UAAU,CAAC,CAAC;AAClE,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,MAAM,CAAC;SACjB;KACJ;+GAndQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAkFF,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAqB,CAoBrB,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,qBAAqB,+CAMrB,qBAAqB,CAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAMrB,qBAAqB,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EA4CrB,qBAAqB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAMrB,qBAAqB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAMrB,qBAAqB,CAjM9B,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa,CAAC;AAC5C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;SACJ,EAwEU,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gCAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,oGAEhB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxJlC,gnDA4CA,EDqCQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,gBAAgB,4JAChB,gBAAgB,CAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAChB,gBAAgB,CAChB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,mBAAmB,igCAyfd,kBAAkB,CAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAvfvB,2BAA2B,CAOnB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,YAAY,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAEjB,aAAa,EAAA,UAAA,EAAA,CAAA;kBA1BzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAEhB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mBAAmB,CAAC;AAC5C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA;wBACL,gBAAgB;wBAChB,gBAAgB;wBAChB,gBAAgB;wBAChB,mBAAmB;AACnB,wBAAA,UAAU,CAAC,MAAM,kBAAkB,CAAC;wBACpC,2BAA2B;qBAC9B,EACK,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,QAAQ,EAAE,gBAAgB;qBAC7B,EACW,UAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gnDAAA,EAAA,CAAA;wDAUc,eAAe,EAAA,CAAA;sBAAtD,WAAW;uBAAC,yBAAyB,CAAA;gBAEL,YAAY,EAAA,CAAA;sBAA5C,WAAW;uBAAC,kBAAkB,CAAA;gBAGM,uBAAuB,EAAA,CAAA;sBAA3D,WAAW;uBAAC,sBAAsB,CAAA;gBAEe,OAAO,EAAA,CAAA;sBAAxD,WAAW;uBAAC,mCAAmC,CAAA;gBAmChD,8BAA8B,EAAA,CAAA;sBAD7B,YAAY;uBAAC,6BAA6B,CAAA;gBAI3C,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,kBAAkB,CAAA;gBAGe,gBAAgB,EAAA,CAAA;sBAA9D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAEK,mBAAmB,EAAA,CAAA;sBAApE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAEM,qBAAqB,EAAA,CAAA;sBAA1E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAOhD,YAAY,EAAA,CAAA;sBADf,KAAK;gBAiBuC,gBAAgB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAMlC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAMG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAMuC,aAAa,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAME,WAAW,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAME,UAAU,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAUlC,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAUG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAMG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAMG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAMG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAMuC,YAAY,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAME,gBAAgB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAME,aAAa,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAOvC,WAAW,EAAA,CAAA;sBADd,KAAK;gBAgBG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAMG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAMG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAKI,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;AAqQX,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;AAEG;MAoBU,kBAAkB,CAAA;AAnB/B,IAAA,WAAA,GAAA;AAoBI,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/B,IAAS,CAAA,SAAA,GAAmB,oBAAoB,EAAE,CAAC;QAInD,IAAQ,CAAA,QAAA,GAAwB,EAAE,CAAC;QAY1B,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAEpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAEvC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAEjC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AAErC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAE1C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAE1C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAE7C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAEtD,IAAe,CAAA,eAAA,GAAG,iBAAiB,CAAC;QAEpC,IAAgB,CAAA,gBAAA,GAAW,IAAI,CAAC;QAEhC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAwF3C,KAAA;IAtHG,IAAa,SAAS,CAAC,KAA0B,EAAA;QAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;;AAE7D,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,GAAG,GAAG,OAAO,GAAG,CAAG,EAAA,gBAAgB,IAAI,CAAC;AACnF,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAC7F,CAAC;KACL;IAwBD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,4DAA4D,GAAG,0BAA0B,CAAC;KAC5H;AAED,IAAA,kBAAkB,CAAC,IAAuB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,IAAG;AACjD,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,aAAC,CAAC,CAAC;SACN;aAAM;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1G;KACJ;AAED,IAAA,gBAAgB,CAAC,IAAuB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;SAC7C;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC5C;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED,IAAA,iBAAiB,CAAC,IAAuB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SAC9C;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC7C;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED,IAAA,gBAAgB,CAAC,IAAuB,EAAA;QACpC,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzB,YAAA,oBAAoB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,IAAG;AACnE,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,aAAC,CAAC,CAAC;SACN;aAAM;AACH,YAAA,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY;kBACzC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;kBACzE,KAAK,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AACvB,QAAA,OAAO,QAAQ,CAAC;KACnB;AAED,IAAA,eAAe,CAAC,IAAuB,EAAA;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KAC5C;IAED,cAAc,CAAC,KAAY,EAAE,IAAuB,EAAA;QAChD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChC;KACJ;IAED,gBAAgB,CAAC,KAAY,EAAE,IAAuB,EAAA;QAClD,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC9B;aAAM;AACH,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;iBAAM;AACH,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;SACJ;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAK;AACtC,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9B,aAAC,CAAC,CAAC;SACN;;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;SACvC;KACJ;IAED,UAAU,CAAC,KAAa,EAAE,IAAuB,EAAA;AAC7C,QAAA,OAAO,KAAK,CAAC;KAChB;+GA7HQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,mOE7kB/B,gpFA6DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EFkgBQ,gBAAgB,EAChB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,wBAAwB,iJACxB,yBAAyB,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,eAAe,EACf,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,8TACR,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,sMACP,eAAe,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAnB9B,SAAS;+BACI,uBAAuB,EAAA,UAAA,EAErB,IAAI,EACP,OAAA,EAAA;wBACL,gBAAgB;wBAChB,wBAAwB;wBACxB,yBAAyB;wBACzB,eAAe;wBACf,QAAQ;wBACR,OAAO;wBACP,OAAO;wBACP,OAAO;wBACP,eAAe;qBAClB,EACK,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,IAAI;AAC1B,qBAAA,EAAA,QAAA,EAAA,gpFAAA,EAAA,CAAA;8BAMqB,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO,CAAA;gBAIP,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAUG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;;;MGtkBG,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAbxB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,aAAa;YACb,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEZ,aAAa,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAbxB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,aAAa;YACb,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIb,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,qBAAqB;wBACrB,eAAe;wBACf,aAAa;wBACb,kBAAkB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;AAC/C,iBAAA,CAAA;;;ACxBD;;AAEG;;;;"}
|