ngx-tethys 19.1.13 → 20.0.0-next.0
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 +18 -0
- package/action/index.d.ts +107 -3
- package/affix/index.d.ts +65 -2
- package/alert/index.d.ts +74 -3
- package/anchor/index.d.ts +118 -3
- package/arrow-switcher/index.d.ts +79 -2
- package/autocomplete/index.d.ts +280 -7
- package/avatar/index.d.ts +195 -5
- package/back-top/index.d.ts +68 -2
- package/badge/index.d.ts +87 -2
- package/breadcrumb/index.d.ts +71 -3
- package/button/index.d.ts +156 -4
- package/calendar/index.d.ts +161 -4
- package/card/index.d.ts +100 -4
- package/carousel/index.d.ts +210 -4
- package/cascader/index.d.ts +471 -5
- package/checkbox/index.d.ts +27 -2
- package/collapse/index.d.ts +108 -3
- package/color-picker/index.d.ts +494 -13
- package/comment/index.d.ts +53 -4
- package/copy/index.d.ts +59 -2
- package/core/index.d.ts +680 -15
- package/date-picker/index.d.ts +1148 -36
- package/date-range/index.d.ts +158 -4
- package/dialog/index.d.ts +393 -11
- package/divider/index.d.ts +60 -2
- package/dot/index.d.ts +56 -2
- package/drag-drop/index.d.ts +281 -9
- package/dropdown/index.d.ts +282 -6
- package/empty/index.d.ts +116 -3
- package/fesm2022/ngx-tethys-action.mjs +26 -26
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +14 -14
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +19 -19
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +25 -25
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +20 -20
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +41 -36
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +45 -45
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +15 -15
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +27 -27
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +20 -20
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +57 -51
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +29 -29
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +28 -28
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +29 -29
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +93 -87
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +24 -24
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +75 -73
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +17 -17
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +15 -15
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +38 -38
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +323 -305
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +23 -23
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +56 -54
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +16 -16
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +20 -20
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +20 -21
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +85 -83
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +28 -28
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +13 -13
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +99 -95
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +22 -21
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +60 -60
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +20 -20
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +4 -4
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +20 -20
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +26 -26
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +28 -24
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +72 -71
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +128 -118
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +37 -37
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +11 -11
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +18 -18
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +57 -57
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +43 -40
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +58 -58
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +35 -32
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +38 -38
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +46 -38
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +64 -57
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +29 -29
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +23 -23
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +28 -28
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +38 -38
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +16 -16
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +23 -23
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +76 -64
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +163 -155
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +84 -84
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +50 -46
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +21 -21
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +16 -16
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +29 -29
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +37 -37
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +22 -22
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +19 -19
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +22 -22
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +31 -31
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +18 -18
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +75 -74
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +28 -28
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +28 -28
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +36 -36
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +58 -58
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +77 -72
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +19 -19
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +68 -68
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +25 -25
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +12 -12
- 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/flexible-text/index.d.ts +64 -2
- package/form/index.d.ts +405 -11
- package/fullscreen/index.d.ts +117 -6
- package/grid/index.d.ts +262 -7
- package/guider/index.d.ts +304 -8
- package/i18n/index.d.ts +1053 -6
- package/icon/index.d.ts +145 -4
- package/image/index.d.ts +263 -8
- package/index.d.ts +5 -5
- package/input/index.d.ts +281 -6
- package/input-number/index.d.ts +133 -2
- package/layout/index.d.ts +362 -10
- package/list/index.d.ts +182 -6
- package/loading/index.d.ts +34 -2
- package/mention/index.d.ts +147 -4
- package/menu/index.d.ts +191 -8
- package/message/index.d.ts +203 -8
- package/nav/index.d.ts +269 -6
- package/notify/index.d.ts +158 -7
- package/package.json +13 -13
- package/pagination/index.d.ts +248 -5
- package/popover/index.d.ts +339 -9
- package/progress/index.d.ts +154 -5
- package/property/index.d.ts +118 -3
- package/property-operation/index.d.ts +114 -3
- package/radio/index.d.ts +102 -4
- package/rate/index.d.ts +99 -3
- package/resizable/index.d.ts +197 -7
- package/result/index.d.ts +63 -2
- package/schematics/ng-update/migration-collection.json +4 -4
- package/schematics/ng-update/{update-19 → update-20}/index.js +1 -1
- package/schematics/ng-update/{update-19 → update-20}/index.spec.js +5 -5
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +119 -4
- package/select/index.d.ts +332 -4
- package/shared/index.d.ts +516 -16
- package/skeleton/index.d.ts +301 -8
- package/slide/index.d.ts +270 -12
- package/slider/index.d.ts +117 -2
- package/space/index.d.ts +48 -2
- package/statistic/index.d.ts +124 -2
- package/stepper/index.d.ts +112 -5
- package/strength/index.d.ts +77 -2
- package/switch/index.d.ts +69 -2
- package/table/index.d.ts +670 -9
- package/tabs/index.d.ts +114 -4
- package/tag/index.d.ts +71 -3
- package/testing/index.d.ts +178 -7
- package/time-picker/index.d.ts +468 -7
- package/timeline/index.d.ts +109 -5
- package/tooltip/index.d.ts +198 -8
- package/transfer/index.d.ts +212 -4
- package/tree/index.d.ts +469 -5
- package/tree-select/index.d.ts +231 -3
- package/types/index.d.ts +22 -3
- package/typography/index.d.ts +69 -4
- package/upload/index.d.ts +253 -6
- package/util/index.d.ts +595 -14
- package/vote/index.d.ts +66 -2
- package/watermark/index.d.ts +75 -2
- package/action/action.component.d.ts +0 -76
- package/action/action.module.d.ts +0 -10
- package/action/actions.component.d.ts +0 -21
- package/affix/affix.component.d.ts +0 -54
- package/affix/affix.module.d.ts +0 -9
- package/affix/respond-events.d.ts +0 -9
- package/alert/alert.component.d.ts +0 -51
- package/alert/alert.directive.d.ts +0 -12
- package/alert/alert.module.d.ts +0 -10
- package/anchor/anchor-link.component.d.ts +0 -34
- package/anchor/anchor.component.d.ts +0 -68
- package/anchor/anchor.module.d.ts +0 -11
- package/anchor/anchor.token.d.ts +0 -9
- package/arrow-switcher/arrow-switcher.component.d.ts +0 -64
- package/arrow-switcher/module.d.ts +0 -12
- package/autocomplete/autocomplete.component.d.ts +0 -79
- package/autocomplete/autocomplete.trigger.directive.d.ts +0 -77
- package/autocomplete/module.d.ts +0 -18
- package/autocomplete/overlay/autocomplete-animations.d.ts +0 -8
- package/autocomplete/overlay/autocomplete-container.component.d.ts +0 -33
- package/autocomplete/overlay/autocomplete-ref.d.ts +0 -14
- package/autocomplete/overlay/autocomplete.config.d.ts +0 -36
- package/autocomplete/overlay/autocomplete.options.d.ts +0 -2
- package/autocomplete/overlay/autocomplete.service.d.ts +0 -32
- package/avatar/avatar-list/avatar-list.component.d.ts +0 -41
- package/avatar/avatar.component.d.ts +0 -95
- package/avatar/avatar.module.d.ts +0 -11
- package/avatar/avatar.pipe.d.ts +0 -30
- package/avatar/avatar.service.d.ts +0 -21
- package/back-top/back-top.component.d.ts +0 -57
- package/back-top/back-top.module.d.ts +0 -9
- package/badge/badge.component.d.ts +0 -75
- package/badge/badge.module.d.ts +0 -9
- package/breadcrumb/breadcrumb-item.component.d.ts +0 -15
- package/breadcrumb/breadcrumb.component.d.ts +0 -44
- package/breadcrumb/module.d.ts +0 -12
- package/button/button-group.component.d.ts +0 -32
- package/button/button-icon.component.d.ts +0 -51
- package/button/button.component.d.ts +0 -61
- package/button/button.module.d.ts +0 -11
- package/calendar/calendar-cells.d.ts +0 -17
- package/calendar/calendar-header.component.d.ts +0 -51
- package/calendar/calendar.component.d.ts +0 -78
- package/calendar/module.d.ts +0 -18
- package/card/card.component.d.ts +0 -28
- package/card/card.module.d.ts +0 -10
- package/card/content.component.d.ts +0 -21
- package/card/header.component.d.ts +0 -42
- package/carousel/carousel-item.directive.d.ts +0 -14
- package/carousel/carousel.component.d.ts +0 -112
- package/carousel/carousel.service.d.ts +0 -19
- package/carousel/carousel.token.d.ts +0 -7
- package/carousel/engine/carousel-base.d.ts +0 -27
- package/carousel/engine/carousel-fade.d.ts +0 -15
- package/carousel/engine/carousel-noop.d.ts +0 -14
- package/carousel/engine/carousel-slide.d.ts +0 -16
- package/carousel/engine/index.d.ts +0 -4
- package/carousel/module.d.ts +0 -11
- package/carousel/typings.d.ts +0 -20
- package/cascader/cascader-li.component.d.ts +0 -24
- package/cascader/cascader-search-option.component.d.ts +0 -21
- package/cascader/cascader.component.d.ts +0 -284
- package/cascader/cascader.pipe.d.ts +0 -11
- package/cascader/cascader.service.d.ts +0 -97
- package/cascader/module.d.ts +0 -19
- package/cascader/types.d.ts +0 -23
- package/checkbox/checkbox.component.d.ts +0 -16
- package/checkbox/module.d.ts +0 -9
- package/collapse/collapse-item.component.d.ts +0 -52
- package/collapse/collapse.component.d.ts +0 -29
- package/collapse/collapse.token.d.ts +0 -15
- package/collapse/module.d.ts +0 -13
- package/color-picker/color-picker-custom-panel.component.d.ts +0 -17
- package/color-picker/color-picker-panel.component.d.ts +0 -28
- package/color-picker/color-picker.component.d.ts +0 -100
- package/color-picker/constant.d.ts +0 -1
- package/color-picker/coordinates.directive.d.ts +0 -28
- package/color-picker/helpers/color.class.d.ts +0 -32
- package/color-picker/helpers/colors-table.class.d.ts +0 -154
- package/color-picker/helpers/rgba.class.d.ts +0 -20
- package/color-picker/module.d.ts +0 -22
- package/color-picker/parts/alpha/alpha.component.d.ts +0 -28
- package/color-picker/parts/hue/hue.component.d.ts +0 -26
- package/color-picker/parts/indicator/indicator.component.d.ts +0 -13
- package/color-picker/parts/inputs/inputs.component.d.ts +0 -18
- package/color-picker/parts/saturation/saturation.component.d.ts +0 -28
- package/comment/comment-actions.directive.d.ts +0 -8
- package/comment/comment-content.directive.d.ts +0 -8
- package/comment/comment.component.d.ts +0 -24
- package/comment/comment.module.d.ts +0 -13
- package/copy/copy.directive.d.ts +0 -47
- package/copy/module.d.ts +0 -9
- package/core/animation/animation-consts.d.ts +0 -22
- package/core/animation/collapse.d.ts +0 -2
- package/core/animation/fade.d.ts +0 -2
- package/core/animation/index.d.ts +0 -1
- package/core/animation/public-api.d.ts +0 -5
- package/core/animation/thumb.d.ts +0 -6
- package/core/animation/zoom.d.ts +0 -4
- package/core/behaviors/constructor.d.ts +0 -5
- package/core/behaviors/control-value-accessor.d.ts +0 -7
- package/core/behaviors/decorators.d.ts +0 -9
- package/core/behaviors/disabled.d.ts +0 -7
- package/core/behaviors/focus-control.d.ts +0 -14
- package/core/behaviors/index.d.ts +0 -10
- package/core/behaviors/initialized.d.ts +0 -6
- package/core/behaviors/loading-done.d.ts +0 -5
- package/core/behaviors/mixin.d.ts +0 -5
- package/core/behaviors/tabindex.d.ts +0 -11
- package/core/behaviors/unsubscribe.d.ts +0 -11
- package/core/click-positioner.d.ts +0 -15
- package/core/color/color.d.ts +0 -9
- package/core/color/index.d.ts +0 -1
- package/core/debounce-time.d.ts +0 -8
- package/core/event-dispatchers/index.d.ts +0 -1
- package/core/overlay/abstract-overlay-container.d.ts +0 -43
- package/core/overlay/abstract-overlay-ref.d.ts +0 -101
- package/core/overlay/abstract-overlay.config.d.ts +0 -131
- package/core/overlay/abstract-overlay.service.d.ts +0 -56
- package/core/overlay/index.d.ts +0 -9
- package/core/overlay/interface.d.ts +0 -5
- package/core/overlay/overlay-position-map.d.ts +0 -5
- package/core/overlay/overlay.directive.d.ts +0 -51
- package/core/overlay/portal-directives.d.ts +0 -14
- package/core/overlay/utils.d.ts +0 -14
- package/core/request-animation.d.ts +0 -2
- package/core/scroll-to.service.d.ts +0 -4
- package/core/scroll.d.ts +0 -22
- package/core/spacing/index.d.ts +0 -1
- package/core/spacing/spacing.d.ts +0 -2
- package/core/store/action-state.d.ts +0 -5
- package/core/store/action.d.ts +0 -4
- package/core/store/actions-stream.d.ts +0 -14
- package/core/store/index.d.ts +0 -3
- package/core/store/store.d.ts +0 -43
- package/core/store/types.d.ts +0 -12
- package/core/store/utils.d.ts +0 -2
- package/core/theme/enum.d.ts +0 -5
- package/core/theme/index.d.ts +0 -3
- package/core/theme/store.d.ts +0 -12
- package/core/theme/theme.d.ts +0 -2
- package/core/translate.d.ts +0 -8
- package/core/update-host-class.service.d.ts +0 -15
- package/date-picker/abstract-picker.component.d.ts +0 -174
- package/date-picker/abstract-picker.directive.d.ts +0 -57
- package/date-picker/base-picker.component.d.ts +0 -49
- package/date-picker/date-helper.service.d.ts +0 -20
- package/date-picker/date-picker.component.d.ts +0 -15
- package/date-picker/date-picker.config.d.ts +0 -27
- package/date-picker/date-picker.directive.d.ts +0 -13
- package/date-picker/date-picker.module.d.ts +0 -24
- package/date-picker/date-picker.service.d.ts +0 -14
- package/date-picker/inner-types.d.ts +0 -19
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +0 -37
- package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -44
- package/date-picker/lib/calendar/calendar-table.component.d.ts +0 -41
- package/date-picker/lib/date/date-header.component.d.ts +0 -10
- package/date-picker/lib/date/date-table-cell.component.d.ts +0 -18
- package/date-picker/lib/date/date-table.component.d.ts +0 -23
- package/date-picker/lib/date/types.d.ts +0 -41
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +0 -65
- package/date-picker/lib/decade/decade-header.component.d.ts +0 -14
- package/date-picker/lib/decade/decade-table.component.d.ts +0 -21
- package/date-picker/lib/lib-packer.module.d.ts +0 -28
- package/date-picker/lib/month/month-header.component.d.ts +0 -10
- package/date-picker/lib/month/month-table.component.d.ts +0 -22
- package/date-picker/lib/popups/date-popup.component.d.ts +0 -99
- package/date-picker/lib/popups/inner-popup.component.d.ts +0 -43
- package/date-picker/lib/quarter/quarter-table.component.d.ts +0 -21
- package/date-picker/lib/year/year-header.component.d.ts +0 -14
- package/date-picker/lib/year/year-table.component.d.ts +0 -21
- package/date-picker/month-picker.component.d.ts +0 -19
- package/date-picker/picker.component.d.ts +0 -76
- package/date-picker/picker.pipes.d.ts +0 -40
- package/date-picker/picker.util.d.ts +0 -30
- package/date-picker/picker.validators.d.ts +0 -22
- package/date-picker/quarter-picker.component.d.ts +0 -22
- package/date-picker/range-picker.component.d.ts +0 -16
- package/date-picker/range-picker.directive.d.ts +0 -14
- package/date-picker/standard-types.d.ts +0 -45
- package/date-picker/week-picker.component.d.ts +0 -15
- package/date-picker/year-picker.component.d.ts +0 -22
- package/date-range/date-range.class.d.ts +0 -29
- package/date-range/date-range.component.d.ts +0 -89
- package/date-range/module.d.ts +0 -15
- package/date-range/optional-dates/optional-dates.component.d.ts +0 -25
- package/dialog/body/dialog-body.component.d.ts +0 -18
- package/dialog/confirm/confirm.component.d.ts +0 -29
- package/dialog/confirm/token.d.ts +0 -8
- package/dialog/confirm.config.d.ts +0 -71
- package/dialog/dialog-animations.d.ts +0 -8
- package/dialog/dialog-container.component.d.ts +0 -46
- package/dialog/dialog-ref.d.ts +0 -32
- package/dialog/dialog.config.d.ts +0 -79
- package/dialog/dialog.module.d.ts +0 -20
- package/dialog/dialog.options.d.ts +0 -2
- package/dialog/dialog.service.d.ts +0 -52
- package/dialog/footer/dialog-footer.component.d.ts +0 -33
- package/dialog/header/dialog-header.component.d.ts +0 -47
- package/divider/divider.component.d.ts +0 -47
- package/divider/divider.module.d.ts +0 -10
- package/dot/dot.component.d.ts +0 -45
- package/dot/dot.module.d.ts +0 -8
- package/drag-drop/drag-content.directive.d.ts +0 -15
- package/drag-drop/drag-drop.class.d.ts +0 -36
- package/drag-drop/drag-drop.service.d.ts +0 -27
- package/drag-drop/drag-drop.token.d.ts +0 -24
- package/drag-drop/drag-handle.directive.d.ts +0 -24
- package/drag-drop/drag-ref.d.ts +0 -47
- package/drag-drop/drag.directive.d.ts +0 -39
- package/drag-drop/drop-container.directive.d.ts +0 -70
- package/drag-drop/module.d.ts +0 -14
- package/dropdown/dropdown-active.directive.d.ts +0 -27
- package/dropdown/dropdown-menu-item.directive.d.ts +0 -95
- package/dropdown/dropdown-menu.component.d.ts +0 -54
- package/dropdown/dropdown-submenu.component.d.ts +0 -23
- package/dropdown/dropdown.directive.d.ts +0 -77
- package/dropdown/module.d.ts +0 -13
- package/empty/empty.component.d.ts +0 -92
- package/empty/empty.config.d.ts +0 -10
- package/empty/empty.module.d.ts +0 -10
- package/empty/svgs.d.ts +0 -4
- package/flexible-text/flexible-text.component.d.ts +0 -53
- package/flexible-text/flexible-text.module.d.ts +0 -10
- package/form/form-group-error/form-group-error.component.d.ts +0 -21
- package/form/form-group-label.directive.d.ts +0 -18
- package/form/form-group.component.d.ts +0 -68
- package/form/form-submit.directive.d.ts +0 -18
- package/form/form-validator-loader.d.ts +0 -28
- package/form/form-validator.service.d.ts +0 -54
- package/form/form.class.d.ts +0 -54
- package/form/form.directive.d.ts +0 -56
- package/form/from-group-footer/form-group-footer.component.d.ts +0 -27
- package/form/module.d.ts +0 -25
- package/form/validator/confirm-validator.directive.d.ts +0 -17
- package/form/validator/index.d.ts +0 -4
- package/form/validator/max-validator.directive.d.ts +0 -15
- package/form/validator/min-validator.directive.d.ts +0 -15
- package/form/validator/unique-validator.directive.d.ts +0 -16
- package/fullscreen/fullscreen-launch.directive.d.ts +0 -9
- package/fullscreen/fullscreen-ref.d.ts +0 -25
- package/fullscreen/fullscreen.component.d.ts +0 -34
- package/fullscreen/fullscreen.config.d.ts +0 -23
- package/fullscreen/fullscreen.module.d.ts +0 -8
- package/fullscreen/fullscreen.service.d.ts +0 -20
- package/grid/flex.d.ts +0 -85
- package/grid/grid.token.d.ts +0 -7
- package/grid/grid.type.d.ts +0 -5
- package/grid/module.d.ts +0 -11
- package/grid/thy-col.directive.d.ts +0 -33
- package/grid/thy-grid-item.component.d.ts +0 -28
- package/grid/thy-grid.component.d.ts +0 -71
- package/grid/thy-row.directive.d.ts +0 -30
- package/guider/guider-hint/guider-hint.component.d.ts +0 -28
- package/guider/guider-manager.d.ts +0 -23
- package/guider/guider-ref.d.ts +0 -42
- package/guider/guider-step-ref.d.ts +0 -44
- package/guider/guider.class.d.ts +0 -95
- package/guider/guider.directive.d.ts +0 -21
- package/guider/guider.interface.d.ts +0 -26
- package/guider/guider.module.d.ts +0 -13
- package/guider/guider.service.d.ts +0 -25
- package/guider/utils.d.ts +0 -4
- package/i18n/i18n.d.ts +0 -191
- package/i18n/i18n.service.d.ts +0 -19
- package/i18n/i18n.token.d.ts +0 -8
- package/i18n/locale.d.ts +0 -4
- package/i18n/locales/de-de.d.ts +0 -162
- package/i18n/locales/en-us.d.ts +0 -183
- package/i18n/locales/index.d.ts +0 -5
- package/i18n/locales/ja-jp.d.ts +0 -162
- package/i18n/locales/zh-hans.d.ts +0 -162
- package/i18n/locales/zh-hant.d.ts +0 -162
- package/i18n/util.d.ts +0 -3
- package/icon/config.d.ts +0 -2
- package/icon/icon-registry.d.ts +0 -84
- package/icon/icon.component.d.ts +0 -47
- package/icon/icon.module.d.ts +0 -9
- package/image/image-group.component.d.ts +0 -16
- package/image/image.class.d.ts +0 -38
- package/image/image.config.d.ts +0 -21
- package/image/image.directive.d.ts +0 -50
- package/image/image.service.d.ts +0 -30
- package/image/image.token.d.ts +0 -17
- package/image/module.d.ts +0 -19
- package/image/preview/image-preview-ref.d.ts +0 -14
- package/image/preview/image-preview.component.d.ts +0 -73
- package/image/utils.d.ts +0 -1
- package/input/input-count.component.d.ts +0 -27
- package/input/input-group.component.d.ts +0 -71
- package/input/input-search.component.d.ts +0 -70
- package/input/input.component.d.ts +0 -82
- package/input/input.directive.d.ts +0 -26
- package/input/module.d.ts +0 -16
- package/input-number/input-number.component.d.ts +0 -115
- package/input-number/module.d.ts +0 -13
- package/layout/content-main.component.d.ts +0 -19
- package/layout/content-section.component.d.ts +0 -19
- package/layout/content.component.d.ts +0 -19
- package/layout/header.component.d.ts +0 -69
- package/layout/layout.component.d.ts +0 -22
- package/layout/layout.module.d.ts +0 -21
- package/layout/sidebar-content.component.d.ts +0 -19
- package/layout/sidebar-footer.component.d.ts +0 -19
- package/layout/sidebar-header.component.d.ts +0 -40
- package/layout/sidebar.component.d.ts +0 -123
- package/list/list-item-meta.component.d.ts +0 -25
- package/list/list-item.component.d.ts +0 -9
- package/list/list.component.d.ts +0 -14
- package/list/list.module.d.ts +0 -13
- package/list/selection/selection-list.d.ts +0 -116
- package/list/selection/selection.interface.d.ts +0 -8
- package/loading/loading.component.d.ts +0 -24
- package/loading/loading.module.d.ts +0 -8
- package/mention/adapter/adapter.d.ts +0 -19
- package/mention/adapter/editable.adapter.d.ts +0 -9
- package/mention/adapter/index.d.ts +0 -7
- package/mention/adapter/textarea.adapter.d.ts +0 -11
- package/mention/caret-positioner.d.ts +0 -19
- package/mention/interfaces.d.ts +0 -61
- package/mention/mention.directive.d.ts +0 -43
- package/mention/mention.module.d.ts +0 -13
- package/mention/suggestions/suggestions.component.d.ts +0 -28
- package/menu/divider/menu-divider.component.d.ts +0 -12
- package/menu/group/menu-group.component.d.ts +0 -61
- package/menu/item/action/menu-item-action.component.d.ts +0 -34
- package/menu/item/icon/menu-item-icon.component.d.ts +0 -18
- package/menu/item/menu-item.component.d.ts +0 -20
- package/menu/item/name/menu-item-name.component.d.ts +0 -17
- package/menu/menu.component.d.ts +0 -23
- package/menu/menu.module.d.ts +0 -16
- package/message/abstract/abstract-message-container.component.d.ts +0 -13
- package/message/abstract/abstract-message-queue.service.d.ts +0 -13
- package/message/abstract/abstract-message-ref.d.ts +0 -18
- package/message/abstract/abstract-message.component.d.ts +0 -35
- package/message/abstract/abstract-message.service.d.ts +0 -17
- package/message/abstract/index.d.ts +0 -5
- package/message/message-container.component.d.ts +0 -12
- package/message/message-queue.service.d.ts +0 -11
- package/message/message-ref.d.ts +0 -4
- package/message/message.component.d.ts +0 -13
- package/message/message.config.d.ts +0 -29
- package/message/message.service.d.ts +0 -36
- package/message/module.d.ts +0 -13
- package/nav/icon-nav/icon-nav-link.directive.d.ts +0 -10
- package/nav/icon-nav/icon-nav.component.d.ts +0 -15
- package/nav/nav-ink-bar.directive.d.ts +0 -22
- package/nav/nav-item.directive.d.ts +0 -60
- package/nav/nav.component.d.ts +0 -142
- package/nav/nav.module.d.ts +0 -17
- package/nav/nav.pipe.d.ts +0 -11
- package/notify/module.d.ts +0 -13
- package/notify/notify-container.component.d.ts +0 -12
- package/notify/notify-queue.service.d.ts +0 -15
- package/notify/notify-ref.d.ts +0 -4
- package/notify/notify.component.d.ts +0 -19
- package/notify/notify.config.d.ts +0 -55
- package/notify/notify.service.d.ts +0 -42
- package/pagination/pagination.class.d.ts +0 -79
- package/pagination/pagination.component.d.ts +0 -132
- package/pagination/pagination.config.d.ts +0 -8
- package/pagination/pagination.module.d.ts +0 -13
- package/pagination/pagination.pipe.d.ts +0 -17
- package/popover/body/popover-body.component.d.ts +0 -10
- package/popover/header/popover-header.component.d.ts +0 -35
- package/popover/module.d.ts +0 -14
- package/popover/popover-animations.d.ts +0 -8
- package/popover/popover-container.component.d.ts +0 -38
- package/popover/popover-ref.d.ts +0 -14
- package/popover/popover.config.d.ts +0 -110
- package/popover/popover.directive.d.ts +0 -67
- package/popover/popover.options.d.ts +0 -2
- package/popover/popover.service.d.ts +0 -58
- package/progress/interfaces.d.ts +0 -23
- package/progress/progress-circle.component.d.ts +0 -43
- package/progress/progress-strip.component.d.ts +0 -23
- package/progress/progress.component.d.ts +0 -59
- package/progress/progress.module.d.ts +0 -11
- package/property/module.d.ts +0 -11
- package/property/properties.component.d.ts +0 -25
- package/property/property-item.component.d.ts +0 -80
- package/property-operation/group/property-operation-group.component.d.ts +0 -10
- package/property-operation/module.d.ts +0 -12
- package/property-operation/property-operation.component.d.ts +0 -92
- package/public-api.d.ts +0 -1
- package/radio/button/radio-button.component.d.ts +0 -18
- package/radio/group/radio-group.component.d.ts +0 -46
- package/radio/module.d.ts +0 -11
- package/radio/radio.component.d.ts +0 -22
- package/radio/radio.token.d.ts +0 -12
- package/rate/module.d.ts +0 -13
- package/rate/rate-item.component.d.ts +0 -17
- package/rate/rate.component.d.ts +0 -69
- package/resizable/interface.d.ts +0 -12
- package/resizable/module.d.ts +0 -10
- package/resizable/resizable.directive.d.ts +0 -91
- package/resizable/resizable.service.d.ts +0 -32
- package/resizable/resize-handle.component.d.ts +0 -31
- package/resizable/resize-handles.component.d.ts +0 -21
- package/resizable/utils.d.ts +0 -3
- package/result/result.component.d.ts +0 -54
- package/result/result.module.d.ts +0 -8
- package/segment/segment-item.component.d.ts +0 -34
- package/segment/segment.component.d.ts +0 -55
- package/segment/segment.module.d.ts +0 -11
- package/segment/segment.token.d.ts +0 -16
- package/segment/types.d.ts +0 -5
- package/select/custom-select/custom-select.component.d.ts +0 -271
- package/select/module.d.ts +0 -16
- package/select/native-select/native-select.component.d.ts +0 -30
- package/select/select.config.d.ts +0 -34
- package/shared/base-form-check.component.d.ts +0 -51
- package/shared/directives/string-or-template-outlet.directive.d.ts +0 -17
- package/shared/directives/thy-autofocus.directive.d.ts +0 -23
- package/shared/directives/thy-contextmenu.directive.d.ts +0 -17
- package/shared/directives/thy-ctrl-enter.directive.d.ts +0 -17
- package/shared/directives/thy-drag-drop.directive.d.ts +0 -15
- package/shared/directives/thy-enter.directive.d.ts +0 -18
- package/shared/directives/thy-scroll.directive.d.ts +0 -39
- package/shared/directives/thy-show.d.ts +0 -19
- package/shared/directives/thy-stop-propagation.directive.d.ts +0 -17
- package/shared/directives/view-outlet.directive.d.ts +0 -27
- package/shared/ng-transclude.directive.d.ts +0 -14
- package/shared/option/group/option-group.component.d.ts +0 -22
- package/shared/option/index.d.ts +0 -8
- package/shared/option/list-option/list-option.component.d.ts +0 -32
- package/shared/option/module.d.ts +0 -13
- package/shared/option/option-group.component.d.ts +0 -12
- package/shared/option/option.component.d.ts +0 -51
- package/shared/option/option.token.d.ts +0 -30
- package/shared/option/options-container.component.d.ts +0 -9
- package/shared/option/select-option-base.d.ts +0 -5
- package/shared/select/index.d.ts +0 -2
- package/shared/select/module.d.ts +0 -11
- package/shared/select/select-control/select-control.component.d.ts +0 -73
- package/shared/shared.module.d.ts +0 -17
- package/shared/shared.type.d.ts +0 -1
- package/skeleton/module.d.ts +0 -16
- package/skeleton/skeleton-circle.component.d.ts +0 -45
- package/skeleton/skeleton-rectangle.component.d.ts +0 -55
- package/skeleton/skeleton.component.d.ts +0 -27
- package/skeleton/skeleton.config.d.ts +0 -8
- package/skeleton/stylized/bullet-list.component.d.ts +0 -55
- package/skeleton/stylized/list.component.d.ts +0 -44
- package/skeleton/stylized/paragraph.component.d.ts +0 -52
- package/slide/drawer/drawer-container.directive.d.ts +0 -11
- package/slide/slide-animations.d.ts +0 -4
- package/slide/slide-body/slide-body-section.component.d.ts +0 -16
- package/slide/slide-body/slide-body.component.d.ts +0 -10
- package/slide/slide-container.component.d.ts +0 -49
- package/slide/slide-footer/slide-footer.component.d.ts +0 -12
- package/slide/slide-header/slide-header.component.d.ts +0 -33
- package/slide/slide-layout/slide-layout.component.d.ts +0 -13
- package/slide/slide-ref.service.d.ts +0 -20
- package/slide/slide.config.d.ts +0 -73
- package/slide/slide.module.d.ts +0 -19
- package/slide/slide.service.d.ts +0 -28
- package/slider/slider.component.d.ts +0 -105
- package/slider/slider.module.d.ts +0 -9
- package/space/space.component.d.ts +0 -38
- package/space/space.module.d.ts +0 -8
- package/statistic/statistic.component.d.ts +0 -111
- package/statistic/statistic.module.d.ts +0 -10
- package/stepper/step-header.component.d.ts +0 -15
- package/stepper/step.component.d.ts +0 -28
- package/stepper/stepper-button.directive.d.ts +0 -25
- package/stepper/stepper.component.d.ts +0 -34
- package/stepper/stepper.module.d.ts +0 -11
- package/strength/strength.component.d.ts +0 -69
- package/strength/strength.module.d.ts +0 -7
- package/switch/switch.component.d.ts +0 -59
- package/switch/switch.module.d.ts +0 -8
- package/table/enums/column-skeleton-type.d.ts +0 -6
- package/table/enums/index.d.ts +0 -1
- package/table/pipes/drag.pipe.d.ts +0 -11
- package/table/pipes/table.pipe.d.ts +0 -10
- package/table/table-column.component.d.ts +0 -131
- package/table/table-skeleton.component.d.ts +0 -93
- package/table/table.component.d.ts +0 -333
- package/table/table.interface.d.ts +0 -87
- package/table/table.module.d.ts +0 -22
- package/table/table.type.d.ts +0 -3
- package/tabs/tab-content.component.d.ts +0 -12
- package/tabs/tab.component.d.ts +0 -31
- package/tabs/tabs.component.d.ts +0 -59
- package/tabs/tabs.module.d.ts +0 -12
- package/tabs/types.d.ts +0 -2
- package/tag/tag.component.d.ts +0 -48
- package/tag/tag.module.d.ts +0 -10
- package/tag/tags.component.d.ts +0 -11
- package/testing/data-transfer.d.ts +0 -22
- package/testing/dispatcher-events.d.ts +0 -32
- package/testing/element-focus.d.ts +0 -13
- package/testing/events.d.ts +0 -33
- package/testing/thy-icon.d.ts +0 -5
- package/testing/type-in-element.d.ts +0 -14
- package/testing/xhr-mock.d.ts +0 -51
- package/time-picker/inner/inner-time-picker.class.d.ts +0 -37
- package/time-picker/inner/inner-time-picker.component.d.ts +0 -91
- package/time-picker/inner/inner-time-picker.config.d.ts +0 -42
- package/time-picker/inner/inner-time-picker.store.d.ts +0 -23
- package/time-picker/time-picker-controls.util.d.ts +0 -7
- package/time-picker/time-picker-panel.component.d.ts +0 -113
- package/time-picker/time-picker.component.d.ts +0 -136
- package/time-picker/time-picker.module.d.ts +0 -17
- package/time-picker/time-picker.utils.d.ts +0 -16
- package/timeline/timeline-item.component.d.ts +0 -43
- package/timeline/timeline.component.d.ts +0 -47
- package/timeline/timeline.module.d.ts +0 -11
- package/timeline/timeline.service.d.ts +0 -8
- package/timeline/timeline.type.d.ts +0 -1
- package/tooltip/interface.d.ts +0 -5
- package/tooltip/tooltip-animations.d.ts +0 -4
- package/tooltip/tooltip-ref.d.ts +0 -31
- package/tooltip/tooltip.component.d.ts +0 -36
- package/tooltip/tooltip.config.d.ts +0 -22
- package/tooltip/tooltip.directive.d.ts +0 -81
- package/tooltip/tooltip.module.d.ts +0 -11
- package/tooltip/tooltip.service.d.ts +0 -16
- package/transfer/transfer-list.component.d.ts +0 -41
- package/transfer/transfer.component.d.ts +0 -90
- package/transfer/transfer.interface.d.ts +0 -66
- package/transfer/transfer.module.d.ts +0 -15
- package/tree/tree-abstract.d.ts +0 -19
- package/tree/tree-node.component.d.ts +0 -95
- package/tree/tree.class.d.ts +0 -106
- package/tree/tree.component.d.ts +0 -199
- package/tree/tree.module.d.ts +0 -20
- package/tree/tree.pipe.d.ts +0 -12
- package/tree/tree.service.d.ts +0 -34
- package/tree-select/module.d.ts +0 -14
- package/tree-select/tree-select.class.d.ts +0 -12
- package/tree-select/tree-select.component.d.ts +0 -203
- package/types/common.d.ts +0 -2
- package/types/dictionary.d.ts +0 -10
- package/types/pagination.d.ts +0 -6
- package/typography/bg-color.directive.d.ts +0 -20
- package/typography/module.d.ts +0 -11
- package/typography/text/text.component.d.ts +0 -17
- package/typography/text-color.directive.d.ts +0 -22
- package/upload/constant.d.ts +0 -73
- package/upload/file-drop.directive.d.ts +0 -32
- package/upload/file-select-base.d.ts +0 -22
- package/upload/file-select.component.d.ts +0 -34
- package/upload/module.d.ts +0 -9
- package/upload/types.d.ts +0 -11
- package/upload/upload.config.d.ts +0 -17
- package/upload/upload.service.d.ts +0 -140
- package/upload/util.d.ts +0 -1
- package/util/date/functions.d.ts +0 -85
- package/util/date/tiny-date.d.ts +0 -124
- package/util/dom.d.ts +0 -101
- package/util/helpers/helpers.d.ts +0 -55
- package/util/helpers/index.d.ts +0 -1
- package/util/immutable.d.ts +0 -70
- package/util/keycodes.d.ts +0 -2
- package/util/logger/index.d.ts +0 -1
- package/util/logger/logger.d.ts +0 -6
- package/util/ng.d.ts +0 -2
- package/util/references.d.ts +0 -58
- package/version.d.ts +0 -2
- package/vote/vote.component.d.ts +0 -53
- package/vote/vote.module.d.ts +0 -10
- package/watermark/config.d.ts +0 -19
- package/watermark/watermark.directive.d.ts +0 -63
- package/watermark/watermark.module.d.ts +0 -9
- /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.js +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/index.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/index.spec.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/update-data.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/update-data.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tree.mjs","sources":["../../../src/tree/tree-abstract.ts","../../../src/tree/tree.class.ts","../../../src/tree/tree.service.ts","../../../src/tree/tree-node.component.ts","../../../src/tree/tree-node.component.html","../../../src/tree/tree.pipe.ts","../../../src/tree/tree.component.ts","../../../src/tree/tree.component.html","../../../src/tree/tree.module.ts","../../../src/tree/ngx-tethys-tree.ts"],"sourcesContent":["import { InjectionToken, InputSignal, Signal } from '@angular/core';\nimport { ThyTreeNode } from './tree.class';\nimport { ThyTreeBeforeDragDropContext, ThyTreeBeforeDragStartContext, ThyTreeDragDropEvent, ThyTreeIcons } from './tree.class';\n\nexport interface ThyTreeAbstractComponent {\n thyMultiple: InputSignal<boolean>;\n thyDraggable: InputSignal<boolean>;\n thyShowExpand: InputSignal<boolean>;\n treeNodes: ThyTreeNode[];\n icons: Signal<ThyTreeIcons>;\n thyBeforeDragStart(e: ThyTreeBeforeDragStartContext): boolean;\n thyBeforeDragDrop(e: ThyTreeBeforeDragDropContext): boolean;\n onDragDrop(event: ThyTreeDragDropEvent): void;\n selectTreeNode(node: ThyTreeNode): void;\n toggleTreeNode(node: ThyTreeNode): void;\n isShowExpand(node: ThyTreeNode): boolean;\n trackByFn(number: string, node: ThyTreeNode): string | number;\n isSelected(node: ThyTreeNode): boolean;\n}\n\nexport const THY_TREE_ABSTRACT_TOKEN = new InjectionToken<ThyTreeAbstractComponent>('thy-tree-abstract-token');\n","import { Signal } from '@angular/core';\nimport { helpers, isArray } from 'ngx-tethys/util';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport enum ThyTreeNodeCheckState {\n unchecked = 0,\n checked = 1,\n indeterminate = 2\n}\n\nexport enum ThyTreeDropPosition {\n in = 'in',\n before = 'before',\n after = 'after'\n}\n\nexport interface ThyTreeNodeData<T = any> {\n key?: number | string;\n\n title?: string;\n\n icon?: string;\n\n iconStyle?: {\n [key: string]: any;\n };\n\n children?: ThyTreeNodeData<T>[];\n\n origin?: any;\n\n expanded?: boolean;\n\n disabled?: boolean;\n\n checked?: boolean;\n\n data?: T;\n\n itemClass?: string | string[];\n\n [key: string]: any;\n}\n\nexport interface ThyTreeEmitEvent<T = any> {\n eventName: string;\n\n node?: ThyTreeNode<T>;\n\n event?: Event | any;\n\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n}\n\nexport interface ThyTreeBeforeDragStartContext {\n item: ThyTreeNode;\n}\n\nexport interface ThyTreeBeforeDragDropContext {\n item?: ThyTreeNode;\n containerItems?: ThyTreeNode[];\n previousItem?: ThyTreeNode;\n previousContainerItems?: ThyTreeNode[];\n position?: ThyTreeDropPosition;\n}\n\nexport interface ThyTreeDragDropEvent<T = any> {\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n\n afterNode?: ThyTreeNode<T>;\n}\n\nexport class ThyTreeIcons {\n expand?: string;\n collapse?: string;\n}\n\nexport type ThyClickBehavior = 'default' | 'selectCheckbox';\n\nexport interface ThyTreeFormatEmitEvent {\n eventName: string;\n node: ThyTreeNode;\n event?: MouseEvent | DragEvent;\n}\n\nexport interface IThyTreeService {\n selectedNode: ThyTreeNode;\n flattenTreeNodes: Signal<ThyTreeNode[]>;\n treeNodes: ThyTreeNode[];\n statusChange$: Subject<ThyTreeFormatEmitEvent>;\n initializeTreeNodes: (rootNodes: ThyTreeNodeData[]) => void;\n syncFlattenTreeNodes: () => void;\n setCheckStateResolve: (resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState) => void;\n resetSortedTreeNodes: (treeNodes: ThyTreeNode[], parent?: ThyTreeNode) => void;\n getTreeNode: (key: string | number) => ThyTreeNode;\n getExpandedNodes: () => ThyTreeNode[];\n getCheckedNodes: () => ThyTreeNode[];\n deleteTreeNode: (node: ThyTreeNode) => void;\n addTreeNode: (node: ThyTreeNode, parent?: ThyTreeNode, index?: number) => void;\n expandTreeNodes: (keyOrKeys: string | number | (string | number)[] | true) => void;\n setNodeChecked: (node: ThyTreeNode, checked: boolean, propagateUp?: boolean, propagateDown?: boolean) => void;\n syncNodeCheckState: (node: ThyTreeNode) => void;\n checkStateResolve: (node: ThyTreeNode) => ThyTreeNodeCheckState;\n}\n\nexport class ThyTreeNode<T = any> {\n key?: number | string;\n\n title?: string;\n\n children: ThyTreeNode[];\n\n parentNode: ThyTreeNode;\n\n level = 0;\n\n origin: ThyTreeNodeData<T>;\n\n isExpanded: boolean;\n\n isChecked: ThyTreeNodeCheckState;\n\n isLoading: boolean;\n\n isDisabled: boolean;\n\n itemClass?: string[];\n\n private readonly service: IThyTreeService;\n\n get treeService(): IThyTreeService {\n if (this.service) {\n return this.service;\n } else if (this.parentNode) {\n return this.parentNode.treeService;\n }\n }\n\n constructor(node: ThyTreeNodeData, parent: ThyTreeNode = null, service?: IThyTreeService) {\n this.title = node.title;\n this.key = node.key;\n this.children = [];\n this.parentNode = parent;\n this.level = parent ? parent.level + 1 : this.level;\n this.origin = node;\n this.isDisabled = node.disabled || false;\n this.isExpanded = node.expanded || false;\n this.isChecked = node.checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n this.isLoading = false;\n if (node.itemClass) {\n this.itemClass = isArray(node.itemClass) ? node.itemClass : [node.itemClass];\n }\n if (node.children) {\n node.children.forEach(childNode => {\n this.children.push(new ThyTreeNode(childNode, this, service));\n });\n }\n this.service = service;\n if (node.children && node.children.length && service) {\n this.isChecked = service.checkStateResolve(this);\n }\n }\n\n public setKey(key: string) {\n this.origin.key = key;\n this.key = key;\n }\n\n public setTitle(title: string) {\n this.origin.title = title;\n this.title = title;\n }\n\n public setLevel(level: number) {\n this.level = level;\n }\n\n private _setExpanded(expanded: boolean, propagate = false) {\n this.origin.expanded = expanded;\n this.isExpanded = expanded;\n if (propagate && this.children) {\n this.children.forEach(n => n._setExpanded(expanded, propagate));\n }\n }\n\n public setExpanded(expanded: boolean, propagate = false) {\n this._setExpanded(expanded, propagate);\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setLoading(loading: boolean): void {\n this.isLoading = loading;\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setChecked(checked: boolean, propagateUp = true, propagateDown = true) {\n this.treeService.setNodeChecked(this, checked, propagateUp, propagateDown);\n }\n\n public syncNodeCheckState() {\n this.treeService.syncNodeCheckState(this);\n }\n\n public getParentNode(): ThyTreeNode {\n return this.parentNode;\n }\n\n public getChildren(): ThyTreeNode[] {\n return this.children;\n }\n\n public addChildren(children: ThyTreeNodeData | ThyTreeNodeData[], index: number = -1): void {\n children = helpers.coerceArray(children);\n ((children as ThyTreeNodeData[]) || []).forEach((childNode: ThyTreeNodeData, i: number) => {\n if (index === -1) {\n this.children.push(new ThyTreeNode(childNode, this));\n } else {\n this.children.splice(index + i, 0, new ThyTreeNode(childNode, this, this.treeService));\n }\n });\n\n this.origin.children = this.getChildren().map(n => n.origin);\n this.setLoading(false);\n this.treeService.statusChange$.next({\n eventName: 'addChildren',\n node: this\n });\n }\n}\n","import { coerceArray, isFunction } from 'ngx-tethys/util';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Injectable, OnDestroy, signal } from '@angular/core';\nimport { ThyTreeNodeCheckState, ThyTreeNodeData, ThyTreeNode, IThyTreeService, ThyTreeFormatEmitEvent } from './tree.class';\n\nfunction checkStateResolve(node: ThyTreeNode) {\n const checkedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n const unCheckedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.unchecked);\n if (checkedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.checked;\n } else if (unCheckedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.unchecked;\n } else {\n return ThyTreeNodeCheckState.indeterminate;\n }\n}\n\ntype FlattenAllNodesCb = (treeNode: ThyTreeNode) => boolean;\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTreeService implements IThyTreeService, OnDestroy {\n selectedNode!: ThyTreeNode;\n\n flattenTreeNodes = signal<ThyTreeNode[]>([]);\n\n private originTreeNodes: ThyTreeNodeData[] = [];\n\n public treeNodes: ThyTreeNode[] = [];\n\n public checkStateResolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve;\n\n statusChange$ = new Subject<ThyTreeFormatEmitEvent>();\n\n constructor() {\n this.statusChange$.pipe().subscribe(event => {\n this.syncFlattenTreeNodes();\n this.syncNodeCheckState(event.node);\n });\n }\n\n public initializeTreeNodes(rootNodes: ThyTreeNodeData[]) {\n this.originTreeNodes = rootNodes || [];\n this.treeNodes = (rootNodes || []).map(node => new ThyTreeNode(node, null, this));\n }\n\n public syncFlattenTreeNodes() {\n this.flattenTreeNodes.set(this.getParallelTreeNodes(this.treeNodes, false));\n }\n\n private getParallelTreeNodes(rootTrees: ThyTreeNode[] = this.treeNodes, flattenAllNodes: boolean | FlattenAllNodesCb = true) {\n const flattenTreeData: ThyTreeNode[] = [];\n function _getParallelTreeNodes(list: ThyTreeNode[]) {\n return list.forEach((treeNode, index) => {\n flattenTreeData.push(treeNode);\n const flattenAllNodesFlag = isFunction(flattenAllNodes) ? flattenAllNodes(treeNode) : flattenAllNodes;\n if (flattenAllNodesFlag || treeNode.isExpanded) {\n _getParallelTreeNodes(treeNode.children);\n }\n });\n }\n _getParallelTreeNodes(rootTrees);\n return flattenTreeData;\n }\n\n setCheckStateResolve(resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve) {\n this.checkStateResolve = resolve;\n }\n\n public resetSortedTreeNodes(treeNodes: ThyTreeNode[], parent?: ThyTreeNode) {\n treeNodes.forEach(node => {\n node.level = node.parentNode ? node.parentNode.level + 1 : 0;\n node.origin.children = node.children.map(n => n.origin);\n node.parentNode = parent;\n this.resetSortedTreeNodes(node.children, node);\n });\n }\n\n public getTreeNode(key: string | number): ThyTreeNode {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.find(n => n.key === key);\n }\n\n public getExpandedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isExpanded);\n }\n\n public getCheckedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n }\n\n public deleteTreeNode(node: ThyTreeNode) {\n if (node.parentNode) {\n const children = node.parentNode.children;\n const index = children.findIndex(n => n.key === node.key);\n if (index > -1) {\n children.splice(index, 1);\n node.parentNode.origin.children = children.map(item => item.origin);\n this.syncNodeCheckState(node.parentNode);\n }\n } else {\n const index = this.treeNodes.findIndex(n => n.key === node.key);\n if (index > -1) {\n this.treeNodes.splice(index, 1);\n this.originTreeNodes.splice(index, 1);\n }\n }\n }\n\n public addTreeNode(node: ThyTreeNode, parent?: ThyTreeNode, index = -1) {\n if (parent) {\n const insertNode = new ThyTreeNode(node.origin, parent, this);\n if (index > -1) {\n parent.children.splice(index, 0, insertNode);\n } else {\n parent.children.push(insertNode);\n }\n parent.origin.children = parent.children.map(item => item.origin);\n this.syncNodeCheckState(parent);\n } else {\n const insertNode = new ThyTreeNode(node.origin, null, this);\n if (index > -1) {\n this.treeNodes.splice(index, 0, insertNode);\n } else {\n this.treeNodes.push(insertNode);\n }\n this.originTreeNodes = this.treeNodes.map(item => item.origin);\n // this.syncNodeCheckState(insertNode);\n }\n }\n\n public expandTreeNodes(keyOrKeys: string | number | (string | number)[] | true) {\n const keys = keyOrKeys === true ? [] : coerceArray(keyOrKeys);\n const needExpandNodes = this.getParallelTreeNodes(this.treeNodes).filter(node => {\n return keys.indexOf(node.key) > -1 || keyOrKeys === true;\n });\n needExpandNodes.forEach(node => {\n node.setExpanded(true);\n });\n this.syncFlattenTreeNodes();\n }\n\n // 设置节点选中状态\n public setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true): void {\n this._setNodeChecked(node, checked, propagateUp, propagateDown);\n this.syncFlattenTreeNodes();\n }\n\n private _setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true) {\n if (propagateDown && node.children) {\n node.children.forEach(subNode => {\n this._setNodeChecked(subNode, checked, false, true);\n });\n }\n if (!node.isDisabled) {\n if (node.children.length) {\n if (checked) {\n const isAllChildrenChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.checked);\n node.isChecked = isAllChildrenChecked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenChecked && checked;\n } else {\n const isAllChildrenUnChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.unchecked);\n node.isChecked = isAllChildrenUnChecked ? ThyTreeNodeCheckState.unchecked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenUnChecked && checked;\n }\n } else {\n node.isChecked = checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n node.origin.checked = checked;\n }\n }\n if (propagateUp) {\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n public syncNodeCheckState(node: ThyTreeNode): void {\n this._syncNodeCheckState(node);\n this.syncFlattenTreeNodes();\n }\n\n private _syncNodeCheckState(node: ThyTreeNode) {\n if (node) {\n node.isChecked = this.checkStateResolve(node);\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n ngOnDestroy(): void {\n this.statusChange$.complete();\n this.statusChange$ = null;\n }\n}\n","import {\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n numberAttribute,\n inject,\n input,\n computed,\n contentChild,\n viewChild,\n output\n} from '@angular/core';\n\nimport { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';\nimport { ThyTreeNode } from './tree.class';\nimport { ThyTreeEmitEvent, ThyTreeNodeCheckState, ThyClickBehavior } from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 树形控件的节点组件\n * @private\n * @name thy-tree-node\n */\n@Component({\n selector: 'thy-tree-node',\n templateUrl: './tree-node.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [ThyIcon, NgClass, NgStyle, NgTemplateOutlet, ThyLoading],\n host: {\n '[class.thy-tree-node]': 'true',\n '[class]': 'itemClass()'\n }\n})\nexport class ThyTreeNodeComponent {\n root = inject(THY_TREE_ABSTRACT_TOKEN);\n thyTreeService = inject(ThyTreeService);\n\n /**\n * node 节点展现所需的数据\n */\n readonly node = input<ThyTreeNode>(null);\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n readonly thyAsync = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持多选节点\n */\n readonly thyMultiple = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n */\n readonly thyDraggable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n */\n readonly thyCheckable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n * @default default\n */\n readonly thyClickBehavior = input<ThyClickBehavior>(undefined);\n\n /**\n * 设置节点名称是否支持超出截取\n * @default false\n */\n readonly thyTitleTruncate = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n readonly templateRef = input<TemplateRef<any>>();\n\n /**\n * 设置子的空数据渲染模板\n */\n readonly emptyChildrenTemplateRef = input<TemplateRef<any>>();\n\n /**\n * 设置 node 点击事件\n */\n readonly thyOnClick = output<ThyTreeEmitEvent>();\n\n /**\n * 双击 node 事件\n */\n readonly thyDblClick = output<ThyTreeEmitEvent>();\n\n /**\n * 点击展开触发事件\n */\n readonly thyOnExpandChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n readonly thyOnCheckboxChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 childrenTree 的渲染模板\n */\n readonly childrenTreeTemplateRef = contentChild<TemplateRef<any>>('childrenTree');\n\n /** The native `<div class=\"thy-tree-node-wrapper thy-sortable-item\"></div>` element. */\n readonly treeNodeWrapper = viewChild<ElementRef<HTMLElement>>('treeNodeWrapper');\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n */\n readonly thyItemSize = input(44, { transform: numberAttribute });\n\n /**\n * 设置节点缩进距离,缩进距离 = thyIndent * node.level\n */\n readonly thyIndent = input(25, { transform: numberAttribute });\n\n readonly nodeIcon = computed(() => {\n return this.node().origin.icon;\n });\n\n readonly nodeIconStyle = computed(() => {\n return this.node().origin.iconStyle;\n });\n\n protected readonly itemClass = computed(() => {\n return this.node()?.itemClass?.join(' ');\n });\n\n checkState = ThyTreeNodeCheckState;\n\n public clickNode(event: Event) {\n const node = this.node();\n if (node.isDisabled) {\n this.expandNode(event);\n } else {\n if (this.thyCheckable() && this.thyClickBehavior() === 'selectCheckbox') {\n this.clickNodeCheck(event);\n } else {\n if (this.root.thyMultiple()) {\n this.root.toggleTreeNode(node);\n } else {\n this.root.selectTreeNode(node);\n }\n }\n }\n this.thyOnClick.emit({\n eventName: 'click',\n event: event,\n node: node\n });\n }\n\n public dbClickNode(event: Event) {\n this.thyDblClick.emit({\n eventName: 'dbclick',\n event: event,\n node: this.node()\n });\n }\n\n public clickNodeCheck(event: Event) {\n event.stopPropagation();\n const node = this.node();\n if (node.isChecked === ThyTreeNodeCheckState.unchecked) {\n node.setChecked(true);\n } else if (node.isChecked === ThyTreeNodeCheckState.checked) {\n node.setChecked(false);\n } else if (node.isChecked === ThyTreeNodeCheckState.indeterminate) {\n if (node.children?.length) {\n const activeChildren = node.children.filter(item => !item.isDisabled);\n const isAllActiveChildrenChecked = activeChildren.every(item => item.isChecked);\n node.setChecked(!isAllActiveChildrenChecked);\n } else {\n node.setChecked(true);\n }\n }\n this.thyOnCheckboxChange.emit({\n eventName: 'checkboxChange',\n event: event,\n node: node\n });\n }\n\n public expandNode(event: Event) {\n event.stopPropagation();\n const node = this.node();\n this.node().setExpanded(!node.isExpanded);\n if (this.root.thyShowExpand()) {\n this.thyOnExpandChange.emit({\n eventName: 'expand',\n event: event,\n node: node\n });\n if (this.thyAsync() && node.children.length === 0) {\n node.setLoading(true);\n }\n }\n }\n\n public isShowExpand(node: ThyTreeNode) {\n return this.root.isShowExpand(node);\n }\n}\n","<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node())\"\n [class.disabled]=\"node().isDisabled\"\n [class.expand]=\"node().children.length\"\n [style.height]=\"thyItemSize() + 'px'\"\n (click)=\"clickNode($event)\"\n >\n <span class=\"thy-tree-index\" [style.width.px]=\"node().level * thyIndent()\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n @if (isShowExpand(node())) {\n @if ((node().children && node().children.length > 0) || thyAsync() || emptyChildrenTemplateRef()) {\n @if (root.icons()?.expand && root.icons()?.collapse) {\n <thy-icon\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node().isExpanded ? root.icons().expand : root.icons().collapse\"\n ></thy-icon>\n } @else {\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node().isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n }\n }\n }\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n @if (thyCheckable()) {\n <input\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node().isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node().isChecked === checkState.unchecked\"\n [checked]=\"node().isChecked === checkState.checked\"\n [disabled]=\"node().isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n }\n @if (!templateRef()) {\n @if (nodeIcon()) {\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon()\" [ngStyle]=\"nodeIconStyle()\"></i></span>\n }\n <span [title]=\"node().title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate()\"> {{ node().title }}</span>\n }\n @if (templateRef()) {\n <ng-template\n [ngTemplateOutlet]=\"templateRef()\"\n [ngTemplateOutletContext]=\"{ $implicit: node(), node: node(), origin: node()?.origin }\"\n ></ng-template>\n }\n </span>\n</div>\n@if (thyAsync()) {\n @if (node().isLoading) {\n <thy-loading [thyDone]=\"!node().isLoading\"></thy-loading>\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThyTreeNode } from './tree.class';\nimport { ThyTreeBeforeDragStartContext } from './tree.class';\n\n/**\n * @private\n */\n@Pipe({\n name: 'treeNodeDraggable'\n})\nexport class ThyTreeNodeDraggablePipe implements PipeTransform {\n transform(node: ThyTreeNode, beforeDragStart: (e: ThyTreeBeforeDragStartContext) => boolean): boolean {\n if (beforeDragStart) {\n const draggable = beforeDragStart({ item: node } as ThyTreeBeforeDragStartContext);\n return draggable;\n } else {\n return true;\n }\n }\n}\n","import { coerceBooleanProperty, helpers } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n numberAttribute,\n TemplateRef,\n ViewEncapsulation,\n inject,\n input,\n signal,\n effect,\n computed,\n model,\n DestroyRef,\n viewChild,\n contentChild,\n viewChildren,\n afterNextRender,\n output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';\nimport { ThyTreeNode } from './tree.class';\nimport {\n ThyTreeBeforeDragDropContext,\n ThyTreeBeforeDragStartContext,\n ThyClickBehavior,\n ThyTreeDragDropEvent,\n ThyTreeDropPosition,\n ThyTreeEmitEvent,\n ThyTreeIcons,\n ThyTreeNodeCheckState,\n ThyTreeNodeData\n} from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { DOCUMENT } from '@angular/common';\nimport { CdkDrag, CdkDragDrop, CdkDragEnd, CdkDragMove, CdkDragStart, CdkDropList } from '@angular/cdk/drag-drop';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\ntype ThyTreeSize = 'sm' | 'default';\n\ntype ThyTreeType = 'default' | 'especial';\n\nconst treeTypeClassMap = {\n default: ['thy-tree-default'],\n especial: ['thy-tree-especial']\n};\n\nconst treeItemSizeMap = {\n default: 44,\n sm: 42\n};\n\n/**\n * 树形控件组件\n * @name thy-tree\n */\n@Component({\n selector: 'thy-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tree',\n '[class.thy-multiple-selection-list]': 'thyMultiple()',\n '[class.thy-virtual-scrolling-tree]': 'thyVirtualScroll()',\n '[class.thy-tree-draggable]': 'thyDraggable()',\n '[class.thy-tree-dragging]': 'dragging()'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTree),\n multi: true\n },\n {\n provide: THY_TREE_ABSTRACT_TOKEN,\n useExisting: forwardRef(() => ThyTree)\n },\n ThyTreeService\n ],\n imports: [\n CdkDrag,\n CdkDropList,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ]\n})\nexport class ThyTree implements ControlValueAccessor {\n thyTreeService = inject(ThyTreeService);\n private document = inject(DOCUMENT);\n private destroyRef = inject(DestroyRef);\n\n private expandedKeys: (string | number)[];\n\n private selectedKeys: (string | number)[];\n\n private hostRenderer = useHostRenderer();\n\n private _onTouched: () => void = () => {};\n\n private _onChange: (value: any) => void = (_: any) => {};\n\n // 缓存 Element 和 DragRef 的关系,方便在 Item 拖动时查找\n private nodeDragsMap = new Map<HTMLElement, CdkDrag<ThyTreeNode>>();\n\n private nodeDragMoved = new Subject<CdkDragMove>();\n\n private startDragNodeClone: ThyTreeNode;\n\n // Node 拖动经过目标时临时记录目标id以及相对应目标的位置\n private nodeDropTarget: {\n position?: ThyTreeDropPosition;\n key?: number | string;\n };\n\n private dropEnterPredicate?: (context: { source: ThyTreeNode; target: ThyTreeNode; dropPosition: ThyTreeDropPosition }) => boolean =\n context => {\n return (\n this.isShowExpand(context.target) || (!this.isShowExpand(context.target) && context.dropPosition !== ThyTreeDropPosition.in)\n );\n };\n\n public selectionModel: SelectionModel<ThyTreeNode>;\n\n public get treeNodes() {\n return this.thyTreeService.treeNodes;\n }\n\n public readonly flattenTreeNodes = computed(() => this.thyTreeService.flattenTreeNodes());\n\n /**\n * 虚拟化滚动的视口\n */\n readonly viewport = viewChild<CdkVirtualScrollViewport>('viewport');\n\n /**\n * TreeNode 展现所需的数据\n * @type ThyTreeNodeData[]\n */\n readonly thyNodes = model<ThyTreeNodeData[]>(undefined);\n\n /**\n * 设置 TreeNode 是否支持展开\n * @type boolean | Function\n */\n readonly thyShowExpand = input<boolean | ((_: ThyTreeNodeData) => boolean)>(true);\n\n /**\n * 设置是否支持多选节点\n */\n readonly thyMultiple = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n * @default false\n */\n readonly thyDraggable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n * @default false\n */\n readonly thyCheckable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n */\n readonly thyClickBehavior = input<ThyClickBehavior>('default');\n\n /**\n * 设置 check 状态的计算策略\n */\n readonly thyCheckStateResolve = input<(node: ThyTreeNode) => ThyTreeNodeCheckState>();\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n readonly thyAsync = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置不同展示类型的 Tree,`default` 为小箭头展示, `especial` 为 加减号图标展示\n * @type ThyTreeType\n * @default default\n */\n readonly thyType = input<ThyTreeType>('default');\n\n /**\n * 设置不同 Tree 展开折叠的图标,`expand` 为展开状态的图标,`collapse` 为折叠状态的图标\n * @type { expand: string, collapse: string }\n */\n readonly thyIcons = input<ThyTreeIcons>({});\n /**\n * 支持 `sm` | `default` 两种大小,默认值为 `default`\n * @type ThyTreeSize\n * @default default\n */\n readonly thySize = input<ThyTreeSize>('default');\n\n /**\n * 设置是否开启虚拟滚动\n */\n readonly thyVirtualScroll = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n * @default 44\n */\n readonly thyItemSize = input(44, {\n transform: value => {\n if (value && this.thySize() !== 'default') {\n throw new Error('setting thySize and thyItemSize at the same time is not allowed');\n }\n return numberAttribute(value);\n }\n });\n\n protected readonly icons = computed(() => {\n if (this.thyType() === 'especial') {\n return { expand: 'minus-square', collapse: 'plus-square' };\n }\n return this.thyIcons();\n });\n\n public readonly itemSize = computed(() => {\n const itemSize = this.thyItemSize();\n const size = this.thySize();\n if (size === 'default') {\n return itemSize || treeItemSizeMap.default;\n } else if (size) {\n return treeItemSizeMap[size] || treeItemSizeMap.default;\n } else {\n return treeItemSizeMap.default;\n }\n });\n\n /**\n * 设置节点名称是否支持超出截取\n * @type boolean\n */\n readonly thyTitleTruncate = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 已选中的 node 节点集合\n * @default []\n */\n readonly thySelectedKeys = input<string[]>(undefined);\n\n /**\n * 展开指定的树节点\n */\n readonly thyExpandedKeys = input<(string | number)[]>(undefined);\n\n /**\n * 是否展开所有树节点\n */\n readonly thyExpandAll = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置缩进距离,缩进距离 = thyIndent * node.level\n * @type number\n */\n readonly thyIndent = input(25, { transform: numberAttribute });\n\n /**\n * 拖拽之前的回调,函数返回 false 则阻止拖拽\n */\n readonly thyBeforeDragStart = input<(context: ThyTreeBeforeDragStartContext) => boolean>(undefined);\n\n /**\n * 拖放到元素时回调,函数返回 false 则阻止拖放到当前元素\n */\n readonly thyBeforeDragDrop = input<(context: ThyTreeBeforeDragDropContext) => boolean>(undefined);\n\n /**\n * 设置子 TreeNode 点击事件\n */\n readonly thyOnClick = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n readonly thyOnCheckboxChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置点击展开触发事件\n */\n readonly thyOnExpandChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 拖拽事件\n */\n readonly thyOnDragDrop = output<ThyTreeDragDropEvent>();\n\n /**\n * 双击 TreeNode 事件\n */\n readonly thyDblClick = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n readonly templateRef = contentChild<TemplateRef<any>>('treeNodeTemplate');\n\n /**\n * 设置子的空数据渲染模板\n */\n readonly emptyChildrenTemplate = contentChild<TemplateRef<any>>('emptyChildrenTemplate');\n\n dragging = signal(false);\n\n readonly cdkDrags = viewChildren(CdkDrag);\n\n constructor() {\n effect(() => {\n const resolve = this.thyCheckStateResolve();\n if (resolve) {\n this.thyTreeService.setCheckStateResolve(resolve);\n }\n });\n\n effect(() => {\n this.initThyNodes();\n });\n\n effect(() => {\n this.setTreeSize();\n });\n\n effect(() => {\n this.setTreeType();\n });\n\n effect(() => {\n this.instanceSelectionModel();\n });\n\n effect(() => {\n this.selectTreeNodes(this.thySelectedKeys());\n });\n\n effect(() => {\n const drags = this.cdkDrags();\n this.nodeDragsMap.clear();\n drags.forEach(drag => {\n if (drag.data) {\n // cdkDrag 变化时,缓存 Element 与 DragRef 的关系,方便 Drag Move 时查找\n this.nodeDragsMap.set(drag.element.nativeElement, drag);\n }\n });\n });\n\n afterNextRender(() => {\n this.nodeDragMoved\n .pipe(\n // auditTime(30),\n // auditTime 可能会导致拖动结束后仍然执行 moved ,所以通过判断 dragging 状态来过滤无效 moved\n filter((event: CdkDragMove) => event.source._dragRef.isDragging()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(event => {\n this.onDragMoved(event);\n });\n });\n }\n\n eventTriggerChanged(event: ThyTreeEmitEvent): void {\n switch (event.eventName) {\n case 'expand':\n this.thyOnExpandChange.emit(event);\n break;\n\n case 'checkboxChange':\n this.thyOnCheckboxChange.emit(event);\n break;\n }\n }\n\n private initThyNodes() {\n this.expandedKeys = this.getExpandedNodes().map(node => node.key);\n this.selectedKeys = this.getSelectedNodes().map(node => node.key);\n this.thyTreeService.initializeTreeNodes(this.thyNodes());\n this.selectTreeNodes(this.selectedKeys);\n this.handleExpandedKeys();\n }\n\n private handleExpandedKeys() {\n if (this.thyExpandAll()) {\n this.thyTreeService.expandTreeNodes(true);\n } else {\n this.expandedKeys = helpers.concatArray(\n (this.thyExpandedKeys() || []).filter(key => !this.expandedKeys.includes(key)),\n this.expandedKeys\n );\n this.thyTreeService.expandTreeNodes(this.expandedKeys);\n }\n }\n\n private setTreeType() {\n const type = this.thyType();\n if (type && treeTypeClassMap[type]) {\n treeTypeClassMap[type].forEach(className => {\n this.hostRenderer.addClass(className);\n });\n }\n }\n\n private setTreeSize() {\n const size = this.thySize();\n if (size) {\n this.hostRenderer.addClass(`thy-tree-${size}`);\n }\n }\n\n private instanceSelectionModel() {\n this.selectionModel = new SelectionModel<any>(this.thyMultiple());\n }\n\n private selectTreeNodes(keys: (string | number)[]) {\n (keys || []).forEach(key => {\n const node = this.thyTreeService.getTreeNode(key);\n if (node) {\n this.selectTreeNode(this.thyTreeService.getTreeNode(key));\n }\n });\n }\n\n isSelected(node: ThyTreeNode) {\n return this.selectionModel.isSelected(node);\n }\n\n toggleTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this.selectionModel.toggle(node);\n }\n }\n\n trackByFn(index: number, item: any) {\n return item.key || index;\n }\n\n isShowExpand(node: ThyTreeNode) {\n const thyShowExpand = this.thyShowExpand();\n if (helpers.isFunction(thyShowExpand)) {\n return (thyShowExpand as Function)(node);\n } else {\n return thyShowExpand;\n }\n }\n\n writeValue(value: ThyTreeNodeData[]): void {\n if (value) {\n this.thyNodes.set(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n onDragStarted(event: CdkDragStart<ThyTreeNode>) {\n this.dragging.set(true);\n this.startDragNodeClone = Object.assign({}, event.source.data);\n if (event.source.data.isExpanded) {\n event.source.data.setExpanded(false);\n }\n }\n\n emitDragMoved(event: CdkDragMove) {\n this.nodeDragMoved.next(event);\n }\n\n onDragMoved(event: CdkDragMove<ThyTreeNode>) {\n // 通过鼠标位置查找对应的目标 Item 元素\n let currentPointElement = this.document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y) as HTMLElement;\n if (!currentPointElement) {\n this.cleanupDragArtifacts();\n return;\n }\n let targetElement = currentPointElement.classList.contains('thy-tree-node')\n ? currentPointElement\n : (currentPointElement.closest('.thy-tree-node') as HTMLElement);\n if (!targetElement) {\n this.cleanupDragArtifacts();\n return;\n }\n // 缓存放置目标Id 并计算鼠标相对应的位置\n this.nodeDropTarget = {\n key: this.nodeDragsMap.get(targetElement)?.data.key,\n position: this.getTargetPosition(targetElement, event)\n };\n // 执行外部传入的 dropEnterPredicate 判断是否允许拖入目标项\n if (this.dropEnterPredicate) {\n const targetDragRef = this.nodeDragsMap.get(targetElement);\n if (\n this.dropEnterPredicate({\n source: event.source.data,\n target: targetDragRef.data,\n dropPosition: this.nodeDropTarget.position\n })\n ) {\n this.showDropPositionPlaceholder(targetElement);\n } else {\n this.nodeDropTarget = null;\n this.cleanupDragArtifacts();\n }\n } else {\n this.showDropPositionPlaceholder(targetElement);\n }\n }\n\n onDragEnded(event: CdkDragEnd<ThyTreeNode>) {\n this.dragging.set(false);\n // 拖拽结束后恢复原始的展开状态\n event.source.data.setExpanded(this.startDragNodeClone.isExpanded);\n setTimeout(() => {\n this.startDragNodeClone = null;\n });\n }\n\n onListDropped(event: CdkDragDrop<ThyTreeNode[], ThyTreeNode[], ThyTreeNode>) {\n if (!this.nodeDropTarget) {\n return;\n }\n if (!this.isShowExpand(this.startDragNodeClone) && this.nodeDropTarget.position === ThyTreeDropPosition.in) {\n this.cleanupDragArtifacts();\n return;\n }\n\n const sourceNode = this.startDragNodeClone;\n const sourceNodeParent = sourceNode.parentNode;\n const targetDragRef = this.cdkDrags().find(item => item.data?.key === this.nodeDropTarget.key);\n const targetNode = targetDragRef?.data;\n const targetNodeParent = targetNode.parentNode;\n\n const beforeDragDropContext: ThyTreeBeforeDragDropContext = {\n previousItem: sourceNode,\n previousContainerItems: sourceNodeParent?.children,\n item: targetNode,\n containerItems: targetNodeParent?.children,\n position: this.nodeDropTarget.position\n };\n\n const thyBeforeDragDrop = this.thyBeforeDragDrop();\n if (thyBeforeDragDrop && !thyBeforeDragDrop(beforeDragDropContext)) {\n this.cleanupDragArtifacts();\n return;\n }\n\n this.thyTreeService.deleteTreeNode(sourceNode);\n\n switch (this.nodeDropTarget.position) {\n case 'before':\n const beforeInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode);\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, beforeInsertIndex);\n break;\n case 'after':\n const afterInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode) + 1;\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, afterInsertIndex);\n break;\n case 'in':\n this.thyTreeService.addTreeNode(sourceNode, targetNode);\n break;\n }\n\n this.thyTreeService.syncFlattenTreeNodes();\n\n let after: ThyTreeNode = null;\n let targe: ThyTreeNode = null;\n if (beforeDragDropContext.position === ThyTreeDropPosition.before) {\n const targetContainerNodes = targetNodeParent?.children || this.treeNodes;\n after = targetContainerNodes[targetContainerNodes.indexOf(targetNode) - 2];\n targe = targetNodeParent;\n } else if (beforeDragDropContext.position === ThyTreeDropPosition.after) {\n after = targetNode;\n targe = targetNodeParent;\n } else {\n after = targetNode.children?.length > 0 ? targetNode.children[targetNode.children.length - 2] : null;\n targe = targetNode;\n }\n\n this.thyOnDragDrop.emit({\n dragNode: this.thyTreeService.getTreeNode(sourceNode.key),\n targetNode: targe,\n afterNode: after\n });\n\n this.cleanupDragArtifacts();\n }\n\n private getTargetPosition(target: HTMLElement, event: CdkDragMove) {\n const targetRect = target.getBoundingClientRect();\n const beforeOrAfterGap = targetRect.height * 0.3;\n // 将 Node 高度分为上中下三段,其中上下的 Gap 为 height 的 30%,通过判断鼠标位置在哪一段 gap 来计算对应的位置\n if (event.pointerPosition.y - targetRect.top < beforeOrAfterGap) {\n return ThyTreeDropPosition.before;\n } else if (event.pointerPosition.y >= targetRect.bottom - beforeOrAfterGap) {\n return ThyTreeDropPosition.after;\n } else {\n return ThyTreeDropPosition.in;\n }\n }\n\n private showDropPositionPlaceholder(targetElement: HTMLElement) {\n this.cleanupDropPositionPlaceholder();\n if (this.nodeDropTarget && targetElement) {\n targetElement.classList.add(`drop-position-${this.nodeDropTarget.position}`);\n }\n }\n\n private cleanupDropPositionPlaceholder() {\n this.document.querySelectorAll('.drop-position-before').forEach(element => element.classList.remove('drop-position-before'));\n this.document.querySelectorAll('.drop-position-after').forEach(element => element.classList.remove('drop-position-after'));\n this.document.querySelectorAll('.drop-position-in').forEach(element => element.classList.remove('drop-position-in'));\n }\n\n private cleanupDragArtifacts() {\n this.nodeDropTarget = null;\n this.cleanupDropPositionPlaceholder();\n }\n\n // region Public Functions\n selectTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this.selectionModel.select(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n }\n\n getTreeNode(key: string) {\n return this.thyTreeService.getTreeNode(key);\n }\n\n getSelectedNode(): ThyTreeNode {\n return this.selectionModel ? this.selectionModel.selected[0] : null;\n }\n\n getSelectedNodes(): ThyTreeNode[] {\n return this.selectionModel ? this.selectionModel.selected : [];\n }\n\n getExpandedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getExpandedNodes();\n }\n\n getCheckedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getCheckedNodes();\n }\n\n addTreeNode(node: ThyTreeNodeData, parent?: ThyTreeNode, index = -1) {\n this.thyTreeService.addTreeNode(new ThyTreeNode(node, null, this.thyTreeService), parent, index);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n deleteTreeNode(node: ThyTreeNode) {\n if (this.isSelected(node)) {\n this.selectionModel.toggle(node);\n }\n this.thyTreeService.deleteTreeNode(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n expandAllNodes() {\n const nodes = this.treeNodes;\n nodes.forEach(n => n.setExpanded(true, true));\n }\n\n collapsedAllNodes() {\n const nodes = this.treeNodes;\n nodes.forEach(n => n.setExpanded(false, true));\n }\n}\n","@let flattenTreeNodesValue = flattenTreeNodes();\n@let draggable = thyDraggable();\n@let async = thyAsync();\n@let checkable = thyCheckable();\n@let multiple = thyMultiple();\n@let titleTruncate = thyTitleTruncate();\n@let indent = thyIndent();\n@let clickBehavior = thyClickBehavior();\n\n@if (thyVirtualScroll()) {\n <cdk-virtual-scroll-viewport\n #viewport\n [itemSize]=\"itemSize()\"\n [style.height]=\"'100%'\"\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodesValue\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\"\n >\n <div class=\"virtual-trees-container\">\n <thy-tree-node\n *cdkVirtualFor=\"let node of flattenTreeNodesValue; trackBy: trackByFn; let i = index\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!draggable || !(node | treeNodeDraggable : thyBeforeDragStart())\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef()\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate()\"\n [thyAsync]=\"async\"\n [thyDraggable]=\"draggable\"\n [thyCheckable]=\"checkable\"\n [thyMultiple]=\"multiple\"\n [thyClickBehavior]=\"clickBehavior\"\n [thyTitleTruncate]=\"titleTruncate\"\n [thyItemSize]=\"itemSize()\"\n [thyIndent]=\"indent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"eventTriggerChanged($event)\">\n </thy-tree-node>\n </div>\n </cdk-virtual-scroll-viewport>\n}\n\n@if (!thyVirtualScroll()) {\n <div\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodesValue\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\">\n @for (node of flattenTreeNodesValue; track trackByFn(i, node); let i = $index) {\n <thy-tree-node\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!draggable || !(node | treeNodeDraggable : thyBeforeDragStart())\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef()\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate()\"\n [thyAsync]=\"async\"\n [thyDraggable]=\"draggable\"\n [thyCheckable]=\"checkable\"\n [thyMultiple]=\"multiple\"\n [thyTitleTruncate]=\"titleTruncate\"\n [thyItemSize]=\"itemSize()\"\n [thyClickBehavior]=\"clickBehavior\"\n [thyIndent]=\"indent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"thyOnCheckboxChange.emit($event)\">\n </thy-tree-node>\n }\n </div>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyCheckboxModule } from 'ngx-tethys/checkbox';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyOptionModule, ThySharedModule } from 'ngx-tethys/shared';\n\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { ThyTree } from './tree.component';\nimport { ThyTreeService } from './tree.service';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\n\n@NgModule({\n imports: [\n DragDropModule,\n CommonModule,\n ThyInputModule,\n ThyButtonModule,\n ThySharedModule,\n FormsModule,\n ThyListModule,\n ThyOptionModule,\n ThyLoadingModule,\n ThyIconModule,\n ThyCheckboxModule,\n ScrollingModule,\n ThyTree,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ],\n exports: [ThyTree, ThyTreeNodeComponent],\n providers: [ThyTreeService]\n})\nexport class ThyTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-tree.mjs","sources":["../../../src/tree/tree-abstract.ts","../../../src/tree/tree.class.ts","../../../src/tree/tree.service.ts","../../../src/tree/tree-node.component.ts","../../../src/tree/tree-node.component.html","../../../src/tree/tree.pipe.ts","../../../src/tree/tree.component.ts","../../../src/tree/tree.component.html","../../../src/tree/tree.module.ts","../../../src/tree/ngx-tethys-tree.ts"],"sourcesContent":["import { InjectionToken, InputSignal, Signal } from '@angular/core';\nimport { ThyTreeNode } from './tree.class';\nimport { ThyTreeBeforeDragDropContext, ThyTreeBeforeDragStartContext, ThyTreeDragDropEvent, ThyTreeIcons } from './tree.class';\n\nexport interface ThyTreeAbstractComponent {\n thyMultiple: InputSignal<boolean>;\n thyDraggable: InputSignal<boolean>;\n thyShowExpand: InputSignal<boolean>;\n treeNodes: ThyTreeNode[];\n icons: Signal<ThyTreeIcons>;\n thyBeforeDragStart(e: ThyTreeBeforeDragStartContext): boolean;\n thyBeforeDragDrop(e: ThyTreeBeforeDragDropContext): boolean;\n onDragDrop(event: ThyTreeDragDropEvent): void;\n selectTreeNode(node: ThyTreeNode): void;\n toggleTreeNode(node: ThyTreeNode): void;\n isShowExpand(node: ThyTreeNode): boolean;\n trackByFn(number: string, node: ThyTreeNode): string | number;\n isSelected(node: ThyTreeNode): boolean;\n}\n\nexport const THY_TREE_ABSTRACT_TOKEN = new InjectionToken<ThyTreeAbstractComponent>('thy-tree-abstract-token');\n","import { Signal } from '@angular/core';\nimport { helpers, isArray } from 'ngx-tethys/util';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport enum ThyTreeNodeCheckState {\n unchecked = 0,\n checked = 1,\n indeterminate = 2\n}\n\nexport enum ThyTreeDropPosition {\n in = 'in',\n before = 'before',\n after = 'after'\n}\n\nexport interface ThyTreeNodeData<T = any> {\n key?: number | string;\n\n title?: string;\n\n icon?: string;\n\n iconStyle?: {\n [key: string]: any;\n };\n\n children?: ThyTreeNodeData<T>[];\n\n origin?: any;\n\n expanded?: boolean;\n\n disabled?: boolean;\n\n checked?: boolean;\n\n data?: T;\n\n itemClass?: string | string[];\n\n [key: string]: any;\n}\n\nexport interface ThyTreeEmitEvent<T = any> {\n eventName: string;\n\n node?: ThyTreeNode<T>;\n\n event?: Event | any;\n\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n}\n\nexport interface ThyTreeBeforeDragStartContext {\n item: ThyTreeNode;\n}\n\nexport interface ThyTreeBeforeDragDropContext {\n item?: ThyTreeNode;\n containerItems?: ThyTreeNode[];\n previousItem?: ThyTreeNode;\n previousContainerItems?: ThyTreeNode[];\n position?: ThyTreeDropPosition;\n}\n\nexport interface ThyTreeDragDropEvent<T = any> {\n dragNode?: ThyTreeNode<T>;\n\n targetNode?: ThyTreeNode<T>;\n\n afterNode?: ThyTreeNode<T>;\n}\n\nexport class ThyTreeIcons {\n expand?: string;\n collapse?: string;\n}\n\nexport type ThyClickBehavior = 'default' | 'selectCheckbox';\n\nexport interface ThyTreeFormatEmitEvent {\n eventName: string;\n node: ThyTreeNode;\n event?: MouseEvent | DragEvent;\n}\n\nexport interface IThyTreeService {\n selectedNode: ThyTreeNode;\n flattenTreeNodes: Signal<ThyTreeNode[]>;\n treeNodes: ThyTreeNode[];\n statusChange$: Subject<ThyTreeFormatEmitEvent>;\n initializeTreeNodes: (rootNodes: ThyTreeNodeData[]) => void;\n syncFlattenTreeNodes: () => void;\n setCheckStateResolve: (resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState) => void;\n resetSortedTreeNodes: (treeNodes: ThyTreeNode[], parent?: ThyTreeNode) => void;\n getTreeNode: (key: string | number) => ThyTreeNode;\n getExpandedNodes: () => ThyTreeNode[];\n getCheckedNodes: () => ThyTreeNode[];\n deleteTreeNode: (node: ThyTreeNode) => void;\n addTreeNode: (node: ThyTreeNode, parent?: ThyTreeNode, index?: number) => void;\n expandTreeNodes: (keyOrKeys: string | number | (string | number)[] | true) => void;\n setNodeChecked: (node: ThyTreeNode, checked: boolean, propagateUp?: boolean, propagateDown?: boolean) => void;\n syncNodeCheckState: (node: ThyTreeNode) => void;\n checkStateResolve: (node: ThyTreeNode) => ThyTreeNodeCheckState;\n}\n\nexport class ThyTreeNode<T = any> {\n key?: number | string;\n\n title?: string;\n\n children: ThyTreeNode[];\n\n parentNode: ThyTreeNode;\n\n level = 0;\n\n origin: ThyTreeNodeData<T>;\n\n isExpanded: boolean;\n\n isChecked: ThyTreeNodeCheckState;\n\n isLoading: boolean;\n\n isDisabled: boolean;\n\n itemClass?: string[];\n\n private readonly service: IThyTreeService;\n\n get treeService(): IThyTreeService {\n if (this.service) {\n return this.service;\n } else if (this.parentNode) {\n return this.parentNode.treeService;\n }\n }\n\n constructor(node: ThyTreeNodeData, parent: ThyTreeNode = null, service?: IThyTreeService) {\n this.title = node.title;\n this.key = node.key;\n this.children = [];\n this.parentNode = parent;\n this.level = parent ? parent.level + 1 : this.level;\n this.origin = node;\n this.isDisabled = node.disabled || false;\n this.isExpanded = node.expanded || false;\n this.isChecked = node.checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n this.isLoading = false;\n if (node.itemClass) {\n this.itemClass = isArray(node.itemClass) ? node.itemClass : [node.itemClass];\n }\n if (node.children) {\n node.children.forEach(childNode => {\n this.children.push(new ThyTreeNode(childNode, this, service));\n });\n }\n this.service = service;\n if (node.children && node.children.length && service) {\n this.isChecked = service.checkStateResolve(this);\n }\n }\n\n public setKey(key: string) {\n this.origin.key = key;\n this.key = key;\n }\n\n public setTitle(title: string) {\n this.origin.title = title;\n this.title = title;\n }\n\n public setLevel(level: number) {\n this.level = level;\n }\n\n private _setExpanded(expanded: boolean, propagate = false) {\n this.origin.expanded = expanded;\n this.isExpanded = expanded;\n if (propagate && this.children) {\n this.children.forEach(n => n._setExpanded(expanded, propagate));\n }\n }\n\n public setExpanded(expanded: boolean, propagate = false) {\n this._setExpanded(expanded, propagate);\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setLoading(loading: boolean): void {\n this.isLoading = loading;\n this.treeService.syncFlattenTreeNodes();\n }\n\n public setChecked(checked: boolean, propagateUp = true, propagateDown = true) {\n this.treeService.setNodeChecked(this, checked, propagateUp, propagateDown);\n }\n\n public syncNodeCheckState() {\n this.treeService.syncNodeCheckState(this);\n }\n\n public getParentNode(): ThyTreeNode {\n return this.parentNode;\n }\n\n public getChildren(): ThyTreeNode[] {\n return this.children;\n }\n\n public addChildren(children: ThyTreeNodeData | ThyTreeNodeData[], index: number = -1): void {\n children = helpers.coerceArray(children);\n ((children as ThyTreeNodeData[]) || []).forEach((childNode: ThyTreeNodeData, i: number) => {\n if (index === -1) {\n this.children.push(new ThyTreeNode(childNode, this));\n } else {\n this.children.splice(index + i, 0, new ThyTreeNode(childNode, this, this.treeService));\n }\n });\n\n this.origin.children = this.getChildren().map(n => n.origin);\n this.setLoading(false);\n this.treeService.statusChange$.next({\n eventName: 'addChildren',\n node: this\n });\n }\n}\n","import { coerceArray, isFunction } from 'ngx-tethys/util';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Injectable, OnDestroy, signal } from '@angular/core';\nimport { ThyTreeNodeCheckState, ThyTreeNodeData, ThyTreeNode, IThyTreeService, ThyTreeFormatEmitEvent } from './tree.class';\n\nfunction checkStateResolve(node: ThyTreeNode) {\n const checkedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n const unCheckedNodes = node.children.filter(n => n.isChecked === ThyTreeNodeCheckState.unchecked);\n if (checkedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.checked;\n } else if (unCheckedNodes.length === node.children.length) {\n return ThyTreeNodeCheckState.unchecked;\n } else {\n return ThyTreeNodeCheckState.indeterminate;\n }\n}\n\ntype FlattenAllNodesCb = (treeNode: ThyTreeNode) => boolean;\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyTreeService implements IThyTreeService, OnDestroy {\n selectedNode!: ThyTreeNode;\n\n flattenTreeNodes = signal<ThyTreeNode[]>([]);\n\n private originTreeNodes: ThyTreeNodeData[] = [];\n\n public treeNodes: ThyTreeNode[] = [];\n\n public checkStateResolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve;\n\n statusChange$ = new Subject<ThyTreeFormatEmitEvent>();\n\n constructor() {\n this.statusChange$.pipe().subscribe(event => {\n this.syncFlattenTreeNodes();\n this.syncNodeCheckState(event.node);\n });\n }\n\n public initializeTreeNodes(rootNodes: ThyTreeNodeData[]) {\n this.originTreeNodes = rootNodes || [];\n this.treeNodes = (rootNodes || []).map(node => new ThyTreeNode(node, null, this));\n }\n\n public syncFlattenTreeNodes() {\n this.flattenTreeNodes.set(this.getParallelTreeNodes(this.treeNodes, false));\n }\n\n private getParallelTreeNodes(rootTrees: ThyTreeNode[] = this.treeNodes, flattenAllNodes: boolean | FlattenAllNodesCb = true) {\n const flattenTreeData: ThyTreeNode[] = [];\n function _getParallelTreeNodes(list: ThyTreeNode[]) {\n return list.forEach((treeNode, index) => {\n flattenTreeData.push(treeNode);\n const flattenAllNodesFlag = isFunction(flattenAllNodes) ? flattenAllNodes(treeNode) : flattenAllNodes;\n if (flattenAllNodesFlag || treeNode.isExpanded) {\n _getParallelTreeNodes(treeNode.children);\n }\n });\n }\n _getParallelTreeNodes(rootTrees);\n return flattenTreeData;\n }\n\n setCheckStateResolve(resolve: (node: ThyTreeNode) => ThyTreeNodeCheckState = checkStateResolve) {\n this.checkStateResolve = resolve;\n }\n\n public resetSortedTreeNodes(treeNodes: ThyTreeNode[], parent?: ThyTreeNode) {\n treeNodes.forEach(node => {\n node.level = node.parentNode ? node.parentNode.level + 1 : 0;\n node.origin.children = node.children.map(n => n.origin);\n node.parentNode = parent;\n this.resetSortedTreeNodes(node.children, node);\n });\n }\n\n public getTreeNode(key: string | number): ThyTreeNode {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.find(n => n.key === key);\n }\n\n public getExpandedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isExpanded);\n }\n\n public getCheckedNodes(): ThyTreeNode[] {\n const allNodes = this.getParallelTreeNodes(this.treeNodes);\n return allNodes.filter(n => n.isChecked === ThyTreeNodeCheckState.checked);\n }\n\n public deleteTreeNode(node: ThyTreeNode) {\n if (node.parentNode) {\n const children = node.parentNode.children;\n const index = children.findIndex(n => n.key === node.key);\n if (index > -1) {\n children.splice(index, 1);\n node.parentNode.origin.children = children.map(item => item.origin);\n this.syncNodeCheckState(node.parentNode);\n }\n } else {\n const index = this.treeNodes.findIndex(n => n.key === node.key);\n if (index > -1) {\n this.treeNodes.splice(index, 1);\n this.originTreeNodes.splice(index, 1);\n }\n }\n }\n\n public addTreeNode(node: ThyTreeNode, parent?: ThyTreeNode, index = -1) {\n if (parent) {\n const insertNode = new ThyTreeNode(node.origin, parent, this);\n if (index > -1) {\n parent.children.splice(index, 0, insertNode);\n } else {\n parent.children.push(insertNode);\n }\n parent.origin.children = parent.children.map(item => item.origin);\n this.syncNodeCheckState(parent);\n } else {\n const insertNode = new ThyTreeNode(node.origin, null, this);\n if (index > -1) {\n this.treeNodes.splice(index, 0, insertNode);\n } else {\n this.treeNodes.push(insertNode);\n }\n this.originTreeNodes = this.treeNodes.map(item => item.origin);\n // this.syncNodeCheckState(insertNode);\n }\n }\n\n public expandTreeNodes(keyOrKeys: string | number | (string | number)[] | true) {\n const keys = keyOrKeys === true ? [] : coerceArray(keyOrKeys);\n const needExpandNodes = this.getParallelTreeNodes(this.treeNodes).filter(node => {\n return keys.indexOf(node.key) > -1 || keyOrKeys === true;\n });\n needExpandNodes.forEach(node => {\n node.setExpanded(true);\n });\n this.syncFlattenTreeNodes();\n }\n\n // 设置节点选中状态\n public setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true): void {\n this._setNodeChecked(node, checked, propagateUp, propagateDown);\n this.syncFlattenTreeNodes();\n }\n\n private _setNodeChecked(node: ThyTreeNode, checked: boolean, propagateUp = true, propagateDown = true) {\n if (propagateDown && node.children) {\n node.children.forEach(subNode => {\n this._setNodeChecked(subNode, checked, false, true);\n });\n }\n if (!node.isDisabled) {\n if (node.children.length) {\n if (checked) {\n const isAllChildrenChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.checked);\n node.isChecked = isAllChildrenChecked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenChecked && checked;\n } else {\n const isAllChildrenUnChecked = node.children.every(item => item.isChecked === ThyTreeNodeCheckState.unchecked);\n node.isChecked = isAllChildrenUnChecked ? ThyTreeNodeCheckState.unchecked : ThyTreeNodeCheckState.indeterminate;\n node.origin.checked = isAllChildrenUnChecked && checked;\n }\n } else {\n node.isChecked = checked ? ThyTreeNodeCheckState.checked : ThyTreeNodeCheckState.unchecked;\n node.origin.checked = checked;\n }\n }\n if (propagateUp) {\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n public syncNodeCheckState(node: ThyTreeNode): void {\n this._syncNodeCheckState(node);\n this.syncFlattenTreeNodes();\n }\n\n private _syncNodeCheckState(node: ThyTreeNode) {\n if (node) {\n node.isChecked = this.checkStateResolve(node);\n this._syncNodeCheckState(node.parentNode);\n }\n }\n\n ngOnDestroy(): void {\n this.statusChange$.complete();\n this.statusChange$ = null;\n }\n}\n","import {\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n numberAttribute,\n inject,\n input,\n computed,\n contentChild,\n viewChild,\n output\n} from '@angular/core';\n\nimport { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';\nimport { ThyTreeNode } from './tree.class';\nimport { ThyTreeEmitEvent, ThyTreeNodeCheckState, ThyClickBehavior } from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 树形控件的节点组件\n * @private\n * @name thy-tree-node\n */\n@Component({\n selector: 'thy-tree-node',\n templateUrl: './tree-node.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [ThyIcon, NgClass, NgStyle, NgTemplateOutlet, ThyLoading],\n host: {\n '[class.thy-tree-node]': 'true',\n '[class]': 'itemClass()'\n }\n})\nexport class ThyTreeNodeComponent {\n root = inject(THY_TREE_ABSTRACT_TOKEN);\n thyTreeService = inject(ThyTreeService);\n\n /**\n * node 节点展现所需的数据\n */\n readonly node = input<ThyTreeNode>(null);\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n readonly thyAsync = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持多选节点\n */\n readonly thyMultiple = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n */\n readonly thyDraggable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n */\n readonly thyCheckable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n * @default default\n */\n readonly thyClickBehavior = input<ThyClickBehavior>(undefined);\n\n /**\n * 设置节点名称是否支持超出截取\n * @default false\n */\n readonly thyTitleTruncate = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n readonly templateRef = input<TemplateRef<any>>();\n\n /**\n * 设置子的空数据渲染模板\n */\n readonly emptyChildrenTemplateRef = input<TemplateRef<any>>();\n\n /**\n * 设置 node 点击事件\n */\n readonly thyOnClick = output<ThyTreeEmitEvent>();\n\n /**\n * 双击 node 事件\n */\n readonly thyDblClick = output<ThyTreeEmitEvent>();\n\n /**\n * 点击展开触发事件\n */\n readonly thyOnExpandChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n readonly thyOnCheckboxChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 childrenTree 的渲染模板\n */\n readonly childrenTreeTemplateRef = contentChild<TemplateRef<any>>('childrenTree');\n\n /** The native `<div class=\"thy-tree-node-wrapper thy-sortable-item\"></div>` element. */\n readonly treeNodeWrapper = viewChild<ElementRef<HTMLElement>>('treeNodeWrapper');\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n */\n readonly thyItemSize = input(44, { transform: numberAttribute });\n\n /**\n * 设置节点缩进距离,缩进距离 = thyIndent * node.level\n */\n readonly thyIndent = input(25, { transform: numberAttribute });\n\n readonly nodeIcon = computed(() => {\n return this.node().origin.icon;\n });\n\n readonly nodeIconStyle = computed(() => {\n return this.node().origin.iconStyle;\n });\n\n protected readonly itemClass = computed(() => {\n return this.node()?.itemClass?.join(' ');\n });\n\n checkState = ThyTreeNodeCheckState;\n\n public clickNode(event: Event) {\n const node = this.node();\n if (node.isDisabled) {\n this.expandNode(event);\n } else {\n if (this.thyCheckable() && this.thyClickBehavior() === 'selectCheckbox') {\n this.clickNodeCheck(event);\n } else {\n if (this.root.thyMultiple()) {\n this.root.toggleTreeNode(node);\n } else {\n this.root.selectTreeNode(node);\n }\n }\n }\n this.thyOnClick.emit({\n eventName: 'click',\n event: event,\n node: node\n });\n }\n\n public dbClickNode(event: Event) {\n this.thyDblClick.emit({\n eventName: 'dbclick',\n event: event,\n node: this.node()\n });\n }\n\n public clickNodeCheck(event: Event) {\n event.stopPropagation();\n const node = this.node();\n if (node.isChecked === ThyTreeNodeCheckState.unchecked) {\n node.setChecked(true);\n } else if (node.isChecked === ThyTreeNodeCheckState.checked) {\n node.setChecked(false);\n } else if (node.isChecked === ThyTreeNodeCheckState.indeterminate) {\n if (node.children?.length) {\n const activeChildren = node.children.filter(item => !item.isDisabled);\n const isAllActiveChildrenChecked = activeChildren.every(item => item.isChecked);\n node.setChecked(!isAllActiveChildrenChecked);\n } else {\n node.setChecked(true);\n }\n }\n this.thyOnCheckboxChange.emit({\n eventName: 'checkboxChange',\n event: event,\n node: node\n });\n }\n\n public expandNode(event: Event) {\n event.stopPropagation();\n const node = this.node();\n this.node().setExpanded(!node.isExpanded);\n if (this.root.thyShowExpand()) {\n this.thyOnExpandChange.emit({\n eventName: 'expand',\n event: event,\n node: node\n });\n if (this.thyAsync() && node.children.length === 0) {\n node.setLoading(true);\n }\n }\n }\n\n public isShowExpand(node: ThyTreeNode) {\n return this.root.isShowExpand(node);\n }\n}\n","<div\n #treeNodeWrapper\n class=\"thy-tree-node-wrapper\"\n [class.active]=\"root.isSelected(node())\"\n [class.disabled]=\"node().isDisabled\"\n [class.expand]=\"node().children.length\"\n [style.height]=\"thyItemSize() + 'px'\"\n (click)=\"clickNode($event)\"\n >\n <span class=\"thy-tree-index\" [style.width.px]=\"node().level * thyIndent()\"></span>\n <span class=\"thy-tree-drag-icon\">\n <thy-icon thyIconName=\"drag\"></thy-icon>\n </span>\n <span class=\"thy-tree-expand\" (click)=\"expandNode($event)\">\n @if (isShowExpand(node())) {\n @if ((node().children && node().children.length > 0) || thyAsync() || emptyChildrenTemplateRef()) {\n @if (root.icons()?.expand && root.icons()?.collapse) {\n <thy-icon\n class=\"thy-tree-expand-icon\"\n [thyIconName]=\"node().isExpanded ? root.icons().expand : root.icons().collapse\"\n ></thy-icon>\n } @else {\n <thy-icon class=\"thy-tree-expand-icon\" [class.collapse]=\"!node().isExpanded\" thyIconName=\"caret-right-down\"></thy-icon>\n }\n }\n }\n </span>\n\n <span class=\"thy-tree-node-content\" (dblclick)=\"dbClickNode($event)\">\n @if (thyCheckable()) {\n <input\n type=\"checkbox\"\n class=\"thy-tree-node-check\"\n [class.form-check-indeterminate]=\"node().isChecked === checkState.indeterminate\"\n [class.form-unchecked]=\"node().isChecked === checkState.unchecked\"\n [checked]=\"node().isChecked === checkState.checked\"\n [disabled]=\"node().isDisabled\"\n (click)=\"clickNodeCheck($event)\"\n />\n }\n @if (!templateRef()) {\n @if (nodeIcon()) {\n <span class=\"thy-tree-node-icon\"> <i [ngClass]=\"nodeIcon()\" [ngStyle]=\"nodeIconStyle()\"></i></span>\n }\n <span [title]=\"node().title\" class=\"thy-tree-node-title\" [class.truncate]=\"thyTitleTruncate()\"> {{ node().title }}</span>\n }\n @if (templateRef()) {\n <ng-template\n [ngTemplateOutlet]=\"templateRef()\"\n [ngTemplateOutletContext]=\"{ $implicit: node(), node: node(), origin: node()?.origin }\"\n ></ng-template>\n }\n </span>\n</div>\n@if (thyAsync()) {\n @if (node().isLoading) {\n <thy-loading [thyDone]=\"!node().isLoading\"></thy-loading>\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThyTreeNode } from './tree.class';\nimport { ThyTreeBeforeDragStartContext } from './tree.class';\n\n/**\n * @private\n */\n@Pipe({\n name: 'treeNodeDraggable'\n})\nexport class ThyTreeNodeDraggablePipe implements PipeTransform {\n transform(node: ThyTreeNode, beforeDragStart: (e: ThyTreeBeforeDragStartContext) => boolean): boolean {\n if (beforeDragStart) {\n const draggable = beforeDragStart({ item: node } as ThyTreeBeforeDragStartContext);\n return draggable;\n } else {\n return true;\n }\n }\n}\n","import { coerceBooleanProperty, helpers } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n numberAttribute,\n TemplateRef,\n ViewEncapsulation,\n inject,\n input,\n signal,\n effect,\n computed,\n model,\n DestroyRef,\n viewChild,\n contentChild,\n viewChildren,\n afterNextRender,\n output,\n DOCUMENT\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THY_TREE_ABSTRACT_TOKEN } from './tree-abstract';\nimport { ThyTreeNode } from './tree.class';\nimport {\n ThyTreeBeforeDragDropContext,\n ThyTreeBeforeDragStartContext,\n ThyClickBehavior,\n ThyTreeDragDropEvent,\n ThyTreeDropPosition,\n ThyTreeEmitEvent,\n ThyTreeIcons,\n ThyTreeNodeCheckState,\n ThyTreeNodeData\n} from './tree.class';\nimport { ThyTreeService } from './tree.service';\nimport { ThyTreeNodeComponent } from './tree-node.component';\n\nimport { CdkDrag, CdkDragDrop, CdkDragEnd, CdkDragMove, CdkDragStart, CdkDropList } from '@angular/cdk/drag-drop';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\ntype ThyTreeSize = 'sm' | 'default';\n\ntype ThyTreeType = 'default' | 'especial';\n\nconst treeTypeClassMap = {\n default: ['thy-tree-default'],\n especial: ['thy-tree-especial']\n};\n\nconst treeItemSizeMap = {\n default: 44,\n sm: 42\n};\n\n/**\n * 树形控件组件\n * @name thy-tree\n */\n@Component({\n selector: 'thy-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tree',\n '[class.thy-multiple-selection-list]': 'thyMultiple()',\n '[class.thy-virtual-scrolling-tree]': 'thyVirtualScroll()',\n '[class.thy-tree-draggable]': 'thyDraggable()',\n '[class.thy-tree-dragging]': 'dragging()'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTree),\n multi: true\n },\n {\n provide: THY_TREE_ABSTRACT_TOKEN,\n useExisting: forwardRef(() => ThyTree)\n },\n ThyTreeService\n ],\n imports: [\n CdkDrag,\n CdkDropList,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ]\n})\nexport class ThyTree implements ControlValueAccessor {\n thyTreeService = inject(ThyTreeService);\n private document = inject(DOCUMENT);\n private destroyRef = inject(DestroyRef);\n\n private expandedKeys: (string | number)[];\n\n private selectedKeys: (string | number)[];\n\n private hostRenderer = useHostRenderer();\n\n private _onTouched: () => void = () => {};\n\n private _onChange: (value: any) => void = (_: any) => {};\n\n // 缓存 Element 和 DragRef 的关系,方便在 Item 拖动时查找\n private nodeDragsMap = new Map<HTMLElement, CdkDrag<ThyTreeNode>>();\n\n private nodeDragMoved = new Subject<CdkDragMove>();\n\n private startDragNodeClone: ThyTreeNode;\n\n // Node 拖动经过目标时临时记录目标id以及相对应目标的位置\n private nodeDropTarget: {\n position?: ThyTreeDropPosition;\n key?: number | string;\n };\n\n private dropEnterPredicate?: (context: { source: ThyTreeNode; target: ThyTreeNode; dropPosition: ThyTreeDropPosition }) => boolean =\n context => {\n return (\n this.isShowExpand(context.target) || (!this.isShowExpand(context.target) && context.dropPosition !== ThyTreeDropPosition.in)\n );\n };\n\n public selectionModel: SelectionModel<ThyTreeNode>;\n\n public get treeNodes() {\n return this.thyTreeService.treeNodes;\n }\n\n public readonly flattenTreeNodes = computed(() => this.thyTreeService.flattenTreeNodes());\n\n /**\n * 虚拟化滚动的视口\n */\n readonly viewport = viewChild<CdkVirtualScrollViewport>('viewport');\n\n /**\n * TreeNode 展现所需的数据\n * @type ThyTreeNodeData[]\n */\n readonly thyNodes = model<ThyTreeNodeData[]>(undefined);\n\n /**\n * 设置 TreeNode 是否支持展开\n * @type boolean | Function\n */\n readonly thyShowExpand = input<boolean | ((_: ThyTreeNodeData) => boolean)>(true);\n\n /**\n * 设置是否支持多选节点\n */\n readonly thyMultiple = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持拖拽排序\n * @default false\n */\n readonly thyDraggable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置 TreeNode 是否支持 Checkbox 选择\n * @default false\n */\n readonly thyCheckable = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 点击节点的行为,`default` 为选中当前节点,`selectCheckbox` 为选中节点的 Checkbox, `thyCheckable` 为 true 时生效。\n */\n readonly thyClickBehavior = input<ThyClickBehavior>('default');\n\n /**\n * 设置 check 状态的计算策略\n */\n readonly thyCheckStateResolve = input<(node: ThyTreeNode) => ThyTreeNodeCheckState>();\n\n /**\n * 设置 TreeNode 是否支持异步加载\n */\n readonly thyAsync = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置不同展示类型的 Tree,`default` 为小箭头展示, `especial` 为 加减号图标展示\n * @type ThyTreeType\n * @default default\n */\n readonly thyType = input<ThyTreeType>('default');\n\n /**\n * 设置不同 Tree 展开折叠的图标,`expand` 为展开状态的图标,`collapse` 为折叠状态的图标\n * @type { expand: string, collapse: string }\n */\n readonly thyIcons = input<ThyTreeIcons>({});\n /**\n * 支持 `sm` | `default` 两种大小,默认值为 `default`\n * @type ThyTreeSize\n * @default default\n */\n readonly thySize = input<ThyTreeSize>('default');\n\n /**\n * 设置是否开启虚拟滚动\n */\n readonly thyVirtualScroll = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 开启虚拟滚动时,单行节点的高度,当`thySize`为`default`时,该参数才生效\n * @default 44\n */\n readonly thyItemSize = input(44, {\n transform: value => {\n if (value && this.thySize() !== 'default') {\n throw new Error('setting thySize and thyItemSize at the same time is not allowed');\n }\n return numberAttribute(value);\n }\n });\n\n protected readonly icons = computed(() => {\n if (this.thyType() === 'especial') {\n return { expand: 'minus-square', collapse: 'plus-square' };\n }\n return this.thyIcons();\n });\n\n public readonly itemSize = computed(() => {\n const itemSize = this.thyItemSize();\n const size = this.thySize();\n if (size === 'default') {\n return itemSize || treeItemSizeMap.default;\n } else if (size) {\n return treeItemSizeMap[size] || treeItemSizeMap.default;\n } else {\n return treeItemSizeMap.default;\n }\n });\n\n /**\n * 设置节点名称是否支持超出截取\n * @type boolean\n */\n readonly thyTitleTruncate = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 已选中的 node 节点集合\n * @default []\n */\n readonly thySelectedKeys = input<string[]>(undefined);\n\n /**\n * 展开指定的树节点\n */\n readonly thyExpandedKeys = input<(string | number)[]>(undefined);\n\n /**\n * 是否展开所有树节点\n */\n readonly thyExpandAll = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置缩进距离,缩进距离 = thyIndent * node.level\n * @type number\n */\n readonly thyIndent = input(25, { transform: numberAttribute });\n\n /**\n * 拖拽之前的回调,函数返回 false 则阻止拖拽\n */\n readonly thyBeforeDragStart = input<(context: ThyTreeBeforeDragStartContext) => boolean>(undefined);\n\n /**\n * 拖放到元素时回调,函数返回 false 则阻止拖放到当前元素\n */\n readonly thyBeforeDragDrop = input<(context: ThyTreeBeforeDragDropContext) => boolean>(undefined);\n\n /**\n * 设置子 TreeNode 点击事件\n */\n readonly thyOnClick = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 check 选择事件\n */\n readonly thyOnCheckboxChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置点击展开触发事件\n */\n readonly thyOnExpandChange = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 拖拽事件\n */\n readonly thyOnDragDrop = output<ThyTreeDragDropEvent>();\n\n /**\n * 双击 TreeNode 事件\n */\n readonly thyDblClick = output<ThyTreeEmitEvent>();\n\n /**\n * 设置 TreeNode 的渲染模板\n */\n readonly templateRef = contentChild<TemplateRef<any>>('treeNodeTemplate');\n\n /**\n * 设置子的空数据渲染模板\n */\n readonly emptyChildrenTemplate = contentChild<TemplateRef<any>>('emptyChildrenTemplate');\n\n dragging = signal(false);\n\n readonly cdkDrags = viewChildren(CdkDrag);\n\n constructor() {\n effect(() => {\n const resolve = this.thyCheckStateResolve();\n if (resolve) {\n this.thyTreeService.setCheckStateResolve(resolve);\n }\n });\n\n effect(() => {\n this.initThyNodes();\n });\n\n effect(() => {\n this.setTreeSize();\n });\n\n effect(() => {\n this.setTreeType();\n });\n\n effect(() => {\n this.instanceSelectionModel();\n });\n\n effect(() => {\n this.selectTreeNodes(this.thySelectedKeys());\n });\n\n effect(() => {\n const drags = this.cdkDrags();\n this.nodeDragsMap.clear();\n drags.forEach(drag => {\n if (drag.data) {\n // cdkDrag 变化时,缓存 Element 与 DragRef 的关系,方便 Drag Move 时查找\n this.nodeDragsMap.set(drag.element.nativeElement, drag);\n }\n });\n });\n\n afterNextRender(() => {\n this.nodeDragMoved\n .pipe(\n // auditTime(30),\n // auditTime 可能会导致拖动结束后仍然执行 moved ,所以通过判断 dragging 状态来过滤无效 moved\n filter((event: CdkDragMove) => event.source._dragRef.isDragging()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(event => {\n this.onDragMoved(event);\n });\n });\n }\n\n eventTriggerChanged(event: ThyTreeEmitEvent): void {\n switch (event.eventName) {\n case 'expand':\n this.thyOnExpandChange.emit(event);\n break;\n\n case 'checkboxChange':\n this.thyOnCheckboxChange.emit(event);\n break;\n }\n }\n\n private initThyNodes() {\n this.expandedKeys = this.getExpandedNodes().map(node => node.key);\n this.selectedKeys = this.getSelectedNodes().map(node => node.key);\n this.thyTreeService.initializeTreeNodes(this.thyNodes());\n this.selectTreeNodes(this.selectedKeys);\n this.handleExpandedKeys();\n }\n\n private handleExpandedKeys() {\n if (this.thyExpandAll()) {\n this.thyTreeService.expandTreeNodes(true);\n } else {\n this.expandedKeys = helpers.concatArray(\n (this.thyExpandedKeys() || []).filter(key => !this.expandedKeys.includes(key)),\n this.expandedKeys\n );\n this.thyTreeService.expandTreeNodes(this.expandedKeys);\n }\n }\n\n private setTreeType() {\n const type = this.thyType();\n if (type && treeTypeClassMap[type]) {\n treeTypeClassMap[type].forEach(className => {\n this.hostRenderer.addClass(className);\n });\n }\n }\n\n private setTreeSize() {\n const size = this.thySize();\n if (size) {\n this.hostRenderer.addClass(`thy-tree-${size}`);\n }\n }\n\n private instanceSelectionModel() {\n this.selectionModel = new SelectionModel<any>(this.thyMultiple());\n }\n\n private selectTreeNodes(keys: (string | number)[]) {\n (keys || []).forEach(key => {\n const node = this.thyTreeService.getTreeNode(key);\n if (node) {\n this.selectTreeNode(this.thyTreeService.getTreeNode(key));\n }\n });\n }\n\n isSelected(node: ThyTreeNode) {\n return this.selectionModel.isSelected(node);\n }\n\n toggleTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this.selectionModel.toggle(node);\n }\n }\n\n trackByFn(index: number, item: any) {\n return item.key || index;\n }\n\n isShowExpand(node: ThyTreeNode) {\n const thyShowExpand = this.thyShowExpand();\n if (helpers.isFunction(thyShowExpand)) {\n return (thyShowExpand as Function)(node);\n } else {\n return thyShowExpand;\n }\n }\n\n writeValue(value: ThyTreeNodeData[]): void {\n if (value) {\n this.thyNodes.set(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n onDragStarted(event: CdkDragStart<ThyTreeNode>) {\n this.dragging.set(true);\n this.startDragNodeClone = Object.assign({}, event.source.data);\n if (event.source.data.isExpanded) {\n event.source.data.setExpanded(false);\n }\n }\n\n emitDragMoved(event: CdkDragMove) {\n this.nodeDragMoved.next(event);\n }\n\n onDragMoved(event: CdkDragMove<ThyTreeNode>) {\n // 通过鼠标位置查找对应的目标 Item 元素\n let currentPointElement = this.document.elementFromPoint(event.pointerPosition.x, event.pointerPosition.y) as HTMLElement;\n if (!currentPointElement) {\n this.cleanupDragArtifacts();\n return;\n }\n let targetElement = currentPointElement.classList.contains('thy-tree-node')\n ? currentPointElement\n : (currentPointElement.closest('.thy-tree-node') as HTMLElement);\n if (!targetElement) {\n this.cleanupDragArtifacts();\n return;\n }\n // 缓存放置目标Id 并计算鼠标相对应的位置\n this.nodeDropTarget = {\n key: this.nodeDragsMap.get(targetElement)?.data.key,\n position: this.getTargetPosition(targetElement, event)\n };\n // 执行外部传入的 dropEnterPredicate 判断是否允许拖入目标项\n if (this.dropEnterPredicate) {\n const targetDragRef = this.nodeDragsMap.get(targetElement);\n if (\n this.dropEnterPredicate({\n source: event.source.data,\n target: targetDragRef.data,\n dropPosition: this.nodeDropTarget.position\n })\n ) {\n this.showDropPositionPlaceholder(targetElement);\n } else {\n this.nodeDropTarget = null;\n this.cleanupDragArtifacts();\n }\n } else {\n this.showDropPositionPlaceholder(targetElement);\n }\n }\n\n onDragEnded(event: CdkDragEnd<ThyTreeNode>) {\n this.dragging.set(false);\n // 拖拽结束后恢复原始的展开状态\n event.source.data.setExpanded(this.startDragNodeClone.isExpanded);\n setTimeout(() => {\n this.startDragNodeClone = null;\n });\n }\n\n onListDropped(event: CdkDragDrop<ThyTreeNode[], ThyTreeNode[], ThyTreeNode>) {\n if (!this.nodeDropTarget) {\n return;\n }\n if (!this.isShowExpand(this.startDragNodeClone) && this.nodeDropTarget.position === ThyTreeDropPosition.in) {\n this.cleanupDragArtifacts();\n return;\n }\n\n const sourceNode = this.startDragNodeClone;\n const sourceNodeParent = sourceNode.parentNode;\n const targetDragRef = this.cdkDrags().find(item => item.data?.key === this.nodeDropTarget.key);\n const targetNode = targetDragRef?.data;\n const targetNodeParent = targetNode.parentNode;\n\n const beforeDragDropContext: ThyTreeBeforeDragDropContext = {\n previousItem: sourceNode,\n previousContainerItems: sourceNodeParent?.children,\n item: targetNode,\n containerItems: targetNodeParent?.children,\n position: this.nodeDropTarget.position\n };\n\n const thyBeforeDragDrop = this.thyBeforeDragDrop();\n if (thyBeforeDragDrop && !thyBeforeDragDrop(beforeDragDropContext)) {\n this.cleanupDragArtifacts();\n return;\n }\n\n this.thyTreeService.deleteTreeNode(sourceNode);\n\n switch (this.nodeDropTarget.position) {\n case 'before':\n const beforeInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode);\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, beforeInsertIndex);\n break;\n case 'after':\n const afterInsertIndex = (targetNodeParent?.children || this.treeNodes).indexOf(targetNode) + 1;\n this.thyTreeService.addTreeNode(sourceNode, targetNodeParent, afterInsertIndex);\n break;\n case 'in':\n this.thyTreeService.addTreeNode(sourceNode, targetNode);\n break;\n }\n\n this.thyTreeService.syncFlattenTreeNodes();\n\n let after: ThyTreeNode = null;\n let targe: ThyTreeNode = null;\n if (beforeDragDropContext.position === ThyTreeDropPosition.before) {\n const targetContainerNodes = targetNodeParent?.children || this.treeNodes;\n after = targetContainerNodes[targetContainerNodes.indexOf(targetNode) - 2];\n targe = targetNodeParent;\n } else if (beforeDragDropContext.position === ThyTreeDropPosition.after) {\n after = targetNode;\n targe = targetNodeParent;\n } else {\n after = targetNode.children?.length > 0 ? targetNode.children[targetNode.children.length - 2] : null;\n targe = targetNode;\n }\n\n this.thyOnDragDrop.emit({\n dragNode: this.thyTreeService.getTreeNode(sourceNode.key),\n targetNode: targe,\n afterNode: after\n });\n\n this.cleanupDragArtifacts();\n }\n\n private getTargetPosition(target: HTMLElement, event: CdkDragMove) {\n const targetRect = target.getBoundingClientRect();\n const beforeOrAfterGap = targetRect.height * 0.3;\n // 将 Node 高度分为上中下三段,其中上下的 Gap 为 height 的 30%,通过判断鼠标位置在哪一段 gap 来计算对应的位置\n if (event.pointerPosition.y - targetRect.top < beforeOrAfterGap) {\n return ThyTreeDropPosition.before;\n } else if (event.pointerPosition.y >= targetRect.bottom - beforeOrAfterGap) {\n return ThyTreeDropPosition.after;\n } else {\n return ThyTreeDropPosition.in;\n }\n }\n\n private showDropPositionPlaceholder(targetElement: HTMLElement) {\n this.cleanupDropPositionPlaceholder();\n if (this.nodeDropTarget && targetElement) {\n targetElement.classList.add(`drop-position-${this.nodeDropTarget.position}`);\n }\n }\n\n private cleanupDropPositionPlaceholder() {\n this.document.querySelectorAll('.drop-position-before').forEach(element => element.classList.remove('drop-position-before'));\n this.document.querySelectorAll('.drop-position-after').forEach(element => element.classList.remove('drop-position-after'));\n this.document.querySelectorAll('.drop-position-in').forEach(element => element.classList.remove('drop-position-in'));\n }\n\n private cleanupDragArtifacts() {\n this.nodeDropTarget = null;\n this.cleanupDropPositionPlaceholder();\n }\n\n // region Public Functions\n selectTreeNode(node: ThyTreeNode) {\n if (node && !node.isDisabled) {\n this.selectionModel.select(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n }\n\n getTreeNode(key: string) {\n return this.thyTreeService.getTreeNode(key);\n }\n\n getSelectedNode(): ThyTreeNode {\n return this.selectionModel ? this.selectionModel.selected[0] : null;\n }\n\n getSelectedNodes(): ThyTreeNode[] {\n return this.selectionModel ? this.selectionModel.selected : [];\n }\n\n getExpandedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getExpandedNodes();\n }\n\n getCheckedNodes(): ThyTreeNode[] {\n return this.thyTreeService.getCheckedNodes();\n }\n\n addTreeNode(node: ThyTreeNodeData, parent?: ThyTreeNode, index = -1) {\n this.thyTreeService.addTreeNode(new ThyTreeNode(node, null, this.thyTreeService), parent, index);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n deleteTreeNode(node: ThyTreeNode) {\n if (this.isSelected(node)) {\n this.selectionModel.toggle(node);\n }\n this.thyTreeService.deleteTreeNode(node);\n this.thyTreeService.syncFlattenTreeNodes();\n }\n\n expandAllNodes() {\n const nodes = this.treeNodes;\n nodes.forEach(n => n.setExpanded(true, true));\n }\n\n collapsedAllNodes() {\n const nodes = this.treeNodes;\n nodes.forEach(n => n.setExpanded(false, true));\n }\n}\n","@let flattenTreeNodesValue = flattenTreeNodes();\n@let draggable = thyDraggable();\n@let async = thyAsync();\n@let checkable = thyCheckable();\n@let multiple = thyMultiple();\n@let titleTruncate = thyTitleTruncate();\n@let indent = thyIndent();\n@let clickBehavior = thyClickBehavior();\n\n@if (thyVirtualScroll()) {\n <cdk-virtual-scroll-viewport\n #viewport\n [itemSize]=\"itemSize()\"\n [style.height]=\"'100%'\"\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodesValue\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\"\n >\n <div class=\"virtual-trees-container\">\n <thy-tree-node\n *cdkVirtualFor=\"let node of flattenTreeNodesValue; trackBy: trackByFn; let i = index\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!draggable || !(node | treeNodeDraggable : thyBeforeDragStart())\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef()\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate()\"\n [thyAsync]=\"async\"\n [thyDraggable]=\"draggable\"\n [thyCheckable]=\"checkable\"\n [thyMultiple]=\"multiple\"\n [thyClickBehavior]=\"clickBehavior\"\n [thyTitleTruncate]=\"titleTruncate\"\n [thyItemSize]=\"itemSize()\"\n [thyIndent]=\"indent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"eventTriggerChanged($event)\">\n </thy-tree-node>\n </div>\n </cdk-virtual-scroll-viewport>\n}\n\n@if (!thyVirtualScroll()) {\n <div\n cdkDropList\n [cdkDropListAutoScrollStep]=\"6\"\n [cdkDropListData]=\"flattenTreeNodesValue\"\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onListDropped($event)\">\n @for (node of flattenTreeNodesValue; track trackByFn(i, node); let i = $index) {\n <thy-tree-node\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!draggable || !(node | treeNodeDraggable : thyBeforeDragStart())\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragMoved)=\"emitDragMoved($event)\"\n [node]=\"node\"\n [templateRef]=\"templateRef()\"\n [emptyChildrenTemplateRef]=\"emptyChildrenTemplate()\"\n [thyAsync]=\"async\"\n [thyDraggable]=\"draggable\"\n [thyCheckable]=\"checkable\"\n [thyMultiple]=\"multiple\"\n [thyTitleTruncate]=\"titleTruncate\"\n [thyItemSize]=\"itemSize()\"\n [thyClickBehavior]=\"clickBehavior\"\n [thyIndent]=\"indent\"\n (thyOnClick)=\"thyOnClick.emit($event)\"\n (thyDblClick)=\"thyDblClick.emit($event)\"\n (thyOnExpandChange)=\"eventTriggerChanged($event)\"\n (thyOnCheckboxChange)=\"thyOnCheckboxChange.emit($event)\">\n </thy-tree-node>\n }\n </div>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyCheckboxModule } from 'ngx-tethys/checkbox';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyOptionModule, ThySharedModule } from 'ngx-tethys/shared';\n\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ThyTreeNodeComponent } from './tree-node.component';\nimport { ThyTree } from './tree.component';\nimport { ThyTreeService } from './tree.service';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyTreeNodeDraggablePipe } from './tree.pipe';\n\n@NgModule({\n imports: [\n DragDropModule,\n CommonModule,\n ThyInputModule,\n ThyButtonModule,\n ThySharedModule,\n FormsModule,\n ThyListModule,\n ThyOptionModule,\n ThyLoadingModule,\n ThyIconModule,\n ThyCheckboxModule,\n ScrollingModule,\n ThyTree,\n ThyTreeNodeComponent,\n ThyTreeNodeDraggablePipe\n ],\n exports: [ThyTree, ThyTreeNodeComponent],\n providers: [ThyTreeService]\n})\nexport class ThyTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -15,18 +15,18 @@ class ThyText {
|
|
|
15
15
|
/**
|
|
16
16
|
* 前置图标
|
|
17
17
|
*/
|
|
18
|
-
this.thyIcon = input(undefined);
|
|
18
|
+
this.thyIcon = input(undefined, ...(ngDevMode ? [{ debugName: "thyIcon" }] : []));
|
|
19
19
|
}
|
|
20
20
|
ngOnInit() { }
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: ThyText, isStandalone: true, selector: "thy-text, [thyText]:not(thy-divider)", inputs: { thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-text" }, ngImport: i0, template: "@if (thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyText, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: 'thy-text, [thyText]:not(thy-divider)', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
27
27
|
class: 'thy-text'
|
|
28
28
|
}, imports: [ThyIcon], template: "@if (thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n" }]
|
|
29
|
-
}], ctorParameters: () => [] });
|
|
29
|
+
}], ctorParameters: () => [], propDecorators: { thyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyIcon", required: false }] }] } });
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* @name thyTextColor
|
|
@@ -41,7 +41,7 @@ class ThyTextColorDirective {
|
|
|
41
41
|
* @type ThyThemeColor | ThyTextColor | string
|
|
42
42
|
* @description 文本颜色,支持设置主题色和自定义颜色值,主题色为 `default`、`primary`、`success`、`info`、`warning`、`danger`、`light`、`secondary`、`muted`、`desc`、`placeholder`
|
|
43
43
|
*/
|
|
44
|
-
this.thyTextColor = input(undefined);
|
|
44
|
+
this.thyTextColor = input(undefined, ...(ngDevMode ? [{ debugName: "thyTextColor" }] : []));
|
|
45
45
|
effect(() => {
|
|
46
46
|
const color = this.thyTextColor();
|
|
47
47
|
this.clearColor();
|
|
@@ -64,16 +64,16 @@ class ThyTextColorDirective {
|
|
|
64
64
|
this.hostRenderer.removeClass(`text-${this.color}`);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyTextColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: ThyTextColorDirective, isStandalone: true, selector: "[thyTextColor]", inputs: { thyTextColor: { classPropertyName: "thyTextColor", publicName: "thyTextColor", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyTextColor"], ngImport: i0 }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyTextColorDirective, decorators: [{
|
|
71
71
|
type: Directive,
|
|
72
72
|
args: [{
|
|
73
73
|
selector: '[thyTextColor]',
|
|
74
74
|
exportAs: 'thyTextColor'
|
|
75
75
|
}]
|
|
76
|
-
}], ctorParameters: () => [] });
|
|
76
|
+
}], ctorParameters: () => [], propDecorators: { thyTextColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTextColor", required: false }] }] } });
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* @name thyBgColor
|
|
@@ -88,7 +88,7 @@ class ThyBackgroundColorDirective {
|
|
|
88
88
|
* @type ThyThemeColor | ThyBgColor | string
|
|
89
89
|
* @description 背景颜色,支持设置主题色和自定义颜色值,主题色为 `primary`、`success`、`info`、`danger`、`warning`、`dark`、`secondary`、`light`、`lighter`、`bright`、`content`、`white`、`transparent`
|
|
90
90
|
*/
|
|
91
|
-
this.thyBgColor = input(undefined);
|
|
91
|
+
this.thyBgColor = input(undefined, ...(ngDevMode ? [{ debugName: "thyBgColor" }] : []));
|
|
92
92
|
effect(() => {
|
|
93
93
|
const bgColor = this.thyBgColor();
|
|
94
94
|
this.clearBgColor();
|
|
@@ -110,23 +110,23 @@ class ThyBackgroundColorDirective {
|
|
|
110
110
|
this.hostRenderer.removeClass(`bg-${this.bgColor}`);
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
114
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyBackgroundColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
114
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: ThyBackgroundColorDirective, isStandalone: true, selector: "[thyBgColor]", inputs: { thyBgColor: { classPropertyName: "thyBgColor", publicName: "thyBgColor", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyBgColor"], ngImport: i0 }); }
|
|
115
115
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyBackgroundColorDirective, decorators: [{
|
|
117
117
|
type: Directive,
|
|
118
118
|
args: [{
|
|
119
119
|
selector: '[thyBgColor]',
|
|
120
120
|
exportAs: 'thyBgColor'
|
|
121
121
|
}]
|
|
122
|
-
}], ctorParameters: () => [] });
|
|
122
|
+
}], ctorParameters: () => [], propDecorators: { thyBgColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyBgColor", required: false }] }] } });
|
|
123
123
|
|
|
124
124
|
class ThyTypographyModule {
|
|
125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
126
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
127
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyTypographyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
126
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyTypographyModule, imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective], exports: [ThyText, ThyTextColorDirective, ThyBackgroundColorDirective] }); }
|
|
127
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyTypographyModule, imports: [CommonModule, ThyIconModule, ThyText] }); }
|
|
128
128
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyTypographyModule, decorators: [{
|
|
130
130
|
type: NgModule,
|
|
131
131
|
args: [{
|
|
132
132
|
imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],
|