@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-upload.mjs","sources":["../../../../lib/ng-nest/ui/upload/upload.property.ts","../../../../lib/ng-nest/ui/upload/upload-portal.component.ts","../../../../lib/ng-nest/ui/upload/upload-portal.component.html","../../../../lib/ng-nest/ui/upload/upload.component.ts","../../../../lib/ng-nest/ui/upload/upload.component.html","../../../../lib/ng-nest/ui/upload/upload.module.ts","../../../../lib/ng-nest/ui/upload/ng-nest-ui-upload.ts"],"sourcesContent":["import { XInputBoolean, XBoolean, XTemplate, XPosition, XCorner, XWithConfig, XNumber, XInputNumber } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Upload\r\n * @selector x-upload\r\n * @decorator component\r\n */\r\nexport const XUploadPrefix = 'x-upload';\r\nconst X_CONFIG_NAME = 'upload';\r\n\r\n/**\r\n * Upload Property\r\n */\r\n@Component({ selector: `${XUploadPrefix}-property`, template: '' })\r\nexport class XUploadProperty extends XControlValueAccessor<XUploadNode[]> {\r\n /**\r\n * @zh_CN 显示文字\r\n * @en_US Display text\r\n */\r\n @Input() text?: XTemplate;\r\n /**\r\n * @zh_CN 请求地址\r\n * @en_US Request address\r\n */\r\n @Input() action?: string;\r\n /**\r\n * @zh_CN 上传文件类型,与原生的 input file 组件一致\r\n * @en_US Upload file type, consistent with native input file component\r\n */\r\n @Input() accept?: string;\r\n /**\r\n * @zh_CN 文件显示类型\r\n * @en_US File display type\r\n */\r\n @Input() type: XUploadType = 'list';\r\n /**\r\n * @zh_CN 图片类型下面加载失败显示\r\n * @en_US Photo type below loading failed display\r\n */\r\n @Input() imgFallback?: string;\r\n /**\r\n * @zh_CN 图片剪裁\r\n * @en_US Picture cropping\r\n */\r\n @Input() @XInputBoolean() imgCut?: XBoolean;\r\n /**\r\n * @zh_CN 多文件上传\r\n * @en_US Multiple file upload\r\n */\r\n @Input() @XInputBoolean() multiple?: XBoolean;\r\n /**\r\n * @zh_CN 点击下载\r\n * @en_US click download\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() download!: XBoolean;\r\n /**\r\n * @zh_CN 多次上传的模式,cover 覆盖现有 add 继续添加\r\n * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add\r\n */\r\n @Input() @XWithConfig<XUploadMultipleModel>(X_CONFIG_NAME, 'cover') multipleModel!: XUploadMultipleModel;\r\n /**\r\n * @zh_CN 文件列表自定义显示模板\r\n * @en_US File list custom display template\r\n */\r\n @Input() filesTpl?: XTemplate;\r\n /**\r\n * @zh_CN 限制单次上传文件个数,只有开启多文件上传 multiple 时生效,默认不做限制\r\n * @en_US Limit the number of files uploaded files. Do not restrict the default\r\n */\r\n @Input() @XInputNumber() maxLimit?: XNumber;\r\n /**\r\n * @zh_CN 设置上传的请求头部\r\n * @en_US Set the upload request header\r\n */\r\n @Input() headers?: { [key: string]: any };\r\n /**\r\n * @zh_CN 删除按钮的事件\r\n * @en_US Delete button event\r\n */\r\n @Output() removeClick = new EventEmitter<{ file: XUploadNode; index: number }>();\r\n /**\r\n * @zh_CN 开始上传事件\r\n * @en_US Start upload event\r\n */\r\n @Output() uploadReady = new EventEmitter<XUploadNode>();\r\n /**\r\n * @zh_CN 正在上传事件\r\n * @en_US Start upload event\r\n */\r\n @Output() uploading = new EventEmitter<XUploadNode>();\r\n /**\r\n * @zh_CN 上传成功事件\r\n * @en_US Start upload event\r\n */\r\n @Output() uploadSuccess = new EventEmitter<XUploadNode>();\r\n /**\r\n * @zh_CN 上传失败事件\r\n * @en_US Start upload event\r\n */\r\n @Output() uploadError = new EventEmitter<XUploadNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Upload 数据对象\r\n * @en_US Upload data object\r\n */\r\nexport interface XUploadNode extends File {\r\n /**\r\n * @zh_CN 地址\r\n * @en_US address\r\n */\r\n url?: string;\r\n /**\r\n * @zh_CN 状态\r\n * @en_US status\r\n */\r\n state?: XStateType;\r\n /**\r\n * @zh_CN 上传进度\r\n * @en_US Upload progress\r\n */\r\n percent?: XNumber;\r\n /**\r\n * @zh_CN 上传返回数据\r\n * @en_US Upload body\r\n */\r\n body?: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 文件状态\r\n * @en_US File status\r\n */\r\nexport type XStateType = 'ready' | 'uploading' | 'success' | 'error';\r\n\r\n/**\r\n * @zh_CN 文件显示类型\r\n * @en_US File display type\r\n */\r\nexport type XUploadType = 'list' | 'img';\r\n\r\n/**\r\n * @zh_CN 多次上传的模式,cover 覆盖现有 add 继续添加\r\n * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add\r\n */\r\nexport type XUploadMultipleModel = 'cover' | 'add';\r\n\r\n/**\r\n * @zh_CN 剪裁的方位\r\n * @en_US Tailored orientation\r\n */\r\nexport type XUploadCutType = XPosition | XCorner | '';\r\n\r\n/**\r\n * Upload Portal\r\n * @selector x-upload-portal\r\n * @decorator component\r\n */\r\nexport const XUploadPortalPrefix = 'x-upload-portal';\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n ElementRef,\r\n Renderer2,\r\n ChangeDetectorRef,\r\n inject,\r\n AfterViewInit,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XClamp } from '@ng-nest/ui/core';\r\nimport { XUploadCutType, XUploadNode, XUploadPortalPrefix } from './upload.property';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\n\r\n@Component({\r\n selector: `${XUploadPortalPrefix}`,\r\n standalone: true,\r\n imports: [XIconComponent],\r\n templateUrl: './upload-portal.component.html',\r\n styleUrls: ['./upload-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XUploadPortalComponent implements AfterViewInit, OnDestroy {\r\n file?: XUploadNode;\r\n @ViewChild('imgRef') imgRef!: ElementRef<HTMLElement>;\r\n @ViewChild('imgClipRef') imgClipRef!: ElementRef<HTMLElement>;\r\n @ViewChild('boundaryRef') boundaryRef!: ElementRef<HTMLElement>;\r\n @ViewChild('cutRef') cutRef!: ElementRef<HTMLElement>;\r\n ready = false;\r\n cutType: XUploadCutType = '';\r\n proportion = 1;\r\n originalSize = {\r\n width: 0,\r\n height: 0\r\n };\r\n boundaryBox = {\r\n width: 0,\r\n height: 0\r\n };\r\n cutBox = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n clipRect!: {\r\n top: number;\r\n right: number;\r\n bottom: number;\r\n left: number;\r\n };\r\n\r\n doc = inject(DOCUMENT);\r\n\r\n closePortal!: () => void;\r\n destroyPortal!: () => void;\r\n surePortal!: (blob: Blob) => void;\r\n private _unSubject = new Subject<void>();\r\n private renderer = inject(Renderer2);\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n ngAfterViewInit() {\r\n this.setCut();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n setCut() {\r\n let width = this.imgRef.nativeElement.clientWidth;\r\n let height = this.imgRef.nativeElement.clientHeight;\r\n this.renderer.setStyle(this.cutRef.nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.cutRef.nativeElement, 'height', `${height}px`);\r\n this.renderer.setStyle(this.boundaryRef.nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.boundaryRef.nativeElement, 'height', `${height}px`);\r\n this.renderer.setStyle(this.imgRef.nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.imgRef.nativeElement, 'height', `${height}px`);\r\n this.renderer.setStyle(this.imgClipRef.nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.imgClipRef.nativeElement, 'height', `${height}px`);\r\n this.cutBox.width = width;\r\n this.cutBox.height = height;\r\n this.boundaryBox = { width, height };\r\n this.clipRect = {\r\n top: 0,\r\n right: width,\r\n bottom: height,\r\n left: 0\r\n };\r\n this.setOriginalSize();\r\n this.ready = true;\r\n this.cdr.detectChanges();\r\n\r\n const mouseDown = fromEvent<MouseEvent>(this.cutRef.nativeElement, 'mousedown').pipe(takeUntil(this._unSubject));\r\n\r\n mouseDown.subscribe((downMe: MouseEvent) => {\r\n let x = downMe.pageX;\r\n let y = downMe.pageY;\r\n let offsetX = 0;\r\n let offsetY = 0;\r\n const _unSub = new Subject<void>();\r\n let className = (downMe.target as HTMLDivElement).className;\r\n const spt = `${XUploadPortalPrefix}-cut-`;\r\n if (className.includes(spt)) {\r\n this.cutType = className.replace(spt, '') as XUploadCutType;\r\n this.cdr.detectChanges();\r\n }\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((moveMe: MouseEvent) => {\r\n offsetX = moveMe.pageX - x;\r\n offsetY = moveMe.pageY - y;\r\n x = moveMe.pageX;\r\n y = moveMe.pageY;\r\n this.setCutEle(this.cutType, offsetX, offsetY);\r\n });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe(() => {\r\n this.cutType = '';\r\n this.cdr.detectChanges();\r\n _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n }\r\n\r\n setOriginalSize() {\r\n const img = new Image();\r\n img.src = this.file?.url!;\r\n img.onload = () => {\r\n this.originalSize = { width: img.width, height: img.height };\r\n this.proportion = this.boundaryBox.width / this.originalSize.width;\r\n };\r\n }\r\n\r\n setCutEle(position: XUploadCutType, x: number, y: number) {\r\n switch (position) {\r\n case 'top-start':\r\n this.cutBox.width -= x;\r\n this.cutBox.height -= y;\r\n this.cutBox.x += x;\r\n this.cutBox.y += y;\r\n break;\r\n case 'top':\r\n this.cutBox.height -= y;\r\n this.cutBox.y += y;\r\n break;\r\n case 'top-end':\r\n this.cutBox.width += x;\r\n this.cutBox.height -= y;\r\n this.cutBox.y += y;\r\n break;\r\n case 'right':\r\n this.cutBox.width += x;\r\n break;\r\n case 'bottom-end':\r\n this.cutBox.width += x;\r\n this.cutBox.height += y;\r\n break;\r\n case 'bottom':\r\n this.cutBox.height += y;\r\n break;\r\n case 'bottom-start':\r\n this.cutBox.width -= x;\r\n this.cutBox.height += y;\r\n this.cutBox.x += x;\r\n break;\r\n case 'left':\r\n this.cutBox.width -= x;\r\n this.cutBox.x += x;\r\n break;\r\n case '':\r\n this.cutBox.x += x;\r\n this.cutBox.y += y;\r\n break;\r\n }\r\n const boundaryRect = this.boundaryRef.nativeElement.getBoundingClientRect();\r\n\r\n const maxY = boundaryRect.height - this.cutBox.height;\r\n const maxX = boundaryRect.width - this.cutBox.width;\r\n\r\n this.cutBox.x = XClamp(this.cutBox.x, 0, maxX);\r\n this.cutBox.y = XClamp(this.cutBox.y, 0, maxY);\r\n\r\n // const maxWidth = boundaryRect.height - this.cutBox.y;\r\n // const maxHeight = boundaryRect.width - this.cutBox.x;\r\n\r\n // this.cutBox.width = XClamp(this.cutBox.width, 0, maxWidth);\r\n // this.cutBox.height = XClamp(this.cutBox.width, 0, maxHeight);\r\n\r\n this.clipRect = {\r\n top: this.cutBox.y,\r\n right: this.cutBox.width + this.cutBox.x,\r\n bottom: this.cutBox.height + this.cutBox.y,\r\n left: this.cutBox.x\r\n };\r\n this.renderer.setStyle(\r\n this.imgClipRef.nativeElement,\r\n 'clip',\r\n `rect(${this.clipRect.top}px,${this.clipRect.right}px,${this.clipRect.bottom}px,${this.clipRect.left}px)`\r\n );\r\n this.renderer.setStyle(this.cutRef.nativeElement, 'width', `${this.cutBox.width}px`);\r\n this.renderer.setStyle(this.cutRef.nativeElement, 'height', `${this.cutBox.height}px`);\r\n this.renderer.setStyle(\r\n this.cutRef.nativeElement,\r\n 'transform',\r\n `translate3d(${this.cutBox.x}px, ${this.cutBox.y}px, 0)`\r\n );\r\n }\r\n\r\n sure() {\r\n const canvas = this.doc.createElement('canvas');\r\n canvas.width = this.cutBox.width / this.proportion;\r\n canvas.height = this.cutBox.height / this.proportion;\r\n const context = canvas.getContext('2d')!;\r\n const img = new Image();\r\n img.src = this.file?.url!;\r\n img.crossOrigin = 'anonymous';\r\n img.onload = () => {\r\n context.drawImage(img, -this.cutBox.x / this.proportion, -this.cutBox.y / this.proportion);\r\n canvas.toBlob((blob) => {\r\n this.surePortal(blob as Blob);\r\n this.closePortal();\r\n });\r\n };\r\n }\r\n}\r\n","<div class=\"x-upload-portal {{ cutType }}\" [class.x-upload-portal-ready]=\"ready\">\r\n <div class=\"x-upload-portal-tools\">\r\n <div class=\"x-upload-portal-title\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n <span>{{ file?.name }}</span>\r\n </div>\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-x\" (click)=\"closePortal()\"></x-icon>\r\n </div>\r\n <div class=\"x-upload-portal-img\">\r\n <img #imgRef class=\"x-upload-portal-full-img\" [src]=\"file?.url\" />\r\n <div #boundaryRef class=\"x-upload-portal-boundary\">\r\n <img #imgClipRef class=\"x-upload-portal-clip-img\" [src]=\"file?.url\" />\r\n <div #cutRef class=\"x-upload-portal-cut\">\r\n <div class=\"x-upload-portal-cut-top-start\"></div>\r\n <div class=\"x-upload-portal-cut-top\"></div>\r\n <div class=\"x-upload-portal-cut-top-end\"></div>\r\n <div class=\"x-upload-portal-cut-left\"></div>\r\n <div class=\"x-upload-portal-cut-right\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-start\"></div>\r\n <div class=\"x-upload-portal-cut-bottom\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-end\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-upload-portal-bottom-tools\">\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-check\" (click)=\"sure()\"></x-icon>\r\n </div>\r\n</div>\r\n","import { HttpClient, HttpEventType, HttpRequest, HttpEvent, HttpHeaders } from '@angular/common/http';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n OnInit,\r\n OnDestroy,\r\n inject\r\n} from '@angular/core';\r\nimport { XUploadPrefix, XUploadNode, XUploadProperty, XUploadPortalPrefix } from './upload.property';\r\nimport { XConfigService, XIsArray, XIsTemplateRef } from '@ng-nest/ui/core';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nUpload } from '@ng-nest/ui/i18n';\r\nimport { XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XUploadPortalComponent } from './upload-portal.component';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XImageComponent, XImageGroupComponent } from '@ng-nest/ui/image';\r\nimport { XProgressComponent } from '@ng-nest/ui/progress';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XUploadPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n XIconComponent,\r\n XOutletDirective,\r\n XButtonComponent,\r\n XImageGroupComponent,\r\n XImageComponent,\r\n XProgressComponent\r\n ],\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XUploadComponent)]\r\n})\r\nexport class XUploadComponent extends XUploadProperty implements OnInit, OnDestroy {\r\n @ViewChild('file', { static: true }) file!: ElementRef<HTMLInputElement>;\r\n files: XUploadNode[] = [];\r\n showUpload = false;\r\n uploadNodes: XUploadNode[] = [];\r\n locale: XI18nUpload = {};\r\n portal!: XPortalOverlayRef<XUploadPortalComponent>;\r\n\r\n get getText() {\r\n return this.text || this.locale.uploadText;\r\n }\r\n\r\n get isTemplateText() {\r\n return XIsTemplateRef(this.getText);\r\n }\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n private http = inject(HttpClient, { optional: true });\r\n override cdr = inject(ChangeDetectorRef);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private i18n = inject(XI18nService);\r\n configService = inject(XConfigService);\r\n\r\n override writeValue(value: XUploadNode[]) {\r\n this.value = value;\r\n this.setFiles();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.http) {\r\n throw new Error(\r\n `${XUploadPrefix}: Not found 'HttpClient', You can import 'HttpClientModule' in your root module.`\r\n );\r\n }\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.upload as XI18nUpload),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n if (this.type === 'img') this.accept = 'image/*';\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setFiles() {\r\n if (!Array.isArray(this.value)) return;\r\n // if (this.type !== 'img') return;\r\n this.files = this.value.map((x) => {\r\n if (!x.state) x.state = 'success';\r\n return x;\r\n });\r\n }\r\n\r\n change(event: Event) {\r\n let input = event.target as HTMLInputElement;\r\n if (typeof input === 'undefined' || input.files?.length === 0) return;\r\n let files: XUploadNode[] = [];\r\n let max = this.maxLimit ? Number(this.maxLimit) : (input.files as FileList).length;\r\n for (let i = 0; i < max; i++) {\r\n let file: XUploadNode = (input.files as FileList).item(i) as XUploadNode;\r\n file.state = 'ready';\r\n files = [...files, file];\r\n }\r\n if (files.length > 0) this.showUpload = true;\r\n if (this.multipleModel === 'cover') {\r\n this.files = files;\r\n } else if (this.multipleModel === 'add') {\r\n this.files = [...this.files, ...files];\r\n }\r\n this.value = this.files;\r\n this.onChange && this.onChange(this.value);\r\n this.onUploading();\r\n input.value = '';\r\n this.cdr.detectChanges();\r\n }\r\n\r\n remove(file: XUploadNode, index: number) {\r\n this.files.splice(index, 1);\r\n if (this.files.length === 0) this.file.nativeElement.value = '';\r\n this.showUpload = this.files.find((x) => x.state === 'ready') != null;\r\n const vindex = this.value.indexOf(file);\r\n if (vindex > -1) {\r\n this.value.splice(vindex, 1);\r\n this.onChange && this.onChange(this.value);\r\n }\r\n this.removeClick.emit({ file: file, index: index });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n uploadClick() {\r\n if (this.disabled) return;\r\n this.file.nativeElement.click();\r\n }\r\n\r\n onUploading() {\r\n if (!this.action) return;\r\n let readyFiles = this.files.filter((x) => x.state === 'ready');\r\n readyFiles.forEach((x) => {\r\n this.uploadFile(x);\r\n });\r\n }\r\n\r\n uploadFile(file: XUploadNode, index = -1) {\r\n let formData = new FormData();\r\n formData.append('file', file);\r\n const req = new HttpRequest('POST', this.action!, formData, {\r\n reportProgress: true,\r\n responseType: 'arraybuffer',\r\n withCredentials: false,\r\n headers: new HttpHeaders(this.headers)\r\n });\r\n this.http\r\n ?.request(req)\r\n .pipe(\r\n map((event) =>\r\n this.getEventMessage(event, file, (body: BlobPart) => {\r\n let blob = new Blob([body]);\r\n let reader = new FileReader();\r\n reader.readAsText(blob, 'utf-8');\r\n reader.onload = () => {\r\n let body = [];\r\n try {\r\n body = JSON.parse(reader.result as string);\r\n if (XIsArray(body) && body.length > 0) {\r\n file.url = body[0];\r\n }\r\n file.body = body;\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n if (index !== -1) {\r\n this.files[index] = file;\r\n }\r\n this.uploadSuccess.emit(file);\r\n this.cdr.detectChanges();\r\n };\r\n })\r\n )\r\n )\r\n .subscribe(\r\n () => {\r\n this.showUpload = this.files.find((y) => y.state === 'ready') != null;\r\n this.cdr.detectChanges();\r\n },\r\n () => {\r\n file.state = 'error';\r\n this.uploadError.emit(file);\r\n this.cdr.detectChanges();\r\n }\r\n );\r\n }\r\n\r\n getEventMessage(event: HttpEvent<any>, file: XUploadNode, successFunc: Function) {\r\n switch (event.type) {\r\n case HttpEventType.Sent:\r\n file.state = 'ready';\r\n this.uploadReady.emit(file);\r\n return `开始上传文件`;\r\n case HttpEventType.UploadProgress:\r\n file.state = 'uploading';\r\n if (event.total) file.percent = Math.round((100 * event.loaded) / event.total);\r\n this.uploading.emit(file);\r\n return `上传中`;\r\n case HttpEventType.Response:\r\n file.state = 'success';\r\n successFunc(event.body);\r\n return `文件上传完毕`;\r\n }\r\n return;\r\n }\r\n\r\n onImgCut(file: XUploadNode, index: number) {\r\n this.portal = this.portalService.attach({\r\n content: XUploadPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n panelClass: [XUploadPortalPrefix],\r\n hasBackdrop: true,\r\n positionStrategy: this.portalService.setPlace('center')\r\n }\r\n });\r\n this.setInstance(file, index);\r\n }\r\n\r\n setInstance(file: XUploadNode, index: number) {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n file: file,\r\n closePortal: () => this.closePortal(),\r\n destroyPortal: () => this.destroyPortal(),\r\n surePortal: (blob: Blob) => {\r\n const fl = new File([blob], file.name, { type: blob.type }) as XUploadNode;\r\n fl.state = 'ready';\r\n this.uploadFile(fl, index);\r\n }\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n imgError(_event: ErrorEvent, file: XUploadNode) {\r\n file.state = 'error';\r\n this.cdr.detectChanges();\r\n }\r\n imgLoad(file: XUploadNode) {\r\n file.state = 'success';\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #upload class=\"x-upload x-upload-{{ type }}\" [class.x-disabled]=\"disabled\">\r\n <input\r\n type=\"file\"\r\n #file\r\n (change)=\"change($event)\"\r\n [attr.accept]=\"accept\"\r\n [multiple]=\"multiple\"\r\n style=\"display: none\"\r\n />\r\n\r\n @switch (type) {\r\n @case ('list') {\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n <ng-container *xOutlet=\"filesTpl; context: { $files: files }\">\r\n <ul class=\"x-upload-files\">\r\n @for (file of files; track file; let i = $index) {\r\n <li [class.x-upload-disabled]=\"!download\">\r\n @if (download) {\r\n <a [href]=\"file.url\" target=\"_blank\" [title]=\"file.name\">\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n } @else {\r\n <a>\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n }\r\n\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('uploading') {\r\n <span class=\"x-upload-percent\">{{ file.percent }}%</span>\r\n }\r\n @case ('success') {\r\n <x-icon class=\"x-upload-state success\" type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-upload-state error\" type=\"fto-info\"></x-icon>\r\n }\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-button icon=\"fto-x\" (click)=\"remove(file, i)\" onlyIcon closable size=\"mini\"></x-button>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </ng-container>\r\n }\r\n @case ('img') {\r\n <x-image-group>\r\n @for (file of files; track file; let i = $index) {\r\n <x-image\r\n [src]=\"file.url\"\r\n (load)=\"imgLoad(file)\"\r\n (error)=\"imgError($event, file)\"\r\n class=\"{{ file.state }}\"\r\n [previewTpl]=\"previewTpl\"\r\n [fallback]=\"imgFallback\"\r\n >\r\n </x-image>\r\n <ng-template #previewTpl let-image=\"$image\">\r\n @if (file.state == 'uploading') {\r\n <div class=\"x-upload-uploading\">\r\n <x-progress [percent]=\"file.percent!\" info=\"false\"></x-progress>\r\n </div>\r\n }\r\n <div class=\"x-image-overlay\">\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('success') {\r\n <x-icon type=\"fto-eye\" (click)=\"image.onPreview()\"></x-icon>\r\n }\r\n }\r\n @if (imgCut && file.state === 'success') {\r\n <x-icon type=\"fto-crop\" (click)=\"onImgCut(file, i)\"></x-icon>\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-icon type=\"fto-trash-2\" (click)=\"remove(file, i)\"></x-icon>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n </x-image-group>\r\n }\r\n }\r\n</div>\r\n\r\n<ng-template #uploadBtnTpl>\r\n <div class=\"x-upload-buttons\" [class.x-upload-buttons-template]=\"isTemplateText\" (click)=\"uploadClick()\">\r\n <ng-container *xOutlet=\"getText\">\r\n <x-button icon=\"fto-upload\" [disabled]=\"disabled\" type=\"primary\">{{ getText }}</x-button>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XUploadComponent } from './upload.component';\r\n\r\n@NgModule({\r\n exports: [XUploadComponent],\r\n imports: [XUploadComponent]\r\n})\r\nexport class XUploadModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-upload.mjs","sources":["../../../../lib/ng-nest/ui/upload/upload.property.ts","../../../../lib/ng-nest/ui/upload/upload-portal.component.ts","../../../../lib/ng-nest/ui/upload/upload-portal.component.html","../../../../lib/ng-nest/ui/upload/upload.component.ts","../../../../lib/ng-nest/ui/upload/upload.component.html","../../../../lib/ng-nest/ui/upload/upload.module.ts","../../../../lib/ng-nest/ui/upload/ng-nest-ui-upload.ts"],"sourcesContent":["import { XBoolean, XTemplate, XPosition, XCorner, XNumber, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Upload\r\n * @selector x-upload\r\n * @decorator component\r\n */\r\nexport const XUploadPrefix = 'x-upload';\r\nconst X_UPLOAD_CONFIG_NAME = 'upload';\r\n\r\n/**\r\n * Upload Property\r\n */\r\n@Component({ selector: `${XUploadPrefix}-property`, template: '' })\r\nexport class XUploadProperty extends XFormControlFunction(X_UPLOAD_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 显示文字\r\n * @en_US Display text\r\n */\r\n readonly text = input<XTemplate>();\r\n /**\r\n * @zh_CN 请求地址\r\n * @en_US Request address\r\n */\r\n readonly action = input<string>();\r\n /**\r\n * @zh_CN 上传文件类型,与原生的 input file 组件一致\r\n * @en_US Upload file type, consistent with native input file component\r\n */\r\n readonly accept = input<string>();\r\n /**\r\n * @zh_CN 文件显示类型\r\n * @en_US File display type\r\n */\r\n readonly type = input<XUploadType>('list');\r\n /**\r\n * @zh_CN 图片类型下面加载失败显示\r\n * @en_US Photo type below loading failed display\r\n */\r\n readonly imgFallback = input<string>();\r\n /**\r\n * @zh_CN 图片剪裁\r\n * @en_US Picture cropping\r\n */\r\n readonly imgCut = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 多文件上传\r\n * @en_US Multiple file upload\r\n */\r\n readonly multiple = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 点击下载\r\n * @en_US click download\r\n */\r\n readonly download = input<boolean, XBoolean>(this.config?.download ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 多次上传的模式,cover 覆盖现有, add 继续添加\r\n * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add\r\n */\r\n readonly multipleModel = input<XUploadMultipleModel>(this.config?.multipleModel ?? 'cover');\r\n /**\r\n * @zh_CN 文件列表自定义显示模板\r\n * @en_US File list custom display template\r\n */\r\n readonly filesTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 限制单次上传文件个数,只有开启多文件上传 multiple 时生效,默认不做限制\r\n * @en_US Limit the number of files uploaded files. Do not restrict the default\r\n */\r\n readonly maxLimit = input<number, XNumber>(-1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 设置上传的请求头部\r\n * @en_US Set the upload request header\r\n */\r\n readonly headers = input<{ [key: string]: any }>();\r\n /**\r\n * @zh_CN 删除按钮的事件\r\n * @en_US Delete button event\r\n */\r\n readonly removeClick = output<{ file: XUploadNode; index: number }>();\r\n /**\r\n * @zh_CN 开始上传事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadReady = output<XUploadNode>();\r\n /**\r\n * @zh_CN 正在上传事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploading = output<XUploadNode>();\r\n /**\r\n * @zh_CN 上传成功事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadSuccess = output<XUploadNode>();\r\n /**\r\n * @zh_CN 上传失败事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadError = output<XUploadNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Upload 数据对象\r\n * @en_US Upload data object\r\n */\r\nexport interface XUploadNode extends File {\r\n /**\r\n * @zh_CN 地址\r\n * @en_US address\r\n */\r\n url?: string;\r\n /**\r\n * @zh_CN 状态\r\n * @en_US status\r\n */\r\n state?: XStateType;\r\n /**\r\n * @zh_CN 上传进度\r\n * @en_US Upload progress\r\n */\r\n percent?: XNumber;\r\n /**\r\n * @zh_CN 上传返回数据\r\n * @en_US Upload body\r\n */\r\n body?: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 文件状态\r\n * @en_US File status\r\n */\r\nexport type XStateType = 'ready' | 'uploading' | 'success' | 'error';\r\n\r\n/**\r\n * @zh_CN 文件显示类型\r\n * @en_US File display type\r\n */\r\nexport type XUploadType = 'list' | 'img';\r\n\r\n/**\r\n * @zh_CN 多次上传的模式,cover 覆盖现有 add 继续添加\r\n * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add\r\n */\r\nexport type XUploadMultipleModel = 'cover' | 'add';\r\n\r\n/**\r\n * @zh_CN 剪裁的方位\r\n * @en_US Tailored orientation\r\n */\r\nexport type XUploadCutType = XPosition | XCorner | '';\r\n\r\n/**\r\n * @zh_CN 上传显示窗口\r\n * @en_US Upload portal\r\n * @selector x-upload-portal\r\n * @decorator component\r\n */\r\nexport const XUploadPortalPrefix = 'x-upload-portal';\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n Renderer2,\r\n inject,\r\n AfterViewInit,\r\n OnDestroy,\r\n input,\r\n computed,\r\n viewChild,\r\n signal,\r\n output\r\n} from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XClamp } from '@ng-nest/ui/core';\r\nimport { XUploadCutType, XUploadNode, XUploadPortalPrefix } from './upload.property';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\n\r\n@Component({\r\n selector: `${XUploadPortalPrefix}`,\r\n standalone: true,\r\n imports: [XIconComponent],\r\n templateUrl: './upload-portal.component.html',\r\n styleUrls: ['./upload-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XUploadPortalComponent implements AfterViewInit, OnDestroy {\r\n file = input<XUploadNode>();\r\n name = computed(() => {\r\n return this.file()?.name;\r\n });\r\n url = computed(() => {\r\n return this.file()?.url;\r\n });\r\n imgRef = viewChild.required<ElementRef<HTMLElement>>('imgRef');\r\n imgClipRef = viewChild.required<ElementRef<HTMLElement>>('imgClipRef');\r\n boundaryRef = viewChild.required<ElementRef<HTMLElement>>('boundaryRef');\r\n cutRef = viewChild.required<ElementRef<HTMLElement>>('cutRef');\r\n ready = signal(false);\r\n cutType = signal<XUploadCutType>('');\r\n proportion = signal(1);\r\n originalSize = {\r\n width: 0,\r\n height: 0\r\n };\r\n boundaryBox = {\r\n width: 0,\r\n height: 0\r\n };\r\n cutBox = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n clipRect!: {\r\n top: number;\r\n right: number;\r\n bottom: number;\r\n left: number;\r\n };\r\n\r\n doc = inject(DOCUMENT);\r\n\r\n closePortal = output<void>();\r\n surePortal = output<Blob>();\r\n private unSubject = new Subject<void>();\r\n private renderer = inject(Renderer2);\r\n\r\n ngAfterViewInit() {\r\n this.setCut();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setCut() {\r\n let width = this.imgRef().nativeElement.clientWidth;\r\n let height = this.imgRef().nativeElement.clientHeight;\r\n this.renderer.setStyle(this.cutRef().nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.cutRef().nativeElement, 'height', `${height}px`);\r\n this.renderer.setStyle(this.boundaryRef().nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.boundaryRef().nativeElement, 'height', `${height}px`);\r\n this.renderer.setStyle(this.imgRef().nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.imgRef().nativeElement, 'height', `${height}px`);\r\n this.renderer.setStyle(this.imgClipRef().nativeElement, 'width', `${width}px`);\r\n this.renderer.setStyle(this.imgClipRef().nativeElement, 'height', `${height}px`);\r\n this.cutBox.width = width;\r\n this.cutBox.height = height;\r\n this.boundaryBox = { width, height };\r\n this.clipRect = {\r\n top: 0,\r\n right: width,\r\n bottom: height,\r\n left: 0\r\n };\r\n this.setOriginalSize();\r\n this.ready.set(true);\r\n\r\n const mouseDown = fromEvent<MouseEvent>(this.cutRef().nativeElement, 'mousedown').pipe(takeUntil(this.unSubject));\r\n\r\n mouseDown.subscribe((downMe: MouseEvent) => {\r\n let x = downMe.pageX;\r\n let y = downMe.pageY;\r\n let offsetX = 0;\r\n let offsetY = 0;\r\n const _unSub = new Subject<void>();\r\n let className = (downMe.target as HTMLDivElement).className;\r\n const spt = `${XUploadPortalPrefix}-cut-`;\r\n if (className.includes(spt)) {\r\n this.cutType.set(className.replace(spt, '') as XUploadCutType);\r\n }\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((moveMe: MouseEvent) => {\r\n offsetX = moveMe.pageX - x;\r\n offsetY = moveMe.pageY - y;\r\n x = moveMe.pageX;\r\n y = moveMe.pageY;\r\n this.setCutEle(this.cutType(), offsetX, offsetY);\r\n });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe(() => {\r\n this.cutType.set('');\r\n _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n }\r\n\r\n setOriginalSize() {\r\n const img = new Image();\r\n img.src = this.url()!;\r\n img.onload = () => {\r\n this.originalSize = { width: img.width, height: img.height };\r\n this.proportion.set(this.boundaryBox.width / this.originalSize.width);\r\n };\r\n }\r\n\r\n setCutEle(position: XUploadCutType, x: number, y: number) {\r\n switch (position) {\r\n case 'top-start':\r\n this.cutBox.width -= x;\r\n this.cutBox.height -= y;\r\n this.cutBox.x += x;\r\n this.cutBox.y += y;\r\n break;\r\n case 'top':\r\n this.cutBox.height -= y;\r\n this.cutBox.y += y;\r\n break;\r\n case 'top-end':\r\n this.cutBox.width += x;\r\n this.cutBox.height -= y;\r\n this.cutBox.y += y;\r\n break;\r\n case 'right':\r\n this.cutBox.width += x;\r\n break;\r\n case 'bottom-end':\r\n this.cutBox.width += x;\r\n this.cutBox.height += y;\r\n break;\r\n case 'bottom':\r\n this.cutBox.height += y;\r\n break;\r\n case 'bottom-start':\r\n this.cutBox.width -= x;\r\n this.cutBox.height += y;\r\n this.cutBox.x += x;\r\n break;\r\n case 'left':\r\n this.cutBox.width -= x;\r\n this.cutBox.x += x;\r\n break;\r\n case '':\r\n this.cutBox.x += x;\r\n this.cutBox.y += y;\r\n break;\r\n }\r\n const boundaryRect = this.boundaryRef().nativeElement.getBoundingClientRect();\r\n\r\n const maxY = boundaryRect.height - this.cutBox.height;\r\n const maxX = boundaryRect.width - this.cutBox.width;\r\n\r\n this.cutBox.x = XClamp(this.cutBox.x, 0, maxX);\r\n this.cutBox.y = XClamp(this.cutBox.y, 0, maxY);\r\n\r\n // const maxWidth = boundaryRect.height - this.cutBox.y;\r\n // const maxHeight = boundaryRect.width - this.cutBox.x;\r\n\r\n // this.cutBox.width = XClamp(this.cutBox.width, 0, maxWidth);\r\n // this.cutBox.height = XClamp(this.cutBox.width, 0, maxHeight);\r\n\r\n this.clipRect = {\r\n top: this.cutBox.y,\r\n right: this.cutBox.width + this.cutBox.x,\r\n bottom: this.cutBox.height + this.cutBox.y,\r\n left: this.cutBox.x\r\n };\r\n this.renderer.setStyle(\r\n this.imgClipRef().nativeElement,\r\n 'clip',\r\n `rect(${this.clipRect.top}px,${this.clipRect.right}px,${this.clipRect.bottom}px,${this.clipRect.left}px)`\r\n );\r\n this.renderer.setStyle(this.cutRef().nativeElement, 'width', `${this.cutBox.width}px`);\r\n this.renderer.setStyle(this.cutRef().nativeElement, 'height', `${this.cutBox.height}px`);\r\n this.renderer.setStyle(\r\n this.cutRef().nativeElement,\r\n 'transform',\r\n `translate3d(${this.cutBox.x}px, ${this.cutBox.y}px, 0)`\r\n );\r\n }\r\n\r\n sure() {\r\n const canvas = this.doc.createElement('canvas');\r\n canvas.width = this.cutBox.width / this.proportion();\r\n canvas.height = this.cutBox.height / this.proportion();\r\n const context = canvas.getContext('2d')!;\r\n const img = new Image();\r\n img.src = this.url()!;\r\n img.crossOrigin = 'anonymous';\r\n img.onload = () => {\r\n context.drawImage(img, -this.cutBox.x / this.proportion(), -this.cutBox.y / this.proportion());\r\n canvas.toBlob((blob) => {\r\n this.surePortal.emit(blob as Blob);\r\n this.closePortal.emit();\r\n });\r\n };\r\n }\r\n}\r\n","<div class=\"x-upload-portal {{ cutType() }}\" [class.x-upload-portal-ready]=\"ready()\">\r\n <div class=\"x-upload-portal-tools\">\r\n <div class=\"x-upload-portal-title\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n <span>{{ name() }}</span>\r\n </div>\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-x\" (click)=\"closePortal.emit()\"></x-icon>\r\n </div>\r\n <div class=\"x-upload-portal-img\">\r\n <img #imgRef class=\"x-upload-portal-full-img\" [src]=\"url()\" />\r\n <div #boundaryRef class=\"x-upload-portal-boundary\">\r\n <img #imgClipRef class=\"x-upload-portal-clip-img\" [src]=\"url()\" />\r\n <div #cutRef class=\"x-upload-portal-cut\">\r\n <div class=\"x-upload-portal-cut-top-start\"></div>\r\n <div class=\"x-upload-portal-cut-top\"></div>\r\n <div class=\"x-upload-portal-cut-top-end\"></div>\r\n <div class=\"x-upload-portal-cut-left\"></div>\r\n <div class=\"x-upload-portal-cut-right\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-start\"></div>\r\n <div class=\"x-upload-portal-cut-bottom\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-end\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-upload-portal-bottom-tools\">\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-check\" (click)=\"sure()\"></x-icon>\r\n </div>\r\n</div>\r\n","import { HttpClient, HttpEventType, HttpRequest, HttpEvent, HttpHeaders } from '@angular/common/http';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ViewContainerRef,\r\n inject,\r\n viewChild,\r\n signal,\r\n computed\r\n} from '@angular/core';\r\nimport { XUploadPrefix, XUploadNode, XUploadProperty, XUploadPortalPrefix } from './upload.property';\r\nimport { XIsArray, XIsEmpty, XIsTemplateRef } from '@ng-nest/ui/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { XI18nService, XI18nUpload, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XUploadPortalComponent } from './upload-portal.component';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XImageComponent, XImageGroupComponent } from '@ng-nest/ui/image';\r\nimport { XProgressComponent } from '@ng-nest/ui/progress';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XUploadPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n XIconComponent,\r\n XOutletDirective,\r\n XButtonComponent,\r\n XImageGroupComponent,\r\n XImageComponent,\r\n XProgressComponent\r\n ],\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XUploadComponent)]\r\n})\r\nexport class XUploadComponent extends XUploadProperty {\r\n private http = inject(HttpClient, { optional: true });\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private i18n = inject(XI18nService);\r\n\r\n file = viewChild.required<ElementRef<HTMLInputElement>>('file');\r\n files = signal<XUploadNode[]>([]);\r\n showUpload = signal(false);\r\n uploadNodes = signal<XUploadNode[]>([]);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.upload as XI18nUpload)), { initialValue: zh_CN.upload });\r\n portal!: XPortalOverlayRef<XUploadPortalComponent>;\r\n\r\n getText = computed(() => this.text() || this.locale().uploadText);\r\n\r\n isTemplateText = computed(() => XIsTemplateRef(this.getText()));\r\n\r\n override writeValue(value: XUploadNode[]) {\r\n this.value.set(value);\r\n this.setFiles();\r\n }\r\n\r\n acceptSignal = computed(() => {\r\n if (this.type() === 'img' && XIsEmpty(this.accept())) return 'image/*';\r\n return this.accept();\r\n });\r\n\r\n constructor() {\r\n super();\r\n if (!this.http) {\r\n throw new Error(\r\n `${XUploadPrefix}: Not found 'HttpClient', You can import 'HttpClientModule' in your root module.`\r\n );\r\n }\r\n }\r\n\r\n setFiles() {\r\n if (!Array.isArray(this.value())) return;\r\n this.files.set(\r\n this.value().map((x: XUploadNode) => {\r\n if (!x.state) x.state = 'success';\r\n return x;\r\n })\r\n );\r\n }\r\n\r\n change(event: Event) {\r\n let input = event.target as HTMLInputElement;\r\n if (typeof input === 'undefined' || input.files?.length === 0) return;\r\n let files: XUploadNode[] = [];\r\n let max = this.maxLimit() > -1 ? this.maxLimit() : (input.files as FileList).length;\r\n for (let i = 0; i < max; i++) {\r\n let file: XUploadNode = (input.files as FileList).item(i) as XUploadNode;\r\n file.state = 'ready';\r\n files = [...files, file];\r\n }\r\n if (files.length > 0) this.showUpload.set(true);\r\n if (this.multipleModel() === 'cover') {\r\n this.files.set(files);\r\n } else if (this.multipleModel() === 'add') {\r\n this.files.update((x) => [...x, ...files]);\r\n }\r\n this.value.set(this.files());\r\n this.onChange && this.onChange(this.value());\r\n this.onUploading();\r\n input.value = '';\r\n }\r\n\r\n remove(file: XUploadNode, index: number) {\r\n this.files.update((x) => {\r\n x.splice(index, 1);\r\n return [...x];\r\n });\r\n if (this.files().length === 0) this.file().nativeElement.value = '';\r\n this.showUpload.set(this.files().find((x) => x.state === 'ready') != null);\r\n const vindex = this.value().indexOf(file);\r\n if (vindex > -1) {\r\n this.value.update((x) => {\r\n x.splice(vindex, 1);\r\n return [...x];\r\n });\r\n this.onChange && this.onChange(this.value());\r\n }\r\n this.removeClick.emit({ file: file, index: index });\r\n }\r\n\r\n uploadClick() {\r\n if (this.disabledComputed()) return;\r\n this.file().nativeElement.click();\r\n }\r\n\r\n onUploading() {\r\n if (!this.action) return;\r\n let readyFiles = this.files().filter((x) => x.state === 'ready');\r\n readyFiles.forEach((x) => {\r\n this.uploadFile(x);\r\n });\r\n }\r\n\r\n uploadFile(file: XUploadNode, index = -1) {\r\n let formData = new FormData();\r\n formData.append('file', file);\r\n const req = new HttpRequest('POST', this.action()!, formData, {\r\n reportProgress: true,\r\n responseType: 'arraybuffer',\r\n withCredentials: false,\r\n headers: new HttpHeaders(this.headers())\r\n });\r\n this.http\r\n ?.request(req)\r\n .pipe(\r\n map((event) =>\r\n this.getEventMessage(event, file, (body: BlobPart) => {\r\n let blob = new Blob([body]);\r\n let reader = new FileReader();\r\n reader.readAsText(blob, 'utf-8');\r\n reader.onload = () => {\r\n let body = [];\r\n try {\r\n body = JSON.parse(reader.result as string);\r\n if (XIsArray(body) && body.length > 0) {\r\n file.url = body[0] as string;\r\n }\r\n file.body = body;\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n if (index !== -1) {\r\n this.files.update((x) => {\r\n x[index] = file;\r\n return [...x];\r\n });\r\n }\r\n this.uploadSuccess.emit(file);\r\n };\r\n })\r\n )\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.showUpload.set(this.files().find((y) => y.state === 'ready') != null);\r\n },\r\n error: () => {\r\n file.state = 'error';\r\n this.uploadError.emit(file);\r\n }\r\n });\r\n }\r\n\r\n getEventMessage(event: HttpEvent<any>, file: XUploadNode, successFunc: Function) {\r\n switch (event.type) {\r\n case HttpEventType.Sent:\r\n file.state = 'ready';\r\n this.uploadReady.emit(file);\r\n return this.locale().beginUploadText;\r\n case HttpEventType.UploadProgress:\r\n file.state = 'uploading';\r\n if (event.total) file.percent = Math.round((100 * event.loaded) / event.total);\r\n this.uploading.emit(file);\r\n return this.locale().uploadingText;\r\n case HttpEventType.Response:\r\n file.state = 'success';\r\n successFunc(event.body);\r\n return this.locale().uploadCompleted;\r\n }\r\n return;\r\n }\r\n\r\n onImgCut(file: XUploadNode, index: number) {\r\n this.portal = this.portalService.attach({\r\n content: XUploadPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n panelClass: [XUploadPortalPrefix],\r\n hasBackdrop: true,\r\n positionStrategy: this.portalService.setPlace('center')\r\n }\r\n });\r\n this.setInstance(file, index);\r\n }\r\n\r\n setInstance(file: XUploadNode, index: number) {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n componentRef.setInput('file', file);\r\n const { closePortal, surePortal } = componentRef.instance;\r\n closePortal.subscribe(() => this.closePortal());\r\n surePortal.subscribe((blob) => {\r\n const fl = new File([blob], file.name, { type: blob.type }) as XUploadNode;\r\n fl.state = 'ready';\r\n this.uploadFile(fl, index);\r\n });\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n imgError(_event: ErrorEvent, file: XUploadNode) {\r\n file.state = 'error';\r\n }\r\n imgLoad(file: XUploadNode) {\r\n file.state = 'success';\r\n }\r\n}\r\n","<div #upload class=\"x-upload x-upload-{{ type() }}\" [class.x-disabled]=\"disabledComputed()\">\r\n <input\r\n type=\"file\"\r\n #file\r\n (change)=\"change($event)\"\r\n [attr.accept]=\"acceptSignal()\"\r\n [multiple]=\"multiple()\"\r\n style=\"display: none\"\r\n />\r\n\r\n @switch (type()) {\r\n @case ('list') {\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n <ng-container *xOutlet=\"filesTpl(); context: { $files: files() }\">\r\n <ul class=\"x-upload-files\">\r\n @for (file of files(); track file; let i = $index) {\r\n <li [class.x-upload-disabled]=\"!download()\">\r\n @if (download()) {\r\n <a [href]=\"file.url\" target=\"_blank\" [title]=\"file.name\">\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n } @else {\r\n <a>\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n }\r\n\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('uploading') {\r\n <span class=\"x-upload-percent\">{{ file.percent }}%</span>\r\n }\r\n @case ('success') {\r\n <x-icon class=\"x-upload-state success\" type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-upload-state error\" type=\"fto-info\"></x-icon>\r\n }\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-button icon=\"fto-x\" (click)=\"remove(file, i)\" onlyIcon closable size=\"mini\"></x-button>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </ng-container>\r\n }\r\n @case ('img') {\r\n <x-image-group>\r\n @for (file of files(); track file; let i = $index) {\r\n <x-image\r\n [src]=\"file.url\"\r\n (load)=\"imgLoad(file)\"\r\n (error)=\"imgError($event, file)\"\r\n class=\"{{ file.state }}\"\r\n [previewTpl]=\"previewTpl\"\r\n [fallback]=\"imgFallback()\"\r\n >\r\n </x-image>\r\n <ng-template #previewTpl let-image=\"$image\">\r\n @if (file.state == 'uploading') {\r\n <div class=\"x-upload-uploading\">\r\n <x-progress [percent]=\"file.percent!\" info=\"false\"></x-progress>\r\n </div>\r\n }\r\n <div class=\"x-image-overlay\">\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('success') {\r\n <x-icon type=\"fto-eye\" (click)=\"image.onPreview()\"></x-icon>\r\n }\r\n }\r\n @if (imgCut() && file.state === 'success') {\r\n <x-icon type=\"fto-crop\" (click)=\"onImgCut(file, i)\"></x-icon>\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-icon type=\"fto-trash-2\" (click)=\"remove(file, i)\"></x-icon>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n </x-image-group>\r\n }\r\n }\r\n</div>\r\n\r\n<ng-template #uploadBtnTpl>\r\n <div class=\"x-upload-buttons\" [class.x-upload-buttons-template]=\"isTemplateText()\" (click)=\"uploadClick()\">\r\n <ng-container *xOutlet=\"getText()\">\r\n <x-button icon=\"fto-upload\" [disabled]=\"disabledComputed()\" type=\"primary\">{{ getText() }}</x-button>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XUploadComponent } from './upload.component';\r\n\r\n@NgModule({\r\n exports: [XUploadComponent],\r\n imports: [XUploadComponent]\r\n})\r\nexport class XUploadModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/ng-nest-ui.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from '@ng-nest/ui/core';
|
|
2
|
-
export * from '@ng-nest/ui/border';
|
|
3
2
|
export * from '@ng-nest/ui/button';
|
|
4
3
|
export * from '@ng-nest/ui/color';
|
|
5
4
|
export * from '@ng-nest/ui/container';
|
|
@@ -8,7 +7,6 @@ export * from '@ng-nest/ui/icon';
|
|
|
8
7
|
export * from '@ng-nest/ui/i18n';
|
|
9
8
|
export * from '@ng-nest/ui/link';
|
|
10
9
|
export * from '@ng-nest/ui/theme';
|
|
11
|
-
export * from '@ng-nest/ui/typography';
|
|
12
10
|
export * from '@ng-nest/ui/avatar';
|
|
13
11
|
export * from '@ng-nest/ui/badge';
|
|
14
12
|
export * from '@ng-nest/ui/card';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui.mjs","sources":["../../../../lib/ng-nest/ui/index.ts","../../../../lib/ng-nest/ui/ng-nest-ui.ts"],"sourcesContent":["/**\r\n * Core\r\n */\r\nexport * from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Basic\r\n */\r\nexport * from '@ng-nest/ui/
|
|
1
|
+
{"version":3,"file":"ng-nest-ui.mjs","sources":["../../../../lib/ng-nest/ui/index.ts","../../../../lib/ng-nest/ui/ng-nest-ui.ts"],"sourcesContent":["/**\r\n * Core\r\n */\r\nexport * from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Basic\r\n */\r\nexport * from '@ng-nest/ui/button';\r\nexport * from '@ng-nest/ui/color';\r\nexport * from '@ng-nest/ui/container';\r\nexport * from '@ng-nest/ui/layout';\r\nexport * from '@ng-nest/ui/icon';\r\nexport * from '@ng-nest/ui/i18n';\r\nexport * from '@ng-nest/ui/link';\r\nexport * from '@ng-nest/ui/theme';\r\n\r\n/**\r\n * Data\r\n */\r\nexport * from '@ng-nest/ui/avatar';\r\nexport * from '@ng-nest/ui/badge';\r\nexport * from '@ng-nest/ui/card';\r\nexport * from '@ng-nest/ui/carousel';\r\nexport * from '@ng-nest/ui/collapse';\r\nexport * from '@ng-nest/ui/calendar';\r\nexport * from '@ng-nest/ui/comment';\r\nexport * from '@ng-nest/ui/description';\r\nexport * from '@ng-nest/ui/empty';\r\nexport * from '@ng-nest/ui/image';\r\nexport * from '@ng-nest/ui/outlet';\r\nexport * from '@ng-nest/ui/pagination';\r\nexport * from '@ng-nest/ui/progress';\r\nexport * from '@ng-nest/ui/ripple';\r\nexport * from '@ng-nest/ui/resizable';\r\nexport * from '@ng-nest/ui/drag';\r\nexport * from '@ng-nest/ui/statistic';\r\nexport * from '@ng-nest/ui/table';\r\nexport * from '@ng-nest/ui/tag';\r\nexport * from '@ng-nest/ui/text-retract';\r\nexport * from '@ng-nest/ui/time-ago';\r\nexport * from '@ng-nest/ui/time-range';\r\nexport * from '@ng-nest/ui/timeline';\r\nexport * from '@ng-nest/ui/tree';\r\nexport * from '@ng-nest/ui/tree-file';\r\nexport * from '@ng-nest/ui/keyword';\r\n\r\n/**\r\n * Feedback\r\n */\r\nexport * from '@ng-nest/ui/alert';\r\nexport * from '@ng-nest/ui/dialog';\r\nexport * from '@ng-nest/ui/drawer';\r\nexport * from '@ng-nest/ui/loading';\r\nexport * from '@ng-nest/ui/message';\r\nexport * from '@ng-nest/ui/message-box';\r\nexport * from '@ng-nest/ui/notification';\r\nexport * from '@ng-nest/ui/popconfirm';\r\nexport * from '@ng-nest/ui/popover';\r\nexport * from '@ng-nest/ui/result';\r\nexport * from '@ng-nest/ui/skeleton';\r\nexport * from '@ng-nest/ui/tooltip';\r\n\r\n/**\r\n * Form\r\n */\r\nexport * from '@ng-nest/ui/auto-complete';\r\nexport * from '@ng-nest/ui/base-form';\r\nexport * from '@ng-nest/ui/cascade';\r\nexport * from '@ng-nest/ui/checkbox';\r\nexport * from '@ng-nest/ui/color-picker';\r\nexport * from '@ng-nest/ui/date-picker';\r\nexport * from '@ng-nest/ui/form';\r\nexport * from '@ng-nest/ui/find';\r\nexport * from '@ng-nest/ui/input';\r\nexport * from '@ng-nest/ui/input-number';\r\nexport * from '@ng-nest/ui/list';\r\nexport * from '@ng-nest/ui/radio';\r\nexport * from '@ng-nest/ui/rate';\r\nexport * from '@ng-nest/ui/select';\r\nexport * from '@ng-nest/ui/slider-select';\r\nexport * from '@ng-nest/ui/switch';\r\nexport * from '@ng-nest/ui/time-picker';\r\nexport * from '@ng-nest/ui/transfer';\r\nexport * from '@ng-nest/ui/tree-select';\r\nexport * from '@ng-nest/ui/textarea';\r\nexport * from '@ng-nest/ui/upload';\r\n\r\n/**\r\n * Navigation\r\n */\r\nexport * from '@ng-nest/ui/affix';\r\nexport * from '@ng-nest/ui/anchor';\r\nexport * from '@ng-nest/ui/back-top';\r\nexport * from '@ng-nest/ui/crumb';\r\nexport * from '@ng-nest/ui/dropdown';\r\nexport * from '@ng-nest/ui/menu';\r\nexport * from '@ng-nest/ui/page-header';\r\nexport * from '@ng-nest/ui/steps';\r\nexport * from '@ng-nest/ui/tabs';\r\n\r\n/**\r\n * Others\r\n */\r\nexport * from '@ng-nest/ui/doc';\r\nexport * from '@ng-nest/ui/examples';\r\nexport * from '@ng-nest/ui/api';\r\nexport * from '@ng-nest/ui/pattern';\r\nexport * from '@ng-nest/ui/slider';\r\nexport * from '@ng-nest/ui/highlight';\r\nexport * from '@ng-nest/ui/inner';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
|
package/find/find.component.d.ts
CHANGED
|
@@ -1,50 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementRef, SimpleChanges, OnChanges, OnDestroy } from '@angular/core';
|
|
2
2
|
import { XFindProperty } from './find.property';
|
|
3
|
-
import {
|
|
4
|
-
import { XTableComponent, XTableRow } from '@ng-nest/ui/table';
|
|
3
|
+
import { XTableColumn, XTableComponent, XTableRow } from '@ng-nest/ui/table';
|
|
5
4
|
import { XDialogComponent } from '@ng-nest/ui/dialog';
|
|
6
5
|
import { XButtonComponent } from '@ng-nest/ui/button';
|
|
7
6
|
import { XTreeNode, XTreeComponent } from '@ng-nest/ui/tree';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
|
-
export declare class XFindComponent extends XFindProperty implements
|
|
10
|
-
find: ElementRef<HTMLElement
|
|
11
|
-
dialogCom: XDialogComponent
|
|
12
|
-
tableCom: XTableComponent
|
|
13
|
-
treeCom: XTreeComponent
|
|
14
|
-
buttonCom: XButtonComponent
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
temp: any
|
|
28
|
-
height: number
|
|
29
|
-
private
|
|
30
|
-
private
|
|
8
|
+
export declare class XFindComponent extends XFindProperty implements OnChanges, OnDestroy {
|
|
9
|
+
find: import("@angular/core").Signal<ElementRef<HTMLElement>>;
|
|
10
|
+
dialogCom: import("@angular/core").Signal<XDialogComponent>;
|
|
11
|
+
tableCom: import("@angular/core").Signal<XTableComponent | undefined>;
|
|
12
|
+
treeCom: import("@angular/core").Signal<XTreeComponent | undefined>;
|
|
13
|
+
buttonCom: import("@angular/core").Signal<XButtonComponent>;
|
|
14
|
+
tableRef: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
|
|
15
|
+
treeRef: import("@angular/core").Signal<ElementRef<HTMLElement> | undefined>;
|
|
16
|
+
tableRefChanged: import("rxjs").Subscription;
|
|
17
|
+
treeRefChanged: import("rxjs").Subscription;
|
|
18
|
+
tableColumnsSignal: import("@angular/core").Signal<XTableColumn[]>;
|
|
19
|
+
getEmpty: import("@angular/core").Signal<boolean>;
|
|
20
|
+
hasTable: import("@angular/core").Signal<boolean>;
|
|
21
|
+
hasTree: import("@angular/core").Signal<boolean>;
|
|
22
|
+
hasTreeTable: import("@angular/core").Signal<boolean>;
|
|
23
|
+
hasTreeMultiple: import("@angular/core").Signal<boolean>;
|
|
24
|
+
hasSearch: import("@angular/core").Signal<boolean | null>;
|
|
25
|
+
dialogWidthSignal: import("@angular/core").Signal<string>;
|
|
26
|
+
temp: import("@angular/core").WritableSignal<any>;
|
|
27
|
+
height: import("@angular/core").WritableSignal<number>;
|
|
28
|
+
private unSubject;
|
|
29
|
+
private resizeObserver;
|
|
31
30
|
writeValue(value: any): void;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
classMap: import("@angular/core").Signal<{
|
|
32
|
+
[x: string]: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
labelMapSignal: import("@angular/core").Signal<{
|
|
35
|
+
[x: string]: boolean;
|
|
36
|
+
}>;
|
|
35
37
|
ngOnChanges(simples: SimpleChanges): void;
|
|
36
|
-
ngOnInit(): void;
|
|
37
|
-
ngAfterViewInit(): void;
|
|
38
38
|
ngOnDestroy(): void;
|
|
39
|
-
setClassMap(): void;
|
|
40
39
|
setSubscribe(): void;
|
|
41
|
-
setMultiple(): void;
|
|
42
|
-
setWidth(): void;
|
|
43
40
|
showModal(): void;
|
|
44
41
|
setTableCheckedRow(): void;
|
|
45
42
|
setTreeChecked(): void;
|
|
46
43
|
sure(): void;
|
|
47
|
-
closeModal(): void;
|
|
48
44
|
dialogCloseDone(): void;
|
|
49
45
|
tempClose(index: number, item: any): void;
|
|
50
46
|
tagClose(index?: number): void;
|