@ng-nest/ui 17.0.12 → 18.0.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/README.md +1 -1
- package/affix/affix.component.d.ts +0 -2
- package/affix/affix.property.d.ts +12 -7
- package/alert/alert.component.d.ts +12 -11
- package/alert/alert.property.d.ts +36 -35
- package/anchor/anchor.component.d.ts +15 -18
- package/anchor/anchor.property.d.ts +17 -8
- package/api/api.component.d.ts +2 -7
- package/auto-complete/auto-complete-portal.component.d.ts +20 -25
- package/auto-complete/auto-complete.component.d.ts +17 -34
- package/auto-complete/auto-complete.property.d.ts +282 -20
- package/avatar/avatar.component.d.ts +29 -19
- package/avatar/avatar.property.d.ts +78 -12
- package/back-top/back-top.component.d.ts +12 -17
- package/back-top/back-top.property.d.ts +12 -8
- package/badge/badge.component.d.ts +9 -16
- package/badge/badge.property.d.ts +95 -13
- package/base-form/base-form.component.d.ts +53 -26
- package/base-form/base-form.module.d.ts +1 -2
- package/base-form/base-form.property.d.ts +173 -45
- package/button/button.component.d.ts +16 -14
- package/button/button.property.d.ts +242 -100
- package/button/buttons.component.d.ts +8 -10
- package/calendar/calendar.component.d.ts +41 -27
- package/calendar/calendar.property.d.ts +69 -10
- package/card/card.component.d.ts +4 -6
- package/card/card.property.d.ts +50 -9
- package/carousel/carousel-panel.component.d.ts +15 -14
- package/carousel/carousel.component.d.ts +18 -19
- package/carousel/carousel.property.d.ts +168 -28
- package/cascade/cascade-portal.component.d.ts +28 -28
- package/cascade/cascade.component.d.ts +24 -30
- package/cascade/cascade.property.d.ts +292 -20
- package/checkbox/checkbox.component.d.ts +17 -17
- package/checkbox/checkbox.property.d.ts +274 -35
- package/collapse/collapse-panel.component.d.ts +5 -2
- package/collapse/collapse.component.d.ts +3 -7
- package/collapse/collapse.property.d.ts +113 -20
- package/color/color.component.d.ts +4 -9
- package/color/color.property.d.ts +36 -8
- package/color-picker/color-picker-portal.component.d.ts +40 -52
- package/color-picker/color-picker.component.d.ts +19 -28
- package/color-picker/color-picker.property.d.ts +260 -10
- package/comment/comment-reply.component.d.ts +1 -8
- package/comment/comment.component.d.ts +4 -14
- package/comment/comment.property.d.ts +21 -15
- package/container/aside.component.d.ts +3 -8
- package/container/container.component.d.ts +5 -9
- package/container/container.property.d.ts +33 -19
- package/container/footer.component.d.ts +2 -5
- package/container/header.component.d.ts +2 -5
- package/container/main.component.d.ts +2 -7
- package/core/animation/badge.d.ts +8 -0
- package/core/animation/connect.d.ts +8 -1
- package/core/animation/consts.d.ts +4 -0
- package/core/animation/drop.d.ts +4 -0
- package/core/animation/fade.d.ts +4 -0
- package/core/animation/move.d.ts +4 -0
- package/core/animation/opacity.d.ts +4 -0
- package/core/animation/slide.d.ts +4 -1
- package/core/config/config.d.ts +174 -108
- package/core/config/config.service.d.ts +5 -5
- package/core/config/index.d.ts +1 -0
- package/core/functions/chunk.d.ts +12 -1
- package/core/functions/clone-deep.d.ts +16 -0
- package/core/functions/convert.d.ts +77 -4
- package/core/functions/csspx.d.ts +5 -0
- package/core/functions/date.d.ts +59 -3
- package/core/functions/drop.d.ts +13 -1
- package/core/functions/flex.d.ts +4 -0
- package/core/functions/group-by.d.ts +5 -1
- package/core/functions/guid.d.ts +2 -1
- package/core/functions/has-in.d.ts +4 -0
- package/core/functions/order-by.d.ts +5 -1
- package/core/functions/parent-path.d.ts +8 -0
- package/core/functions/property.d.ts +12 -6
- package/core/functions/public-api.d.ts +1 -0
- package/core/functions/remove.d.ts +5 -1
- package/core/functions/resize.d.ts +13 -1
- package/core/interfaces/data.type.d.ts +172 -3
- package/core/interfaces/identify.type.d.ts +60 -0
- package/core/interfaces/layout.type.d.ts +88 -37
- package/core/interfaces/result-list.type.d.ts +91 -3
- package/core/services/http.service.d.ts +0 -22
- package/core/services/repository.service.d.ts +1 -1
- package/core/services/reuse-strategy.service.d.ts +0 -22
- package/core/services/storage.service.d.ts +0 -21
- package/core/theme/theme.d.ts +45 -1
- package/core/theme/theme.service.d.ts +46 -11
- package/core/util/animation.d.ts +1 -1
- package/core/util/camel-to-kebab.d.ts +13 -0
- package/core/util/check.d.ts +10 -2
- package/core/util/computed-style.d.ts +8 -0
- package/core/util/host.d.ts +3 -2
- package/core/util/html.d.ts +3 -2
- package/core/util/kebab-to-camel.d.ts +13 -0
- package/core/util/log.d.ts +10 -2
- package/core/util/option.d.ts +3 -4
- package/core/util/public-api.d.ts +2 -0
- package/crumb/crumb.component.d.ts +1 -10
- package/crumb/crumb.property.d.ts +12 -8
- package/date-picker/date-picker-portal.component.d.ts +80 -33
- package/date-picker/date-picker.component.d.ts +74 -32
- package/date-picker/date-picker.property.d.ts +662 -214
- package/date-picker/date-range-portal.component.d.ts +102 -49
- package/date-picker/date-range.component.d.ts +87 -43
- package/date-picker/picker-date.component.d.ts +63 -17
- package/date-picker/picker-month.component.d.ts +59 -13
- package/date-picker/picker-quarter.component.d.ts +61 -15
- package/date-picker/picker-year.component.d.ts +8 -11
- package/description/description-item.component.d.ts +1 -1
- package/description/description.component.d.ts +6 -10
- package/description/description.property.d.ts +135 -16
- package/dialog/dialog-portal.component.d.ts +4 -4
- package/dialog/dialog-portal.directives.d.ts +1 -1
- package/dialog/dialog.component.d.ts +30 -23
- package/dialog/dialog.property.d.ts +77 -134
- package/doc/doc.component.d.ts +2 -5
- package/drag/drag.directive.d.ts +1 -1
- package/drag/drag.property.d.ts +4 -5
- package/drawer/drawer-container.component.d.ts +1 -1
- package/drawer/drawer-portal.component.d.ts +1 -1
- package/drawer/drawer.component.d.ts +15 -14
- package/drawer/drawer.property.d.ts +26 -18
- package/dropdown/dropdown-portal.component.d.ts +36 -45
- package/dropdown/dropdown.component.d.ts +17 -21
- package/dropdown/dropdown.property.d.ts +24 -21
- package/empty/empty.component.d.ts +0 -7
- package/empty/empty.property.d.ts +27 -4
- package/esm2022/affix/affix.component.mjs +6 -11
- package/esm2022/affix/affix.module.mjs +5 -5
- package/esm2022/affix/affix.property.mjs +22 -20
- package/esm2022/alert/alert.component.mjs +39 -44
- package/esm2022/alert/alert.module.mjs +5 -5
- package/esm2022/alert/alert.property.mjs +102 -107
- package/esm2022/anchor/anchor-inner.component.mjs +4 -4
- package/esm2022/anchor/anchor.component.mjs +73 -95
- package/esm2022/anchor/anchor.module.mjs +5 -5
- package/esm2022/anchor/anchor.property.mjs +45 -35
- package/esm2022/api/api.component.mjs +11 -14
- package/esm2022/api/api.module.mjs +5 -5
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +36 -47
- package/esm2022/auto-complete/auto-complete.component.mjs +122 -162
- package/esm2022/auto-complete/auto-complete.module.mjs +5 -5
- package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
- package/esm2022/avatar/avatar-group.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +75 -81
- package/esm2022/avatar/avatar.module.mjs +5 -5
- package/esm2022/avatar/avatar.property.mjs +116 -45
- package/esm2022/back-top/back-top.component.mjs +57 -73
- package/esm2022/back-top/back-top.module.mjs +5 -5
- package/esm2022/back-top/back-top.property.mjs +37 -29
- package/esm2022/badge/badge.component.mjs +51 -59
- package/esm2022/badge/badge.module.mjs +5 -5
- package/esm2022/badge/badge.property.mjs +111 -38
- package/esm2022/base-form/base-form.component.mjs +89 -81
- package/esm2022/base-form/base-form.module.mjs +7 -8
- package/esm2022/base-form/base-form.property.mjs +200 -89
- package/esm2022/button/button.component.mjs +50 -59
- package/esm2022/button/button.module.mjs +5 -5
- package/esm2022/button/button.property.mjs +293 -98
- package/esm2022/button/buttons.component.mjs +35 -21
- package/esm2022/calendar/calendar.component.mjs +56 -84
- package/esm2022/calendar/calendar.module.mjs +5 -5
- package/esm2022/calendar/calendar.property.mjs +78 -24
- package/esm2022/card/card.component.mjs +10 -14
- package/esm2022/card/card.module.mjs +5 -5
- package/esm2022/card/card.property.mjs +57 -22
- package/esm2022/carousel/carousel-panel.component.mjs +98 -76
- package/esm2022/carousel/carousel.component.mjs +55 -65
- package/esm2022/carousel/carousel.module.mjs +5 -5
- package/esm2022/carousel/carousel.property.mjs +215 -85
- package/esm2022/cascade/cascade-portal.component.mjs +77 -69
- package/esm2022/cascade/cascade.component.mjs +107 -135
- package/esm2022/cascade/cascade.module.mjs +5 -5
- package/esm2022/cascade/cascade.property.mjs +137 -48
- package/esm2022/checkbox/checkbox.component.mjs +68 -83
- package/esm2022/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/checkbox/checkbox.property.mjs +136 -73
- package/esm2022/collapse/collapse-panel.component.mjs +31 -21
- package/esm2022/collapse/collapse.component.mjs +16 -21
- package/esm2022/collapse/collapse.module.mjs +5 -5
- package/esm2022/collapse/collapse.property.mjs +156 -66
- package/esm2022/color/color.component.mjs +25 -26
- package/esm2022/color/color.module.mjs +5 -5
- package/esm2022/color/color.property.mjs +47 -27
- package/esm2022/color-picker/color-picker-portal.component.mjs +120 -130
- package/esm2022/color-picker/color-picker.component.mjs +76 -117
- package/esm2022/color-picker/color-picker.module.mjs +5 -5
- package/esm2022/color-picker/color-picker.property.mjs +123 -27
- package/esm2022/comment/comment-reply.component.mjs +9 -24
- package/esm2022/comment/comment.component.mjs +11 -40
- package/esm2022/comment/comment.module.mjs +5 -5
- package/esm2022/comment/comment.property.mjs +27 -50
- package/esm2022/container/aside.component.mjs +12 -15
- package/esm2022/container/container.component.mjs +21 -24
- package/esm2022/container/container.module.mjs +5 -5
- package/esm2022/container/container.property.mjs +55 -51
- package/esm2022/container/footer.component.mjs +14 -16
- package/esm2022/container/header.component.mjs +14 -16
- package/esm2022/container/main.component.mjs +10 -13
- package/esm2022/core/animation/badge.mjs +17 -3
- package/esm2022/core/animation/connect.mjs +17 -99
- package/esm2022/core/animation/consts.mjs +5 -1
- package/esm2022/core/animation/drop.mjs +5 -1
- package/esm2022/core/animation/fade.mjs +13 -3
- package/esm2022/core/animation/move.mjs +5 -1
- package/esm2022/core/animation/opacity.mjs +5 -1
- package/esm2022/core/animation/slide.mjs +5 -23
- package/esm2022/core/config/config.mjs +1 -1
- package/esm2022/core/config/config.service.mjs +11 -59
- package/esm2022/core/config/index.mjs +2 -0
- package/esm2022/core/functions/chunk.mjs +12 -1
- package/esm2022/core/functions/clone-deep.mjs +17 -1
- package/esm2022/core/functions/convert.mjs +110 -13
- package/esm2022/core/functions/csspx.mjs +17 -0
- package/esm2022/core/functions/date.mjs +80 -4
- package/esm2022/core/functions/drop.mjs +13 -1
- package/esm2022/core/functions/flex.mjs +5 -1
- package/esm2022/core/functions/group-by.mjs +5 -1
- package/esm2022/core/functions/guid.mjs +3 -2
- package/esm2022/core/functions/has-in.mjs +5 -1
- package/esm2022/core/functions/order-by.mjs +5 -1
- package/esm2022/core/functions/parent-path.mjs +9 -1
- package/esm2022/core/functions/property.mjs +16 -8
- package/esm2022/core/functions/public-api.mjs +2 -1
- package/esm2022/core/functions/remove.mjs +5 -1
- package/esm2022/core/functions/resize.mjs +7 -5
- package/esm2022/core/interfaces/data.type.mjs +97 -8
- package/esm2022/core/interfaces/identify.type.mjs +5 -2
- package/esm2022/core/interfaces/layout.type.mjs +1 -1
- package/esm2022/core/interfaces/result-list.type.mjs +1 -1
- package/esm2022/core/services/http.service.mjs +4 -33
- package/esm2022/core/services/preloading-strategy.service.mjs +4 -6
- package/esm2022/core/services/repository.service.mjs +1 -1
- package/esm2022/core/services/reuse-strategy.service.mjs +1 -26
- package/esm2022/core/services/storage.service.mjs +4 -26
- package/esm2022/core/theme/theme.mjs +55 -11
- package/esm2022/core/theme/theme.service.mjs +92 -20
- package/esm2022/core/util/animation.mjs +2 -23
- package/esm2022/core/util/camel-to-kebab.mjs +16 -0
- package/esm2022/core/util/check.mjs +11 -3
- package/esm2022/core/util/computed-style.mjs +9 -1
- package/esm2022/core/util/host.mjs +4 -3
- package/esm2022/core/util/html.mjs +5 -4
- package/esm2022/core/util/kebab-to-camel.mjs +16 -0
- package/esm2022/core/util/log.mjs +11 -3
- package/esm2022/core/util/option.mjs +4 -5
- package/esm2022/core/util/public-api.mjs +3 -1
- package/esm2022/crumb/crumb.component.mjs +6 -29
- package/esm2022/crumb/crumb.module.mjs +5 -5
- package/esm2022/crumb/crumb.property.mjs +21 -26
- package/esm2022/date-picker/date-picker-portal.component.mjs +86 -102
- package/esm2022/date-picker/date-picker.component.mjs +157 -191
- package/esm2022/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/date-picker/date-picker.property.mjs +440 -462
- package/esm2022/date-picker/date-quarter.pipe.mjs +4 -4
- package/esm2022/date-picker/date-range-portal.component.mjs +172 -186
- package/esm2022/date-picker/date-range.component.mjs +224 -266
- package/esm2022/date-picker/picker-date.component.mjs +150 -150
- package/esm2022/date-picker/picker-month.component.mjs +115 -118
- package/esm2022/date-picker/picker-quarter.component.mjs +120 -119
- package/esm2022/date-picker/picker-year.component.mjs +121 -108
- package/esm2022/description/description-item.component.mjs +12 -11
- package/esm2022/description/description.component.mjs +33 -48
- package/esm2022/description/description.module.mjs +5 -5
- package/esm2022/description/description.property.mjs +175 -52
- package/esm2022/dialog/dialog-container.component.mjs +4 -4
- package/esm2022/dialog/dialog-portal.component.mjs +14 -20
- package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
- package/esm2022/dialog/dialog-ref.mjs +1 -1
- package/esm2022/dialog/dialog.component.mjs +117 -131
- package/esm2022/dialog/dialog.module.mjs +5 -5
- package/esm2022/dialog/dialog.property.mjs +149 -139
- package/esm2022/dialog/dialog.service.mjs +7 -7
- package/esm2022/doc/doc.component.mjs +11 -12
- package/esm2022/doc/doc.module.mjs +5 -5
- package/esm2022/drag/drag.directive.mjs +8 -21
- package/esm2022/drag/drag.module.mjs +5 -5
- package/esm2022/drag/drag.property.mjs +10 -16
- package/esm2022/drawer/drawer-container.component.mjs +9 -9
- package/esm2022/drawer/drawer-portal.component.mjs +11 -13
- package/esm2022/drawer/drawer-portal.directives.mjs +10 -10
- package/esm2022/drawer/drawer.component.mjs +40 -59
- package/esm2022/drawer/drawer.module.mjs +5 -5
- package/esm2022/drawer/drawer.property.mjs +47 -54
- package/esm2022/drawer/drawer.service.mjs +6 -6
- package/esm2022/dropdown/dropdown-portal.component.mjs +90 -91
- package/esm2022/dropdown/dropdown.component.mjs +75 -91
- package/esm2022/dropdown/dropdown.module.mjs +5 -5
- package/esm2022/dropdown/dropdown.property.mjs +62 -59
- package/esm2022/empty/empty.component.mjs +6 -26
- package/esm2022/empty/empty.module.mjs +5 -5
- package/esm2022/empty/empty.property.mjs +41 -20
- package/esm2022/examples/examples.component.mjs +11 -12
- package/esm2022/examples/examples.module.mjs +5 -5
- package/esm2022/find/find.component.mjs +188 -232
- package/esm2022/find/find.module.mjs +5 -5
- package/esm2022/find/find.property.mjs +234 -193
- package/esm2022/form/control.component.mjs +138 -116
- package/esm2022/form/form.component.mjs +28 -36
- package/esm2022/form/form.module.mjs +5 -5
- package/esm2022/form/form.property.mjs +57 -55
- package/esm2022/highlight/highlight.component.mjs +54 -59
- package/esm2022/highlight/highlight.module.mjs +5 -5
- package/esm2022/highlight/highlight.property.mjs +25 -21
- package/esm2022/highlight/highlight.service.mjs +17 -0
- package/esm2022/highlight/public-api.mjs +2 -1
- package/esm2022/i18n/i18n.directive.mjs +17 -31
- package/esm2022/i18n/i18n.module.mjs +5 -5
- package/esm2022/i18n/i18n.pipe.mjs +4 -4
- package/esm2022/i18n/i18n.property.mjs +2 -2
- package/esm2022/i18n/i18n.service.mjs +4 -4
- package/esm2022/i18n/languages/ar_EG.mjs +122 -77
- package/esm2022/i18n/languages/bg_BG.mjs +135 -87
- package/esm2022/i18n/languages/ca_ES.mjs +130 -82
- package/esm2022/i18n/languages/cs_CZ.mjs +127 -79
- package/esm2022/i18n/languages/da_DK.mjs +129 -81
- package/esm2022/i18n/languages/de_DE.mjs +125 -77
- package/esm2022/i18n/languages/el_GR.mjs +132 -84
- package/esm2022/i18n/languages/en_GB.mjs +5 -2
- package/esm2022/i18n/languages/en_US.mjs +5 -2
- package/esm2022/i18n/languages/es_ES.mjs +131 -83
- package/esm2022/i18n/languages/et_EE.mjs +130 -82
- package/esm2022/i18n/languages/fa_IR.mjs +109 -61
- package/esm2022/i18n/languages/fi_FI.mjs +134 -86
- package/esm2022/i18n/languages/fr_BE.mjs +128 -80
- package/esm2022/i18n/languages/fr_FR.mjs +127 -79
- package/esm2022/i18n/languages/he_IL.mjs +119 -74
- package/esm2022/i18n/languages/hi_IN.mjs +104 -56
- package/esm2022/i18n/languages/hr_HR.mjs +133 -85
- package/esm2022/i18n/languages/hu_HU.mjs +132 -84
- package/esm2022/i18n/languages/hy_AM.mjs +133 -85
- package/esm2022/i18n/languages/id_ID.mjs +119 -71
- package/esm2022/i18n/languages/is_IS.mjs +125 -77
- package/esm2022/i18n/languages/it_IT.mjs +127 -79
- package/esm2022/i18n/languages/ja_JP.mjs +95 -47
- package/esm2022/i18n/languages/ka_GE.mjs +106 -58
- package/esm2022/i18n/languages/kn_IN.mjs +110 -62
- package/esm2022/i18n/languages/ko_KR.mjs +126 -70
- package/esm2022/i18n/languages/ku_IQ.mjs +117 -85
- package/esm2022/i18n/languages/lv_LV.mjs +128 -72
- package/esm2022/i18n/languages/mn_MN.mjs +138 -82
- package/esm2022/i18n/languages/ms_MY.mjs +124 -68
- package/esm2022/i18n/languages/nb_NO.mjs +133 -77
- package/esm2022/i18n/languages/ne_NP.mjs +117 -61
- package/esm2022/i18n/languages/nl_BE.mjs +134 -78
- package/esm2022/i18n/languages/nl_NL.mjs +134 -78
- package/esm2022/i18n/languages/pl_PL.mjs +132 -76
- package/esm2022/i18n/languages/pt_BR.mjs +133 -77
- package/esm2022/i18n/languages/pt_PT.mjs +133 -77
- package/esm2022/i18n/languages/ro_RO.mjs +130 -74
- package/esm2022/i18n/languages/ru_RU.mjs +131 -75
- package/esm2022/i18n/languages/sk_SK.mjs +130 -83
- package/esm2022/i18n/languages/sl_SI.mjs +121 -73
- package/esm2022/i18n/languages/sr_RS.mjs +138 -90
- package/esm2022/i18n/languages/sv_SE.mjs +132 -84
- package/esm2022/i18n/languages/ta_IN.mjs +117 -61
- package/esm2022/i18n/languages/th_TH.mjs +99 -43
- package/esm2022/i18n/languages/tr_TR.mjs +126 -70
- package/esm2022/i18n/languages/uk_UA.mjs +124 -68
- package/esm2022/i18n/languages/vi_VN.mjs +133 -77
- package/esm2022/i18n/languages/zh_CN.mjs +5 -2
- package/esm2022/i18n/languages/zh_TW.mjs +5 -2
- package/esm2022/icon/icon.component.mjs +46 -77
- package/esm2022/icon/icon.module.mjs +5 -5
- package/esm2022/icon/icon.property.mjs +52 -30
- package/esm2022/icon/icon.service.mjs +15 -14
- package/esm2022/image/image-group.component.mjs +15 -15
- package/esm2022/image/image-preview.component.mjs +47 -46
- package/esm2022/image/image.component.mjs +34 -53
- package/esm2022/image/image.module.mjs +5 -5
- package/esm2022/image/image.property.mjs +152 -38
- package/esm2022/index.mjs +1 -3
- package/esm2022/inner/inner.component.mjs +15 -20
- package/esm2022/inner/inner.module.mjs +5 -5
- package/esm2022/inner/inner.property.mjs +17 -15
- package/esm2022/input/input-group.component.mjs +5 -7
- package/esm2022/input/input.component.mjs +130 -143
- package/esm2022/input/input.module.mjs +5 -5
- package/esm2022/input/input.property.mjs +205 -143
- package/esm2022/input-number/input-number.component.mjs +68 -86
- package/esm2022/input-number/input-number.module.mjs +5 -5
- package/esm2022/input-number/input-number.property.mjs +130 -60
- package/esm2022/keyword/keyword.directive.mjs +46 -54
- package/esm2022/keyword/keyword.module.mjs +5 -5
- package/esm2022/keyword/keyword.property.mjs +32 -28
- package/esm2022/layout/col.component.mjs +48 -51
- package/esm2022/layout/layout.module.mjs +5 -5
- package/esm2022/layout/layout.property.mjs +71 -63
- package/esm2022/layout/row.component.mjs +36 -27
- package/esm2022/link/link.component.mjs +18 -45
- package/esm2022/link/link.module.mjs +5 -5
- package/esm2022/link/link.property.mjs +101 -41
- package/esm2022/list/list-drop-group.directive.mjs +9 -18
- package/esm2022/list/list-option.component.mjs +16 -33
- package/esm2022/list/list.component.mjs +160 -164
- package/esm2022/list/list.module.mjs +5 -5
- package/esm2022/list/list.property.mjs +195 -188
- package/esm2022/loading/loading.component.mjs +44 -45
- package/esm2022/loading/loading.module.mjs +5 -5
- package/esm2022/loading/loading.property.mjs +50 -52
- package/esm2022/menu/menu-node.component.mjs +21 -21
- package/esm2022/menu/menu.component.mjs +57 -76
- package/esm2022/menu/menu.module.mjs +5 -5
- package/esm2022/menu/menu.property.mjs +56 -73
- package/esm2022/message/message.component.mjs +8 -8
- package/esm2022/message/message.module.mjs +5 -5
- package/esm2022/message/message.property.mjs +1 -1
- package/esm2022/message/message.service.mjs +7 -7
- package/esm2022/message-box/message-box.component.mjs +5 -5
- package/esm2022/message-box/message-box.module.mjs +5 -5
- package/esm2022/message-box/message-box.service.mjs +6 -6
- package/esm2022/notification/notification.component.mjs +8 -8
- package/esm2022/notification/notification.module.mjs +5 -5
- package/esm2022/notification/notification.property.mjs +1 -1
- package/esm2022/notification/notification.service.mjs +8 -8
- package/esm2022/outlet/outlet.directive.mjs +12 -14
- package/esm2022/outlet/outlet.module.mjs +5 -5
- package/esm2022/outlet/outlet.property.mjs +2 -2
- package/esm2022/page-header/page-header.component.mjs +12 -28
- package/esm2022/page-header/page-header.module.mjs +5 -5
- package/esm2022/page-header/page-header.property.mjs +31 -27
- package/esm2022/pagination/pagination.component.mjs +74 -100
- package/esm2022/pagination/pagination.module.mjs +5 -5
- package/esm2022/pagination/pagination.property.mjs +99 -136
- package/esm2022/pattern/pattern.component.mjs +12 -13
- package/esm2022/pattern/pattern.module.mjs +5 -5
- package/esm2022/pattern/pattern.property.mjs +2 -2
- package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
- package/esm2022/popconfirm/popconfirm.module.mjs +5 -5
- package/esm2022/popconfirm/popconfirm.property.mjs +76 -62
- package/esm2022/popover/popover-portal.component.mjs +24 -75
- package/esm2022/popover/popover.directive.mjs +70 -86
- package/esm2022/popover/popover.module.mjs +5 -5
- package/esm2022/popover/popover.property.mjs +71 -58
- package/esm2022/portal/portal.module.mjs +5 -5
- package/esm2022/portal/portal.property.mjs +1 -1
- package/esm2022/portal/portal.service.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +173 -167
- package/esm2022/progress/progress.module.mjs +5 -5
- package/esm2022/progress/progress.property.mjs +67 -71
- package/esm2022/radio/radio.component.mjs +45 -61
- package/esm2022/radio/radio.module.mjs +5 -5
- package/esm2022/radio/radio.property.mjs +139 -66
- package/esm2022/rate/rate.component.mjs +61 -79
- package/esm2022/rate/rate.module.mjs +5 -5
- package/esm2022/rate/rate.property.mjs +121 -29
- package/esm2022/resizable/resizable.directive.mjs +30 -45
- package/esm2022/resizable/resizable.module.mjs +5 -5
- package/esm2022/resizable/resizable.property.mjs +16 -46
- package/esm2022/result/result.component.mjs +13 -17
- package/esm2022/result/result.module.mjs +5 -5
- package/esm2022/result/result.property.mjs +25 -17
- package/esm2022/ripple/ripple.directive.mjs +38 -27
- package/esm2022/ripple/ripple.module.mjs +5 -5
- package/esm2022/ripple/ripple.property.mjs +27 -20
- package/esm2022/select/select-portal.component.mjs +52 -67
- package/esm2022/select/select.component.mjs +301 -289
- package/esm2022/select/select.module.mjs +5 -5
- package/esm2022/select/select.property.mjs +195 -102
- package/esm2022/skeleton/skeleton.component.mjs +12 -23
- package/esm2022/skeleton/skeleton.module.mjs +5 -5
- package/esm2022/skeleton/skeleton.property.mjs +31 -28
- package/esm2022/slider/slider.component.mjs +103 -149
- package/esm2022/slider/slider.module.mjs +5 -5
- package/esm2022/slider/slider.property.mjs +60 -79
- package/esm2022/slider-select/slider-select.component.mjs +201 -220
- package/esm2022/slider-select/slider-select.module.mjs +5 -5
- package/esm2022/slider-select/slider-select.property.mjs +143 -70
- package/esm2022/statistic/countdown.component.mjs +13 -16
- package/esm2022/statistic/statistic.component.mjs +23 -21
- package/esm2022/statistic/statistic.module.mjs +5 -5
- package/esm2022/statistic/statistic.property.mjs +68 -34
- package/esm2022/steps/steps.component.mjs +33 -63
- package/esm2022/steps/steps.module.mjs +5 -5
- package/esm2022/steps/steps.property.mjs +28 -39
- package/esm2022/switch/switch.component.mjs +22 -37
- package/esm2022/switch/switch.module.mjs +5 -5
- package/esm2022/switch/switch.property.mjs +122 -32
- package/esm2022/table/table-body.component.mjs +134 -139
- package/esm2022/table/table-foot.component.mjs +15 -18
- package/esm2022/table/table-head.component.mjs +60 -91
- package/esm2022/table/table.component.mjs +192 -222
- package/esm2022/table/table.module.mjs +5 -5
- package/esm2022/table/table.property.mjs +396 -341
- package/esm2022/tabs/tab-content.component.mjs +13 -16
- package/esm2022/tabs/tab-link.directive.mjs +7 -7
- package/esm2022/tabs/tab.component.mjs +9 -17
- package/esm2022/tabs/tabs.component.mjs +83 -135
- package/esm2022/tabs/tabs.module.mjs +5 -5
- package/esm2022/tabs/tabs.property.mjs +80 -91
- package/esm2022/tag/tag.component.mjs +19 -33
- package/esm2022/tag/tag.module.mjs +5 -5
- package/esm2022/tag/tag.property.mjs +44 -68
- package/esm2022/text-retract/text-retract.component.mjs +29 -46
- package/esm2022/text-retract/text-retract.module.mjs +5 -5
- package/esm2022/text-retract/text-retract.property.mjs +22 -18
- package/esm2022/textarea/textarea.component.mjs +49 -79
- package/esm2022/textarea/textarea.module.mjs +5 -5
- package/esm2022/textarea/textarea.property.mjs +124 -47
- package/esm2022/theme/theme.component.mjs +86 -81
- package/esm2022/theme/theme.module.mjs +5 -5
- package/esm2022/theme/theme.property.mjs +35 -46
- package/esm2022/time-ago/time-ago.module.mjs +5 -5
- package/esm2022/time-ago/time-ago.pipe.mjs +12 -11
- package/esm2022/time-ago/time-ago.property.mjs +2 -2
- package/esm2022/time-picker/time-picker-frame.component.mjs +173 -188
- package/esm2022/time-picker/time-picker-portal.component.mjs +35 -42
- package/esm2022/time-picker/time-picker.component.mjs +139 -170
- package/esm2022/time-picker/time-picker.module.mjs +5 -5
- package/esm2022/time-picker/time-picker.property.mjs +158 -70
- package/esm2022/time-range/time-range.module.mjs +5 -5
- package/esm2022/time-range/time-range.pipe.mjs +10 -10
- package/esm2022/time-range/time-range.property.mjs +2 -2
- package/esm2022/timeline/timeline.component.mjs +14 -38
- package/esm2022/timeline/timeline.module.mjs +5 -5
- package/esm2022/timeline/timeline.property.mjs +30 -30
- package/esm2022/tooltip/tooltip-portal.component.mjs +51 -65
- package/esm2022/tooltip/tooltip.directive.mjs +65 -62
- package/esm2022/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/tooltip/tooltip.property.mjs +53 -47
- package/esm2022/transfer/transfer.component.mjs +225 -184
- package/esm2022/transfer/transfer.module.mjs +5 -5
- package/esm2022/transfer/transfer.property.mjs +84 -76
- package/esm2022/tree/tree-node.component.mjs +142 -132
- package/esm2022/tree/tree.component.mjs +236 -232
- package/esm2022/tree/tree.module.mjs +5 -5
- package/esm2022/tree/tree.property.mjs +228 -226
- package/esm2022/tree/tree.service.mjs +4 -4
- package/esm2022/tree-file/tree-file.component.mjs +34 -43
- package/esm2022/tree-file/tree-file.module.mjs +5 -5
- package/esm2022/tree-file/tree-file.property.mjs +45 -56
- package/esm2022/tree-select/tree-select-portal.component.mjs +45 -78
- package/esm2022/tree-select/tree-select.component.mjs +283 -296
- package/esm2022/tree-select/tree-select.module.mjs +5 -5
- package/esm2022/tree-select/tree-select.property.mjs +203 -125
- package/esm2022/typography/typography.component.mjs +13 -10
- package/esm2022/typography/typography.module.mjs +5 -5
- package/esm2022/typography/typography.property.mjs +12 -11
- package/esm2022/upload/upload-portal.component.mjs +54 -57
- package/esm2022/upload/upload.component.mjs +79 -98
- package/esm2022/upload/upload.module.mjs +5 -5
- package/esm2022/upload/upload.property.mjs +73 -68
- package/examples/examples.component.d.ts +2 -5
- package/fesm2022/ng-nest-ui-affix.mjs +30 -32
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +142 -152
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +121 -133
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +14 -17
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +296 -260
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +195 -130
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +95 -103
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +161 -96
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +286 -166
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +376 -175
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +134 -108
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +67 -36
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +365 -223
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +318 -249
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +203 -155
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +202 -106
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +316 -270
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +73 -54
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +44 -108
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +119 -123
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +985 -664
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +28 -55
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +1552 -1671
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +218 -109
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +307 -316
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +14 -15
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +20 -39
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +116 -145
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +223 -238
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +49 -46
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +14 -15
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +422 -425
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +218 -203
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +93 -81
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +5892 -3516
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +112 -120
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +244 -147
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +33 -35
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +198 -146
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +340 -292
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +78 -82
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +151 -140
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +119 -86
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +376 -400
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +94 -97
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +131 -167
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +17 -17
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +18 -18
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +16 -18
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +44 -55
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +173 -236
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +16 -17
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +110 -107
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +163 -215
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +240 -238
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +184 -127
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +182 -108
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +46 -91
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +38 -34
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +66 -48
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +547 -459
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +44 -52
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +344 -290
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +163 -228
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +102 -68
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +61 -102
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +145 -69
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +784 -800
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +185 -259
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +63 -101
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +52 -64
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +173 -126
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +123 -129
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +16 -15
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +498 -463
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +14 -14
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +44 -68
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +168 -170
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +311 -262
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +80 -99
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +527 -495
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +601 -587
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +26 -22
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +204 -220
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2022/ng-nest-ui.mjs +0 -2
- package/fesm2022/ng-nest-ui.mjs.map +1 -1
- package/find/find.component.d.ts +30 -34
- package/find/find.property.d.ts +321 -108
- package/form/control.component.d.ts +37 -18
- package/form/form.component.d.ts +8 -10
- package/form/form.property.d.ts +111 -27
- package/highlight/highlight.component.d.ts +10 -17
- package/highlight/highlight.property.d.ts +40 -11
- package/highlight/highlight.service.d.ts +8 -0
- package/highlight/public-api.d.ts +1 -0
- package/i18n/i18n.directive.d.ts +6 -9
- package/i18n/i18n.property.d.ts +6 -2
- package/i18n/i18n.service.d.ts +2 -2
- package/i18n/languages/ar_EG.d.ts +56 -0
- package/i18n/languages/bg_BG.d.ts +56 -0
- package/i18n/languages/ca_ES.d.ts +56 -0
- package/i18n/languages/cs_CZ.d.ts +56 -0
- package/i18n/languages/da_DK.d.ts +56 -0
- package/i18n/languages/de_DE.d.ts +56 -0
- package/i18n/languages/el_GR.d.ts +56 -0
- package/i18n/languages/en_GB.d.ts +3 -0
- package/i18n/languages/en_US.d.ts +3 -0
- package/i18n/languages/es_ES.d.ts +56 -0
- package/i18n/languages/et_EE.d.ts +56 -0
- package/i18n/languages/fa_IR.d.ts +56 -0
- package/i18n/languages/fi_FI.d.ts +56 -0
- package/i18n/languages/fr_BE.d.ts +60 -4
- package/i18n/languages/fr_FR.d.ts +56 -0
- package/i18n/languages/he_IL.d.ts +56 -0
- package/i18n/languages/hi_IN.d.ts +56 -0
- package/i18n/languages/hr_HR.d.ts +56 -0
- package/i18n/languages/hu_HU.d.ts +56 -0
- package/i18n/languages/hy_AM.d.ts +56 -0
- package/i18n/languages/id_ID.d.ts +56 -0
- package/i18n/languages/is_IS.d.ts +56 -0
- package/i18n/languages/it_IT.d.ts +56 -0
- package/i18n/languages/ja_JP.d.ts +56 -0
- package/i18n/languages/ka_GE.d.ts +56 -0
- package/i18n/languages/kn_IN.d.ts +56 -0
- package/i18n/languages/ko_KR.d.ts +56 -0
- package/i18n/languages/ku_IQ.d.ts +32 -0
- package/i18n/languages/lv_LV.d.ts +56 -0
- package/i18n/languages/mn_MN.d.ts +56 -0
- package/i18n/languages/ms_MY.d.ts +56 -0
- package/i18n/languages/nb_NO.d.ts +56 -0
- package/i18n/languages/ne_NP.d.ts +56 -0
- package/i18n/languages/nl_BE.d.ts +56 -0
- package/i18n/languages/nl_NL.d.ts +56 -0
- package/i18n/languages/pl_PL.d.ts +56 -0
- package/i18n/languages/pt_BR.d.ts +56 -0
- package/i18n/languages/pt_PT.d.ts +56 -0
- package/i18n/languages/ro_RO.d.ts +56 -0
- package/i18n/languages/ru_RU.d.ts +56 -0
- package/i18n/languages/sk_SK.d.ts +56 -1
- package/i18n/languages/sl_SI.d.ts +56 -0
- package/i18n/languages/sr_RS.d.ts +56 -0
- package/i18n/languages/sv_SE.d.ts +56 -0
- package/i18n/languages/ta_IN.d.ts +56 -0
- package/i18n/languages/th_TH.d.ts +56 -0
- package/i18n/languages/tr_TR.d.ts +56 -0
- package/i18n/languages/uk_UA.d.ts +56 -0
- package/i18n/languages/vi_VN.d.ts +56 -0
- package/i18n/languages/zh_CN.d.ts +3 -0
- package/i18n/languages/zh_TW.d.ts +3 -0
- package/icon/icon.component.d.ts +8 -14
- package/icon/icon.property.d.ts +31 -13
- package/icon/icon.service.d.ts +1 -1
- package/image/image-group.component.d.ts +1 -3
- package/image/image-preview.component.d.ts +11 -13
- package/image/image.component.d.ts +10 -11
- package/image/image.property.d.ts +117 -16
- package/index.d.ts +0 -2
- package/inner/inner.component.d.ts +3 -10
- package/inner/inner.property.d.ts +8 -4
- package/input/input-group.component.d.ts +0 -2
- package/input/input.component.d.ts +32 -30
- package/input/input.property.d.ts +347 -65
- package/input-number/input-number.component.d.ts +14 -19
- package/input-number/input-number.property.d.ts +292 -26
- package/keyword/keyword.directive.d.ts +4 -12
- package/keyword/keyword.property.d.ts +11 -7
- package/layout/col.component.d.ts +8 -11
- package/layout/layout.property.d.ts +25 -18
- package/layout/row.component.d.ts +7 -8
- package/link/link.component.d.ts +7 -13
- package/link/link.property.d.ts +64 -11
- package/list/list-drop-group.directive.d.ts +3 -5
- package/list/list-option.component.d.ts +7 -9
- package/list/list.component.d.ts +35 -30
- package/list/list.property.d.ts +126 -61
- package/loading/loading.component.d.ts +12 -12
- package/loading/loading.property.d.ts +20 -11
- package/menu/menu-node.component.d.ts +11 -8
- package/menu/menu.component.d.ts +18 -19
- package/menu/menu.property.d.ts +23 -28
- package/message/message.property.d.ts +1 -1
- package/notification/notification.property.d.ts +1 -1
- package/outlet/outlet.directive.d.ts +4 -4
- package/outlet/outlet.property.d.ts +1 -1
- package/package.json +97 -103
- package/page-header/page-header.component.d.ts +4 -8
- package/page-header/page-header.property.d.ts +11 -8
- package/pagination/pagination.component.d.ts +15 -22
- package/pagination/pagination.property.d.ts +34 -66
- package/pattern/pattern.component.d.ts +2 -5
- package/pattern/pattern.property.d.ts +1 -1
- package/popconfirm/popconfirm.component.d.ts +12 -14
- package/popconfirm/popconfirm.property.d.ts +32 -19
- package/popover/popover-portal.component.d.ts +16 -33
- package/popover/popover.directive.d.ts +6 -12
- package/popover/popover.property.d.ts +31 -22
- package/portal/portal.property.d.ts +2 -2
- package/portal/portal.service.d.ts +2 -2
- package/progress/progress.component.d.ts +25 -30
- package/progress/progress.property.d.ts +29 -20
- package/radio/radio.component.d.ts +14 -15
- package/radio/radio.property.d.ts +271 -31
- package/rate/rate.component.d.ts +14 -17
- package/rate/rate.property.d.ts +259 -12
- package/resizable/resizable.directive.d.ts +5 -5
- package/resizable/resizable.property.d.ts +14 -14
- package/result/result.component.d.ts +5 -7
- package/result/result.property.d.ts +11 -7
- package/ripple/ripple.directive.d.ts +5 -4
- package/ripple/ripple.property.d.ts +14 -5
- package/select/select-portal.component.d.ts +39 -43
- package/select/select.component.d.ts +53 -56
- package/select/select.property.d.ts +317 -37
- package/skeleton/skeleton.component.d.ts +4 -8
- package/skeleton/skeleton.property.d.ts +17 -8
- package/slider/slider.component.d.ts +34 -31
- package/slider/slider.property.d.ts +26 -22
- package/slider-select/slider-select.component.d.ts +38 -38
- package/slider-select/slider-select.property.d.ts +302 -28
- package/statistic/countdown.component.d.ts +2 -5
- package/statistic/statistic.component.d.ts +3 -8
- package/statistic/statistic.property.d.ts +44 -13
- package/steps/steps.component.d.ts +6 -16
- package/steps/steps.property.d.ts +15 -10
- package/style/core/index.css +0 -38
- package/style/core/index.css.map +1 -1
- package/style/core/var.scss +0 -4
- package/style/mixins/compatibility.scss +0 -1
- package/style/mixins/form.scss +8 -2
- package/style/params/index.scss +0 -1
- package/style/params/primary.scss +7 -28
- package/switch/switch.component.d.ts +9 -10
- package/switch/switch.property.d.ts +265 -16
- package/table/table-body.component.d.ts +21 -20
- package/table/table-foot.component.d.ts +7 -5
- package/table/table-head.component.d.ts +17 -19
- package/table/table.component.d.ts +62 -50
- package/table/table.property.d.ts +180 -178
- package/tabs/tab-content.component.d.ts +6 -8
- package/tabs/tab.component.d.ts +3 -5
- package/tabs/tabs.component.d.ts +17 -24
- package/tabs/tabs.property.d.ts +28 -24
- package/tag/tag.component.d.ts +7 -8
- package/tag/tag.property.d.ts +19 -21
- package/text-retract/text-retract.component.d.ts +4 -14
- package/text-retract/text-retract.property.d.ts +9 -5
- package/textarea/textarea.component.d.ts +17 -20
- package/textarea/textarea.property.d.ts +266 -30
- package/theme/theme.component.d.ts +24 -13
- package/theme/theme.property.d.ts +67 -16
- package/time-ago/time-ago.pipe.d.ts +7 -3
- package/time-ago/time-ago.property.d.ts +1 -1
- package/time-picker/time-picker-frame.component.d.ts +52 -39
- package/time-picker/time-picker-portal.component.d.ts +29 -29
- package/time-picker/time-picker.component.d.ts +29 -30
- package/time-picker/time-picker.property.d.ts +314 -23
- package/time-range/time-range.property.d.ts +1 -1
- package/timeline/timeline.component.d.ts +5 -13
- package/timeline/timeline.property.d.ts +12 -8
- package/tooltip/tooltip-portal.component.d.ts +23 -29
- package/tooltip/tooltip.directive.d.ts +10 -9
- package/tooltip/tooltip.property.d.ts +18 -14
- package/transfer/transfer.component.d.ts +23 -20
- package/transfer/transfer.property.d.ts +81 -25
- package/tree/tree-node.component.d.ts +21 -21
- package/tree/tree.component.d.ts +29 -28
- package/tree/tree.property.d.ts +129 -79
- package/tree-file/tree-file.component.d.ts +7 -9
- package/tree-file/tree-file.property.d.ts +40 -16
- package/tree-select/tree-select-portal.component.d.ts +38 -49
- package/tree-select/tree-select.component.d.ts +50 -53
- package/tree-select/tree-select.property.d.ts +328 -39
- package/typography/typography.component.d.ts +1 -1
- package/typography/typography.property.d.ts +3 -3
- package/upload/upload-portal.component.d.ts +14 -14
- package/upload/upload.component.d.ts +18 -17
- package/upload/upload.property.d.ts +73 -24
- package/border/border.component.d.ts +0 -11
- package/border/border.module.d.ts +0 -7
- package/border/border.property.d.ts +0 -6
- package/border/index.d.ts +0 -5
- package/border/public-api.d.ts +0 -3
- package/esm2022/border/border.component.mjs +0 -21
- package/esm2022/border/border.module.mjs +0 -16
- package/esm2022/border/border.property.mjs +0 -7
- package/esm2022/border/ng-nest-ui-border.mjs +0 -5
- package/esm2022/border/public-api.mjs +0 -4
- package/fesm2022/ng-nest-ui-border.mjs +0 -47
- package/fesm2022/ng-nest-ui-border.mjs.map +0 -1
- package/style/params/colors.scss +0 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-tree.mjs","sources":["../../../../lib/ng-nest/ui/tree/tree.property.ts","../../../../lib/ng-nest/ui/tree/tree.service.ts","../../../../lib/ng-nest/ui/tree/tree-node.component.ts","../../../../lib/ng-nest/ui/tree/tree-node.component.html","../../../../lib/ng-nest/ui/tree/tree.component.ts","../../../../lib/ng-nest/ui/tree/tree.component.html","../../../../lib/ng-nest/ui/tree/tree.module.ts","../../../../lib/ng-nest/ui/tree/ng-nest-ui-tree.ts"],"sourcesContent":["import {\r\n XDataConvert,\r\n XProperty,\r\n XData,\r\n XInputBoolean,\r\n XParentIdentityProperty,\r\n XNumber,\r\n XBoolean,\r\n XInputNumber,\r\n XIdentityProperty,\r\n XWithConfig,\r\n XAlign\r\n} from '@ng-nest/ui/core';\r\nimport { Input, TemplateRef, Output, EventEmitter, Component, ElementRef } from '@angular/core';\r\nimport { CdkDragEnd, CdkDragMove, CdkDragStart } from '@angular/cdk/drag-drop';\r\n\r\n/**\r\n * Tree\r\n * @selector x-tree\r\n * @decorator component\r\n */\r\nexport const XTreePrefix = 'x-tree';\r\nconst X_CONFIG_NAME = 'tree';\r\n\r\n/**\r\n * Tree Property\r\n */\r\n@Component({ selector: `${XTreePrefix}-property`, template: '' })\r\nexport class XTreeProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XTreeNode> = [];\r\n /**\r\n * @zh_CN 显示多选框\r\n * @en_US Show checkbox\r\n */\r\n @Input() @XInputBoolean() checkbox?: XBoolean;\r\n /**\r\n * @zh_CN 开启懒加载节点,data 必须设置成函数类型\r\n * @en_US Open lazy loading node, data must be set to function type\r\n */\r\n @Input() @XInputBoolean() lazy?: XBoolean;\r\n /**\r\n * @zh_CN 当前激活的节点 Id, 当 multiple 为 true 时,值为数组(默认是 Id 数组,objectArray 为 true,对象数组)\r\n * @en_US Currently active node Id. When Multiple is true, the value is the Id array\r\n */\r\n @Input() activatedId: any;\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n @Input() expanded: any[] = [];\r\n /**\r\n * @zh_CN checkbox 选中的节点\r\n * @en_US Checkbox selected node\r\n */\r\n @Input() checked: any[] = [];\r\n /**\r\n * @zh_CN 展开所有节点\r\n * @en_US Expand all nodes\r\n */\r\n @Input() @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 默认展开的层级\r\n * @en_US Default expanded level\r\n */\r\n @Input() @XInputNumber() expandedLevel: XNumber = -1;\r\n /**\r\n * @zh_CN 点击节点就触发展开/收起的操作,请确保节点上没有其它操作(checkbox、自定义的操作按钮)\r\n * @en_US Click the node to trigger the expand/collapse operation, please make sure that there are no other operations on the node (checkbox, custom operation button)\r\n */\r\n @Input() @XInputBoolean() nodeOpen?: XBoolean;\r\n /**\r\n * @zh_CN 单位间距,这个与层级的乘积算出节点的左边距,单位 rem\r\n * @en_US Unit spacing, the product of this and the level calculates the left margin of the node, the unit is rem\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 1.5) @XInputNumber() spacing?: XNumber;\r\n /**\r\n * @zh_CN 标签自定义模板\r\n * @en_US Label custom template\r\n */\r\n @Input() labelTpl?: TemplateRef<void>;\r\n /**\r\n * @zh_CN 节点的高度,单位 rem, 默认 0 是自适应高度\r\n * @en_US The height of the node in rem\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 0) @XInputNumber() nodeHeight!: XNumber;\r\n /**\r\n * @zh_CN 是否允许多次点击一个节点触发多次事件\r\n * @en_US Whether to allow multiple clicks on a node to trigger multiple events\r\n */\r\n @Input() @XInputBoolean() allowManyActivated?: XBoolean;\r\n /**\r\n * @zh_CN 拖动节点\r\n * @en_US Drag node\r\n */\r\n @Input() @XInputBoolean() drag?: XBoolean;\r\n /**\r\n * @zh_CN 当前点击选中的节点变化的事件\r\n * @en_US The event of the currently clicked node change\r\n */\r\n @Output() activatedChange = new EventEmitter<XTreeNode>();\r\n /**\r\n * @zh_CN 使用 checkedbox 选中变化的事件\r\n * @en_US Use checkedbox to select changed events\r\n */\r\n @Output() checkboxChange = new EventEmitter<XTreeNode>();\r\n /**\r\n * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求\r\n * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up\r\n */\r\n @Input() @XInputBoolean() manual: boolean = true;\r\n /**\r\n * @zh_CN checkbox 状态改变触发层级检查\r\n * @en_US Checkbox status changes trigger level checks\r\n */\r\n @Input() @XInputBoolean() levelCheck: XBoolean = true;\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n @Input() @XInputBoolean() nodeNowrap: XBoolean = true;\r\n /**\r\n * @zh_CN 节点垂直对齐方式\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n @Input() @XWithConfig<XAlign>(X_CONFIG_NAME, 'center') nodeAlignItems!: XAlign;\r\n /**\r\n * @zh_CN 树节点操作按钮\r\n * @en_US Tree node operation buttons\r\n */\r\n @Input() actions: XTreeAction[] = [];\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n @Input() scrollElement?: HTMLElement;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() virtualScroll!: XBoolean;\r\n /**\r\n * @zh_CN 滚动区域高度,开启虚拟滚动的时候生效\r\n * @en_US Rolling area height\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 400) @XInputNumber() virtualScrollHeight!: number;\r\n /**\r\n * @zh_CN 虚拟滚动高度自适应指定元素\r\n * @en_US virtual rolling height follows the specified object\r\n */\r\n @Input() heightAdaption!: ElementRef<HTMLElement> | HTMLElement;\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数,开启虚拟滚动才生效\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 26) @XInputNumber() itemSize!: number;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数,开启虚拟滚动才生效\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() minBufferPx: number = 100;\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数,开启虚拟滚动才生效\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() maxBufferPx: number = 200;\r\n /**\r\n * @zh_CN 多选功能,当前激活的节点可以是多个\r\n * @en_US Multiple choice\r\n */\r\n @Input() @XInputBoolean() multiple?: XBoolean;\r\n /**\r\n * @zh_CN 当开启多选的时候,activatedId 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of activatedId is an array of objects\r\n */\r\n @Input() @XInputBoolean() objectArray?: XBoolean;\r\n /**\r\n * @zh_CN 关键字高亮,针对下拉树搜索\r\n * @en_US Keyword highlighting\r\n */\r\n @Input() keywordText!: string | string[];\r\n /**\r\n * @zh_CN 匹配关键字区分大小写,针对下拉树搜索\r\n * @en_US Case-sensitive\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) caseSensitive!: XBoolean;\r\n /**\r\n * @zh_CN 只能选择叶子节点\r\n * @en_US Only leaf nodes can be selected\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) onlyLeaf!: XBoolean;\r\n /**\r\n * @zh_CN 展开收起的图标自定义模版\r\n * @en_US Expand the folded icon custom template\r\n */\r\n @Input() expandedIcon?: TemplateRef<void>;\r\n /**\r\n * @zh_CN 显示连接线\r\n * @en_US Show line\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) showLine!: XBoolean;\r\n /**\r\n * @zh_CN 参数控制请求改变事件\r\n * @en_US Parameter control request change event\r\n */\r\n @Output() manualChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XTreeNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() activatedIdChange = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 节点开始拖动事件\r\n * @en_US Node drag started\r\n */\r\n @Output() nodeDragStarted = new EventEmitter<XTreeNodeDragEvent>();\r\n /**\r\n * @zh_CN 节点结束拖动事件\r\n * @en_US Node drag ended\r\n */\r\n @Output() nodeDragEnded = new EventEmitter<XTreeNodeDragEvent>();\r\n /**\r\n * @zh_CN 节点正在拖动事件\r\n * @en_US Node drag moved\r\n */\r\n @Output() nodeDragMoved = new EventEmitter<XTreeNodeDragEvent>();\r\n}\r\n\r\n/**\r\n * @zh_CN Tree 数据对象\r\n * @en_US Tree data object\r\n */\r\nexport interface XTreeNode extends XParentIdentityProperty<XTreeNode> {\r\n /**\r\n * @zh_CN 激活的\r\n * @en_US active\r\n */\r\n activated?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n /**\r\n * @zh_CN checkbox 是否选中\r\n * @en_US whether checkbox is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * @zh_CN 禁用checkbox\r\n * @en_US Disable checkbox\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN checkbox 子节点是否有选中的状态\r\n * @en_US Whether the child node of checkbox is selected\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * @zh_CN 节点高度,优先级高于 tree 参数,单位 rem\r\n * @en_US Node height in rem, highest priority\r\n */\r\n height?: number;\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号,优先级高于 tree 参数\r\n * @en_US Show ellipsis without wrapping, highest priority\r\n */\r\n nowrap?: boolean;\r\n /**\r\n * @zh_CN 节点垂直对齐方式,优先级高于 tree 参数\r\n * @en_US Show ellipsis without wrapping, highest priority\r\n */\r\n alignItems?: XAlign;\r\n /**\r\n * @zh_CN 节点懒加载中\r\n * @en_US Node lazy loading\r\n */\r\n loading?: boolean;\r\n /**\r\n * @zh_CN 显示拖动指示器\r\n * @en_US Show drag indicator\r\n */\r\n showDragIndicator?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN Tree 节点操作\r\n * @en_US Tree node operation\r\n */\r\nexport interface XTreeAction extends XIdentityProperty {\r\n /**\r\n * @zh_CN 操作\r\n * @en_US Operating\r\n */\r\n handler?: Function;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN Tree 节点拖动事件\r\n * @en_US Tree node drag event\r\n */\r\nexport interface XTreeNodeDragEvent {\r\n /**\r\n * @zh_CN 对应 cdk 中的事件\r\n * @en_US drag cdk event\r\n */\r\n event?: CdkDragStart | CdkDragEnd | CdkDragMove<XTreeNode>;\r\n /**\r\n * @zh_CN 拖动的节点\r\n * @en_US drag node\r\n */\r\n from?: XTreeNode;\r\n /**\r\n * @zh_CN 要拖动到的位置对应的节点\r\n * @en_US Node corresponding to the position to drag\r\n */\r\n to?: XTreeNode;\r\n /**\r\n * @zh_CN 对应节点的前面还是后面\r\n * @en_US The front or back of the corresponding node\r\n */\r\n position?: -1 | 1;\r\n}\r\n\r\n/**\r\n * TreeNode\r\n * @selector x-tree-node\r\n * @decorator directive\r\n */\r\nexport const XTreeNodePrefix = 'x-tree-node';\r\n\r\n/**\r\n * TreeNode Property\r\n */\r\n@Component({ selector: `${XTreeNodePrefix}-property`, template: '' })\r\nexport class XTreeNodeProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() node: XTreeNode = {};\r\n /**\r\n * @zh_CN 层级\r\n * @en_US Level\r\n */\r\n @Input() level?: XNumber;\r\n /**\r\n * @zh_CN 懒加载子节点\r\n * @en_US Lazy loading of child nodes\r\n */\r\n @Input() @XInputBoolean() lazy?: XBoolean;\r\n /**\r\n * @zh_CN 节点的高度,单位 rem\r\n * @en_US The height of the node in rem\r\n */\r\n @Input() @XInputNumber() nodeHeight: XNumber = 0;\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n @Input() @XInputBoolean() nodeNowrap?: XBoolean;\r\n /**\r\n * @zh_CN 节点垂直对齐方式\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n @Input() nodeAlignItems: XAlign = 'center';\r\n /**\r\n * @zh_CN 懒加载函数\r\n * @en_US Lazy loading function\r\n */\r\n @Input() lazyData!: XData<XTreeNode[]>;\r\n /**\r\n * @zh_CN 标记为虚拟滚动的节点\r\n * @en_US Mark as a node of virtual rolling\r\n */\r\n @Input() @XInputBoolean() virtualScroll?: XBoolean;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { XIsEmpty, XRemove } from '@ng-nest/ui/core';\r\nimport { XTreeNode } from './tree.property';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class XTreeService {\r\n getChildren(data: XTreeNode[], node: XTreeNode) {\r\n const res: XTreeNode[] = [];\r\n const gChildren = (nd: XTreeNode) => {\r\n const children = data.filter((x) => x.pid === nd.id);\r\n if (XIsEmpty(children)) return;\r\n for (let child of children) {\r\n res.push(child);\r\n gChildren(child);\r\n }\r\n };\r\n gChildren(node);\r\n\r\n return res;\r\n }\r\n\r\n getParents(data: XTreeNode[], node: XTreeNode) {\r\n const res: XTreeNode[] = [];\r\n const gParent = (nd: XTreeNode) => {\r\n if (!nd.pid) return;\r\n const parent = data.find((x) => x.id === nd.pid);\r\n if (!parent) return;\r\n res.push(parent);\r\n gParent(parent);\r\n };\r\n gParent(node);\r\n\r\n return res;\r\n }\r\n\r\n getOpenChildren(data: XTreeNode[], node: XTreeNode) {\r\n const res: XTreeNode[] = [];\r\n const gChildren = (nd: XTreeNode) => {\r\n if (!nd.open) return;\r\n const children = data.filter((x) => x.pid === nd.id);\r\n if (XIsEmpty(children)) return;\r\n for (let child of children) {\r\n res.push(child);\r\n gChildren(child);\r\n }\r\n };\r\n gChildren(node);\r\n\r\n return res;\r\n }\r\n\r\n moveNode(data: XTreeNode[], from: XTreeNode, to: XTreeNode, pos: -1 | 1) {\r\n if (XIsEmpty(data)) return;\r\n const formIndex = data.findIndex((x) => x.id === from.id);\r\n const toIndex = data.findIndex((x) => x.id === to.id);\r\n XRemove(data, (x) => x.id === from.id);\r\n if (from.pid === to.pid) {\r\n const index = toIndex > formIndex ? toIndex - 1 : toIndex;\r\n data.splice(pos === -1 ? index : index + 1, 0, from);\r\n } else if (from.pid !== to.pid) {\r\n from.pid = to.pid;\r\n const diffLevel = to.level! - from.level!;\r\n from.level = to.level;\r\n const fromChildren = this.getChildren(data, from);\r\n fromChildren.forEach((x) => {\r\n x.level = x.level! + diffLevel;\r\n });\r\n const index = toIndex > formIndex ? toIndex - 1 : toIndex;\r\n data.splice(pos === -1 ? index : index + 1, 0, from);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n inject\r\n} from '@angular/core';\r\nimport { XTreeNodePrefix, XTreeNode, XTreeNodeProperty, XTreeAction } from './tree.property';\r\nimport { XIsEmpty, XConfigService, XBoolean } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XTreeService } from './tree.service';\r\nimport { NgStyle } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XKeywordDirective } from '@ng-nest/ui/keyword';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`,\r\n standalone: true,\r\n imports: [\r\n NgStyle,\r\n FormsModule,\r\n XIconComponent,\r\n XCheckboxComponent,\r\n XOutletDirective,\r\n XLinkComponent,\r\n XKeywordDirective\r\n ],\r\n templateUrl: './tree-node.component.html',\r\n styleUrls: ['./tree-node.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTreeNodeComponent extends XTreeNodeProperty {\r\n @Input() tree: any;\r\n @Output() nodeMouseenter = new EventEmitter<{ event: MouseEvent; node: XTreeNode; ele: ElementRef }>();\r\n @HostBinding('class.x-tree-node') rootClass = true;\r\n\r\n private _loading = false;\r\n public get loading() {\r\n return this._loading;\r\n }\r\n public set loading(value) {\r\n this._loading = value;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _unSubject = new Subject<void>();\r\n get showDragIndicator() {\r\n return this.tree.dragging && this.tree.hoverTreeNode?.id === this.node.id;\r\n }\r\n\r\n @HostListener('mouseenter', ['$event']) onMouseenter(event: MouseEvent) {\r\n this.nodeMouseenter.emit({ event: event, node: this.node, ele: this.elementRef });\r\n }\r\n\r\n @HostListener('mouseleave') onMouseleave(_event: MouseEvent) {\r\n if (!this.tree.dragging) return;\r\n this.tree.hoverTreeNode?.change && this.tree.hoverTreeNode?.change();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n get isChildrenLast() {\r\n let parent = this.tree.nodes.find((x: XTreeNode) => x.id === this.node.pid);\r\n if (!parent) return false;\r\n const index = parent.children.indexOf(this.node);\r\n return index + 1 === parent.children.length;\r\n }\r\n\r\n get isParentLast() {\r\n let parents = this.treeService.getParents(this.tree.nodes, this.node);\r\n if (parents.length <= 1) return [];\r\n const res: boolean[] = [];\r\n parents.reduce((pre: XTreeNode, curr: XTreeNode) => {\r\n if (pre === null) return curr;\r\n const index = curr.children?.indexOf(pre)!;\r\n res.push(index + 1 === curr.children?.length!);\r\n return curr;\r\n });\r\n\r\n return res.reverse();\r\n }\r\n\r\n get numLevel() {\r\n return Number(this.level);\r\n }\r\n\r\n get verticalLevel() {\r\n if (this.numLevel > 0) {\r\n return Array.from({ length: this.numLevel }).map((_x, index) => index + 1);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n get verticalWidth() {\r\n return Number(this.tree.spacing) / 2;\r\n }\r\n\r\n get paddingLeft() {\r\n return Number(this.node?.level ? this.node.level : 0) * Number(this.tree.spacing);\r\n }\r\n\r\n get indicatorWidth() {\r\n return `calc(100% - ${this.paddingLeft + (this.node.leaf ? 1.5 : 0)}rem)`;\r\n }\r\n\r\n get indicatorStyle() {\r\n if (this.tree.dragPosition === 1) {\r\n return { bottom: `${-0.0625}rem` };\r\n } else if (this.tree.dragPosition === -1) {\r\n return { top: `${-0.0625}rem` };\r\n }\r\n return {};\r\n }\r\n\r\n get getActivated() {\r\n if (this.tree.multiple) {\r\n if (this.tree.objectArray) {\r\n return this.tree.activatedId?.map((x: XTreeNode) => x.id).includes(this.node.id);\r\n } else {\r\n return this.tree.activatedId?.includes(this.node.id);\r\n }\r\n } else {\r\n return this.tree.activatedId === this.node.id;\r\n }\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private treeService = inject(XTreeService);\r\n elementRef = inject(ElementRef);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.node.change = (check: boolean) => {\r\n if (check) this.setCheckbox();\r\n this?.cdr.detectChanges();\r\n };\r\n this.level = this.node?.level ? this.node.level : 0;\r\n if (!this.tree.levelCheck) return;\r\n if (this.node.checked) this.setCheckbox();\r\n this.setIndeterminate(this.node);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n onActivate(event: Event, node: XTreeNode) {\r\n const change: Function = this.tree.activatedNode?.change as Function;\r\n this.tree.nodeOpen && !node.leaf && this.tree.onToggle(event, node);\r\n const onChange = () => {\r\n change && change();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.cdr.detectChanges();\r\n };\r\n if (this.tree.onlyLeaf && !node.leaf) {\r\n onChange();\r\n return;\r\n }\r\n if (this.tree.multiple) {\r\n if (!this.tree.activatedId) this.tree.activatedId = [];\r\n if (this.tree.objectArray) {\r\n const ids = this.tree.activatedId.map((x: XTreeNode) => x.id);\r\n if (ids.includes(node.id)) {\r\n this.tree.activatedId.splice(ids.indexOf(node.id), 1);\r\n } else {\r\n this.tree.activatedId.push(node);\r\n }\r\n } else {\r\n if (this.tree.activatedId.includes(node.id)) {\r\n this.tree.activatedId.splice(this.tree.activatedId.indexOf(node.id), 1);\r\n } else {\r\n this.tree.activatedId.push(node.id);\r\n }\r\n }\r\n } else {\r\n this.tree.activatedId = node.id;\r\n }\r\n if (this.tree.activatedNode) {\r\n if (this.tree.activatedNode.id === node.id && !this.tree.allowManyActivated) return;\r\n }\r\n this.tree.activatedNode = node;\r\n this.tree.activatedIdChange.emit(this.tree.activatedId);\r\n this.tree.activatedChange.emit(node);\r\n this.tree.nodeClick.emit(node);\r\n onChange();\r\n }\r\n\r\n onCheckboxChange() {\r\n this.setCheckbox();\r\n this.tree.checkboxChange.emit(this.node);\r\n }\r\n\r\n getVerticalLeft(i: number) {\r\n return (i - 1) * Number(this.tree.spacing) + Number(this.tree.spacing) / 2;\r\n }\r\n\r\n setCheckbox() {\r\n if (!this.tree.levelCheck) return;\r\n this.node.indeterminate = this.node.checked;\r\n this.node.children && this.setChildrenCheckbox(this.node.checked as boolean);\r\n const setParent = (node: XTreeNode) => {\r\n let parent = this.tree.nodes.find((x: XTreeNode) => x.id === node.pid);\r\n if (!parent || XIsEmpty(parent.children)) return;\r\n let checkedList = parent.children?.filter((y: XTreeNode) => y.checked);\r\n let indeterminateList = parent.children?.filter((y: XTreeNode) => y.indeterminate);\r\n parent.checked = checkedList?.length === parent.children?.length;\r\n parent.indeterminate = (checkedList as XTreeNode[]).length > 0 || (indeterminateList as XTreeNode[]).length > 0;\r\n parent.change && parent.change();\r\n setParent(parent);\r\n };\r\n setParent(this.node);\r\n }\r\n\r\n setChildrenCheckbox(checked: boolean) {\r\n const setChildren = (children: XTreeNode[], isChecked: boolean) => {\r\n if (XIsEmpty(children)) return;\r\n for (let x of children) {\r\n if (x.disabled) continue;\r\n x.checked = isChecked;\r\n x.indeterminate = isChecked;\r\n x.change && x.change();\r\n setChildren(x.children as XTreeNode[], isChecked);\r\n }\r\n };\r\n setChildren(this.node.children as XTreeNode[], checked);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setParentCheckbox() {\r\n if (XIsEmpty(this.node.children)) return;\r\n let checkedList = this.node.children?.filter((x) => x.checked);\r\n let indeterminateList = this.node.children?.filter((x) => x.indeterminate);\r\n this.node.checked = checkedList?.length === this.node.children?.length;\r\n this.node.indeterminate = (checkedList as XTreeNode[]).length > 0 || (indeterminateList as XTreeNode[]).length > 0;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setIndeterminate(node: XTreeNode) {\r\n const getChildren = (children: XTreeNode[]) => {\r\n if (XIsEmpty(children)) return;\r\n children.forEach((x) => {\r\n if (x.indeterminate || x.checked) {\r\n node.indeterminate = true;\r\n return;\r\n }\r\n getChildren(x.children as XTreeNode[]);\r\n });\r\n };\r\n getChildren(node.children as XTreeNode[]);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getNodeDisabled(disabled?: boolean) {\r\n return disabled as XBoolean;\r\n }\r\n\r\n onAction(event: Event, action: XTreeAction, node: XTreeNode) {\r\n action.handler && action.handler(node);\r\n event.stopPropagation();\r\n }\r\n\r\n trackByItem(_index: number, item: XTreeNode) {\r\n return `${item.id}-${item.level}`;\r\n }\r\n\r\n trackByAction(_index: number, item: XTreeAction) {\r\n return item.id;\r\n }\r\n}\r\n","<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"getActivated\"\r\n [class.x-disabled]=\"node.disabled\"\r\n [class.x-tree-node-sub]=\"!node.leaf\"\r\n [class.x-tree-node-last]=\"isChildrenLast\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"!node.disabled && onActivate($event, node)\"\r\n>\r\n @if (tree.showLine && numLevel > 0) {\r\n <div class=\"x-tree-node-line\" [style.width.rem]=\"paddingLeft\">\r\n @for (i of verticalLevel; track i) {\r\n <div\r\n class=\"x-tree-node-line-vertical\"\r\n [hidden]=\"isParentLast[i - 1]\"\r\n [class.is-last]=\"i === verticalLevel.length\"\r\n [style.left.rem]=\"getVerticalLeft(i)\"\r\n ></div>\r\n }\r\n <div\r\n class=\"x-tree-node-line-horizontal\"\r\n [style.width.rem]=\"verticalWidth\"\r\n [style.left.rem]=\"getVerticalLeft(verticalLevel.length)\"\r\n ></div>\r\n </div>\r\n }\r\n @if (showDragIndicator) {\r\n <div class=\"x-tree-node-drag-indicator\" [style.width]=\"indicatorWidth\" [ngStyle]=\"indicatorStyle\"></div>\r\n }\r\n @if (node.loading) {\r\n <x-icon class=\"x-tree-node-loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n } @else {\r\n <div\r\n class=\"x-tree-node-right\"\r\n [class.is-leaf]=\"node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n [class.is-template]=\"tree.expandedIcon\"\r\n [style.width.rem]=\"verticalWidth * 2\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n >\r\n @if (tree.expandedIcon) {\r\n <ng-container *xOutlet=\"tree.expandedIcon; context: { $node: node }\"></ng-container>\r\n } @else {\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n }\r\n </div>\r\n }\r\n @if (tree.checkbox) {\r\n <x-checkbox\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"node.disabled!\"\r\n (click)=\"$event.stopPropagation()\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!tree.labelTpl) {\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n x-keyword\r\n [text]=\"tree.keywordText\"\r\n [caseSensitive]=\"tree.caseSensitive\"\r\n >{{ node.label }}</span\r\n >\r\n } @else {\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n }\r\n <span class=\"x-tree-node-operations\">\r\n @for (action of tree.actions; track action.id) {\r\n <x-link [icon]=\"action.icon\" [title]=\"action.label\" (click)=\"onAction($event, action, node)\"></x-link>\r\n }\r\n </span>\r\n @if (tree.multiple && getActivated) {\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ViewChildren,\r\n NgZone\r\n} from '@angular/core';\r\nimport { XTreePrefix, XTreeNode, XTreeProperty } from './tree.property';\r\nimport {\r\n XIsEmpty,\r\n XIsFunction,\r\n XIsUndefined,\r\n XIsChange,\r\n XSetData,\r\n XConfigService,\r\n XResize,\r\n XRemove,\r\n XResizeObserver\r\n} from '@ng-nest/ui/core';\r\nimport { debounceTime, map, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XTreeNodeComponent } from './tree-node.component';\r\nimport { CdkDrag, CdkDragEnd, CdkDragMove, CdkDragStart, CdkDropList, DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XTreeService } from './tree.service';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\n\r\n@Component({\r\n selector: `${XTreePrefix}`,\r\n standalone: true,\r\n imports: [DragDropModule, ScrollingModule, XTreeNodeComponent, XIconComponent],\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTreeComponent extends XTreeProperty implements OnChanges {\r\n @ViewChild('tree', { static: true }) tree!: ElementRef<HTMLElement>;\r\n @ViewChild('virtualBody') virtualBody!: CdkVirtualScrollViewport;\r\n @ViewChild('dropList') dropList!: CdkDropList<HTMLElement>;\r\n nodeComponents!: QueryList<XTreeNodeComponent>;\r\n @ViewChildren(XTreeNodeComponent)\r\n public set _nodeComponents(value: QueryList<XTreeNodeComponent>) {\r\n this.nodeComponents = value;\r\n }\r\n nodes: XTreeNode[] = [];\r\n virtualNodes: XTreeNode[] = [];\r\n activatedNode!: XTreeNode;\r\n dataIsFunc = false;\r\n getting = false;\r\n treeData: XTreeNode[] = [];\r\n\r\n dragging = false;\r\n dragPosition!: -1 | 1;\r\n hoverTreeNode!: XTreeNode;\r\n hoverTreeEle!: ElementRef;\r\n draggingTreeNode: XTreeNode | null = null;\r\n hasChecked = false;\r\n\r\n get isEmpty() {\r\n return XIsEmpty(this.nodes);\r\n }\r\n\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: XResizeObserver;\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public ngZone: NgZone,\r\n public treeService: XTreeService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { expandedAll, data, activatedId, checked, manual } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(activatedId) && this.setActivatedNode(this.treeData);\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(checked) && this.setCheckedKeys(this.checked);\r\n XIsChange(manual) && this.setManual();\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.virtualScroll && this.heightAdaption) {\r\n this.setVirtualScrollHeight();\r\n XResize(this.heightAdaption as HTMLElement)\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this._resizeObserver = x.resizeObserver;\r\n this.setVirtualScrollHeight();\r\n });\r\n }\r\n this.setScorllTop();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n setData() {\r\n if (typeof this.data === 'undefined') return;\r\n this.dataIsFunc = false;\r\n if (XIsFunction(this.data)) {\r\n this.dataIsFunc = true;\r\n this.getDataByFunc();\r\n } else {\r\n XSetData<XTreeNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.setDataChange(x);\r\n });\r\n }\r\n }\r\n\r\n cdkDragStarted(event: CdkDragStart) {\r\n this.dragging = true;\r\n this.draggingTreeNode = event.source.data;\r\n if (event.source.data.open) {\r\n this.onToggle(event.event, event.source.data);\r\n }\r\n this.nodeDragStarted.emit({ event, from: this.draggingTreeNode! });\r\n }\r\n\r\n cdkDragEnded(event: CdkDragEnd) {\r\n this.dragging = false;\r\n if (this.hoverTreeNode) {\r\n if (this.hoverTreeNode.id !== event.source.data.id) {\r\n this.insertNode(event.source.data, this.hoverTreeNode, this.dragPosition);\r\n }\r\n this.hoverTreeNode.change && this.hoverTreeNode.change();\r\n this.nodeDragEnded.emit({\r\n event,\r\n from: event.source.data,\r\n to: this.hoverTreeNode,\r\n position: this.dragPosition\r\n });\r\n }\r\n }\r\n\r\n insertNode(dragNode: XTreeNode, hoverNode: XTreeNode, dragPosition: -1 | 1) {\r\n let parent = this.nodes.find((x) => x.id === dragNode.pid);\r\n this.treeService.moveNode(this.treeData, dragNode, hoverNode, dragPosition);\r\n this.setDataChange(this.treeData, true, false, true, parent);\r\n }\r\n\r\n cdkDragMoved(event: CdkDragMove<XTreeNode>) {\r\n if (!this.dragging || !this.hoverTreeNode) return;\r\n const y = event.pointerPosition.y;\r\n if (event.source.data.id === this.hoverTreeNode.id) return;\r\n const target = this.hoverTreeEle.nativeElement as HTMLElement;\r\n const { top, height } = target.getBoundingClientRect();\r\n const des = Math.max(height * 0.5, 2);\r\n if (y > top && y < top + des) {\r\n this.dragPosition = -1;\r\n } else if (y > top + des && y < top + height) {\r\n this.dragPosition = 1;\r\n }\r\n this.hoverTreeNode.change && this.hoverTreeNode.change();\r\n this.nodeDragMoved.emit({\r\n event,\r\n from: this.draggingTreeNode!,\r\n to: this.hoverTreeNode,\r\n position: this.dragPosition\r\n });\r\n }\r\n\r\n predicate(_drag: CdkDrag<XTreeNode>, _drop: CdkDropList<XTreeNode>) {\r\n return true;\r\n }\r\n\r\n private setVirtualScrollHeight() {\r\n this.virtualScrollHeight = (this.heightAdaption as HTMLElement).clientHeight;\r\n this.minBufferPx = this.virtualScrollHeight;\r\n this.maxBufferPx = this.virtualScrollHeight * 1.2;\r\n this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;\r\n this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setManual() {\r\n if (this.dataIsFunc) this.getDataByFunc();\r\n }\r\n\r\n private getDataByFunc() {\r\n if (!this.manual) return;\r\n XSetData<XTreeNode>((this.data as Function)(), this._unSubject).subscribe((x) => {\r\n this.setDataChange(x);\r\n });\r\n }\r\n\r\n private setDataChange(\r\n value: XTreeNode[],\r\n regetChildren = false,\r\n init = true,\r\n parentOpen = true,\r\n lazyParant?: XTreeNode\r\n ) {\r\n if (XIsEmpty(this.checked) || !this.hasChecked) this.checked = [];\r\n const getChildren = (node: XTreeNode, level: number) => {\r\n if (init) {\r\n node.level = level;\r\n node.open =\r\n Boolean(this.expandedAll) ||\r\n level <= Number(this.expandedLevel) ||\r\n this.expanded.includes(node.id) ||\r\n node.open;\r\n node.checked = this.checked.includes(node.id) || node.checked;\r\n node.childrenLoaded = node.open;\r\n }\r\n if (XIsUndefined(node.children) || regetChildren) {\r\n node.children = value.filter((y) => y.pid === node.id);\r\n if (this.levelCheck && node.children && node.checked) {\r\n for (let nd of node.children) {\r\n nd.checked = true;\r\n this.checked.push(nd.id);\r\n }\r\n }\r\n }\r\n if ((!this.lazy && (XIsUndefined(node.leaf) || regetChildren)) || node.id === lazyParant?.id) {\r\n node.leaf = (node.children?.length as number) === 0;\r\n }\r\n if (!node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeData = value;\r\n this.nodes = value.filter((x) => XIsEmpty(x.pid)).map((x) => getChildren(x, 0));\r\n if (parentOpen) {\r\n for (let item of value) {\r\n if (!item.leaf && item.open) {\r\n this.setParentOpen(value, item);\r\n }\r\n }\r\n }\r\n this.setExpanded();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nodeMouseenter($event: { event: MouseEvent; node: XTreeNode; ele: ElementRef }) {\r\n const { node, ele } = $event;\r\n if (!this.dragging) return;\r\n let before = this.hoverTreeNode;\r\n this.hoverTreeNode = node;\r\n this.hoverTreeEle = ele;\r\n this.hoverTreeNode.change && this.hoverTreeNode.change();\r\n if (before) {\r\n before.change && before.change();\r\n }\r\n\r\n if (!node.leaf && !node.open) {\r\n let from = this.nodes.indexOf(this.draggingTreeNode!);\r\n let to = this.nodes.indexOf(node);\r\n if (to - from !== -1) {\r\n this.onToggle(null!, node);\r\n }\r\n // else {\r\n // let addNodes: XTreeNode[] = [];\r\n // node.open = true;\r\n // const getNodes = (nd: XTreeNode) => {\r\n // if (XIsEmpty(nd.children)) return;\r\n // for (let child of nd.children!) {\r\n // addNodes.push(child);\r\n // child.open && getNodes(child);\r\n // }\r\n // };\r\n // getNodes(node);\r\n // let nodes = [...this.nodes];\r\n // nodes.splice(to + 1, 0, ...addNodes);\r\n // this.nodes = nodes;\r\n // }\r\n }\r\n }\r\n\r\n setScorllTop() {\r\n if (!this.scrollElement || !this.activatedNode) return;\r\n let inx = this.nodes.indexOf(this.activatedNode);\r\n let com = this.nodeComponents.get(inx);\r\n if (!com) return;\r\n let ele = com.elementRef.nativeElement as HTMLElement;\r\n let scrollEle = this.scrollElement;\r\n let min = scrollEle.scrollTop;\r\n let max = scrollEle.scrollTop + scrollEle.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - scrollEle.clientHeight;\r\n scrollEle.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n scrollEle.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n getCheckedNodes(): XTreeNode[] {\r\n let result: XTreeNode[] = [];\r\n const getChildren = (nodes: XTreeNode[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n if (x.checked && !result.includes(x)) {\r\n result = [...result, x];\r\n }\r\n getChildren(x.children as XTreeNode[]);\r\n });\r\n };\r\n getChildren(this.nodes);\r\n return result;\r\n }\r\n\r\n getCheckedKeys() {\r\n return this.getCheckedNodes().map((x) => x.id);\r\n }\r\n\r\n setCheckedKeys(keys: any[] = []) {\r\n if (!XIsEmpty(keys)) this.hasChecked = true;\r\n const setChildren = (nodes: XTreeNode[], clear = false) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.checked = !clear && keys.includes(x.id);\r\n x.change && x.change(true);\r\n setChildren(x.children as XTreeNode[], clear);\r\n });\r\n };\r\n setChildren(this.nodes, XIsEmpty(keys));\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setExpandedAll() {\r\n if (this.expandedAll && this.treeData.length === this.nodes.length) return;\r\n const setChildren = (nodes: XTreeNode[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.open = Boolean(this.expandedAll);\r\n x.change && x.change();\r\n setChildren(x.children as XTreeNode[]);\r\n });\r\n };\r\n setChildren(this.nodes);\r\n\r\n if (this.expandedAll === false) {\r\n this.nodes = this.treeData.filter((x) => XIsEmpty(x.pid));\r\n } else {\r\n if (this.virtualNodes.length === 0) {\r\n this.virtualNodes = [...this.nodes];\r\n }\r\n this.nodes = [...this.virtualNodes];\r\n for (let item of this.virtualNodes) {\r\n this.setVirtualExpandedAll(item, this.expandedAll as boolean);\r\n }\r\n }\r\n this.virtualBody?.checkViewportSize();\r\n }\r\n\r\n setExpanded() {\r\n for (let item of this.nodes) {\r\n if (item.open && item.children) {\r\n let index = this.nodes.indexOf(item);\r\n this.nodes.splice(index + 1, 0, ...(item.children as XTreeNode[]));\r\n }\r\n item.change && item.change();\r\n }\r\n this.nodes = [...this.nodes];\r\n }\r\n\r\n setVirtualExpandedAll(item: XTreeNode, expandedAll: boolean) {\r\n let index = this.nodes.indexOf(item);\r\n if (expandedAll) {\r\n let addNodes: XTreeNode[] = [];\r\n const getNodes = (nd: XTreeNode) => {\r\n for (let child of nd.children!) {\r\n addNodes.push(child);\r\n getNodes(child);\r\n }\r\n };\r\n getNodes(item);\r\n this.nodes.splice(index + 1, 0, ...addNodes);\r\n }\r\n this.nodes = [...this.nodes];\r\n }\r\n\r\n virtualToggle(node: XTreeNode) {\r\n let index = this.nodes.indexOf(node);\r\n if (node.open) {\r\n let addNodes: XTreeNode[] = [];\r\n const getNodes = (nd: XTreeNode) => {\r\n if (XIsEmpty(nd.children)) return;\r\n for (let child of nd.children!) {\r\n addNodes.push(child);\r\n child.open && getNodes(child);\r\n }\r\n };\r\n getNodes(node);\r\n this.nodes.splice(index + 1, 0, ...addNodes);\r\n } else {\r\n let delCount = 0;\r\n const getCount = (nd: XTreeNode) => {\r\n if (XIsEmpty(nd.children)) return;\r\n delCount += nd.children!.length;\r\n for (let child of nd.children!) {\r\n child.open && getCount(child);\r\n }\r\n };\r\n getCount(node);\r\n this.nodes.splice(index + 1, delCount);\r\n }\r\n\r\n this.addOrRemoveExpanded(node);\r\n this.nodes = [...this.nodes];\r\n this.virtualBody?.checkViewportSize();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n addOrRemoveExpanded(node: XTreeNode) {\r\n if (node.open) {\r\n if (!this.expanded.includes(node.id)) {\r\n this.expanded.push(node.id);\r\n }\r\n } else {\r\n if (this.expanded.includes(node.id)) {\r\n this.expanded.splice(this.expanded.indexOf(node.id), 1);\r\n }\r\n }\r\n }\r\n\r\n setActivatedNode(nodes: XTreeNode[], parentOpen = true, dataChange = true) {\r\n if (XIsEmpty(this.activatedId) && this.multiple) {\r\n this.activatedId = [];\r\n }\r\n let before = this.activatedNode;\r\n if (this.multiple) {\r\n if (this.activatedId.length > 0) {\r\n let ids = this.objectArray ? this.activatedId.map((x: XTreeNode) => x.id) : this.activatedId;\r\n for (let i = 0; i < ids.length; i++) {\r\n let node = nodes.find((x) => x.id === ids[i]) as XTreeNode;\r\n if (node) {\r\n parentOpen && this.setParentOpen(nodes, node);\r\n if (i === ids.length - 1) {\r\n this.activatedNode = node;\r\n this.activatedChange.emit(this.activatedNode);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n let activatedId = this.activatedId;\r\n this.activatedNode = nodes.find((x) => x.id == activatedId) as XTreeNode;\r\n if (this.activatedNode) {\r\n parentOpen && this.setParentOpen(nodes, this.activatedNode);\r\n this.activatedChange.emit(this.activatedNode);\r\n }\r\n }\r\n if (before) {\r\n before.change && before.change();\r\n }\r\n if (!XIsEmpty(nodes) && dataChange) {\r\n this.setDataChange(nodes, false, true, parentOpen);\r\n }\r\n }\r\n\r\n setParentOpen(nodes: XTreeNode[], node: XTreeNode) {\r\n const getParent = (child: XTreeNode) => {\r\n if (XIsEmpty(child.pid)) return;\r\n const parent = nodes.find((x) => x.id === child.pid) as XTreeNode;\r\n if (!XIsEmpty(parent)) {\r\n if (!this.expanded.includes(parent.id)) {\r\n this.expanded = [...this.expanded, parent.id];\r\n }\r\n parent.open = true;\r\n parent.change && parent.change();\r\n getParent(parent);\r\n }\r\n };\r\n getParent(node);\r\n }\r\n\r\n setParentCheck(nodes: XTreeNode[], node: XTreeNode) {\r\n const getParent = (child: XTreeNode) => {\r\n if (XIsEmpty(child.pid)) return;\r\n const parent = nodes.find((x) => x.id === child.pid) as XTreeNode;\r\n if (!XIsEmpty(parent)) {\r\n if (!this.expanded.includes(parent.id)) {\r\n this.expanded = [...this.expanded, parent.id];\r\n }\r\n parent.open = true;\r\n parent.change && parent.change();\r\n getParent(parent);\r\n }\r\n };\r\n getParent(node);\r\n }\r\n\r\n onToggle(event: Event, node: XTreeNode) {\r\n this.ngZone.run(() => {\r\n node.open = !node.open;\r\n if (this.lazy && !node.childrenLoaded) {\r\n this.getLazyData(node, () => this.virtualToggle(node));\r\n } else {\r\n this.virtualToggle(node);\r\n }\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n });\r\n }\r\n\r\n getLazyData(node: XTreeNode, callBack?: () => void) {\r\n node.loading = true;\r\n node.change && node.change();\r\n (this.data as (pid?: any) => Observable<XTreeNode[]>)(node.id)\r\n .pipe(\r\n map((x) =>\r\n x.map((y) => {\r\n y.level = (node.level as number) + 1;\r\n y.checked = node.checked;\r\n return y;\r\n })\r\n )\r\n )\r\n .subscribe((x) => {\r\n node.children = x;\r\n node.childrenLoaded = true;\r\n node.loading = false;\r\n this.treeData = [...this.treeData, ...x];\r\n if (callBack) callBack();\r\n node.change && node.change();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n addNode(node: XTreeNode) {\r\n let parent = this.treeData.find((x) => x.id === node.pid)!;\r\n const _addNode = () => {\r\n if (parent) {\r\n node.level = parent.level! + 1;\r\n node.pid = parent.id;\r\n node.leaf = true;\r\n parent.leaf = false;\r\n parent.open = true;\r\n this.treeData = [...this.treeData, node];\r\n this.setParentOpen(this.treeData, node);\r\n this.setDataChange(this.treeData, true, false, false);\r\n this.setActivatedId(node);\r\n this.setActivatedNode(this.nodes, true, false);\r\n node.change && node.change();\r\n } else if (XIsEmpty(node.pid)) {\r\n node.level = 0;\r\n node.leaf = true;\r\n this.treeData = [...this.treeData, node];\r\n this.nodes = [...this.nodes, node];\r\n this.setActivatedId(node);\r\n this.setActivatedNode(this.nodes, true, false);\r\n node.change && node.change();\r\n }\r\n };\r\n if (this.lazy && parent && !parent.childrenLoaded) {\r\n this.getLazyData(parent, () => {\r\n _addNode();\r\n });\r\n } else {\r\n _addNode();\r\n }\r\n }\r\n\r\n setActivatedId(node: XTreeNode) {\r\n if (this.multiple) {\r\n if (this.objectArray) {\r\n this.activatedId = [node];\r\n } else {\r\n this.activatedId = [node.id];\r\n }\r\n } else {\r\n this.activatedId = node.id;\r\n }\r\n this.activatedIdChange.emit(this.activatedId);\r\n }\r\n\r\n removeNode(node: XTreeNode) {\r\n let parent = this.treeData.find((x) => x.id === node.pid)!;\r\n const removeChildren = (nd: XTreeNode) => {\r\n XRemove(this.treeData, (x) => x.id === nd.id);\r\n if (nd.children) {\r\n for (let item of nd.children) {\r\n removeChildren(item);\r\n }\r\n }\r\n };\r\n removeChildren(node);\r\n\r\n if (parent) {\r\n if (!parent.children) parent.children = [];\r\n const childIndex = parent.children.findIndex((x) => x.id === node.id);\r\n if (childIndex > -1) {\r\n parent.children.splice(childIndex, 1);\r\n }\r\n parent.leaf = parent.children.length === 0;\r\n }\r\n this.setDataChange(this.treeData, true, false, false);\r\n }\r\n\r\n updateNode(node: XTreeNode, nowNode: XTreeNode) {\r\n Object.assign(node, nowNode);\r\n node.change && node.change();\r\n }\r\n\r\n trackByItem(_index: number, item: XTreeNode) {\r\n return item;\r\n }\r\n}\r\n","<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n @if (virtualScroll) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty\"\r\n [cdkDropListData]=\"nodes\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty\"\r\n [cdkDropListData]=\"nodes\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes; track node) {\r\n <x-tree-node\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<!-- 提前加载loading的图标-->\r\n@if (lazy) {\r\n <x-icon [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTreeComponent } from './tree.component';\r\nimport { XTreeNodeComponent } from './tree-node.component';\r\n\r\n@NgModule({\r\n exports: [XTreeComponent, XTreeNodeComponent],\r\n imports: [XTreeComponent, XTreeNodeComponent]\r\n})\r\nexport class XTreeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.XTreeService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-tree.mjs","sources":["../../../../lib/ng-nest/ui/tree/tree.property.ts","../../../../lib/ng-nest/ui/tree/tree.service.ts","../../../../lib/ng-nest/ui/tree/tree-node.component.ts","../../../../lib/ng-nest/ui/tree/tree-node.component.html","../../../../lib/ng-nest/ui/tree/tree.component.ts","../../../../lib/ng-nest/ui/tree/tree.component.html","../../../../lib/ng-nest/ui/tree/tree.module.ts","../../../../lib/ng-nest/ui/tree/ng-nest-ui-tree.ts"],"sourcesContent":["import { XProperty, XPropertyFunction, XToBoolean, XToNumber, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, output, model } from '@angular/core';\r\nimport { CdkDragEnd, CdkDragMove, CdkDragStart } from '@angular/cdk/drag-drop';\r\nimport type { XData, XParentIdentityProperty, XNumber, XBoolean, XIdentityProperty, XAlign } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Tree\r\n * @selector x-tree\r\n * @decorator component\r\n */\r\nexport const XTreePrefix = 'x-tree';\r\nconst X_TREE_CONFIG_NAME = 'tree';\r\n\r\n/**\r\n * Tree Property\r\n */\r\n@Component({ selector: `${XTreePrefix}-property`, template: '' })\r\nexport class XTreeProperty extends XPropertyFunction(X_TREE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XData<XTreeNode>>([]);\r\n /**\r\n * @zh_CN 显示多选框\r\n * @en_US Show checkbox\r\n */\r\n readonly checkbox = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启懒加载节点,data 必须设置成函数类型\r\n * @en_US Open lazy loading node, data must be set to function type\r\n */\r\n readonly lazy = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前激活的节点 Id, 当 multiple 为 true 时,值为数组(默认是 Id 数组,objectArray 为 true,对象数组)\r\n * @en_US Currently active node Id. When Multiple is true, the value is the Id array\r\n */\r\n readonly activatedId = model<any>(null);\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n readonly expanded = model<any[]>([]);\r\n /**\r\n * @zh_CN checkbox 选中的节点\r\n * @en_US Checkbox selected node\r\n */\r\n readonly checked = model<any[]>([]);\r\n /**\r\n * @zh_CN 展开所有节点\r\n * @en_US Expand all nodes\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 默认展开的层级\r\n * @en_US Default expanded level\r\n */\r\n readonly expandedLevel = input<number, XNumber>(-1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 点击节点就触发展开/收起的操作,请确保节点上没有其它操作(checkbox、自定义的操作按钮)\r\n * @en_US Click the node to trigger the expand/collapse operation, please make sure that there are no other operations on the node (checkbox, custom operation button)\r\n */\r\n readonly nodeOpen = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 单位间距,这个与层级的乘积算出节点的左边距\r\n * @en_US Unit spacing, the product of this and the level calculates the left margin of the node\r\n */\r\n readonly spacing = input<string, XNumber>(this.config?.spacing ?? '1.5rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签自定义模板\r\n * @en_US Label custom template\r\n */\r\n readonly labelTpl = input<TemplateRef<void>>();\r\n /**\r\n * @zh_CN 节点的高度, 默认是自适应高度\r\n * @en_US The height of the node\r\n */\r\n readonly nodeHeight = input<string, XNumber>(this.config?.nodeHeight ?? '', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 是否允许多次点击一个节点触发多次事件\r\n * @en_US Whether to allow multiple clicks on a node to trigger multiple events\r\n */\r\n readonly allowManyActivated = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 拖动节点\r\n * @en_US Drag node\r\n */\r\n readonly drag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前点击选中的节点变化的事件\r\n * @en_US The event of the currently clicked node change\r\n */\r\n readonly activatedChange = output<XTreeNode>();\r\n /**\r\n * @zh_CN 使用 checkedbox 选中变化的事件\r\n * @en_US Use checkedbox to select changed events\r\n */\r\n readonly checkboxChange = output<XTreeNode>();\r\n /**\r\n * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,用于弹框中的表格,弹出后再请求\r\n * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up\r\n */\r\n readonly manual = model<boolean>(true);\r\n /**\r\n * @zh_CN checkbox 状态改变触发层级检查\r\n * @en_US Checkbox status changes trigger level checks\r\n */\r\n readonly levelCheck = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n readonly nodeNowrap = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点垂直对齐方式\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n readonly nodeAlignItems = input<XAlign>(this.config?.nodeAlignItems ?? 'center');\r\n /**\r\n * @zh_CN 树节点操作按钮\r\n * @en_US Tree node operation buttons\r\n */\r\n readonly actions = input<XTreeAction[]>([]);\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n readonly scrollElement = input<HTMLElement>();\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 滚动区域高度,开启虚拟滚动的时候生效\r\n * @en_US Rolling area height\r\n */\r\n readonly virtualScrollHeight = input<string, XNumber>(this.config?.virtualScrollHeight ?? '400px', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 虚拟滚动高度自适应指定元素\r\n * @en_US virtual rolling height follows the specified object\r\n */\r\n readonly heightAdaption = input<HTMLElement>();\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数,开启虚拟滚动才生效\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(this.config?.itemSize ?? 34, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数,开启虚拟滚动才生效\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数,开启虚拟滚动才生效\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 多选功能,当前激活的节点可以是多个\r\n * @en_US Multiple choice\r\n */\r\n readonly multiple = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当开启多选的时候,activatedId 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of activatedId is an array of objects\r\n */\r\n readonly objectArray = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 关键字高亮,针对下拉树搜索\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写,针对下拉树搜索\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(this.config?.caseSensitive ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只能选择叶子节点\r\n * @en_US Only leaf nodes can be selected\r\n */\r\n readonly onlyLeaf = input<boolean, XBoolean>(this.config?.onlyLeaf ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展开收起的图标自定义模版\r\n * @en_US Expand the folded icon custom template\r\n */\r\n readonly expandedIcon = input<TemplateRef<void>>();\r\n /**\r\n * @zh_CN 显示连接线\r\n * @en_US Show line\r\n */\r\n readonly showLine = input<boolean, XBoolean>(this.config?.showLine ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XTreeNode>();\r\n /**\r\n * @zh_CN 节点开始拖动事件\r\n * @en_US Node drag started\r\n */\r\n readonly nodeDragStarted = output<XTreeNodeDragEvent>();\r\n /**\r\n * @zh_CN 节点结束拖动事件\r\n * @en_US Node drag ended\r\n */\r\n readonly nodeDragEnded = output<XTreeNodeDragEvent>();\r\n /**\r\n * @zh_CN 节点正在拖动事件\r\n * @en_US Node drag moved\r\n */\r\n readonly nodeDragMoved = output<XTreeNodeDragEvent>();\r\n}\r\n\r\n/**\r\n * @zh_CN Tree 数据对象\r\n * @en_US Tree data object\r\n */\r\nexport interface XTreeNode extends XParentIdentityProperty<XTreeNode> {\r\n /**\r\n * @zh_CN 激活的\r\n * @en_US active\r\n */\r\n activated?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n /**\r\n * @zh_CN checkbox 是否选中\r\n * @en_US whether checkbox is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * @zh_CN 禁用checkbox\r\n * @en_US Disable checkbox\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN checkbox 子节点是否有选中的状态\r\n * @en_US Whether the child node of checkbox is selected\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * @zh_CN 节点高度,优先级高于 tree 参数\r\n * @en_US Node height, highest priority\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号,优先级高于 tree 参数\r\n * @en_US Show ellipsis without wrapping, highest priority\r\n */\r\n nowrap?: boolean;\r\n /**\r\n * @zh_CN 节点垂直对齐方式,优先级高于 tree 参数\r\n * @en_US Show ellipsis without wrapping, highest priority\r\n */\r\n alignItems?: XAlign;\r\n /**\r\n * @zh_CN 节点懒加载中\r\n * @en_US Node lazy loading\r\n */\r\n loading?: boolean;\r\n /**\r\n * @zh_CN 显示拖动指示器\r\n * @en_US Show drag indicator\r\n */\r\n showDragIndicator?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN Tree 节点操作\r\n * @en_US Tree node operation\r\n */\r\nexport interface XTreeAction extends XIdentityProperty {\r\n /**\r\n * @zh_CN 操作\r\n * @en_US Operating\r\n */\r\n handler?: Function;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN Tree 节点拖动事件\r\n * @en_US Tree node drag event\r\n */\r\nexport interface XTreeNodeDragEvent {\r\n /**\r\n * @zh_CN 对应 cdk 中的事件\r\n * @en_US drag cdk event\r\n */\r\n event?: CdkDragStart | CdkDragEnd | CdkDragMove<XTreeNode>;\r\n /**\r\n * @zh_CN 拖动的节点\r\n * @en_US drag node\r\n */\r\n from?: XTreeNode;\r\n /**\r\n * @zh_CN 要拖动到的位置对应的节点\r\n * @en_US Node corresponding to the position to drag\r\n */\r\n to?: XTreeNode;\r\n /**\r\n * @zh_CN 对应节点的前面还是后面\r\n * @en_US The front or back of the corresponding node\r\n */\r\n position?: -1 | 1;\r\n}\r\n\r\n/**\r\n * TreeNode\r\n * @selector x-tree-node\r\n * @decorator directive\r\n */\r\nexport const XTreeNodePrefix = 'x-tree-node';\r\n\r\n/**\r\n * TreeNode Property\r\n */\r\n@Component({ selector: `${XTreeNodePrefix}-property`, template: '' })\r\nexport class XTreeNodeProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly node = input<XTreeNode>({});\r\n /**\r\n * @zh_CN 层级\r\n * @en_US Level\r\n */\r\n readonly level = model<number | undefined>(0);\r\n /**\r\n * @zh_CN 节点的高度\r\n * @en_US The height of the node\r\n */\r\n readonly nodeHeight = model<string>('');\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n readonly nodeNowrap = model<boolean>(false);\r\n /**\r\n * @zh_CN 节点垂直对齐方式\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n readonly nodeAlignItems = model<XAlign>('center');\r\n /**\r\n * @zh_CN 标记为虚拟滚动的节点\r\n * @en_US Mark as a node of virtual rolling\r\n */\r\n readonly virtualScroll = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n readonly disabled = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN id\r\n * @en_US Id\r\n */\r\n readonly id = model<any>();\r\n /**\r\n * @zh_CN pid\r\n * @en_US pId\r\n */\r\n readonly pid = model<any>();\r\n /**\r\n * @zh_CN 叶子节点\r\n * @en_US A leaf node\r\n */\r\n readonly leaf = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN 节点的高度\r\n * @en_US The height of the node\r\n */\r\n readonly height = model<string>('');\r\n /**\r\n * @zh_CN 节点垂直对齐方式\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n readonly alignItems = model<XAlign>();\r\n /**\r\n * @zh_CN 节点垂直对齐方式\r\n * @en_US Show ellipsis without wrapping\r\n */\r\n readonly loading = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN 展开\r\n * @en_US open\r\n */\r\n readonly open = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN checkbox 是否选中\r\n * @en_US whether checkbox is selected\r\n */\r\n readonly checked = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN checkbox 子节点是否有选中的状态\r\n * @en_US Whether the child node of checkbox is selected\r\n */\r\n readonly indeterminate = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN 节点名称\r\n * @en_US The name of the node\r\n */\r\n readonly label = model<string | undefined>('');\r\n /**\r\n * @zh_CN 节点内容不换行显示省略号,优先级高于 tree 参数\r\n * @en_US Show ellipsis without wrapping, highest priority\r\n */\r\n readonly nowrap = model<boolean | undefined>(false);\r\n /**\r\n * @zh_CN 节点展开收起事件\r\n * @en_US Node expansion pack up\r\n */\r\n readonly toggle = output<XTreeNode>();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { XIsEmpty, XRemove } from '@ng-nest/ui/core';\r\nimport { XTreeNode } from './tree.property';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class XTreeService {\r\n getChildren(data: XTreeNode[], node: XTreeNode) {\r\n const res: XTreeNode[] = [];\r\n const gChildren = (nd: XTreeNode) => {\r\n const children = data.filter((x) => x.pid === nd.id);\r\n if (XIsEmpty(children)) return;\r\n for (let child of children) {\r\n res.push(child);\r\n gChildren(child);\r\n }\r\n };\r\n gChildren(node);\r\n\r\n return res;\r\n }\r\n\r\n getParents(data: XTreeNode[], node: XTreeNode) {\r\n const res: XTreeNode[] = [];\r\n const gParent = (nd: XTreeNode) => {\r\n if (!nd.pid) return;\r\n const parent = data.find((x) => x.id === nd.pid);\r\n if (!parent) return;\r\n res.push(parent);\r\n gParent(parent);\r\n };\r\n gParent(node);\r\n\r\n return res;\r\n }\r\n\r\n getOpenChildren(data: XTreeNode[], node: XTreeNode) {\r\n const res: XTreeNode[] = [];\r\n const gChildren = (nd: XTreeNode) => {\r\n if (!nd.open) return;\r\n const children = data.filter((x) => x.pid === nd.id);\r\n if (XIsEmpty(children)) return;\r\n for (let child of children) {\r\n res.push(child);\r\n gChildren(child);\r\n }\r\n };\r\n gChildren(node);\r\n\r\n return res;\r\n }\r\n\r\n moveNode(data: XTreeNode[], from: XTreeNode, to: XTreeNode, pos: -1 | 1) {\r\n if (XIsEmpty(data)) return;\r\n const formIndex = data.findIndex((x) => x.id === from.id);\r\n const toIndex = data.findIndex((x) => x.id === to.id);\r\n XRemove(data, (x) => x.id === from.id);\r\n if (from.pid === to.pid) {\r\n const index = toIndex > formIndex ? toIndex - 1 : toIndex;\r\n data.splice(pos === -1 ? index : index + 1, 0, from);\r\n } else if (from.pid !== to.pid) {\r\n from.pid = to.pid;\r\n const diffLevel = to.level! - from.level!;\r\n from.level = to.level;\r\n const fromChildren = this.getChildren(data, from);\r\n fromChildren.forEach((x) => {\r\n x.level = x.level! + diffLevel;\r\n });\r\n const index = toIndex > formIndex ? toIndex - 1 : toIndex;\r\n data.splice(pos === -1 ? index : index + 1, 0, from);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n HostBinding,\r\n HostListener,\r\n inject,\r\n computed,\r\n signal,\r\n output\r\n} from '@angular/core';\r\nimport { XTreeNodePrefix, XTreeNode, XTreeNodeProperty, XTreeAction } from './tree.property';\r\nimport { XIsEmpty, XBoolean, XComputedStyle, XToCssPx, XIsObjectArray, XIsArray } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XTreeService } from './tree.service';\r\nimport { DOCUMENT, NgStyle } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XKeywordDirective } from '@ng-nest/ui/keyword';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XTreeComponent } from './tree.component';\r\n\r\n@Component({\r\n selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`,\r\n standalone: true,\r\n imports: [\r\n NgStyle,\r\n FormsModule,\r\n XIconComponent,\r\n XCheckboxComponent,\r\n XOutletDirective,\r\n XLinkComponent,\r\n XKeywordDirective\r\n ],\r\n templateUrl: './tree-node.component.html',\r\n styleUrls: ['./tree-node.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTreeNodeComponent extends XTreeNodeProperty {\r\n tree = inject(XTreeComponent, { optional: true, host: true })!;\r\n nodeMouseenter = output<{ event: MouseEvent; node: XTreeNode; ele: ElementRef }>();\r\n @HostBinding('class.x-tree-node') rootClass = true;\r\n private document = inject(DOCUMENT);\r\n fontSize = computed(() => parseFloat(XComputedStyle(this.document.documentElement, 'font-size')));\r\n private unSubject = new Subject<void>();\r\n\r\n @HostListener('mouseenter', ['$event']) onMouseenter(event: MouseEvent) {\r\n this.nodeMouseenter.emit({ event: event, node: this.node(), ele: this.elementRef });\r\n }\r\n\r\n @HostListener('mouseleave') onMouseleave(_event: MouseEvent) {\r\n if (!this.tree.dragging()) return;\r\n const hoverTreeNode = this.tree.hoverTreeNode();\r\n hoverTreeNode && hoverTreeNode.change && hoverTreeNode.change();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n showDragIndicator = computed(() => {\r\n return this.tree.dragging() && this.tree.hoverTreeNode()?.id === this.id();\r\n });\r\n\r\n isChildrenLast = computed(() => {\r\n let parent = this.tree.nodes().find((x: XTreeNode) => x.id === this.pid());\r\n if (!parent || !parent.children) return false;\r\n const index = parent.children.indexOf(this.node());\r\n return index + 1 === parent.children.length;\r\n });\r\n\r\n isParentLast = computed(() => {\r\n let parents = this.treeService.getParents(this.tree.nodes(), this.node());\r\n if (parents.length <= 1) return [];\r\n const res: boolean[] = [];\r\n parents.reduce((pre: XTreeNode, curr: XTreeNode) => {\r\n if (pre === null) return curr;\r\n const index = curr.children?.indexOf(pre)!;\r\n res.push(index + 1 === curr.children?.length!);\r\n return curr;\r\n });\r\n\r\n return res.reverse();\r\n });\r\n\r\n verticalLevel = computed(() => {\r\n if (this.level()! > 0) {\r\n return Array.from({ length: this.level()! }).map((_x, index) => index + 1);\r\n } else {\r\n return [];\r\n }\r\n });\r\n\r\n verticalWidth = computed(() => {\r\n return XToCssPx(this.tree.spacing(), this.fontSize()) / 2;\r\n });\r\n\r\n paddingLeft = computed(() => (this.level()! ? this.level()! : 0) * XToCssPx(this.tree.spacing(), this.fontSize()));\r\n\r\n indicatorWidth = computed(() => {\r\n return `calc(100% - ${this.paddingLeft() + (this.leaf() ? this.fontSize() * 1.5 : 0)}px)`;\r\n });\r\n\r\n indicatorStyle = computed(() => {\r\n if (this.tree.dragPosition() === 1) {\r\n return { bottom: `-${0.0625 * this.fontSize()}px` };\r\n } else if (this.tree.dragPosition() === -1) {\r\n return { top: `-${0.0625 * this.fontSize()}px` };\r\n }\r\n return {};\r\n });\r\n\r\n changed = signal(false);\r\n\r\n activated = computed(() => {\r\n this.changed();\r\n const activatedId = this.tree.activatedId();\r\n if (this.tree.multiple()) {\r\n if (this.tree.objectArray()) {\r\n return XIsObjectArray<XTreeNode[]>(activatedId) && activatedId.map((x: XTreeNode) => x.id).includes(this.id());\r\n } else {\r\n return XIsArray<any[]>(activatedId) && activatedId.includes(this.id());\r\n }\r\n } else {\r\n return activatedId === this.id();\r\n }\r\n });\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private treeService = inject(XTreeService);\r\n elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n const node = this.node();\r\n node.change = (check: boolean) => {\r\n if (check) this.setCheckbox();\r\n this.cdr.detectChanges();\r\n };\r\n if (!this.tree.levelCheck()) return;\r\n if (this.checked()) this.setCheckbox();\r\n this.setIndeterminate(this.node());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n onActivate(event: Event, node: XTreeNode) {\r\n const change: Function = this.tree.activatedNode()?.change as Function;\r\n this.tree.nodeOpen() && !this.leaf() && this.onToggle(event, node);\r\n const onChange = () => {\r\n change && change();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.cdr.detectChanges();\r\n };\r\n if (this.tree.onlyLeaf() && !this.leaf()) {\r\n onChange();\r\n return;\r\n }\r\n if (this.tree.multiple()) {\r\n if (!this.tree.activatedId()) this.tree.activatedId.set([]);\r\n if (this.tree.objectArray()) {\r\n const ids = this.tree.activatedId().map((x: XTreeNode) => x.id);\r\n if (ids.includes(node.id)) {\r\n this.tree.activatedId.update((x) => {\r\n x.splice(ids.indexOf(node.id), 1);\r\n return [...x];\r\n });\r\n } else {\r\n this.tree.activatedId.update((x) => {\r\n x.push(node);\r\n return [...x];\r\n });\r\n }\r\n } else {\r\n if (this.tree.activatedId().includes(node.id)) {\r\n this.tree.activatedId.update((x) => {\r\n x.splice(this.tree.activatedId().indexOf(node.id), 1);\r\n return [...x];\r\n });\r\n } else {\r\n this.tree.activatedId.update((x) => {\r\n x.push(node.id);\r\n return [...x];\r\n });\r\n }\r\n }\r\n } else {\r\n this.tree.activatedId.set(node.id);\r\n }\r\n if (this.tree.activatedNode()) {\r\n if (this.tree.activatedNode()?.id === node.id && !this.tree.allowManyActivated()) return;\r\n }\r\n this.tree.activatedNode.set(node);\r\n this.changed.update((x) => !x);\r\n this.tree.activatedChange.emit(node);\r\n this.tree.nodeClick.emit(node);\r\n onChange();\r\n }\r\n\r\n onCheckboxChange() {\r\n this.setCheckbox();\r\n this.tree.checkboxChange.emit(this.node());\r\n }\r\n\r\n getVerticalLeft(i: number) {\r\n const spacing = XToCssPx(this.tree.spacing(), this.fontSize());\r\n return (i - 1) * spacing + spacing / 2;\r\n }\r\n\r\n setCheckbox() {\r\n if (!this.tree.levelCheck()) return;\r\n this.node().indeterminate = this.checked();\r\n this.node().children && this.setChildrenCheckbox(this.checked()!);\r\n const setParent = (node: XTreeNode) => {\r\n let parent = this.tree.nodes().find((x: XTreeNode) => x.id === node.pid);\r\n if (!parent || XIsEmpty(parent.children)) return;\r\n let checkedList = parent.children?.filter((y: XTreeNode) => y.checked);\r\n let indeterminateList = parent.children?.filter((y: XTreeNode) => y.indeterminate);\r\n parent.checked = checkedList?.length === parent.children?.length;\r\n parent.indeterminate = (checkedList as XTreeNode[]).length > 0 || (indeterminateList as XTreeNode[]).length > 0;\r\n parent.change && parent.change();\r\n setParent(parent);\r\n };\r\n setParent(this.node());\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setChildrenCheckbox(checked: boolean) {\r\n const setChildren = (children: XTreeNode[], isChecked: boolean) => {\r\n if (XIsEmpty(children)) return;\r\n for (let x of children) {\r\n if (x.disabled) continue;\r\n x.checked = isChecked;\r\n x.indeterminate = isChecked;\r\n x.change && x.change();\r\n setChildren(x.children as XTreeNode[], isChecked);\r\n }\r\n };\r\n setChildren(this.node().children as XTreeNode[], checked);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setParentCheckbox() {\r\n if (XIsEmpty(this.node().children)) return;\r\n let checkedList = this.node().children?.filter((x) => x.checked);\r\n let indeterminateList = this.node().children?.filter((x) => x.indeterminate);\r\n this.node().checked = checkedList?.length === this.node().children?.length;\r\n this.node().indeterminate =\r\n (checkedList as XTreeNode[]).length > 0 || (indeterminateList as XTreeNode[]).length > 0;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setIndeterminate(node: XTreeNode) {\r\n const getChildren = (children: XTreeNode[]) => {\r\n if (XIsEmpty(children)) return;\r\n children.forEach((x) => {\r\n if (x.indeterminate || x.checked) {\r\n node.indeterminate = true;\r\n return;\r\n }\r\n getChildren(x.children as XTreeNode[]);\r\n });\r\n };\r\n getChildren(node.children as XTreeNode[]);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getNodeDisabled(disabled?: boolean) {\r\n return disabled as XBoolean;\r\n }\r\n\r\n onAction(event: Event, action: XTreeAction, node: XTreeNode) {\r\n action.handler && action.handler(node);\r\n event.stopPropagation();\r\n }\r\n\r\n onToggle(event: Event, node: XTreeNode) {\r\n this.toggle.emit(node);\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n }\r\n\r\n trackByItem(_index: number, item: XTreeNode) {\r\n return `${item.id}-${item.level}`;\r\n }\r\n\r\n trackByAction(_index: number, item: XTreeAction) {\r\n return item.id;\r\n }\r\n}\r\n","<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"activated()\"\r\n [class.x-disabled]=\"disabled()\"\r\n [class.x-tree-node-sub]=\"!leaf()\"\r\n [class.x-tree-node-last]=\"isChildrenLast()\"\r\n [style.padding-left.px]=\"paddingLeft() + fontSize() / 2\"\r\n [style.height]=\"height() ? height() : nodeHeight() ? nodeHeight() : ''\"\r\n [style.align-items]=\"alignItems() ? alignItems() : nodeAlignItems()\"\r\n (click)=\"!disabled() && onActivate($event, node())\"\r\n>\r\n @if (tree.showLine() && level()! > 0) {\r\n <div class=\"x-tree-node-line\" [style.width.px]=\"paddingLeft()\">\r\n @for (i of verticalLevel(); track i) {\r\n <div\r\n class=\"x-tree-node-line-vertical\"\r\n [hidden]=\"isParentLast()[i - 1]\"\r\n [class.is-last]=\"i === verticalLevel().length\"\r\n [style.left.px]=\"getVerticalLeft(i)\"\r\n ></div>\r\n }\r\n <div\r\n class=\"x-tree-node-line-horizontal\"\r\n [style.width.px]=\"verticalWidth()\"\r\n [style.left.px]=\"getVerticalLeft(verticalLevel().length)\"\r\n ></div>\r\n </div>\r\n }\r\n @if (showDragIndicator()) {\r\n <div class=\"x-tree-node-drag-indicator\" [style.width]=\"indicatorWidth()\" [ngStyle]=\"indicatorStyle()\"></div>\r\n }\r\n @if (loading()) {\r\n <x-icon class=\"x-tree-node-loading\" type=\"fto-loader\" [spin]=\"loading()!\"></x-icon>\r\n } @else {\r\n <div\r\n class=\"x-tree-node-right\"\r\n [class.is-leaf]=\"leaf()\"\r\n [class.is-open]=\"open()\"\r\n [class.is-template]=\"tree.expandedIcon()\"\r\n [style.width.px]=\"verticalWidth() * 2\"\r\n (click)=\"!tree.nodeOpen() && onToggle($event, node())\"\r\n >\r\n @if (tree.expandedIcon()) {\r\n <ng-container *xOutlet=\"tree.expandedIcon(); context: { $node: node() }\"></ng-container>\r\n } @else {\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n }\r\n </div>\r\n }\r\n @if (tree.checkbox()) {\r\n <x-checkbox\r\n [data]=\"[{ label: '', id: id() }]\"\r\n [(ngModel)]=\"checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"indeterminate()!\"\r\n [disabled]=\"disabled()!\"\r\n (click)=\"$event.stopPropagation()\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!tree.labelTpl()) {\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"nowrap() === false || nowrap() === true ? nowrap() : nodeNowrap()\"\r\n [title]=\"label()\"\r\n x-keyword\r\n [text]=\"tree.keywordText()\"\r\n [caseSensitive]=\"tree.caseSensitive()\"\r\n >{{ label() }}</span\r\n >\r\n } @else {\r\n <ng-container *xOutlet=\"tree.labelTpl(); context: { $node: node() }\"></ng-container>\r\n }\r\n <span class=\"x-tree-node-operations\">\r\n @for (action of tree.actions(); track action.id) {\r\n <x-link [icon]=\"action.icon\" [title]=\"action.label\" (click)=\"onAction($event, action, node())\"></x-link>\r\n }\r\n </span>\r\n @if (tree.multiple() && activated()) {\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n viewChild,\r\n viewChildren,\r\n signal,\r\n computed,\r\n inject,\r\n effect\r\n} from '@angular/core';\r\nimport { XTreePrefix, XTreeNode, XTreeProperty } from './tree.property';\r\nimport {\r\n XIsEmpty,\r\n XIsFunction,\r\n XIsUndefined,\r\n XIsChange,\r\n XSetData,\r\n XResize,\r\n XRemove,\r\n XResizeObserver,\r\n XComputedStyle,\r\n XToCssPx\r\n} from '@ng-nest/ui/core';\r\nimport { debounceTime, map, Observable, Subject } from 'rxjs';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XTreeNodeComponent } from './tree-node.component';\r\nimport { CdkDrag, CdkDragEnd, CdkDragMove, CdkDragStart, CdkDropList, DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XTreeService } from './tree.service';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XTreePrefix}`,\r\n standalone: true,\r\n imports: [DragDropModule, ScrollingModule, XTreeNodeComponent, XIconComponent],\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTreeComponent extends XTreeProperty implements OnChanges {\r\n tree = viewChild('tree', { read: ElementRef<HTMLElement> });\r\n virtualBody = viewChild('virtualBody', { read: CdkVirtualScrollViewport });\r\n dropList = viewChild('dropList', { read: CdkDropList<HTMLElement> });\r\n nodeComponents = viewChildren(XTreeNodeComponent);\r\n private document = inject(DOCUMENT);\r\n private fontSize = computed(() => parseFloat(XComputedStyle(this.document.documentElement, 'font-size')));\r\n\r\n nodes = signal<XTreeNode[]>([]);\r\n\r\n virtualNodes = signal<XTreeNode[]>([]);\r\n activatedNode = signal<XTreeNode | null>(null);\r\n dataIsFunc = signal(false);\r\n getting = signal(false);\r\n treeData = signal<XTreeNode[]>([]);\r\n\r\n dragging = signal(false);\r\n dragPosition = signal<-1 | 1>(-1);\r\n hoverTreeNode = signal<XTreeNode | null>(null);\r\n hoverTreeEle!: ElementRef;\r\n draggingTreeNode = signal<XTreeNode | null>(null);\r\n hasChecked = signal(false);\r\n\r\n isEmpty = computed(() => XIsEmpty(this.nodes()));\r\n\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public cdr: ChangeDetectorRef,\r\n public treeService: XTreeService\r\n ) {\r\n super();\r\n\r\n effect(() => {\r\n const virtualBody = this.virtualBody();\r\n if (virtualBody) {\r\n virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n });\r\n }\r\n\r\n heightAdaptionSignal = signal<number>(0);\r\n\r\n isVirtualScrollAdaption = computed(() => {\r\n return !!(this.virtualScroll() && this.heightAdaption());\r\n });\r\n\r\n virtualScrollHeightSignal = computed(() => {\r\n if (this.isVirtualScrollAdaption()) {\r\n return this.heightAdaptionSignal();\r\n } else {\r\n return XToCssPx(this.virtualScrollHeight(), this.fontSize());\r\n }\r\n });\r\n\r\n minBufferPxSignal = computed(() => {\r\n if (this.isVirtualScrollAdaption()) {\r\n return this.virtualScrollHeightSignal();\r\n } else {\r\n return this.minBufferPx();\r\n }\r\n });\r\n\r\n maxBufferPxSignal = computed(() => {\r\n if (this.isVirtualScrollAdaption()) {\r\n return this.virtualScrollHeightSignal() * 1.2;\r\n } else {\r\n return this.maxBufferPx();\r\n }\r\n });\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { expandedAll, data, checked, manual } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(checked) && this.setCheckedKeys(this.checked());\r\n XIsChange(manual) && this.setManual();\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isVirtualScrollAdaption()) {\r\n this.heightAdaptionSignal.set(this.heightAdaption()!.clientHeight!);\r\n XResize(this.heightAdaption()!)\r\n .pipe(\r\n debounceTime(30),\r\n map(({ resizeObserver }) => {\r\n this.resizeObserver = resizeObserver;\r\n this.heightAdaptionSignal.set(this.heightAdaption()!.clientHeight!);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n this.setActivatedNode(this.treeData());\r\n this.setScrollTop();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n setData() {\r\n if (typeof this.data() === 'undefined') return;\r\n this.dataIsFunc.set(false);\r\n if (XIsFunction(this.data())) {\r\n this.dataIsFunc.set(true);\r\n this.getDataByFunc();\r\n } else {\r\n XSetData<XTreeNode>(this.data(), this.unSubject).subscribe((x) => {\r\n this.setDataChange(x);\r\n });\r\n }\r\n }\r\n\r\n cdkDragStarted(event: CdkDragStart) {\r\n this.dragging.set(true);\r\n this.draggingTreeNode.set(event.source.data);\r\n if (event.source.data.open) {\r\n this.onToggle(event.event, event.source.data);\r\n }\r\n this.nodeDragStarted.emit({ event, from: this.draggingTreeNode()! });\r\n }\r\n\r\n cdkDragEnded(event: CdkDragEnd) {\r\n this.dragging.set(false);\r\n const hoverTreeNode = this.hoverTreeNode();\r\n if (hoverTreeNode) {\r\n if (hoverTreeNode.id !== event.source.data.id) {\r\n this.insertNode(event.source.data, hoverTreeNode, this.dragPosition());\r\n }\r\n hoverTreeNode.change && hoverTreeNode.change();\r\n this.nodeDragEnded.emit({\r\n event,\r\n from: event.source.data,\r\n to: hoverTreeNode,\r\n position: this.dragPosition()\r\n });\r\n }\r\n }\r\n\r\n insertNode(dragNode: XTreeNode, hoverNode: XTreeNode, dragPosition: -1 | 1) {\r\n let parent = this.nodes().find((x) => x.id === dragNode.pid);\r\n this.treeService.moveNode(this.treeData(), dragNode, hoverNode, dragPosition);\r\n this.setDataChange(this.treeData(), true, false, true, parent);\r\n }\r\n\r\n cdkDragMoved(event: CdkDragMove<XTreeNode>) {\r\n const hoverTreeNode = this.hoverTreeNode();\r\n if (!this.dragging() || !hoverTreeNode) return;\r\n const y = event.pointerPosition.y;\r\n if (event.source.data.id === hoverTreeNode.id) return;\r\n const target = this.hoverTreeEle.nativeElement as HTMLElement;\r\n const { top, height } = target.getBoundingClientRect();\r\n const des = Math.max(height * 0.5, 2);\r\n if (y > top && y < top + des) {\r\n this.dragPosition.set(-1);\r\n } else if (y > top + des && y < top + height) {\r\n this.dragPosition.set(1);\r\n }\r\n hoverTreeNode.change && hoverTreeNode.change();\r\n this.nodeDragMoved.emit({\r\n event,\r\n from: this.draggingTreeNode()!,\r\n to: hoverTreeNode,\r\n position: this.dragPosition()\r\n });\r\n }\r\n\r\n predicate(_drag: CdkDrag<XTreeNode>, _drop: CdkDropList<XTreeNode>) {\r\n return true;\r\n }\r\n\r\n private setManual() {\r\n if (this.dataIsFunc()) this.getDataByFunc();\r\n }\r\n\r\n private getDataByFunc() {\r\n if (!this.manual()) return;\r\n XSetData<XTreeNode>((this.data() as Function)(), this.unSubject).subscribe((x) => {\r\n this.setDataChange(x);\r\n });\r\n }\r\n\r\n private setDataChange(\r\n value: XTreeNode[],\r\n regetChildren = false,\r\n init = true,\r\n parentOpen = true,\r\n lazyParant?: XTreeNode\r\n ) {\r\n if (XIsEmpty(this.checked()) || !this.hasChecked()) this.checked.set([]);\r\n const getChildren = (node: XTreeNode, level: number) => {\r\n if (init) {\r\n node.level = level;\r\n node.open =\r\n this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id) || node.open;\r\n node.checked = this.checked().includes(node.id) || node.checked;\r\n node.childrenLoaded = node.open;\r\n }\r\n if (XIsUndefined(node.children) || regetChildren) {\r\n node.children = value.filter((y) => y.pid === node.id);\r\n if (this.levelCheck() && node.children && node.checked) {\r\n for (let nd of node.children) {\r\n nd.checked = true;\r\n this.checked.update((x) => {\r\n x.push(nd.id);\r\n return [...x];\r\n });\r\n }\r\n }\r\n }\r\n if ((!this.lazy() && (XIsUndefined(node.leaf) || regetChildren)) || node.id === lazyParant?.id) {\r\n node.leaf = (node.children?.length as number) === 0;\r\n }\r\n if (!node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeData.set(value);\r\n this.nodes.set(value.filter((x) => XIsEmpty(x.pid)).map((x) => getChildren(x, 0)));\r\n if (parentOpen) {\r\n for (let item of value) {\r\n if (!item.leaf && item.open) {\r\n this.setParentOpen(value, item);\r\n }\r\n }\r\n }\r\n this.setExpanded();\r\n this.cdr.markForCheck();\r\n }\r\n\r\n nodeMouseenter($event: { event: MouseEvent; node: XTreeNode; ele: ElementRef }) {\r\n const { node, ele } = $event;\r\n if (!this.dragging()) return;\r\n let before = this.hoverTreeNode();\r\n this.hoverTreeNode.set(node);\r\n this.hoverTreeEle = ele;\r\n const hoverTreeNode = this.hoverTreeNode();\r\n if (hoverTreeNode) {\r\n hoverTreeNode.change && hoverTreeNode.change();\r\n }\r\n if (before) {\r\n before.change && before.change();\r\n }\r\n\r\n if (!node.leaf && !node.open) {\r\n let from = this.nodes().indexOf(this.draggingTreeNode()!);\r\n let to = this.nodes().indexOf(node);\r\n if (to - from !== -1) {\r\n this.onToggle(null!, node);\r\n }\r\n }\r\n }\r\n\r\n setScrollTop() {\r\n const scrollElement = this.scrollElement();\r\n if (!scrollElement || !this.activatedNode()) return;\r\n const inx = this.nodes().indexOf(this.activatedNode()!);\r\n let com = this.nodeComponents().find((_, index) => index === inx);\r\n if (!com) return;\r\n let ele = com.elementRef.nativeElement as HTMLElement;\r\n let scrollEle = scrollElement;\r\n let min = scrollEle.scrollTop;\r\n let max = scrollEle.scrollTop + scrollEle.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - scrollEle.clientHeight;\r\n scrollEle.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n scrollEle.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n getCheckedNodes(): XTreeNode[] {\r\n let result: XTreeNode[] = [];\r\n const getChildren = (nodes: XTreeNode[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n if (x.checked && !result.includes(x)) {\r\n result = [...result, x];\r\n }\r\n getChildren(x.children as XTreeNode[]);\r\n });\r\n };\r\n getChildren(this.nodes());\r\n return result;\r\n }\r\n\r\n getCheckedKeys() {\r\n return this.getCheckedNodes().map((x) => x.id);\r\n }\r\n\r\n setCheckedKeys(keys: any[] = []) {\r\n if (!XIsEmpty(keys)) this.hasChecked.set(true);\r\n const setChildren = (nodes: XTreeNode[], clear = false) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.checked = !clear && keys.includes(x.id);\r\n x.change && x.change(true);\r\n setChildren(x.children as XTreeNode[], clear);\r\n });\r\n };\r\n setChildren(this.nodes(), XIsEmpty(keys));\r\n this.cdr.markForCheck();\r\n }\r\n\r\n setExpandedAll() {\r\n if (this.expandedAll() && this.treeData().length === this.nodes().length) return;\r\n const setChildren = (nodes: XTreeNode[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.open = this.expandedAll();\r\n x.change && x.change();\r\n setChildren(x.children as XTreeNode[]);\r\n });\r\n };\r\n setChildren(this.nodes());\r\n\r\n if (this.expandedAll() === false) {\r\n this.nodes.set(this.treeData().filter((x) => XIsEmpty(x.pid)));\r\n } else {\r\n if (this.virtualNodes().length === 0) {\r\n this.virtualNodes.set([...this.nodes()]);\r\n }\r\n this.nodes.set(this.virtualNodes());\r\n for (let item of this.virtualNodes()) {\r\n this.setVirtualExpandedAll(item, this.expandedAll());\r\n }\r\n }\r\n this.virtualBody()?.checkViewportSize();\r\n }\r\n\r\n setExpanded() {\r\n for (let item of this.nodes()) {\r\n if (item.open && item.children) {\r\n let index = this.nodes().indexOf(item);\r\n this.nodes.update((x) => {\r\n x.splice(index + 1, 0, ...(item.children as XTreeNode[]));\r\n return [...x];\r\n });\r\n }\r\n item.change && item.change();\r\n }\r\n }\r\n\r\n setVirtualExpandedAll(item: XTreeNode, expandedAll: boolean) {\r\n let index = this.nodes().indexOf(item);\r\n if (expandedAll) {\r\n let addNodes: XTreeNode[] = [];\r\n const getNodes = (nd: XTreeNode) => {\r\n for (let child of nd.children!) {\r\n addNodes.push(child);\r\n getNodes(child);\r\n }\r\n };\r\n getNodes(item);\r\n this.nodes.update((x) => {\r\n x.splice(index + 1, 0, ...addNodes);\r\n return [...x];\r\n });\r\n }\r\n }\r\n\r\n virtualToggle(node: XTreeNode) {\r\n let index = this.nodes().indexOf(node);\r\n if (node.open) {\r\n let addNodes: XTreeNode[] = [];\r\n const getNodes = (nd: XTreeNode) => {\r\n if (XIsEmpty(nd.children)) return;\r\n for (let child of nd.children!) {\r\n addNodes.push(child);\r\n child.open && getNodes(child);\r\n }\r\n };\r\n getNodes(node);\r\n this.nodes.update((x) => {\r\n x.splice(index + 1, 0, ...addNodes);\r\n return [...x];\r\n });\r\n } else {\r\n let delCount = 0;\r\n const getCount = (nd: XTreeNode) => {\r\n if (XIsEmpty(nd.children)) return;\r\n delCount += nd.children!.length;\r\n for (let child of nd.children!) {\r\n child.open && getCount(child);\r\n }\r\n };\r\n getCount(node);\r\n this.nodes.update((x) => {\r\n x.splice(index + 1, delCount);\r\n return [...x];\r\n });\r\n }\r\n\r\n this.addOrRemoveExpanded(node);\r\n this.virtualBody()?.checkViewportSize();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n addOrRemoveExpanded(node: XTreeNode) {\r\n if (node.open) {\r\n if (!this.expanded().includes(node.id)) {\r\n this.expanded.update((x) => {\r\n x.push(node.id);\r\n return [...x];\r\n });\r\n }\r\n } else {\r\n if (this.expanded().includes(node.id)) {\r\n this.expanded.update((x) => {\r\n x.splice(x.indexOf(node.id), 1);\r\n return [...x];\r\n });\r\n }\r\n }\r\n }\r\n\r\n setActivatedNode(nodes: XTreeNode[], parentOpen = true, dataChange = true) {\r\n if (XIsEmpty(this.activatedId()) && this.multiple()) {\r\n this.activatedId.set([]);\r\n }\r\n let before = this.activatedNode();\r\n if (this.multiple()) {\r\n if (this.activatedId().length > 0) {\r\n let ids = this.objectArray() ? this.activatedId().map((x: XTreeNode) => x.id) : this.activatedId();\r\n for (let i = 0; i < ids.length; i++) {\r\n let node = nodes.find((x) => x.id === ids[i]) as XTreeNode;\r\n if (node) {\r\n parentOpen && this.setParentOpen(nodes, node);\r\n if (i === ids.length - 1) {\r\n this.activatedNode.set(node);\r\n this.activatedChange.emit(this.activatedNode()!);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n let activatedId = this.activatedId();\r\n this.activatedNode.set(nodes.find((x) => x.id === activatedId) as XTreeNode);\r\n if (this.activatedNode()) {\r\n parentOpen && this.setParentOpen(nodes, this.activatedNode()!);\r\n this.activatedChange.emit(this.activatedNode()!);\r\n }\r\n }\r\n if (before) {\r\n before.change && before.change();\r\n }\r\n if (!XIsEmpty(nodes) && dataChange) {\r\n this.setDataChange(nodes, false, true, parentOpen);\r\n }\r\n }\r\n\r\n setParentOpen(nodes: XTreeNode[], node: XTreeNode) {\r\n const getParent = (child: XTreeNode) => {\r\n if (XIsEmpty(child.pid)) return;\r\n const parent = nodes.find((x) => x.id === child.pid) as XTreeNode;\r\n if (!XIsEmpty(parent)) {\r\n if (!this.expanded().includes(parent.id)) {\r\n this.expanded.update((x) => [...x, parent.id]);\r\n }\r\n parent.open = true;\r\n parent.change && parent.change();\r\n getParent(parent);\r\n }\r\n };\r\n getParent(node);\r\n }\r\n\r\n onToggle(event: Event | null, node: XTreeNode) {\r\n node.open = !node.open;\r\n if (this.lazy() && !node.childrenLoaded) {\r\n this.getLazyData(node, () => this.virtualToggle(node));\r\n } else {\r\n this.virtualToggle(node);\r\n }\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n }\r\n\r\n getLazyData(node: XTreeNode, callBack?: () => void) {\r\n node.loading = true;\r\n node.change && node.change();\r\n (this.data() as (pid?: any) => Observable<XTreeNode[]>)(node.id)\r\n .pipe(\r\n map((x) =>\r\n x.map((y) => {\r\n y.level = (node.level as number) + 1;\r\n y.checked = node.checked;\r\n return y;\r\n })\r\n )\r\n )\r\n .subscribe((x) => {\r\n node.children = x;\r\n node.childrenLoaded = true;\r\n node.loading = false;\r\n this.treeData.set([...this.treeData(), ...x]);\r\n if (callBack) callBack();\r\n node.change && node.change();\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n addNode(node: XTreeNode) {\r\n let parent = this.treeData().find((x) => x.id === node.pid)!;\r\n const _addNode = () => {\r\n if (parent) {\r\n node.level = parent.level! + 1;\r\n node.pid = parent.id;\r\n node.leaf = true;\r\n parent.leaf = false;\r\n parent.open = true;\r\n this.treeData.set([...this.treeData(), node]);\r\n this.setParentOpen(this.treeData(), node);\r\n this.setDataChange(this.treeData(), true, false, false);\r\n this.setActivatedId(node);\r\n this.setActivatedNode(this.nodes(), true, false);\r\n node.change && node.change();\r\n } else if (XIsEmpty(node.pid)) {\r\n node.level = 0;\r\n node.leaf = true;\r\n this.treeData.set([...this.treeData(), node]);\r\n this.nodes.set([...this.nodes(), node]);\r\n this.setActivatedId(node);\r\n this.setActivatedNode(this.nodes(), true, false);\r\n node.change && node.change();\r\n }\r\n };\r\n if (this.lazy() && parent && !parent.childrenLoaded) {\r\n this.getLazyData(parent, () => {\r\n _addNode();\r\n });\r\n } else {\r\n _addNode();\r\n }\r\n }\r\n\r\n setActivatedId(node: XTreeNode) {\r\n if (this.multiple()) {\r\n if (this.objectArray()) {\r\n this.activatedId.set([node]);\r\n } else {\r\n this.activatedId.set([node.id]);\r\n }\r\n } else {\r\n this.activatedId.set(node.id);\r\n }\r\n }\r\n\r\n removeNode(node: XTreeNode) {\r\n let parent = this.treeData().find((x) => x.id === node.pid)!;\r\n const removeChildren = (nd: XTreeNode) => {\r\n XRemove(this.treeData(), (x) => x.id === nd.id);\r\n if (nd.children) {\r\n for (let item of nd.children) {\r\n removeChildren(item);\r\n }\r\n }\r\n };\r\n removeChildren(node);\r\n\r\n if (parent) {\r\n if (!parent.children) parent.children = [];\r\n const childIndex = parent.children.findIndex((x) => x.id === node.id);\r\n if (childIndex > -1) {\r\n parent.children.splice(childIndex, 1);\r\n }\r\n parent.leaf = parent.children.length === 0;\r\n }\r\n this.setDataChange(this.treeData(), true, false, false);\r\n }\r\n\r\n updateNode(node: XTreeNode, nowNode: XTreeNode) {\r\n Object.assign(node, nowNode);\r\n node.change && node.change();\r\n }\r\n\r\n trackByItem(_index: number, item: XTreeNode) {\r\n return item;\r\n }\r\n}\r\n","<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf()\">\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"virtualScrollHeightSignal()\"\r\n >\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes(); templateCacheSize: 0; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [nodeHeight]=\"nodeHeight()\"\r\n [nodeNowrap]=\"nodeNowrap()\"\r\n [nodeAlignItems]=\"nodeAlignItems()\"\r\n [(disabled)]=\"node.disabled!\"\r\n [(id)]=\"node.id\"\r\n [(pid)]=\"node.pid\"\r\n [(leaf)]=\"node.leaf!\"\r\n [(height)]=\"node.height!\"\r\n [(alignItems)]=\"node.alignItems!\"\r\n [(loading)]=\"node.loading!\"\r\n [(level)]=\"node.level!\"\r\n [(open)]=\"node.open\"\r\n [(checked)]=\"node.checked!\"\r\n [(indeterminate)]=\"node.indeterminate!\"\r\n [(label)]=\"node.label!\"\r\n [(nowrap)]=\"node.nowrap!\"\r\n (toggle)=\"onToggle(null, $event)\"\r\n ></x-tree-node>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id + '' + $index) {\r\n <x-tree-node\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [nodeHeight]=\"nodeHeight()\"\r\n [nodeNowrap]=\"nodeNowrap()\"\r\n [nodeAlignItems]=\"nodeAlignItems()\"\r\n [(disabled)]=\"node.disabled\"\r\n [(id)]=\"node.id\"\r\n [(pid)]=\"node.pid\"\r\n [(leaf)]=\"node.leaf\"\r\n [(height)]=\"node.height!\"\r\n [(alignItems)]=\"node.alignItems\"\r\n [(loading)]=\"node.loading\"\r\n [(level)]=\"node.level\"\r\n [(open)]=\"node.open\"\r\n [(checked)]=\"node.checked\"\r\n [(indeterminate)]=\"node.indeterminate\"\r\n [(label)]=\"node.label\"\r\n [(nowrap)]=\"node.nowrap\"\r\n (toggle)=\"onToggle(null, $event)\"\r\n ></x-tree-node>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<!-- 提前加载loading的图标-->\r\n@if (lazy()) {\r\n <x-icon [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTreeComponent } from './tree.component';\r\nimport { XTreeNodeComponent } from './tree-node.component';\r\n\r\n@NgModule({\r\n exports: [XTreeComponent, XTreeNodeComponent],\r\n imports: [XTreeComponent, XTreeNodeComponent]\r\n})\r\nexport class XTreeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.XTreeService"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component,
|
|
2
|
+
import { input, Component, signal, inject, Renderer2, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { XProperty } from '@ng-nest/ui/core';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -18,47 +18,51 @@ class XTypographyProperty extends XProperty {
|
|
|
18
18
|
* @zh_CN 字体
|
|
19
19
|
* @en_US Font
|
|
20
20
|
*/
|
|
21
|
-
this.font = 'Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,SimSun,sans-serif';
|
|
21
|
+
this.font = input('Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,SimSun,sans-serif');
|
|
22
|
+
/**
|
|
23
|
+
* @zh_CN 显示文字
|
|
24
|
+
* @en_US Display text
|
|
25
|
+
*/
|
|
26
|
+
this.text = input();
|
|
22
27
|
}
|
|
23
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
28
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTypographyProperty, selector: "x-typography-property", inputs: { font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
25
30
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyProperty, decorators: [{
|
|
27
32
|
type: Component,
|
|
28
33
|
args: [{ selector: `${XTypographyPrefix}-property`, template: '' }]
|
|
29
|
-
}]
|
|
30
|
-
type: Input
|
|
31
|
-
}], text: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}] } });
|
|
34
|
+
}] });
|
|
34
35
|
|
|
35
36
|
class XTypographyComponent extends XTypographyProperty {
|
|
36
37
|
constructor() {
|
|
37
38
|
super(...arguments);
|
|
39
|
+
this.firstText = signal('');
|
|
38
40
|
this.renderer = inject(Renderer2);
|
|
39
41
|
this.elementRef = inject(ElementRef);
|
|
40
42
|
}
|
|
41
43
|
ngOnInit() {
|
|
42
44
|
this.renderer.addClass(this.elementRef.nativeElement, XTypographyPrefix);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (
|
|
46
|
-
this.
|
|
45
|
+
const font = this.font();
|
|
46
|
+
const text = this.text();
|
|
47
|
+
if (font)
|
|
48
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'font-family', font);
|
|
49
|
+
if (text && text.length > 0)
|
|
50
|
+
this.firstText.set(text.slice(0, 1));
|
|
47
51
|
}
|
|
48
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
49
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
52
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: XTypographyComponent, isStandalone: true, selector: "x-typography", usesInheritance: true, ngImport: i0, template: "<h4>{{ font() }}</h4>\r\n<div class=\"x-typography-list\">\r\n <div class=\"x-typography-item\">\r\n <h1>{{ firstText() }}</h1>\r\n <p>\r\n <span>\u5E38\u89C4</span>\r\n <span class=\"x-typography-blod\">\u7C97\u4F53</span>\r\n </p>\r\n </div>\r\n <div class=\"x-typography-item\">\r\n <h1>Aa</h1>\r\n <p>\r\n <span>Regular</span>\r\n <span class=\"x-typography-blod\">Bold</span>\r\n </p>\r\n </div>\r\n</div>\r\n<p>{{ text() }}</p>\r\n<p>abcdefghijklmnopqrstuvwxyz</p>\r\n<p>ABCDEFGHIJKLMNOPQRSTUVWXYZ</p>\r\n<p>1234567890.:,;'\"(!?)+-*/=</p>\r\n", styles: [".x-typography{margin:0;padding:0;color:var(--x-text)}.x-typography h4,.x-typography h1,.x-typography p{margin:0;font-size:var(--x-font-size);line-height:1.5rem}.x-typography>h4{color:var(--x-text-300);font-weight:500}.x-typography-list{display:flex;margin:.5rem 0}.x-typography-item{display:flex;margin:.5rem 0 0 3rem}.x-typography-item:first-child{margin-left:0}.x-typography-item>h1{color:var(--x-text);font-size:3.75rem;font-weight:600}.x-typography-item>p{display:flex;flex-direction:column;padding:.75rem 0;margin-left:1.5rem}.x-typography-item>p>span{margin-top:.25rem}.x-typography-item>p>span:first-child{margin-top:0}.x-typography-blod{font-weight:600}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
50
54
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyComponent, decorators: [{
|
|
52
56
|
type: Component,
|
|
53
|
-
args: [{ selector: 'x-typography', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<h4>{{ font }}</h4>\r\n<div class=\"x-typography-list\">\r\n <div class=\"x-typography-item\">\r\n <h1>{{ firstText }}</h1>\r\n <p>\r\n <span>\u5E38\u89C4</span>\r\n <span class=\"x-typography-blod\">\u7C97\u4F53</span>\r\n </p>\r\n </div>\r\n <div class=\"x-typography-item\">\r\n <h1>Aa</h1>\r\n <p>\r\n <span>Regular</span>\r\n <span class=\"x-typography-blod\">Bold</span>\r\n </p>\r\n </div>\r\n</div>\r\n<p>{{ text }}</p>\r\n<p>abcdefghijklmnopqrstuvwxyz</p>\r\n<p>ABCDEFGHIJKLMNOPQRSTUVWXYZ</p>\r\n<p>1234567890.:,;'\"(!?)+-*/=</p>\r\n", styles: [".x-typography{margin:0;padding:0;color:var(--x-text)}.x-typography h4,.x-typography h1,.x-typography p{margin:0;font-size
|
|
57
|
+
args: [{ selector: 'x-typography', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<h4>{{ font() }}</h4>\r\n<div class=\"x-typography-list\">\r\n <div class=\"x-typography-item\">\r\n <h1>{{ firstText() }}</h1>\r\n <p>\r\n <span>\u5E38\u89C4</span>\r\n <span class=\"x-typography-blod\">\u7C97\u4F53</span>\r\n </p>\r\n </div>\r\n <div class=\"x-typography-item\">\r\n <h1>Aa</h1>\r\n <p>\r\n <span>Regular</span>\r\n <span class=\"x-typography-blod\">Bold</span>\r\n </p>\r\n </div>\r\n</div>\r\n<p>{{ text() }}</p>\r\n<p>abcdefghijklmnopqrstuvwxyz</p>\r\n<p>ABCDEFGHIJKLMNOPQRSTUVWXYZ</p>\r\n<p>1234567890.:,;'\"(!?)+-*/=</p>\r\n", styles: [".x-typography{margin:0;padding:0;color:var(--x-text)}.x-typography h4,.x-typography h1,.x-typography p{margin:0;font-size:var(--x-font-size);line-height:1.5rem}.x-typography>h4{color:var(--x-text-300);font-weight:500}.x-typography-list{display:flex;margin:.5rem 0}.x-typography-item{display:flex;margin:.5rem 0 0 3rem}.x-typography-item:first-child{margin-left:0}.x-typography-item>h1{color:var(--x-text);font-size:3.75rem;font-weight:600}.x-typography-item>p{display:flex;flex-direction:column;padding:.75rem 0;margin-left:1.5rem}.x-typography-item>p>span{margin-top:.25rem}.x-typography-item>p>span:first-child{margin-top:0}.x-typography-blod{font-weight:600}\n"] }]
|
|
54
58
|
}] });
|
|
55
59
|
|
|
56
60
|
class XTypographyModule {
|
|
57
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
58
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
59
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
61
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
62
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: XTypographyModule, imports: [XTypographyComponent], exports: [XTypographyComponent] }); }
|
|
63
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyModule }); }
|
|
60
64
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTypographyModule, decorators: [{
|
|
62
66
|
type: NgModule,
|
|
63
67
|
args: [{
|
|
64
68
|
exports: [XTypographyComponent],
|