@ng-nest/ui 18.0.13 → 19.0.1
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.property.d.ts +1 -1
- package/alert/alert.property.d.ts +1 -1
- package/anchor/anchor.component.d.ts +3 -1
- package/anchor/anchor.property.d.ts +2 -2
- package/api/api.component.d.ts +1 -1
- package/auto-complete/auto-complete.component.d.ts +1 -3
- package/auto-complete/auto-complete.property.d.ts +17 -20
- package/avatar/avatar.property.d.ts +2 -2
- package/back-top/back-top.property.d.ts +1 -1
- package/badge/badge.property.d.ts +1 -1
- package/base-form/base-form.component.d.ts +1 -1
- package/base-form/base-form.property.d.ts +1 -105
- package/button/button.property.d.ts +2 -2
- package/calendar/calendar.property.d.ts +1 -1
- package/card/card.property.d.ts +1 -1
- package/carousel/carousel-panel.component.d.ts +1 -1
- package/carousel/carousel.property.d.ts +2 -2
- package/cascade/cascade.component.d.ts +1 -2
- package/cascade/cascade.property.d.ts +17 -28
- package/checkbox/checkbox.property.d.ts +22 -23
- package/collapse/collapse.component.d.ts +1 -3
- package/collapse/collapse.property.d.ts +2 -16
- package/color/color.property.d.ts +1 -1
- package/color-picker/color-picker-portal.component.d.ts +10 -10
- package/color-picker/color-picker.component.d.ts +0 -1
- package/color-picker/color-picker.property.d.ts +16 -16
- package/comment/comment.property.d.ts +2 -2
- package/container/container.property.d.ts +4 -4
- package/crumb/crumb.property.d.ts +1 -1
- package/date-picker/date-picker-portal.component.d.ts +1 -1
- package/date-picker/date-picker.component.d.ts +0 -1
- package/date-picker/date-picker.property.d.ts +36 -36
- package/date-picker/date-range-portal.component.d.ts +5 -5
- package/description/description.property.d.ts +2 -2
- package/dialog/dialog-portal.component.d.ts +5 -5
- package/dialog/dialog-portal.directives.d.ts +2 -3
- package/dialog/dialog-ref.d.ts +4 -2
- package/dialog/dialog.component.d.ts +0 -5
- package/dialog/dialog.property.d.ts +14 -10
- package/drag/drag.property.d.ts +1 -1
- package/drawer/drawer.property.d.ts +2 -2
- package/dropdown/dropdown.component.d.ts +0 -1
- package/dropdown/dropdown.property.d.ts +1 -1
- package/empty/empty.property.d.ts +1 -1
- package/fesm2022/ng-nest-ui-affix.mjs +14 -12
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +14 -12
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +33 -26
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +11 -11
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +29 -38
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +14 -13
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +11 -11
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +30 -127
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +18 -18
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +15 -21
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +11 -12
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +23 -30
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +17 -23
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +12 -12
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +22 -44
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +15 -18
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +11 -11
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +18 -18
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +36 -36
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +15 -15
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +57 -60
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +18 -18
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +79 -147
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +8 -8
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +11 -11
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +38 -41
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +15 -19
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +11 -11
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +8 -8
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +11 -11
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +21 -40
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +15 -17
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +14 -14
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +24 -24
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +11 -11
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +19 -19
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +12 -13
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +18 -18
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +11 -11
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +22 -23
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +12 -12
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +19 -20
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +11 -13
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +11 -11
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +11 -11
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +15 -15
- 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 +11 -11
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +11 -11
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +11 -12
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +12 -12
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +11 -11
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +11 -12
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +19 -21
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +11 -22
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +11 -11
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +18 -18
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +11 -11
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +11 -11
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +43 -36
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +30 -32
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +11 -11
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +13 -14
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +19 -22
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +8 -8
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +11 -21
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +44 -33
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +19 -15
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +12 -20
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +104 -64
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +27 -22
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +11 -11
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +17 -20
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.property.d.ts +13 -19
- package/form/form.property.d.ts +11 -22
- package/highlight/highlight.property.d.ts +1 -1
- package/icon/icon.property.d.ts +1 -1
- package/image/image.property.d.ts +2 -2
- package/inner/inner.property.d.ts +1 -1
- package/input/input.property.d.ts +18 -21
- package/input-number/input-number.property.d.ts +14 -14
- package/layout/layout.property.d.ts +2 -2
- package/link/link.property.d.ts +1 -1
- package/list/list.property.d.ts +13 -13
- package/loading/loading.property.d.ts +1 -1
- package/menu/menu.property.d.ts +2 -2
- package/package.json +42 -216
- package/page-header/page-header.property.d.ts +1 -1
- package/pagination/pagination.property.d.ts +1 -1
- package/popconfirm/popconfirm.property.d.ts +1 -1
- package/popover/popover.property.d.ts +1 -1
- package/progress/progress.property.d.ts +1 -1
- package/radio/radio.property.d.ts +14 -17
- package/rate/rate.property.d.ts +15 -23
- package/result/result.property.d.ts +1 -1
- package/ripple/ripple.property.d.ts +1 -1
- package/select/select-portal.component.d.ts +1 -1
- package/select/select.component.d.ts +0 -1
- package/select/select.property.d.ts +16 -16
- package/skeleton/skeleton.property.d.ts +1 -1
- package/slider/slider.property.d.ts +1 -1
- package/slider-select/slider-select.property.d.ts +14 -18
- package/statistic/statistic.property.d.ts +2 -2
- package/steps/steps.property.d.ts +1 -1
- package/style/core/index.css +87 -174
- package/style/core/index.css.map +1 -1
- package/style/core/index.scss +32 -5
- package/style/directives/index.scss +3 -3
- package/style/directives/keyword/index.scss +3 -2
- package/style/directives/keyword/mixin.scss +9 -11
- package/style/directives/keyword/param.scss +2 -1
- package/style/directives/resizable/index.scss +3 -2
- package/style/directives/resizable/mixin.scss +122 -16
- package/style/directives/resizable/param.scss +2 -1
- package/style/directives/ripple/index.scss +3 -2
- package/style/directives/ripple/mixin.scss +12 -12
- package/style/directives/ripple/param.scss +2 -1
- package/style/mixins/compatibility.scss +7 -5
- package/style/mixins/form.scss +6 -4
- package/style/mixins/hidden.scss +5 -2
- package/style/params/index.scss +282 -3
- package/switch/switch.property.d.ts +15 -15
- package/table/table.component.d.ts +2 -2
- package/table/table.property.d.ts +5 -4
- package/tabs/tabs.property.d.ts +2 -2
- package/tag/tag.property.d.ts +1 -1
- package/text-retract/text-retract.property.d.ts +1 -1
- package/textarea/textarea.property.d.ts +15 -18
- package/theme/theme.property.d.ts +7 -11
- package/time-picker/time-picker.component.d.ts +0 -1
- package/time-picker/time-picker.property.d.ts +18 -24
- package/timeline/timeline.property.d.ts +1 -11
- package/tooltip/tooltip.directive.d.ts +5 -3
- package/tooltip/tooltip.property.d.ts +1 -1
- package/transfer/transfer.property.d.ts +10 -14
- package/tree/tree.property.d.ts +7 -2
- package/tree-file/tree-file.property.d.ts +1 -1
- package/tree-select/tree-select-portal.component.d.ts +2 -5
- package/tree-select/tree-select.component.d.ts +13 -6
- package/tree-select/tree-select.property.d.ts +16 -26
- package/typography/typography.property.d.ts +1 -1
- package/upload/upload.component.d.ts +0 -1
- package/upload/upload.property.d.ts +10 -10
- package/esm2022/affix/affix.component.mjs +0 -12
- package/esm2022/affix/affix.module.mjs +0 -16
- package/esm2022/affix/affix.property.mjs +0 -51
- package/esm2022/affix/ng-nest-ui-affix.mjs +0 -5
- package/esm2022/affix/public-api.mjs +0 -4
- package/esm2022/alert/alert.component.mjs +0 -73
- package/esm2022/alert/alert.module.mjs +0 -16
- package/esm2022/alert/alert.property.mjs +0 -313
- package/esm2022/alert/ng-nest-ui-alert.mjs +0 -5
- package/esm2022/alert/public-api.mjs +0 -4
- package/esm2022/anchor/anchor-inner.component.mjs +0 -18
- package/esm2022/anchor/anchor.component.mjs +0 -160
- package/esm2022/anchor/anchor.module.mjs +0 -17
- package/esm2022/anchor/anchor.property.mjs +0 -121
- package/esm2022/anchor/ng-nest-ui-anchor.mjs +0 -5
- package/esm2022/anchor/public-api.mjs +0 -5
- package/esm2022/api/api.component.mjs +0 -18
- package/esm2022/api/api.module.mjs +0 -16
- package/esm2022/api/api.property.mjs +0 -7
- package/esm2022/api/ng-nest-ui-api.mjs +0 -5
- package/esm2022/api/public-api.mjs +0 -4
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +0 -80
- package/esm2022/auto-complete/auto-complete.component.mjs +0 -306
- package/esm2022/auto-complete/auto-complete.module.mjs +0 -16
- package/esm2022/auto-complete/auto-complete.property.mjs +0 -172
- package/esm2022/auto-complete/ng-nest-ui-auto-complete.mjs +0 -5
- package/esm2022/auto-complete/public-api.mjs +0 -5
- package/esm2022/avatar/avatar-group.component.mjs +0 -19
- package/esm2022/avatar/avatar.component.mjs +0 -109
- package/esm2022/avatar/avatar.module.mjs +0 -17
- package/esm2022/avatar/avatar.property.mjs +0 -143
- package/esm2022/avatar/ng-nest-ui-avatar.mjs +0 -5
- package/esm2022/avatar/public-api.mjs +0 -5
- package/esm2022/back-top/back-top.component.mjs +0 -104
- package/esm2022/back-top/back-top.module.mjs +0 -16
- package/esm2022/back-top/back-top.property.mjs +0 -50
- package/esm2022/back-top/ng-nest-ui-back-top.mjs +0 -5
- package/esm2022/back-top/public-api.mjs +0 -4
- package/esm2022/badge/badge.component.mjs +0 -63
- package/esm2022/badge/badge.module.mjs +0 -16
- package/esm2022/badge/badge.property.mjs +0 -133
- package/esm2022/badge/ng-nest-ui-badge.mjs +0 -5
- package/esm2022/badge/public-api.mjs +0 -4
- package/esm2022/base-form/base-form.component.mjs +0 -101
- package/esm2022/base-form/base-form.module.mjs +0 -15
- package/esm2022/base-form/base-form.property.mjs +0 -237
- package/esm2022/base-form/ng-nest-ui-base-form.mjs +0 -5
- package/esm2022/base-form/public-api.mjs +0 -4
- package/esm2022/button/button.component.mjs +0 -71
- package/esm2022/button/button.module.mjs +0 -17
- package/esm2022/button/button.property.mjs +0 -331
- package/esm2022/button/buttons.component.mjs +0 -55
- package/esm2022/button/ng-nest-ui-button.mjs +0 -5
- package/esm2022/button/public-api.mjs +0 -5
- package/esm2022/calendar/calendar.component.mjs +0 -117
- package/esm2022/calendar/calendar.module.mjs +0 -16
- package/esm2022/calendar/calendar.property.mjs +0 -110
- package/esm2022/calendar/ng-nest-ui-calendar.mjs +0 -5
- package/esm2022/calendar/public-api.mjs +0 -4
- package/esm2022/card/card.component.mjs +0 -22
- package/esm2022/card/card.module.mjs +0 -16
- package/esm2022/card/card.property.mjs +0 -77
- package/esm2022/card/ng-nest-ui-card.mjs +0 -5
- package/esm2022/card/public-api.mjs +0 -4
- package/esm2022/carousel/carousel-panel.component.mjs +0 -157
- package/esm2022/carousel/carousel.component.mjs +0 -95
- package/esm2022/carousel/carousel.module.mjs +0 -17
- package/esm2022/carousel/carousel.property.mjs +0 -256
- package/esm2022/carousel/ng-nest-ui-carousel.mjs +0 -5
- package/esm2022/carousel/public-api.mjs +0 -5
- package/esm2022/cascade/cascade-portal.component.mjs +0 -141
- package/esm2022/cascade/cascade.component.mjs +0 -238
- package/esm2022/cascade/cascade.module.mjs +0 -16
- package/esm2022/cascade/cascade.property.mjs +0 -167
- package/esm2022/cascade/ng-nest-ui-cascade.mjs +0 -5
- package/esm2022/cascade/public-api.mjs +0 -5
- package/esm2022/checkbox/checkbox.component.mjs +0 -102
- package/esm2022/checkbox/checkbox.module.mjs +0 -16
- package/esm2022/checkbox/checkbox.property.mjs +0 -136
- package/esm2022/checkbox/ng-nest-ui-checkbox.mjs +0 -5
- package/esm2022/checkbox/public-api.mjs +0 -4
- package/esm2022/collapse/collapse-panel.component.mjs +0 -55
- package/esm2022/collapse/collapse.component.mjs +0 -49
- package/esm2022/collapse/collapse.module.mjs +0 -17
- package/esm2022/collapse/collapse.property.mjs +0 -189
- package/esm2022/collapse/ng-nest-ui-collapse.mjs +0 -5
- package/esm2022/collapse/public-api.mjs +0 -5
- package/esm2022/color/color.component.mjs +0 -35
- package/esm2022/color/color.module.mjs +0 -16
- package/esm2022/color/color.property.mjs +0 -71
- package/esm2022/color/ng-nest-ui-color.mjs +0 -5
- package/esm2022/color/public-api.mjs +0 -4
- package/esm2022/color-picker/color-picker-portal.component.mjs +0 -396
- package/esm2022/color-picker/color-picker.component.mjs +0 -191
- package/esm2022/color-picker/color-picker.module.mjs +0 -16
- package/esm2022/color-picker/color-picker.property.mjs +0 -142
- package/esm2022/color-picker/ng-nest-ui-color-picker.mjs +0 -5
- package/esm2022/color-picker/public-api.mjs +0 -5
- package/esm2022/comment/comment-reply.component.mjs +0 -24
- package/esm2022/comment/comment.component.mjs +0 -55
- package/esm2022/comment/comment.module.mjs +0 -17
- package/esm2022/comment/comment.property.mjs +0 -90
- package/esm2022/comment/ng-nest-ui-comment.mjs +0 -5
- package/esm2022/comment/public-api.mjs +0 -5
- package/esm2022/container/aside.component.mjs +0 -25
- package/esm2022/container/container.component.mjs +0 -31
- package/esm2022/container/container.module.mjs +0 -20
- package/esm2022/container/container.property.mjs +0 -115
- package/esm2022/container/footer.component.mjs +0 -35
- package/esm2022/container/header.component.mjs +0 -35
- package/esm2022/container/main.component.mjs +0 -18
- package/esm2022/container/ng-nest-ui-container.mjs +0 -5
- package/esm2022/container/public-api.mjs +0 -8
- package/esm2022/core/animation/badge.mjs +0 -53
- package/esm2022/core/animation/connect.mjs +0 -31
- package/esm2022/core/animation/consts.mjs +0 -11
- package/esm2022/core/animation/drop.mjs +0 -13
- package/esm2022/core/animation/fade.mjs +0 -24
- package/esm2022/core/animation/move.mjs +0 -179
- package/esm2022/core/animation/opacity.mjs +0 -13
- package/esm2022/core/animation/public-api.mjs +0 -9
- package/esm2022/core/animation/slide.mjs +0 -17
- package/esm2022/core/config/config.mjs +0 -3
- package/esm2022/core/config/config.service.mjs +0 -54
- package/esm2022/core/config/index.mjs +0 -2
- package/esm2022/core/config/public-api.mjs +0 -3
- package/esm2022/core/functions/chunk.mjs +0 -25
- package/esm2022/core/functions/clone-deep.mjs +0 -28
- package/esm2022/core/functions/convert.mjs +0 -230
- package/esm2022/core/functions/csspx.mjs +0 -17
- package/esm2022/core/functions/date.mjs +0 -223
- package/esm2022/core/functions/drop.mjs +0 -20
- package/esm2022/core/functions/flex.mjs +0 -25
- package/esm2022/core/functions/group-by.mjs +0 -14
- package/esm2022/core/functions/guid.mjs +0 -11
- package/esm2022/core/functions/has-in.mjs +0 -8
- package/esm2022/core/functions/order-by.mjs +0 -56
- package/esm2022/core/functions/parent-path.mjs +0 -27
- package/esm2022/core/functions/property.mjs +0 -20
- package/esm2022/core/functions/public-api.mjs +0 -16
- package/esm2022/core/functions/remove.mjs +0 -19
- package/esm2022/core/functions/resize.mjs +0 -22
- package/esm2022/core/interfaces/data.type.mjs +0 -164
- package/esm2022/core/interfaces/identify.type.mjs +0 -7
- package/esm2022/core/interfaces/index.mjs +0 -2
- package/esm2022/core/interfaces/layout.type.mjs +0 -2
- package/esm2022/core/interfaces/public-api.mjs +0 -5
- package/esm2022/core/interfaces/result-list.type.mjs +0 -2
- package/esm2022/core/ng-nest-ui-core.mjs +0 -5
- package/esm2022/core/public-api.mjs +0 -8
- package/esm2022/core/services/http.service.mjs +0 -58
- package/esm2022/core/services/preloading-strategy.service.mjs +0 -24
- package/esm2022/core/services/public-api.mjs +0 -6
- package/esm2022/core/services/repository.service.mjs +0 -29
- package/esm2022/core/services/reuse-strategy.service.mjs +0 -47
- package/esm2022/core/services/storage.service.mjs +0 -75
- package/esm2022/core/theme/index.mjs +0 -2
- package/esm2022/core/theme/public-api.mjs +0 -3
- package/esm2022/core/theme/theme.mjs +0 -89
- package/esm2022/core/theme/theme.service.mjs +0 -270
- package/esm2022/core/util/animation.mjs +0 -26
- package/esm2022/core/util/camel-to-kebab.mjs +0 -16
- package/esm2022/core/util/check.mjs +0 -15
- package/esm2022/core/util/computed-style.mjs +0 -20
- package/esm2022/core/util/host.mjs +0 -14
- package/esm2022/core/util/html.mjs +0 -12
- package/esm2022/core/util/index.mjs +0 -2
- package/esm2022/core/util/kebab-to-camel.mjs +0 -16
- package/esm2022/core/util/log.mjs +0 -15
- package/esm2022/core/util/option.mjs +0 -14
- package/esm2022/core/util/public-api.mjs +0 -11
- package/esm2022/core/util/sleep.mjs +0 -8
- package/esm2022/crumb/crumb.component.mjs +0 -25
- package/esm2022/crumb/crumb.module.mjs +0 -16
- package/esm2022/crumb/crumb.property.mjs +0 -45
- package/esm2022/crumb/ng-nest-ui-crumb.mjs +0 -5
- package/esm2022/crumb/public-api.mjs +0 -4
- package/esm2022/date-picker/date-picker-portal.component.mjs +0 -196
- package/esm2022/date-picker/date-picker.component.mjs +0 -320
- package/esm2022/date-picker/date-picker.module.mjs +0 -17
- package/esm2022/date-picker/date-picker.property.mjs +0 -770
- package/esm2022/date-picker/date-quarter.pipe.mjs +0 -19
- package/esm2022/date-picker/date-range-portal.component.mjs +0 -349
- package/esm2022/date-picker/date-range.component.mjs +0 -432
- package/esm2022/date-picker/ng-nest-ui-date-picker.mjs +0 -5
- package/esm2022/date-picker/picker-date.component.mjs +0 -334
- package/esm2022/date-picker/picker-month.component.mjs +0 -232
- package/esm2022/date-picker/picker-quarter.component.mjs +0 -237
- package/esm2022/date-picker/picker-year.component.mjs +0 -233
- package/esm2022/date-picker/public-api.mjs +0 -12
- package/esm2022/description/description-item.component.mjs +0 -24
- package/esm2022/description/description.component.mjs +0 -48
- package/esm2022/description/description.module.mjs +0 -17
- package/esm2022/description/description.property.mjs +0 -219
- package/esm2022/description/ng-nest-ui-description.mjs +0 -5
- package/esm2022/description/public-api.mjs +0 -5
- package/esm2022/dialog/dialog-container.component.mjs +0 -29
- package/esm2022/dialog/dialog-portal.component.mjs +0 -97
- package/esm2022/dialog/dialog-portal.directives.mjs +0 -119
- package/esm2022/dialog/dialog-ref.mjs +0 -100
- package/esm2022/dialog/dialog.component.mjs +0 -282
- package/esm2022/dialog/dialog.module.mjs +0 -50
- package/esm2022/dialog/dialog.property.mjs +0 -207
- package/esm2022/dialog/dialog.service.mjs +0 -122
- package/esm2022/dialog/ng-nest-ui-dialog.mjs +0 -5
- package/esm2022/dialog/public-api.mjs +0 -9
- package/esm2022/doc/doc.component.mjs +0 -18
- package/esm2022/doc/doc.module.mjs +0 -16
- package/esm2022/doc/doc.property.mjs +0 -7
- package/esm2022/doc/ng-nest-ui-doc.mjs +0 -5
- package/esm2022/doc/public-api.mjs +0 -4
- package/esm2022/drag/drag.directive.mjs +0 -57
- package/esm2022/drag/drag.module.mjs +0 -16
- package/esm2022/drag/drag.property.mjs +0 -25
- package/esm2022/drag/ng-nest-ui-drag.mjs +0 -5
- package/esm2022/drag/public-api.mjs +0 -4
- package/esm2022/drawer/drawer-container.component.mjs +0 -29
- package/esm2022/drawer/drawer-portal.component.mjs +0 -50
- package/esm2022/drawer/drawer-portal.directives.mjs +0 -58
- package/esm2022/drawer/drawer-ref.mjs +0 -17
- package/esm2022/drawer/drawer.component.mjs +0 -95
- package/esm2022/drawer/drawer.module.mjs +0 -38
- package/esm2022/drawer/drawer.property.mjs +0 -84
- package/esm2022/drawer/drawer.service.mjs +0 -65
- package/esm2022/drawer/ng-nest-ui-drawer.mjs +0 -5
- package/esm2022/drawer/public-api.mjs +0 -10
- package/esm2022/dropdown/dropdown-portal.component.mjs +0 -204
- package/esm2022/dropdown/dropdown.component.mjs +0 -179
- package/esm2022/dropdown/dropdown.module.mjs +0 -16
- package/esm2022/dropdown/dropdown.property.mjs +0 -96
- package/esm2022/dropdown/ng-nest-ui-dropdown.mjs +0 -5
- package/esm2022/dropdown/public-api.mjs +0 -5
- package/esm2022/empty/empty.component.mjs +0 -15
- package/esm2022/empty/empty.module.mjs +0 -16
- package/esm2022/empty/empty.property.mjs +0 -54
- package/esm2022/empty/ng-nest-ui-empty.mjs +0 -5
- package/esm2022/empty/public-api.mjs +0 -4
- package/esm2022/examples/examples.component.mjs +0 -18
- package/esm2022/examples/examples.module.mjs +0 -16
- package/esm2022/examples/examples.property.mjs +0 -7
- package/esm2022/examples/ng-nest-ui-examples.mjs +0 -5
- package/esm2022/examples/public-api.mjs +0 -4
- package/esm2022/find/find.component.mjs +0 -331
- package/esm2022/find/find.module.mjs +0 -16
- package/esm2022/find/find.property.mjs +0 -260
- package/esm2022/find/ng-nest-ui-find.mjs +0 -5
- package/esm2022/find/public-api.mjs +0 -4
- package/esm2022/form/control.component.mjs +0 -249
- package/esm2022/form/form.component.mjs +0 -116
- package/esm2022/form/form.module.mjs +0 -17
- package/esm2022/form/form.property.mjs +0 -202
- package/esm2022/form/ng-nest-ui-form.mjs +0 -5
- package/esm2022/form/public-api.mjs +0 -5
- package/esm2022/highlight/highlight.component.mjs +0 -85
- package/esm2022/highlight/highlight.module.mjs +0 -16
- package/esm2022/highlight/highlight.property.mjs +0 -45
- package/esm2022/highlight/highlight.service.mjs +0 -17
- package/esm2022/highlight/ng-nest-ui-highlight.mjs +0 -5
- package/esm2022/highlight/public-api.mjs +0 -5
- package/esm2022/i18n/i18n.directive.mjs +0 -29
- package/esm2022/i18n/i18n.module.mjs +0 -17
- package/esm2022/i18n/i18n.pipe.mjs +0 -28
- package/esm2022/i18n/i18n.property.mjs +0 -9
- package/esm2022/i18n/i18n.service.mjs +0 -57
- package/esm2022/i18n/languages/ar_EG.mjs +0 -169
- package/esm2022/i18n/languages/bg_BG.mjs +0 -172
- package/esm2022/i18n/languages/ca_ES.mjs +0 -172
- package/esm2022/i18n/languages/cs_CZ.mjs +0 -172
- package/esm2022/i18n/languages/da_DK.mjs +0 -172
- package/esm2022/i18n/languages/de_DE.mjs +0 -172
- package/esm2022/i18n/languages/el_GR.mjs +0 -172
- package/esm2022/i18n/languages/en_GB.mjs +0 -181
- package/esm2022/i18n/languages/en_US.mjs +0 -181
- package/esm2022/i18n/languages/es_ES.mjs +0 -172
- package/esm2022/i18n/languages/et_EE.mjs +0 -172
- package/esm2022/i18n/languages/fa_IR.mjs +0 -172
- package/esm2022/i18n/languages/fi_FI.mjs +0 -172
- package/esm2022/i18n/languages/fr_BE.mjs +0 -172
- package/esm2022/i18n/languages/fr_FR.mjs +0 -172
- package/esm2022/i18n/languages/he_IL.mjs +0 -169
- package/esm2022/i18n/languages/hi_IN.mjs +0 -172
- package/esm2022/i18n/languages/hr_HR.mjs +0 -172
- package/esm2022/i18n/languages/hu_HU.mjs +0 -172
- package/esm2022/i18n/languages/hy_AM.mjs +0 -172
- package/esm2022/i18n/languages/id_ID.mjs +0 -172
- package/esm2022/i18n/languages/is_IS.mjs +0 -172
- package/esm2022/i18n/languages/it_IT.mjs +0 -172
- package/esm2022/i18n/languages/ja_JP.mjs +0 -172
- package/esm2022/i18n/languages/ka_GE.mjs +0 -172
- package/esm2022/i18n/languages/kn_IN.mjs +0 -172
- package/esm2022/i18n/languages/ko_KR.mjs +0 -180
- package/esm2022/i18n/languages/ku_IQ.mjs +0 -156
- package/esm2022/i18n/languages/lv_LV.mjs +0 -180
- package/esm2022/i18n/languages/mn_MN.mjs +0 -180
- package/esm2022/i18n/languages/ms_MY.mjs +0 -180
- package/esm2022/i18n/languages/nb_NO.mjs +0 -180
- package/esm2022/i18n/languages/ne_NP.mjs +0 -180
- package/esm2022/i18n/languages/nl_BE.mjs +0 -180
- package/esm2022/i18n/languages/nl_NL.mjs +0 -180
- package/esm2022/i18n/languages/pl_PL.mjs +0 -180
- package/esm2022/i18n/languages/pt_BR.mjs +0 -180
- package/esm2022/i18n/languages/pt_PT.mjs +0 -180
- package/esm2022/i18n/languages/ro_RO.mjs +0 -180
- package/esm2022/i18n/languages/ru_RU.mjs +0 -180
- package/esm2022/i18n/languages/sk_SK.mjs +0 -171
- package/esm2022/i18n/languages/sl_SI.mjs +0 -172
- package/esm2022/i18n/languages/sr_RS.mjs +0 -172
- package/esm2022/i18n/languages/sv_SE.mjs +0 -172
- package/esm2022/i18n/languages/ta_IN.mjs +0 -180
- package/esm2022/i18n/languages/th_TH.mjs +0 -180
- package/esm2022/i18n/languages/tr_TR.mjs +0 -180
- package/esm2022/i18n/languages/uk_UA.mjs +0 -180
- package/esm2022/i18n/languages/vi_VN.mjs +0 -180
- package/esm2022/i18n/languages/zh_CN.mjs +0 -180
- package/esm2022/i18n/languages/zh_TW.mjs +0 -180
- package/esm2022/i18n/ng-nest-ui-i18n.mjs +0 -5
- package/esm2022/i18n/public-api.mjs +0 -57
- package/esm2022/icon/icon.component.mjs +0 -158
- package/esm2022/icon/icon.module.mjs +0 -16
- package/esm2022/icon/icon.property.mjs +0 -65
- package/esm2022/icon/icon.service.mjs +0 -89
- package/esm2022/icon/ng-nest-ui-icon.mjs +0 -5
- package/esm2022/icon/public-api.mjs +0 -5
- package/esm2022/image/image-group.component.mjs +0 -27
- package/esm2022/image/image-preview.component.mjs +0 -135
- package/esm2022/image/image.component.mjs +0 -75
- package/esm2022/image/image.module.mjs +0 -18
- package/esm2022/image/image.property.mjs +0 -196
- package/esm2022/image/ng-nest-ui-image.mjs +0 -5
- package/esm2022/image/public-api.mjs +0 -6
- package/esm2022/index.mjs +0 -106
- package/esm2022/inner/inner.component.mjs +0 -25
- package/esm2022/inner/inner.module.mjs +0 -16
- package/esm2022/inner/inner.property.mjs +0 -30
- package/esm2022/inner/ng-nest-ui-inner.mjs +0 -5
- package/esm2022/inner/public-api.mjs +0 -4
- package/esm2022/input/input-group.component.mjs +0 -16
- package/esm2022/input/input.component.mjs +0 -224
- package/esm2022/input/input.module.mjs +0 -17
- package/esm2022/input/input.property.mjs +0 -281
- package/esm2022/input/ng-nest-ui-input.mjs +0 -5
- package/esm2022/input/public-api.mjs +0 -5
- package/esm2022/input-number/input-number.component.mjs +0 -131
- package/esm2022/input-number/input-number.module.mjs +0 -16
- package/esm2022/input-number/input-number.property.mjs +0 -146
- package/esm2022/input-number/ng-nest-ui-input-number.mjs +0 -5
- package/esm2022/input-number/public-api.mjs +0 -4
- package/esm2022/keyword/keyword.directive.mjs +0 -61
- package/esm2022/keyword/keyword.module.mjs +0 -16
- package/esm2022/keyword/keyword.property.mjs +0 -45
- package/esm2022/keyword/ng-nest-ui-keyword.mjs +0 -5
- package/esm2022/keyword/public-api.mjs +0 -4
- package/esm2022/layout/col.component.mjs +0 -68
- package/esm2022/layout/layout.module.mjs +0 -17
- package/esm2022/layout/layout.property.mjs +0 -150
- package/esm2022/layout/ng-nest-ui-layout.mjs +0 -5
- package/esm2022/layout/public-api.mjs +0 -5
- package/esm2022/layout/row.component.mjs +0 -54
- package/esm2022/link/link.component.mjs +0 -28
- package/esm2022/link/link.module.mjs +0 -16
- package/esm2022/link/link.property.mjs +0 -109
- package/esm2022/link/ng-nest-ui-link.mjs +0 -5
- package/esm2022/link/public-api.mjs +0 -4
- package/esm2022/list/list-drop-group.directive.mjs +0 -39
- package/esm2022/list/list-option.component.mjs +0 -37
- package/esm2022/list/list.component.mjs +0 -409
- package/esm2022/list/list.module.mjs +0 -18
- package/esm2022/list/list.property.mjs +0 -273
- package/esm2022/list/ng-nest-ui-list.mjs +0 -5
- package/esm2022/list/public-api.mjs +0 -6
- package/esm2022/loading/loading.component.mjs +0 -77
- package/esm2022/loading/loading.module.mjs +0 -16
- package/esm2022/loading/loading.property.mjs +0 -70
- package/esm2022/loading/ng-nest-ui-loading.mjs +0 -5
- package/esm2022/loading/public-api.mjs +0 -4
- package/esm2022/menu/menu-node.component.mjs +0 -36
- package/esm2022/menu/menu.component.mjs +0 -171
- package/esm2022/menu/menu.module.mjs +0 -17
- package/esm2022/menu/menu.property.mjs +0 -107
- package/esm2022/menu/ng-nest-ui-menu.mjs +0 -5
- package/esm2022/menu/public-api.mjs +0 -5
- package/esm2022/message/message-ref.mjs +0 -13
- package/esm2022/message/message.component.mjs +0 -40
- package/esm2022/message/message.module.mjs +0 -15
- package/esm2022/message/message.property.mjs +0 -9
- package/esm2022/message/message.service.mjs +0 -146
- package/esm2022/message/ng-nest-ui-message.mjs +0 -5
- package/esm2022/message/public-api.mjs +0 -6
- package/esm2022/message-box/message-box.component.mjs +0 -122
- package/esm2022/message-box/message-box.module.mjs +0 -15
- package/esm2022/message-box/message-box.property.mjs +0 -8
- package/esm2022/message-box/message-box.service.mjs +0 -97
- package/esm2022/message-box/ng-nest-ui-message-box.mjs +0 -5
- package/esm2022/message-box/public-api.mjs +0 -5
- package/esm2022/ng-nest-ui.mjs +0 -5
- package/esm2022/notification/ng-nest-ui-notification.mjs +0 -5
- package/esm2022/notification/notification.component.mjs +0 -42
- package/esm2022/notification/notification.module.mjs +0 -15
- package/esm2022/notification/notification.property.mjs +0 -8
- package/esm2022/notification/notification.service.mjs +0 -107
- package/esm2022/notification/public-api.mjs +0 -5
- package/esm2022/outlet/ng-nest-ui-outlet.mjs +0 -5
- package/esm2022/outlet/outlet.directive.mjs +0 -72
- package/esm2022/outlet/outlet.module.mjs +0 -16
- package/esm2022/outlet/outlet.property.mjs +0 -7
- package/esm2022/outlet/public-api.mjs +0 -4
- package/esm2022/page-header/ng-nest-ui-page-header.mjs +0 -5
- package/esm2022/page-header/page-header.component.mjs +0 -24
- package/esm2022/page-header/page-header.module.mjs +0 -16
- package/esm2022/page-header/page-header.property.mjs +0 -50
- package/esm2022/page-header/public-api.mjs +0 -4
- package/esm2022/pagination/ng-nest-ui-pagination.mjs +0 -5
- package/esm2022/pagination/pagination.component.mjs +0 -205
- package/esm2022/pagination/pagination.module.mjs +0 -16
- package/esm2022/pagination/pagination.property.mjs +0 -149
- package/esm2022/pagination/public-api.mjs +0 -4
- package/esm2022/pattern/ng-nest-ui-pattern.mjs +0 -5
- package/esm2022/pattern/pattern.component.mjs +0 -18
- package/esm2022/pattern/pattern.module.mjs +0 -16
- package/esm2022/pattern/pattern.property.mjs +0 -7
- package/esm2022/pattern/public-api.mjs +0 -4
- package/esm2022/popconfirm/ng-nest-ui-popconfirm.mjs +0 -5
- package/esm2022/popconfirm/popconfirm.component.mjs +0 -59
- package/esm2022/popconfirm/popconfirm.module.mjs +0 -16
- package/esm2022/popconfirm/popconfirm.property.mjs +0 -100
- package/esm2022/popconfirm/public-api.mjs +0 -4
- package/esm2022/popover/ng-nest-ui-popover.mjs +0 -5
- package/esm2022/popover/popover-portal.component.mjs +0 -52
- package/esm2022/popover/popover.directive.mjs +0 -186
- package/esm2022/popover/popover.module.mjs +0 -16
- package/esm2022/popover/popover.property.mjs +0 -101
- package/esm2022/popover/public-api.mjs +0 -5
- package/esm2022/portal/ng-nest-ui-portal.mjs +0 -5
- package/esm2022/portal/portal.module.mjs +0 -16
- package/esm2022/portal/portal.property.mjs +0 -24
- package/esm2022/portal/portal.service.mjs +0 -190
- package/esm2022/portal/public-api.mjs +0 -4
- package/esm2022/progress/ng-nest-ui-progress.mjs +0 -5
- package/esm2022/progress/progress.component.mjs +0 -224
- package/esm2022/progress/progress.module.mjs +0 -16
- package/esm2022/progress/progress.property.mjs +0 -110
- package/esm2022/progress/public-api.mjs +0 -4
- package/esm2022/radio/ng-nest-ui-radio.mjs +0 -5
- package/esm2022/radio/public-api.mjs +0 -4
- package/esm2022/radio/radio.component.mjs +0 -77
- package/esm2022/radio/radio.module.mjs +0 -16
- package/esm2022/radio/radio.property.mjs +0 -121
- package/esm2022/rate/ng-nest-ui-rate.mjs +0 -5
- package/esm2022/rate/public-api.mjs +0 -4
- package/esm2022/rate/rate.component.mjs +0 -99
- package/esm2022/rate/rate.module.mjs +0 -16
- package/esm2022/rate/rate.property.mjs +0 -86
- package/esm2022/resizable/ng-nest-ui-resizable.mjs +0 -5
- package/esm2022/resizable/public-api.mjs +0 -4
- package/esm2022/resizable/resizable.directive.mjs +0 -264
- package/esm2022/resizable/resizable.module.mjs +0 -16
- package/esm2022/resizable/resizable.property.mjs +0 -64
- package/esm2022/result/ng-nest-ui-result.mjs +0 -5
- package/esm2022/result/public-api.mjs +0 -4
- package/esm2022/result/result.component.mjs +0 -25
- package/esm2022/result/result.module.mjs +0 -16
- package/esm2022/result/result.property.mjs +0 -45
- package/esm2022/ripple/ng-nest-ui-ripple.mjs +0 -5
- package/esm2022/ripple/public-api.mjs +0 -4
- package/esm2022/ripple/ripple.directive.mjs +0 -94
- package/esm2022/ripple/ripple.module.mjs +0 -16
- package/esm2022/ripple/ripple.property.mjs +0 -40
- package/esm2022/select/ng-nest-ui-select.mjs +0 -5
- package/esm2022/select/public-api.mjs +0 -5
- package/esm2022/select/select-portal.component.mjs +0 -103
- package/esm2022/select/select.component.mjs +0 -687
- package/esm2022/select/select.module.mjs +0 -16
- package/esm2022/select/select.property.mjs +0 -238
- package/esm2022/skeleton/ng-nest-ui-skeleton.mjs +0 -5
- package/esm2022/skeleton/public-api.mjs +0 -4
- package/esm2022/skeleton/skeleton.component.mjs +0 -25
- package/esm2022/skeleton/skeleton.module.mjs +0 -16
- package/esm2022/skeleton/skeleton.property.mjs +0 -55
- package/esm2022/slider/ng-nest-ui-slider.mjs +0 -5
- package/esm2022/slider/public-api.mjs +0 -4
- package/esm2022/slider/slider.component.mjs +0 -222
- package/esm2022/slider/slider.module.mjs +0 -17
- package/esm2022/slider/slider.property.mjs +0 -102
- package/esm2022/slider-select/ng-nest-ui-slider-select.mjs +0 -5
- package/esm2022/slider-select/public-api.mjs +0 -4
- package/esm2022/slider-select/slider-select.component.mjs +0 -368
- package/esm2022/slider-select/slider-select.module.mjs +0 -16
- package/esm2022/slider-select/slider-select.property.mjs +0 -136
- package/esm2022/statistic/countdown.component.mjs +0 -70
- package/esm2022/statistic/ng-nest-ui-statistic.mjs +0 -5
- package/esm2022/statistic/public-api.mjs +0 -5
- package/esm2022/statistic/statistic.component.mjs +0 -34
- package/esm2022/statistic/statistic.module.mjs +0 -17
- package/esm2022/statistic/statistic.property.mjs +0 -106
- package/esm2022/steps/ng-nest-ui-steps.mjs +0 -5
- package/esm2022/steps/public-api.mjs +0 -4
- package/esm2022/steps/steps.component.mjs +0 -49
- package/esm2022/steps/steps.module.mjs +0 -16
- package/esm2022/steps/steps.property.mjs +0 -60
- package/esm2022/switch/ng-nest-ui-switch.mjs +0 -5
- package/esm2022/switch/public-api.mjs +0 -4
- package/esm2022/switch/switch.component.mjs +0 -37
- package/esm2022/switch/switch.module.mjs +0 -16
- package/esm2022/switch/switch.property.mjs +0 -91
- package/esm2022/table/ng-nest-ui-table.mjs +0 -5
- package/esm2022/table/public-api.mjs +0 -7
- package/esm2022/table/table-body.component.mjs +0 -241
- package/esm2022/table/table-foot.component.mjs +0 -29
- package/esm2022/table/table-head.component.mjs +0 -169
- package/esm2022/table/table.component.mjs +0 -372
- package/esm2022/table/table.module.mjs +0 -19
- package/esm2022/table/table.property.mjs +0 -629
- package/esm2022/tabs/ng-nest-ui-tabs.mjs +0 -5
- package/esm2022/tabs/public-api.mjs +0 -7
- package/esm2022/tabs/tab-content.component.mjs +0 -21
- package/esm2022/tabs/tab-link.directive.mjs +0 -46
- package/esm2022/tabs/tab.component.mjs +0 -19
- package/esm2022/tabs/tabs.component.mjs +0 -143
- package/esm2022/tabs/tabs.module.mjs +0 -18
- package/esm2022/tabs/tabs.property.mjs +0 -141
- package/esm2022/tag/ng-nest-ui-tag.mjs +0 -5
- package/esm2022/tag/public-api.mjs +0 -4
- package/esm2022/tag/tag.component.mjs +0 -51
- package/esm2022/tag/tag.module.mjs +0 -16
- package/esm2022/tag/tag.property.mjs +0 -80
- package/esm2022/text-retract/ng-nest-ui-text-retract.mjs +0 -5
- package/esm2022/text-retract/public-api.mjs +0 -4
- package/esm2022/text-retract/text-retract.component.mjs +0 -42
- package/esm2022/text-retract/text-retract.module.mjs +0 -16
- package/esm2022/text-retract/text-retract.property.mjs +0 -35
- package/esm2022/textarea/ng-nest-ui-textarea.mjs +0 -5
- package/esm2022/textarea/public-api.mjs +0 -4
- package/esm2022/textarea/textarea.component.mjs +0 -68
- package/esm2022/textarea/textarea.module.mjs +0 -16
- package/esm2022/textarea/textarea.property.mjs +0 -126
- package/esm2022/theme/ng-nest-ui-theme.mjs +0 -5
- package/esm2022/theme/public-api.mjs +0 -4
- package/esm2022/theme/theme.component.mjs +0 -179
- package/esm2022/theme/theme.module.mjs +0 -16
- package/esm2022/theme/theme.property.mjs +0 -63
- package/esm2022/time-ago/ng-nest-ui-time-ago.mjs +0 -5
- package/esm2022/time-ago/public-api.mjs +0 -4
- package/esm2022/time-ago/time-ago.module.mjs +0 -16
- package/esm2022/time-ago/time-ago.pipe.mjs +0 -70
- package/esm2022/time-ago/time-ago.property.mjs +0 -7
- package/esm2022/time-picker/ng-nest-ui-time-picker.mjs +0 -5
- package/esm2022/time-picker/public-api.mjs +0 -6
- package/esm2022/time-picker/time-picker-frame.component.mjs +0 -312
- package/esm2022/time-picker/time-picker-portal.component.mjs +0 -78
- package/esm2022/time-picker/time-picker.component.mjs +0 -266
- package/esm2022/time-picker/time-picker.module.mjs +0 -17
- package/esm2022/time-picker/time-picker.property.mjs +0 -198
- package/esm2022/time-range/ng-nest-ui-time-range.mjs +0 -5
- package/esm2022/time-range/public-api.mjs +0 -4
- package/esm2022/time-range/time-range.module.mjs +0 -16
- package/esm2022/time-range/time-range.pipe.mjs +0 -44
- package/esm2022/time-range/time-range.property.mjs +0 -7
- package/esm2022/timeline/ng-nest-ui-timeline.mjs +0 -5
- package/esm2022/timeline/public-api.mjs +0 -4
- package/esm2022/timeline/timeline.component.mjs +0 -45
- package/esm2022/timeline/timeline.module.mjs +0 -16
- package/esm2022/timeline/timeline.property.mjs +0 -50
- package/esm2022/tooltip/ng-nest-ui-tooltip.mjs +0 -5
- package/esm2022/tooltip/public-api.mjs +0 -5
- package/esm2022/tooltip/tooltip-portal.component.mjs +0 -103
- package/esm2022/tooltip/tooltip.directive.mjs +0 -143
- package/esm2022/tooltip/tooltip.module.mjs +0 -16
- package/esm2022/tooltip/tooltip.property.mjs +0 -86
- package/esm2022/transfer/ng-nest-ui-transfer.mjs +0 -5
- package/esm2022/transfer/public-api.mjs +0 -4
- package/esm2022/transfer/transfer.component.mjs +0 -659
- package/esm2022/transfer/transfer.module.mjs +0 -16
- package/esm2022/transfer/transfer.property.mjs +0 -112
- package/esm2022/tree/ng-nest-ui-tree.mjs +0 -5
- package/esm2022/tree/public-api.mjs +0 -5
- package/esm2022/tree/tree-node.component.mjs +0 -297
- package/esm2022/tree/tree.component.mjs +0 -579
- package/esm2022/tree/tree.module.mjs +0 -17
- package/esm2022/tree/tree.property.mjs +0 -337
- package/esm2022/tree/tree.service.mjs +0 -102
- package/esm2022/tree-file/ng-nest-ui-tree-file.mjs +0 -5
- package/esm2022/tree-file/public-api.mjs +0 -4
- package/esm2022/tree-file/tree-file.component.mjs +0 -118
- package/esm2022/tree-file/tree-file.module.mjs +0 -16
- package/esm2022/tree-file/tree-file.property.mjs +0 -90
- package/esm2022/tree-select/ng-nest-ui-tree-select.mjs +0 -5
- package/esm2022/tree-select/public-api.mjs +0 -5
- package/esm2022/tree-select/tree-select-portal.component.mjs +0 -86
- package/esm2022/tree-select/tree-select.component.mjs +0 -659
- package/esm2022/tree-select/tree-select.module.mjs +0 -17
- package/esm2022/tree-select/tree-select.property.mjs +0 -237
- package/esm2022/typography/ng-nest-ui-typography.mjs +0 -5
- package/esm2022/typography/public-api.mjs +0 -4
- package/esm2022/typography/typography.component.mjs +0 -27
- package/esm2022/typography/typography.module.mjs +0 -16
- package/esm2022/typography/typography.property.mjs +0 -34
- package/esm2022/upload/ng-nest-ui-upload.mjs +0 -5
- package/esm2022/upload/public-api.mjs +0 -5
- package/esm2022/upload/upload-portal.component.mjs +0 -196
- package/esm2022/upload/upload.component.mjs +0 -233
- package/esm2022/upload/upload.module.mjs +0 -16
- package/esm2022/upload/upload.property.mjs +0 -118
- package/style/core/base.scss +0 -20
- package/style/core/cdk.scss +0 -72
- package/style/core/portal.scss +0 -5
- package/style/core/var.scss +0 -4
- package/style/mixins/index.scss +0 -9
- package/style/params/layout.scss +0 -73
- package/style/params/primary.scss +0 -208
- package/style/themes/default.scss +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-table.mjs","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/table-head.component.ts","../../../../lib/ng-nest/ui/table/table-head.component.html","../../../../lib/ng-nest/ui/table/table-foot.component.ts","../../../../lib/ng-nest/ui/table/table-foot.component.html","../../../../lib/ng-nest/ui/table/table-body.component.ts","../../../../lib/ng-nest/ui/table/table-body.component.html","../../../../lib/ng-nest/ui/table/table.component.ts","../../../../lib/ng-nest/ui/table/table.component.html","../../../../lib/ng-nest/ui/table/table.module.ts","../../../../lib/ng-nest/ui/table/ng-nest-ui-table.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XPropertyFunction,\r\n XToCssPixelValue,\r\n XToBoolean,\r\n XToNumber,\r\n XToDataConvert\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model, output } from '@angular/core';\r\nimport { XPaginationInputIndexSizeSureType, XPaginationSizeData } from '@ng-nest/ui/pagination';\r\nimport { XSelectNode } from '@ng-nest/ui/select';\r\nimport type {\r\n XNumber,\r\n XSort,\r\n XBoolean,\r\n XData,\r\n XTextAlign,\r\n XSize,\r\n XParentIdentityProperty,\r\n XIdentityProperty,\r\n XTemplate,\r\n XQuery,\r\n XDataArray\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Table\r\n * @selector x-table\r\n * @decorator component\r\n */\r\nexport const XTablePrefix = 'x-table';\r\nconst X_TABLE_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ selector: `${XTablePrefix}-property`, template: '' })\r\nexport class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XData<XTableRow>, XData<XTableRow>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number, XNumber>(this.config?.rowHeight ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n readonly loading = input<boolean, XBoolean>(this.config?.loading ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否显示列头\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(this.config?.showHeader ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 列头显示位置\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly headerPosition = input<XTableHeaderPosition>(this.config?.headerPosition ?? 'top');\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n readonly bodyInnerHTML = input<boolean, XBoolean>(this.config?.bodyInnerHTML ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column header custom template\r\n */\r\n readonly headColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 列头单元格自定义模板,优先级低于列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n readonly headThTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column content custom template\r\n */\r\n readonly bodyColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 单元格的自定义模板,优先级低于列内容自定义模板\r\n * @en_US Custom template of cells\r\n */\r\n readonly bodyTdTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 列头搜索自定义模板\r\n * @en_US Line head search custom template\r\n */\r\n readonly headSearchTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n readonly sortChange = output<XSort[]>();\r\n /**\r\n * @zh_CN 列头 checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly headCheckboxChange = output<XTableHeadCheckbox>();\r\n /**\r\n * @zh_CN body checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly bodyCheckboxChange = output<XTableRow>();\r\n /**\r\n * @zh_CN 允许行点击选中当前行\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(this.config?.allowSelectRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 允许行点击选中 checkbox\r\n * @en_US Allow lines to click checkbox\r\n */\r\n readonly allowCheckRow = input<boolean, XBoolean>(this.config?.allowCheckRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN body 数据高度,只有开启虚拟滚动的时候生效\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(this.config?.itemSize ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN checkbox 列初始选中的数据,列中激活 checkbox\r\n * @en_US Checkbox column initially selected data, checkbox is activated in column\r\n */\r\n readonly checkedRow = input<{ [property: string]: any[] }>({});\r\n /**\r\n * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求\r\n * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up\r\n */\r\n readonly manual = model<boolean>(true);\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 表格页头\r\n * @en_US Table header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n readonly cellConfig = input<XTableCellConfig>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly rowSize = input<XSize>(this.config?.rowSize ?? 'medium');\r\n /**\r\n * @zh_CN 分页器位置\r\n * @en_US Pagination position\r\n */\r\n readonly paginationPosition = input<XPaginationPosition>('bottom-left');\r\n /**\r\n * @zh_CN 隐藏表格外边框\r\n * @en_US Hidden table wrap border\r\n */\r\n readonly hiddenWrapBorder = input<boolean, XBoolean>(this.config?.hiddenWrapBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 隐藏分页器按钮边框\r\n * @en_US Hidden pagination button border\r\n */\r\n readonly hiddenPaginationBorder = input<boolean, XBoolean>(this.config?.hiddenPaginationBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 显示分页器\r\n * @en_US Pagination position\r\n */\r\n readonly showPagination = input<boolean, XBoolean>(this.config?.showPagination ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格\r\n * @en_US Tree table\r\n */\r\n readonly treeTable = input<boolean, XBoolean>(this.config?.treeTable ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(this.config?.expandedAll ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 默认展开的层级,-1 不展开\r\n * @en_US Default expanded level\r\n */\r\n readonly expandedLevel = input<number, XNumber>(this.config?.expandedLevel ?? -1, {\r\n transform: XToNumber\r\n });\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n readonly expanded = input<any[]>([]);\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示数据为空的提示\r\n * @en_US Display a prompt with empty data\r\n */\r\n readonly showEmpty = input<boolean, XBoolean>(this.config?.showEmpty ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 数据为空的提示图片地址或自定义模板\r\n * @en_US Picture address or custom template\r\n */\r\n readonly emptyImg = input<XTemplate | undefined>(this.config?.emptyImg ?? undefined);\r\n /**\r\n * @zh_CN 数据为空的提示内容或自定义模板\r\n * @en_US Content or custom template\r\n */\r\n readonly emptyContent = input<XTemplate | undefined>(this.config?.emptyContent ?? undefined);\r\n /**\r\n * @zh_CN 当前页码\r\n * @en_US Current page number\r\n */\r\n readonly index = model<number>(this.config?.index ?? 1);\r\n /**\r\n * @zh_CN 每页显示条数\r\n * @en_US Number of items displayed per page\r\n */\r\n readonly size = model<number>(this.config?.size ?? 10);\r\n /**\r\n * @zh_CN 总数\r\n * @en_US Total\r\n */\r\n readonly total = model<number>(0);\r\n /**\r\n * @zh_CN 查询条件\r\n * @en_US Query conditions\r\n */\r\n readonly query = model<XQuery>({});\r\n /**\r\n * @zh_CN 最多显示的分页数量\r\n * @en_US The largest number of pages display\r\n */\r\n readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n /**\r\n * @zh_CN 显示首尾页跳转\r\n * @en_US Display the first and last page\r\n */\r\n readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示总条数\r\n * @en_US Display the total\r\n */\r\n readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮间距\r\n * @en_US Button spacing\r\n */\r\n readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 添加背景色\r\n * @en_US Show background\r\n */\r\n readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示分页条数\r\n * @en_US Show size\r\n */\r\n readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分页条数选择框的宽度\r\n * @en_US size with select\r\n */\r\n readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 显示输入分页条数(不能跟下拉选项同时使用)\r\n * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks)\r\n */\r\n readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入分页框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n /**\r\n * @zh_CN 分页条数输入框的宽度\r\n * @en_US size with input\r\n */\r\n readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 分页选择的数据项\r\n * @en_US Paging choose items of data\r\n */\r\n readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n /**\r\n * @zh_CN 禁用整个分页\r\n * @en_US disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框\r\n * @en_US Show size\r\n */\r\n readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 跳转输入框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n /**\r\n * @zh_CN 跳转页的宽度\r\n * @en_US size with\r\n */\r\n readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 总数自定义模板\r\n * @en_US Total template\r\n */\r\n readonly totalTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 简单分页\r\n * @en_US Simple\r\n */\r\n readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 简单分页输入框宽度\r\n * @en_US Simple index with\r\n */\r\n readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '8.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n */\r\n readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n this.config?.inputIndexSizeSureType ?? 'enter'\r\n );\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n /**\r\n * @zh_CN 列头拖动开始事件,返回拖动的列\r\n * @en_US Column Header Drag End Event\r\n */\r\n readonly columnDragStarted = output<XTableColumn>();\r\n /**\r\n * @zh_CN 列头拖动结束事件,返回拖动的列\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDragEnded = output<XTableColumn>();\r\n /**\r\n * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDropListDropped = output<XTableColumn[]>();\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n readonly columnDragWidthStarted = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n readonly columnDragWidthMoved = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n readonly columnDragWidthEnded = output<XTableDragWidthEvent>();\r\n}\r\n\r\n/**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\nexport interface XTableRow extends XParentIdentityProperty<XTableRow> {\r\n /**\r\n * @zh_CN 展开\r\n * @en_US Unfold\r\n */\r\n expanded?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列参数\r\n * @en_US Column parameter\r\n */\r\nexport interface XTableColumn extends XIdentityProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XColumnType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN flex 布局宽度\r\n * @en_US Flex layout width\r\n */\r\n flex?: number;\r\n /**\r\n * @zh_CN 查询字段\r\n * @en_US Query field\r\n */\r\n search?: boolean;\r\n /**\r\n * @zh_CN 排序字段\r\n * @en_US Sort field\r\n */\r\n sort?: boolean;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 操作按钮\r\n * @en_US Operation button\r\n */\r\n action?: boolean;\r\n /**\r\n * @zh_CN type 为 checkbox 时绑定行点击选中事件\r\n * @en_US Bind row click selection event when type is checkbox\r\n */\r\n rowChecked?: boolean;\r\n /**\r\n * @zh_CN type 为 expand 时绑定行点击展开事件\r\n * @en_US Bind row click selection event when type is expand\r\n */\r\n rowExpand?: boolean;\r\n /**\r\n * @zh_CN 文字对齐方式\r\n * @en_US Text alignment\r\n */\r\n textAlign?: XTextAlign;\r\n /**\r\n * @zh_CN 拖动列宽,需要设置列的初始宽度 width\r\n * @en_US Drag the column width, you need to set the initial width of the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列宽\r\n * @en_US Dragging width\r\n */\r\n draggingWidth?: boolean;\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n dragWidthStarted?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n dragWidthMoved?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n dragWidthEnded?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 拖动列\r\n * @en_US Drag the column\r\n */\r\n dragColumn?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列\r\n * @en_US Dragging column\r\n */\r\n dragging?: boolean;\r\n /**\r\n * @zh_CN 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: boolean;\r\n /**\r\n * @zh_CN 头部显示 expand\r\n * @en_US Head shows expand\r\n */\r\n headExpand?: boolean;\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n innerHTML?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列头宽度拖动事件\r\n * @en_US Column header width drag event\r\n */\r\nexport interface XTableDragWidthEvent {\r\n /**\r\n * @zh_CN 拖动的列\r\n * @en_US Dragged column\r\n */\r\n column: XTableColumn;\r\n /**\r\n * @zh_CN 列位置,正在拖动的时候指偏移位置\r\n * @en_US The column position refers to the offset position when dragging\r\n */\r\n position: { x: number; y: number };\r\n}\r\n\r\n/**\r\n * @zh_CN 列头 checkbox 事件数据\r\n * @en_US Column header checkbox event data\r\n */\r\nexport interface XTableHeadCheckbox {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n rows: XTableRow[];\r\n /**\r\n * @zh_CN checkbox 数据\r\n * @en_US Checkbox data\r\n */\r\n checkbox: { [property: string]: boolean };\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\nexport interface XTableCellConfig {\r\n /**\r\n * @zh_CN 列单元格配置\r\n * @en_US Column cell config\r\n */\r\n thead?: XTableCellConfigRule;\r\n /**\r\n * @zh_CN 行单元格配置\r\n * @en_US Row config\r\n */\r\n tbody?: XTableCellConfigRule;\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\nexport interface XTableCellConfigRule {\r\n /**\r\n * @zh_CN grid 布局下定义列宽度\r\n * @en_US Define column width under grid layout\r\n */\r\n gridTemplateColumns?: string;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n cells?: XTableCell[];\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格合并配置\r\n * @en_US Cell merge rules\r\n */\r\nexport interface XTableCell {\r\n /**\r\n * @zh_CN 使用 grid 布局来合并单元格\r\n * @en_US Use grid layout to merge cells\r\n */\r\n gridArea?: string;\r\n /**\r\n * @zh_CN 名称\r\n * @en_US Name\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 对应列的 id\r\n * @en_US The id of the corresponding column\r\n */\r\n id?: string;\r\n /**\r\n * @zh_CN 拖动列宽\r\n * @en_US Drag the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列类型\r\n * @en_US Column type\r\n */\r\nexport type XColumnType = 'label' | 'index' | 'checkbox' | 'expand';\r\n\r\n/**\r\n * @zh_CN 列头显示位置\r\n * @en_US Line head display position\r\n */\r\nexport type XTableHeaderPosition = 'top' | 'bottom' | 'top-bottom';\r\n\r\n/**\r\n * @zh_CN 分页器位置\r\n * @en_US Paging position\r\n */\r\nexport type XPaginationPosition =\r\n | 'top-left'\r\n | 'top-center'\r\n | 'top-right'\r\n | 'bottom-left'\r\n | 'bottom-center'\r\n | 'bottom-right';\r\n\r\n/**\r\n * @zh_CN 模板\r\n * @en_US Template\r\n */\r\nexport type XTableTemplate = { [property: string]: TemplateRef<any> };\r\n\r\n/**\r\n * Table Head\r\n * @selector x-table-head\r\n * @decorator component\r\n */\r\nexport const XTableHeadPrefix = 'x-table-head';\r\n\r\n/**\r\n * Table Head Property\r\n */\r\n@Component({ selector: `${XTableHeadPrefix}-property`, template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n readonly scrollYWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n readonly scrollXWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 显示的位置\r\n * @en_US Display position\r\n */\r\n readonly position = input<string>();\r\n}\r\n\r\n/**\r\n * Table Body\r\n * @selector x-table-body\r\n * @decorator component\r\n */\r\nexport const XTableBodyPrefix = 'x-table-body';\r\n\r\n/**\r\n * Table Body Property\r\n */\r\n@Component({ selector: `${XTableBodyPrefix}-property`, template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XTableRow[]>([]);\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 高度,单位 px。设置为 0 表示行高自适应内容高度。\r\n * @en_US Height in px. set to 0 means that the row height is adaptive to the content height\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 树形表格下的层级\r\n * @en_US The level under the tree table\r\n */\r\n readonly level = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n}\r\n\r\n/**\r\n * Table Foot\r\n * @selector x-table-foot\r\n * @decorator component\r\n */\r\nexport const XTableFootPrefix = 'x-table-foot';\r\n\r\n/**\r\n * Table Foot Property\r\n */\r\n@Component({ selector: `${XTableFootPrefix}-property`, template: '' })\r\nexport class XTableFootProperty extends XProperty {\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell, XTablePrefix } from './table.property';\r\nimport { XIsEmpty, XSort, XNumber, XIsFunction, XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, CdkDragSortEvent, CdkDragStart, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { XDragDirective } from '@ng-nest/ui/drag';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgStyle,\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XDragDirective,\r\n DragDropModule,\r\n XCheckboxComponent,\r\n XOutletDirective,\r\n XIconComponent\r\n ],\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n\r\n thead = viewChild.required<ElementRef<HTMLElement>>('thead');\r\n sort = signal<XSort[]>([]);\r\n sortStr = signal('');\r\n theadStyle = computed(() => {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n return {\r\n ['min-height']: `${this.getRowHeight()}px`\r\n };\r\n });\r\n thClassMap = computed(() => ({\r\n [`${XTablePrefix}-th-${this.table.rowSize()}`]: !XIsEmpty(this.table.rowSize())\r\n }));\r\n\r\n initColumns = computed(() => [...this.columns()]);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.theads.update((x) => {\r\n x.push(this.thead());\r\n return [...x];\r\n });\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getColumnRight(right?: number) {\r\n if (Number(right) >= 0) {\r\n if (Number(this.scrollYWidth()) >= 0) {\r\n return Number(right) + Number(this.scrollYWidth());\r\n }\r\n return Number(right);\r\n }\r\n return '';\r\n }\r\n\r\n getColumnWidth(column: XTableColumn) {\r\n return column.width;\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort())) this.sort.set([]);\r\n let sort = this.sort()!.find((y) => y.field === column.id);\r\n if (sort) {\r\n if (sort.value === 'asc') {\r\n this.sort.set([]);\r\n this.sortStr.set('');\r\n } else {\r\n sort.value = 'asc';\r\n }\r\n } else {\r\n sort = { field: column.id, value: 'desc' };\r\n this.sort.set([sort]);\r\n }\r\n if (!XIsEmpty(this.sort())) this.sortStr.set(`${sort.field} ${sort.value}`);\r\n this.table.checkSort(this.sort());\r\n this.table.sortChange.emit(this.sort());\r\n this.table.resetScroll(false, true);\r\n }\r\n\r\n dragWidthMoved(\r\n position: { x: number; y: number; offsetX: number; offsetY: number },\r\n column: XTableColumn | XTableCell\r\n ) {\r\n if (column.width) {\r\n (column.width as number) += position.offsetX;\r\n if (column.width < 60) column.width = 60;\r\n XIsFunction(column.dragWidthMoved) && column.dragWidthMoved({ position, column });\r\n this.table.columnDragWidthMoved.emit({ position, column });\r\n this.table.detectChanges();\r\n }\r\n }\r\n\r\n dragWidthStarted(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = true;\r\n if (column.width && XIsFunction(column.dragWidthStarted)) {\r\n column.dragWidthStarted({ position, column });\r\n this.table.columnDragWidthStarted.emit({ position, column });\r\n }\r\n }\r\n\r\n dragWidthEnded(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = false;\r\n if (column.width && XIsFunction(column.dragWidthEnded)) {\r\n column.dragWidthEnded({ position, column });\r\n this.table.columnDragWidthEnded.emit({ position, column });\r\n }\r\n }\r\n\r\n dropListDropped(event: CdkDragDrop<XTableColumn[]>) {\r\n const previous = this.initColumns()[event.previousIndex];\r\n const current = this.initColumns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.initColumns(), event.previousIndex, event.currentIndex);\r\n this.table.columnDropListDropped.emit(this.initColumns());\r\n }\r\n\r\n dropListSorted(event: CdkDragSortEvent<XTableColumn[]>) {\r\n const previous = this.columns()[event.previousIndex];\r\n const current = this.columns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.columns(), event.previousIndex, event.currentIndex);\r\n this.table.detectChanges();\r\n }\r\n\r\n dragStarted(_event: CdkDragStart, column: XTableColumn) {\r\n column.dragging = true;\r\n this.table.detectChanges();\r\n this.table.columnDragStarted.emit(column);\r\n }\r\n\r\n dragEnded(column: XTableColumn) {\r\n column.dragging = false;\r\n this.table.detectChanges();\r\n this.table.columnDragEnded.emit(column);\r\n }\r\n}\r\n","<thead\r\n #thead\r\n [ngStyle]=\"theadStyle()\"\r\n [class.x-table-head-top]=\"position() === 'top'\"\r\n [class.x-table-head-bottom]=\"position() === 'bottom'\"\r\n>\r\n @if (cellConfig()) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight()\">\r\n @for (column of cellConfig()!.cells; track column.id) {\r\n <th\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl\"></ng-container>\r\n }\r\n @if (table.headSearchTpl()) {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n }\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n [style.padding-right.px]=\"scrollYWidth()\"\r\n [style.min-width.px]=\"scrollXWidth()\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n @for (column of initColumns(); track column.id) {\r\n <th\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap()\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n @switch (case) {\r\n @case ('search') {\r\n <ng-container *xOutlet=\"table.headSearchTpl()!; context: { $column: column }\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n }\r\n }\r\n </th>\r\n }\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n @if (column.headChecked) {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues()[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues()[column.id + table.indeterminate()]\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!column.headChecked) {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\r\n @case ('index') {\r\n <a\r\n ><ng-container *xOutlet=\"columnTpl()[column.id]; context: { $column: column }\">\r\n <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container></a\r\n >\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl()[column.id]; context: { $column: column }\">\r\n <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container>\r\n @if (column.sort) {\r\n <x-icon\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr() === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr() === column.id + ' asc'\"\r\n ></x-icon>\r\n }\r\n </a>\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\r\n standalone: true,\r\n imports: [XOutletDirective],\r\n templateUrl: './table-foot.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableFootComponent extends XTableFootProperty implements OnInit {\r\n tfoot = viewChild.required<ElementRef<HTMLElement>>('tfoot');\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot.set(this.tfoot());\r\n }\r\n}\r\n","<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n effect,\r\n AfterViewInit,\r\n AfterViewChecked\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { XRemoveNgTag, XResize, XNumber, XStripTags, XParentPath, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XTableComponent } from './table.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XEmptyComponent,\r\n ScrollingModule,\r\n XOutletDirective,\r\n XCheckboxComponent,\r\n XButtonComponent\r\n ],\r\n templateUrl: './table-body.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableBodyComponent extends XTableBodyProperty implements OnInit, AfterViewInit, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n tbody = viewChild.required<ElementRef<HTMLElement>>('tbody');\r\n virtualBody = viewChild(CdkVirtualScrollViewport);\r\n table = inject(XTableComponent, { optional: true })!;\r\n private doc = inject(DOCUMENT);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n private domSanitizer = inject(DomSanitizer);\r\n tbodyStyle = signal<{ [property: string]: any }>({});\r\n\r\n isEmpty = computed(() => this.data().length === 0);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n getItemSize = computed(() =>\r\n this.rowHeight() !== 0 && this.itemSize() > this.rowHeight() ? this.rowHeight() : this.itemSize()\r\n );\r\n docClientHeight = signal(this.doc.documentElement.clientHeight);\r\n headHeight = signal(0);\r\n captionHeight = signal(0);\r\n footHeight = signal(0);\r\n paginationHeight = signal(0);\r\n\r\n bodyHeightSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n let bodyHeight =\r\n this.docPercent() * this.docClientHeight() -\r\n this.captionHeight() -\r\n this.headHeight() -\r\n this.footHeight() -\r\n this.paginationHeight() -\r\n adaptionHeight;\r\n if (bodyHeight < 0) bodyHeight = 0;\r\n return bodyHeight;\r\n }\r\n if (this.scroll()?.y && !this.bodyHeight()) {\r\n return this.scroll()!.y;\r\n }\r\n return this.bodyHeight();\r\n });\r\n\r\n minBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal();\r\n }\r\n return this.minBufferPx();\r\n });\r\n\r\n maxBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal()! * 1.2;\r\n }\r\n return this.maxBufferPx();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n }\r\n });\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n if (this.level() > 0) XRemoveNgTag(this.tbody().nativeElement);\r\n\r\n fromEvent(this.doc.defaultView!, 'resize')\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody.set(this.virtualBody()!);\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let headHeight = 0;\r\n for (let thead of this.table.theads()) {\r\n headHeight += thead.nativeElement.clientHeight;\r\n }\r\n this.headHeight.set(headHeight);\r\n const captionHeight = this.table.caption()?.nativeElement.clientHeight || 0;\r\n this.captionHeight.set(captionHeight);\r\n const footHeight = this.table.tfoot()?.nativeElement.clientHeight || 0;\r\n this.footHeight.set(footHeight);\r\n const paginationHeight = this.table.pagination()?.elementRef.nativeElement.clientHeight || 0;\r\n this.paginationHeight.set(paginationHeight);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody()) {\r\n this.table.scrollContentEle.set(\r\n this.virtualBody()!.elementRef.nativeElement.querySelector('.cdk-virtual-scroll-content-wrapper') as HTMLElement\r\n );\r\n if (this.scroll()?.x) {\r\n this.renderer.setStyle(this.table.scrollContentEle()!, 'width', `${this.scroll()?.x}px`);\r\n }\r\n XResize(this.table.table().nativeElement, this.table.scrollContentEle()!)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setScroll();\r\n });\r\n }\r\n if (this.table.scrollContentEle()) {\r\n fromEvent(this.virtualBody()!.elementRef.nativeElement, 'scroll')\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n const ele = x.srcElement as HTMLElement;\r\n this.table.scrollTop.set(ele.scrollTop);\r\n this.table.scrollLeft.set(ele.scrollLeft);\r\n if (ele.scrollLeft >= 0 && this.table.theads().length > 0) {\r\n for (let thead of this.table.theads()) {\r\n thead.nativeElement.scrollLeft = this.table.scrollLeft();\r\n }\r\n }\r\n this.table.scrollLeftMax.set(ele.scrollLeft + ele.clientWidth === ele.scrollWidth);\r\n });\r\n }\r\n }\r\n\r\n setScroll() {\r\n if (!this.virtualBody()) return;\r\n const ele = this.virtualBody()!.elementRef.nativeElement;\r\n const hasY = ele.scrollHeight > this.bodyHeightSignal()!;\r\n const hasX = this.table.scrollContentEle()!.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY() && hasY) {\r\n this.table.hasScrollY.set(true);\r\n this.table.scrollYWidth.set(ele.offsetWidth - ele.clientWidth);\r\n } else if (this.table.hasScrollY() && !hasY) {\r\n this.table.hasScrollY.set(false);\r\n this.table.scrollYWidth.set(0);\r\n }\r\n\r\n if (!this.table.hasScrollX() && hasX) {\r\n this.table.hasScrollX.set(true);\r\n this.table.scrollXHeight.set(ele.offsetHeight - ele.clientHeight);\r\n } else if (this.table.hasScrollX() && !hasX) {\r\n this.table.hasScrollX.set(false);\r\n this.table.scrollXHeight.set(0);\r\n this.table.scrollXWidth.set(null);\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth.set(ele.offsetWidth + ele.scrollWidth - ele.clientWidth);\r\n }\r\n\r\n this.virtualBody()!.checkViewportSize();\r\n\r\n // this.table.cdr.detectChanges();\r\n }\r\n\r\n setStyle() {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n this.tbodyStyle.set({\r\n height: `${height}px`\r\n });\r\n }\r\n\r\n setDomSanitizer(str: string) {\r\n return this.domSanitizer.bypassSecurityTrustHtml(str);\r\n }\r\n\r\n getIndex(index: number, item: XTableRow) {\r\n if (!isNaN(index)) return index;\r\n return this.data().indexOf(item);\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getTitle(row: XTableRow, column: XTableCell | any) {\r\n let it = row[column.id as string];\r\n return it ? XStripTags(it) : '';\r\n }\r\n\r\n onRowClick(event: Event, row: XTableRow) {\r\n if (row.disabled) return;\r\n if (this.table.allowCheckRow() && this.table.rowChecked()) {\r\n if (!XParentPath(event.target as HTMLElement).includes('x-checkbox')) {\r\n row[this.table.rowChecked()!.id] = !row[this.table.rowChecked()!.id];\r\n this.table.bodyChecked(row[this.table.rowChecked()!.id], this.table.rowChecked()!, row);\r\n }\r\n }\r\n this.activatedRow.set(row);\r\n this.rowClick.emit(row);\r\n }\r\n\r\n onExpanded(_event: Event, node: XTableRow) {\r\n node.expanded = !node.expanded;\r\n // this.cdr.detectChanges();\r\n }\r\n\r\n trackByItem(_index: number, item: XTableRow | XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data(); let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"onRowClick($event, row)\"\r\n >\r\n <!-- rowHeight 为 0 的时候,index 下标获取不到 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"onRowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns()\"\r\n [itemSize]=\"table.itemSize()\"\r\n [rowHeight]=\"table.rowHeight()\"\r\n [columnTpl]=\"table.bodyColumnTpl()\"\r\n [allowSelectRow]=\"table.allowSelectRow()\"\r\n [rowClass]=\"table.rowClass()\"\r\n [cellConfig]=\"table.cellConfig()?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass() ? {} : rowClass()!(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (table.isExpandColumn(column)) {\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n @if ((table.bodyInnerHTML() && column.innerHTML !== false) || column.innerHTML) {\r\n <div [innerHTML]=\"setDomSanitizer(row[column.id])\" [style.text-align]=\"column.textAlign\"></div>\r\n } @else {\r\n <div [style.text-align]=\"column.textAlign\">{{ row[column.id] }}</div>\r\n }\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnDestroy,\r\n computed,\r\n signal,\r\n viewChild,\r\n inject,\r\n viewChildren,\r\n AfterViewChecked\r\n} from '@angular/core';\r\nimport {\r\n XTablePrefix,\r\n XTableProperty,\r\n XTableColumn,\r\n XTableRow,\r\n XTableCell,\r\n XTableCellConfigRule\r\n} from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XSort, XIsUndefined, XIsArray } from '@ng-nest/ui/core';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { XPaginationComponent } from '@ng-nest/ui/pagination';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { NgClass } from '@angular/common';\r\nimport { XLoadingComponent } from '@ng-nest/ui/loading';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n XOutletDirective,\r\n XLoadingComponent,\r\n XTableHeadComponent,\r\n XTableFootComponent,\r\n XTableBodyComponent,\r\n XPaginationComponent\r\n ],\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableComponent extends XTableProperty implements OnInit, OnDestroy, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n unSubject = new Subject<void>();\r\n\r\n classMap = computed(() => ({ [`${XTablePrefix}-row-size-${this.rowSize()}`]: !XIsEmpty(this.rowSize()) }));\r\n theads = signal<ElementRef<HTMLElement>[]>([]);\r\n tfoot = signal<ElementRef<HTMLElement> | null>(null);\r\n virtualBody = signal<CdkVirtualScrollViewport | null>(null);\r\n theadsChange: (() => void)[] = [];\r\n bodyChange!: () => void;\r\n scrollContentEle = signal<HTMLElement | null>(null);\r\n hasScrollY = signal(false);\r\n scrollYWidth = signal(0);\r\n hasScrollX = signal(false);\r\n scrollXHeight = signal(0);\r\n scrollXWidth = signal<number | null>(null);\r\n scrollLeft = signal(0);\r\n scrollLeftMax = signal(false);\r\n scrollTop = signal(0);\r\n rowChecked = signal<XTableColumn | null>(null);\r\n headCheckboxList = signal<XTableColumn[]>([]);\r\n rowExpand = signal<XTableColumn | null>(null);\r\n headExpandList = signal<XTableColumn[]>([]);\r\n dataIsFunc = signal(false);\r\n getting = signal(false);\r\n tableData = signal<XTableRow[]>([]);\r\n treeTableData = signal<XTableRow[]>([]);\r\n checkedValues = signal<{ [prop: string]: boolean }>({});\r\n indeterminate = signal('$$indeterminate');\r\n table = viewChild.required<ElementRef<HTMLElement>>('table');\r\n caption = viewChild<ElementRef<HTMLElement>>('caption');\r\n pagination = viewChild<XPaginationComponent>('pagination');\r\n stickyTopRightEle = viewChild<ElementRef<HTMLElement>>('stickyTopRightEle');\r\n stickyBottomRightEle = viewChild<ElementRef<HTMLElement>>('stickyBottomRightEle');\r\n headCom = viewChildren<XTableHeadComponent>(XTableHeadComponent);\r\n bodyCom = viewChildren<XTableBodyComponent>(XTableBodyComponent);\r\n footCom = viewChild<XTableFootComponent>(XTableFootComponent);\r\n\r\n getScrollLeft = computed(() => this.scrollLeft() > 0);\r\n getScrollTop = computed(() => this.scrollTop() > 0);\r\n getRowHeight = computed(() => (this.rowHeight() === 0 ? '' : this.rowHeight()));\r\n getStickyTopScrollTop = computed(() => (this.caption() ? this.caption()!.nativeElement.offsetHeight : 0));\r\n getStickyBottomScrollTop = computed(() => {\r\n let top = 0;\r\n if (this.footer() && this.tfoot()) {\r\n top += this.tfoot()!.nativeElement.clientHeight + 1;\r\n }\r\n return top;\r\n });\r\n getStickyTopRightEleHeight = computed(() => {\r\n if (this.stickyTopRightEle()) {\r\n return this.stickyTopRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n getStickyBottomRightEleHeight = computed(() => {\r\n if (this.stickyBottomRightEle()) {\r\n return this.stickyBottomRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n hasStickyTopRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'top' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n hasStickyTopRightSearch = computed(() => !!this.headSearchTpl());\r\n\r\n hasStickyBottomRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'bottom' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n\r\n cellConfigSignal = computed(() => {\r\n const cellConfig = this.cellConfig();\r\n if (!cellConfig) return;\r\n const setRule = (rule?: XTableCellConfigRule) => {\r\n if (!rule) return;\r\n let gridTemplateColumns = '',\r\n cells = [];\r\n if (!rule.gridTemplateColumns) {\r\n gridTemplateColumns = `${this.columns()\r\n .map((x) => {\r\n if (x.width) return x.width;\r\n if (x.flex) return `${x.flex}fr`;\r\n return '1fr';\r\n })\r\n .join(' ')}`;\r\n }\r\n if (!rule.cells) return;\r\n cells = rule.cells.map((y) => {\r\n const col = this.columns().find((z) => z.id === y.id);\r\n if (col) {\r\n return { ...col, ...y } as XTableCell;\r\n }\r\n return y;\r\n });\r\n return { gridTemplateColumns, cells };\r\n };\r\n\r\n return { thead: setRule(cellConfig.thead), tbody: setRule(cellConfig.tbody) };\r\n });\r\n\r\n tbodyHeight = signal(0);\r\n tbodyScrollHeight = signal(0);\r\n\r\n ngOnInit() {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n this.setPaginationPosition();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll } = simples;\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(data, checkedRow) && this.setData();\r\n if (XIsChange(columns)) {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.bodyCom().length > 0) {\r\n const first = this.bodyCom()[0].tbody().nativeElement;\r\n this.tbodyHeight.set(first.clientHeight);\r\n this.tbodyScrollHeight.set(first.scrollHeight);\r\n // let trs = first.tbody().nativeElement.querySelectorAll('tr');\r\n // let i = 0;\r\n // let h = 0;\r\n // while (i < trs.length) {\r\n // h += trs[i].clientHeight;\r\n // }\r\n // this.trsHeight.set(h);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setPaginationPosition() {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition()}`);\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return this.getStickyLeft(column) || this.getStickyRight(column);\r\n }\r\n\r\n getStickyLeft(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getStickyLeftLast(column: XTableColumn | XTableCell) {\r\n let lefts = this.columns().filter((x) => Number(x.left) >= 0);\r\n if (lefts.length === 0) return false;\r\n return lefts[lefts.length - 1].id === column.id;\r\n }\r\n\r\n getStickyRight(column: XTableColumn | XTableCell) {\r\n return Number(column.right) >= 0;\r\n }\r\n\r\n getStickyRightFirst(column: XTableColumn | XTableCell) {\r\n let rights = this.columns().filter((x) => Number(x.right) >= 0);\r\n if (rights.length === 0) return false;\r\n return rights[0].id === column.id;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (this.index() - 1) * this.size() + index + 1;\r\n }\r\n\r\n setData() {\r\n const data = this.data();\r\n if (XIsArray<XTableRow>(data)) {\r\n this.dataIsFunc.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.detectChanges();\r\n } else if (data instanceof Function) {\r\n this.dataIsFunc.set(true);\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual()) return;\r\n this.getting.set(true);\r\n this.unSubject.next();\r\n (this.data() as Function)(this.index(), this.size(), this.query())\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x: XResultList<XTableRow>) => {\r\n let [data, total] = [x.list as XTableRow[], x.total!];\r\n if (this.virtualBody()) {\r\n this.virtualBody()!.scrollToIndex(0);\r\n this.virtualBody()!.checkViewportSize();\r\n }\r\n this.getting.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.total.set(total);\r\n });\r\n }\r\n\r\n setManual() {\r\n if (this.dataIsFunc()) this.getDataByFunc();\r\n }\r\n\r\n setRowChecked() {\r\n this.rowChecked.set(this.columns().find((x) => x.rowChecked) as XTableColumn);\r\n this.headCheckboxList.set(this.columns().filter((x) => x.type === 'checkbox' && x.headChecked));\r\n }\r\n\r\n setRowExpand() {\r\n this.rowExpand.set(this.columns().find((x) => x.rowExpand) as XTableColumn);\r\n }\r\n\r\n isExpandColumn(column: XTableColumn) {\r\n let expandColumn = this.columns().find((x) => x.id === column.id && x.type === 'expand');\r\n if (expandColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n pageChange(_type: 'index' | 'size') {\r\n this.dataIsFunc() && this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n change(index: number) {\r\n this.index.set(index);\r\n this.dataIsFunc() && this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n resetScroll(x = true, y = true) {\r\n if (this.hasScrollX() && x) this.virtualBody()?.scrollTo({ left: 0 });\r\n if (this.hasScrollY() && y) this.virtualBody()?.scrollTo({ top: 0 });\r\n }\r\n\r\n setChecked(data: XTableRow[]) {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(data) || !this.checkedRow()) return;\r\n for (let key in this.checkedRow()) {\r\n const arr = this.checkedRow()[key];\r\n for (let item of data as any[]) {\r\n item[key] = arr.includes(item.id);\r\n result = [...result, item];\r\n }\r\n }\r\n if (result.length > 0) data = [...result];\r\n }\r\n\r\n setHeadCheckboxList(data: XTableRow[]) {\r\n if (XIsEmpty(data) || !this.headCheckboxList()) return;\r\n for (let column of this.headCheckboxList()) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n setExpand(data: XTableRow[]) {\r\n const getChildren = (node: XTableRow, level: number) => {\r\n node.level = level;\r\n node.expanded = this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id);\r\n if (XIsUndefined(node.children)) node.children = data.filter((y) => y.pid === node.id);\r\n if (XIsUndefined(node.leaf)) node.leaf = (node.children?.length as number) > 0;\r\n if (node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeTableData.set(\r\n data\r\n .filter((x) => XIsEmpty(x.pid))\r\n .map((x, index) => {\r\n if (XIsUndefined(x.id)) x.id = index + 1;\r\n return getChildren(x, 0);\r\n })\r\n );\r\n }\r\n\r\n setExpandedAll() {\r\n if (!this.treeTable() || this.treeTableData()?.length === 0) return;\r\n const setChildren = (nodes: XTableRow[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.expanded = Boolean(this.expandedAll);\r\n setChildren(x.children as XTableRow[]);\r\n });\r\n };\r\n this.treeTableData.update((x) => {\r\n setChildren(x);\r\n return [...x];\r\n });\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n let query = this.query();\r\n if (typeof query === 'undefined') query = {};\r\n query.sort = sort;\r\n this.query.set(query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.update((z) => {\r\n z.forEach((x) => {\r\n if (!x.disabled) {\r\n x[column.id] = checked;\r\n }\r\n });\r\n return [...z];\r\n });\r\n this.setCheckedValues(column);\r\n this.headCheckboxChange.emit({ rows: this.tableData(), checkbox: this.checkedValues() });\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(_checked: boolean, column: XTableColumn, row: XTableRow) {\r\n this.setCheckedValues(column);\r\n this.bodyCheckboxChange.emit(row);\r\n // this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const notDisabled = this.tableData().filter((x) => !x.disabled);\r\n const count = notDisabled.length;\r\n const checkedLen = notDisabled.filter((x) => x[column.id]).length;\r\n this.checkedValues.update((x) => {\r\n x[column.id] = count === checkedLen && count !== 0;\r\n x[column.id + this.indeterminate()] = checkedLen > 0 && checkedLen < count;\r\n return { ...x };\r\n });\r\n }\r\n\r\n detectChanges() {\r\n this.headCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.bodyCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.footCom()?.cdr.markForCheck();\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap()\"\r\n [x-loading]=\"loading() && getting()\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder()\"\r\n [class.x-table-scroll-left]=\"getScrollLeft()\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax()\"\r\n [class.x-table-scroll-top]=\"getScrollTop()\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth()\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth()\"\r\n [class.x-table-bordered]=\"bordered()\"\r\n [class.x-table-td-adaption-height]=\"rowHeight() == 0\"\r\n [class.x-table-cell-config]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\r\n <x-table-body\r\n [data]=\"treeTable() ? treeTableData() : tableData()\"\r\n [columns]=\"columns()\"\r\n [itemSize]=\"itemSize()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [bodyHeight]=\"bodyHeight()!\"\r\n [columnTpl]=\"bodyColumnTpl()\"\r\n [allowSelectRow]=\"allowSelectRow()\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [minBufferPx]=\"minBufferPx()\"\r\n [maxBufferPx]=\"maxBufferPx()\"\r\n [adaptionHeight]=\"adaptionHeight()!\"\r\n [docPercent]=\"docPercent()\"\r\n [scroll]=\"scroll()\"\r\n [rowClass]=\"rowClass()\"\r\n [cellConfig]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.top.px]=\"getStickyTopScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop() + getStickyTopRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight()) {\r\n <div\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop() + getStickyBottomRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTableComponent } from './table.component';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\n\r\n@NgModule({\r\n exports: [XTableComponent],\r\n imports: [XTableComponent, XTableHeadComponent, XTableBodyComponent, XTableFootComponent]\r\n})\r\nexport class XTableModule {}\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-table.mjs","sources":["../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/table-head.component.ts","../../../../lib/ng-nest/ui/table/table-head.component.html","../../../../lib/ng-nest/ui/table/table-foot.component.ts","../../../../lib/ng-nest/ui/table/table-foot.component.html","../../../../lib/ng-nest/ui/table/table-body.component.ts","../../../../lib/ng-nest/ui/table/table-body.component.html","../../../../lib/ng-nest/ui/table/table.component.ts","../../../../lib/ng-nest/ui/table/table.component.html","../../../../lib/ng-nest/ui/table/table.module.ts","../../../../lib/ng-nest/ui/table/ng-nest-ui-table.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XPropertyFunction,\r\n XToCssPixelValue,\r\n XToBoolean,\r\n XToNumber,\r\n XToDataConvert\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model, output } from '@angular/core';\r\nimport { XPaginationInputIndexSizeSureType, XPaginationSizeData } from '@ng-nest/ui/pagination';\r\nimport { XSelectNode } from '@ng-nest/ui/select';\r\nimport type {\r\n XNumber,\r\n XSort,\r\n XBoolean,\r\n XData,\r\n XTextAlign,\r\n XSize,\r\n XParentIdentityProperty,\r\n XIdentityProperty,\r\n XTemplate,\r\n XQuery,\r\n XDataArray\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Table\r\n * @selector x-table\r\n * @decorator component\r\n */\r\nexport const XTablePrefix = 'x-table';\r\nconst X_TABLE_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ selector: `${XTablePrefix}-property`, template: '' })\r\nexport class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XData<XTableRow>, XData<XTableRow>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number, XNumber>(this.config?.rowHeight ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n readonly loading = input<boolean, XBoolean>(this.config?.loading ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否显示列头\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly showHeader = input<boolean, XBoolean>(this.config?.showHeader ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 列头显示位置\r\n * @en_US Whether to display the column headers\r\n */\r\n readonly headerPosition = input<XTableHeaderPosition>(this.config?.headerPosition ?? 'top');\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n readonly bodyInnerHTML = input<boolean, XBoolean>(this.config?.bodyInnerHTML ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column header custom template\r\n */\r\n readonly headColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 列头单元格自定义模板,优先级低于列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n readonly headThTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版\r\n * @en_US Column content custom template\r\n */\r\n readonly bodyColumnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 单元格的自定义模板,优先级低于列内容自定义模板\r\n * @en_US Custom template of cells\r\n */\r\n readonly bodyTdTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 列头搜索自定义模板\r\n * @en_US Line head search custom template\r\n */\r\n readonly headSearchTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n readonly sortChange = output<XSort[]>();\r\n /**\r\n * @zh_CN 列头 checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly headCheckboxChange = output<XTableHeadCheckbox>();\r\n /**\r\n * @zh_CN body checkbox 事件\r\n * @en_US head checkbox event\r\n */\r\n readonly bodyCheckboxChange = output<XTableRow>();\r\n /**\r\n * @zh_CN 允许行点击选中当前行\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(this.config?.allowSelectRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 允许行点击选中 checkbox\r\n * @en_US Allow lines to click checkbox\r\n */\r\n readonly allowCheckRow = input<boolean, XBoolean>(this.config?.allowCheckRow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN body 数据高度,只有开启虚拟滚动的时候生效\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(this.config?.itemSize ?? 42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | undefined, XNumber>(undefined, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN checkbox 列初始选中的数据,列中激活 checkbox\r\n * @en_US Checkbox column initially selected data, checkbox is activated in column\r\n */\r\n readonly checkedRow = input<{ [property: string]: any[] }>({});\r\n /**\r\n * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求\r\n * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up\r\n */\r\n readonly manual = model<boolean>(true);\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 表格页头\r\n * @en_US Table header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n readonly cellConfig = input<XTableCellConfig>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly rowSize = input<XSize>(this.config?.rowSize ?? 'medium');\r\n /**\r\n * @zh_CN 分页器位置\r\n * @en_US Pagination position\r\n */\r\n readonly paginationPosition = input<XPaginationPosition>('bottom-left');\r\n /**\r\n * @zh_CN 隐藏表格外边框\r\n * @en_US Hidden table wrap border\r\n */\r\n readonly hiddenWrapBorder = input<boolean, XBoolean>(this.config?.hiddenWrapBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @deprecated useless\r\n * @zh_CN 隐藏分页器按钮边框\r\n * @en_US Hidden pagination button border\r\n */\r\n readonly hiddenPaginationBorder = input<boolean, XBoolean>(this.config?.hiddenPaginationBorder ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 显示分页器\r\n * @en_US Pagination position\r\n */\r\n readonly showPagination = input<boolean, XBoolean>(this.config?.showPagination ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格\r\n * @en_US Tree table\r\n */\r\n readonly treeTable = input<boolean, XBoolean>(this.config?.treeTable ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(this.config?.expandedAll ?? false, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 默认展开的层级,-1 不展开\r\n * @en_US Default expanded level\r\n */\r\n readonly expandedLevel = input<number, XNumber>(this.config?.expandedLevel ?? -1, {\r\n transform: XToNumber\r\n });\r\n /**\r\n * @zh_CN 展开的节点\r\n * @en_US Expanded node\r\n */\r\n readonly expanded = input<any[]>([]);\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示数据为空的提示\r\n * @en_US Display a prompt with empty data\r\n */\r\n readonly showEmpty = input<boolean, XBoolean>(this.config?.showEmpty ?? true, {\r\n transform: XToBoolean\r\n });\r\n /**\r\n * @zh_CN 数据为空的提示图片地址或自定义模板\r\n * @en_US Picture address or custom template\r\n */\r\n readonly emptyImg = input<XTemplate | undefined>(this.config?.emptyImg ?? undefined);\r\n /**\r\n * @zh_CN 数据为空的提示内容或自定义模板\r\n * @en_US Content or custom template\r\n */\r\n readonly emptyContent = input<XTemplate | undefined>(this.config?.emptyContent ?? undefined);\r\n /**\r\n * @zh_CN 当前页码\r\n * @en_US Current page number\r\n */\r\n readonly index = model<number>(this.config?.index ?? 1);\r\n /**\r\n * @zh_CN 每页显示条数\r\n * @en_US Number of items displayed per page\r\n */\r\n readonly size = model<number>(this.config?.size ?? 10);\r\n /**\r\n * @zh_CN 总数\r\n * @en_US Total\r\n */\r\n readonly total = model<number>(0);\r\n /**\r\n * @zh_CN 查询条件\r\n * @en_US Query conditions\r\n */\r\n readonly query = model<XQuery>({});\r\n /**\r\n * @zh_CN 最多显示的分页数量\r\n * @en_US The largest number of pages display\r\n */\r\n readonly pageLinkSize = input<number, XNumber>(this.config?.pageLinkSize ?? 5, { transform: XToNumber });\r\n /**\r\n * @zh_CN 显示首尾页跳转\r\n * @en_US Display the first and last page\r\n */\r\n readonly showEllipsis = input<boolean, XBoolean>(this.config?.showEllipsis ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示总条数\r\n * @en_US Display the total\r\n */\r\n readonly showTotal = input<boolean, XBoolean>(this.config?.showTotal ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮间距\r\n * @en_US Button spacing\r\n */\r\n readonly space = input<string, XNumber>(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 添加背景色\r\n * @en_US Show background\r\n */\r\n readonly showBackground = input<boolean, XBoolean>(this.config?.showBackground ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示分页条数\r\n * @en_US Show size\r\n */\r\n readonly showSize = input<boolean, XBoolean>(this.config?.showSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 分页条数选择框的宽度\r\n * @en_US size with select\r\n */\r\n readonly sizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 显示输入分页条数(不能跟下拉选项同时使用)\r\n * @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks)\r\n */\r\n readonly showInputSize = input<boolean, XBoolean>(this.config?.showInputSize ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 输入分页框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US Enter the tooltip prompt information for the pagination box, which will be displayed by default based on the confirmation of the input\r\n */\r\n readonly inputSizeTooltipText = input<string>(this.config?.inputSizeTooltipText ?? '');\r\n /**\r\n * @zh_CN 分页条数输入框的宽度\r\n * @en_US size with input\r\n */\r\n readonly inputSizeWidth = input<string, XNumber>(this.config?.sizeWidth ?? '3.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 分页选择的数据项\r\n * @en_US Paging choose items of data\r\n */\r\n readonly sizeData = input<XDataArray<XSelectNode>>(this.config?.sizeData ?? XPaginationSizeData);\r\n /**\r\n * @zh_CN 禁用整个分页\r\n * @en_US disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示跳转输入框\r\n * @en_US Show size\r\n */\r\n readonly showJump = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 跳转输入框的 tooltip 提示信息,默认根据输入确认改变的方式来显示\r\n * @en_US The tooltip prompt information for jumping to the input box is displayed by default based on the confirmation of input changes\r\n */\r\n readonly jumpTooltipText = input<string>(this.config?.jumpTooltipText ?? '');\r\n /**\r\n * @zh_CN 跳转页的宽度\r\n * @en_US size with\r\n */\r\n readonly jumpWidth = input<string, XNumber>(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 总数自定义模板\r\n * @en_US Total template\r\n */\r\n readonly totalTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 简单分页\r\n * @en_US Simple\r\n */\r\n readonly simple = input<boolean, XBoolean>(this.config?.simple ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 简单分页输入框宽度\r\n * @en_US Simple index with\r\n */\r\n readonly simpleIndexWidth = input<string, XNumber>(this.config?.simpleIndexWidth ?? '8.125rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 输入确认改变的方式,针对输入分页大小和输入跳转页\r\n * @en_US The method for confirming changes in input is based on the input page size and input jump page\r\n */\r\n readonly inputIndexSizeSureType = input<XPaginationInputIndexSizeSureType>(\r\n this.config?.inputIndexSizeSureType ?? 'enter'\r\n );\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n /**\r\n * @zh_CN 列头拖动开始事件,返回拖动的列\r\n * @en_US Column Header Drag End Event\r\n */\r\n readonly columnDragStarted = output<XTableColumn>();\r\n /**\r\n * @zh_CN 列头拖动结束事件,返回拖动的列\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDragEnded = output<XTableColumn>();\r\n /**\r\n * @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据\r\n * @en_US The column header is dragging, and the event is triggered when the order is changed\r\n */\r\n readonly columnDropListDropped = output<XTableColumn[]>();\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n readonly columnDragWidthStarted = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n readonly columnDragWidthMoved = output<XTableDragWidthEvent>();\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n readonly columnDragWidthEnded = output<XTableDragWidthEvent>();\r\n}\r\n\r\n/**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\nexport interface XTableRow extends XParentIdentityProperty<XTableRow> {\r\n /**\r\n * @zh_CN 展开\r\n * @en_US Unfold\r\n */\r\n expanded?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列参数\r\n * @en_US Column parameter\r\n */\r\nexport interface XTableColumn extends XIdentityProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XColumnType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN flex 布局宽度\r\n * @en_US Flex layout width\r\n */\r\n flex?: number;\r\n /**\r\n * @zh_CN 查询字段\r\n * @en_US Query field\r\n */\r\n search?: boolean;\r\n /**\r\n * @zh_CN 排序字段\r\n * @en_US Sort field\r\n */\r\n sort?: boolean;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 操作按钮\r\n * @en_US Operation button\r\n */\r\n action?: boolean;\r\n /**\r\n * @zh_CN type 为 checkbox 时绑定行点击选中事件\r\n * @en_US Bind row click selection event when type is checkbox\r\n */\r\n rowChecked?: boolean;\r\n /**\r\n * @zh_CN type 为 expand 时绑定行点击展开事件\r\n * @en_US Bind row click selection event when type is expand\r\n */\r\n rowExpand?: boolean;\r\n /**\r\n * @zh_CN 文字对齐方式\r\n * @en_US Text alignment\r\n */\r\n textAlign?: XTextAlign;\r\n /**\r\n * @zh_CN 拖动列宽,需要设置列的初始宽度 width\r\n * @en_US Drag the column width, you need to set the initial width of the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列宽\r\n * @en_US Dragging width\r\n */\r\n draggingWidth?: boolean;\r\n /**\r\n * @zh_CN 开始拖动列宽的事件\r\n * @en_US Event to started drag column width\r\n */\r\n dragWidthStarted?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 正在拖动列宽时的事件\r\n * @en_US Event to moved drag column width\r\n */\r\n dragWidthMoved?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 结束拖动列宽的事件\r\n * @en_US Event to ended drag column width\r\n */\r\n dragWidthEnded?: (event: XTableDragWidthEvent) => void;\r\n /**\r\n * @zh_CN 拖动列\r\n * @en_US Drag the column\r\n */\r\n dragColumn?: boolean;\r\n /**\r\n * @zh_CN 正在拖动列\r\n * @en_US Dragging column\r\n */\r\n dragging?: boolean;\r\n /**\r\n * @zh_CN 头部显示 checkbox\r\n * @en_US Head shows checkbox\r\n */\r\n headChecked?: boolean;\r\n /**\r\n * @zh_CN 头部显示 expand\r\n * @en_US Head shows expand\r\n */\r\n headExpand?: boolean;\r\n /**\r\n * @zh_CN 列内容支持 innerHTML 渲染 html 标签\r\n * @en_US Column content supports innerHTML rendering of HTML tags\r\n */\r\n innerHTML?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列头宽度拖动事件\r\n * @en_US Column header width drag event\r\n */\r\nexport interface XTableDragWidthEvent {\r\n /**\r\n * @zh_CN 拖动的列\r\n * @en_US Dragged column\r\n */\r\n column: XTableColumn;\r\n /**\r\n * @zh_CN 列位置,正在拖动的时候指偏移位置\r\n * @en_US The column position refers to the offset position when dragging\r\n */\r\n position: { x: number; y: number };\r\n}\r\n\r\n/**\r\n * @zh_CN 列头 checkbox 事件数据\r\n * @en_US Column header checkbox event data\r\n */\r\nexport interface XTableHeadCheckbox {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n rows: XTableRow[];\r\n /**\r\n * @zh_CN checkbox 数据\r\n * @en_US Checkbox data\r\n */\r\n checkbox: { [property: string]: boolean };\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\nexport interface XTableCellConfig {\r\n /**\r\n * @zh_CN 列单元格配置\r\n * @en_US Column cell config\r\n */\r\n thead?: XTableCellConfigRule;\r\n /**\r\n * @zh_CN 行单元格配置\r\n * @en_US Row config\r\n */\r\n tbody?: XTableCellConfigRule;\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\nexport interface XTableCellConfigRule {\r\n /**\r\n * @zh_CN grid 布局下定义列宽度\r\n * @en_US Define column width under grid layout\r\n */\r\n gridTemplateColumns?: string;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n cells?: XTableCell[];\r\n}\r\n\r\n/**\r\n * @zh_CN 单元格合并配置\r\n * @en_US Cell merge rules\r\n */\r\nexport interface XTableCell {\r\n /**\r\n * @zh_CN 使用 grid 布局来合并单元格\r\n * @en_US Use grid layout to merge cells\r\n */\r\n gridArea?: string;\r\n /**\r\n * @zh_CN 名称\r\n * @en_US Name\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: number;\r\n /**\r\n * @zh_CN 固定列,距离左边的距离\r\n * @en_US Fixed column, distance from left\r\n */\r\n left?: number;\r\n /**\r\n * @zh_CN 固定列,距离右边的距离\r\n * @en_US Fixed column, distance from right\r\n */\r\n right?: number;\r\n /**\r\n * @zh_CN 对应列的 id\r\n * @en_US The id of the corresponding column\r\n */\r\n id?: string;\r\n /**\r\n * @zh_CN 拖动列宽\r\n * @en_US Drag the column width\r\n */\r\n dragWidth?: boolean;\r\n /**\r\n * @zh_CN 自定义属性\r\n * @en_US Custom attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN 列类型\r\n * @en_US Column type\r\n */\r\nexport type XColumnType = 'label' | 'index' | 'checkbox' | 'expand';\r\n\r\n/**\r\n * @zh_CN 列头显示位置\r\n * @en_US Line head display position\r\n */\r\nexport type XTableHeaderPosition = 'top' | 'bottom' | 'top-bottom';\r\n\r\n/**\r\n * @zh_CN 分页器位置\r\n * @en_US Paging position\r\n */\r\nexport type XPaginationPosition =\r\n | 'top-left'\r\n | 'top-center'\r\n | 'top-right'\r\n | 'bottom-left'\r\n | 'bottom-center'\r\n | 'bottom-right';\r\n\r\n/**\r\n * @zh_CN 模板\r\n * @en_US Template\r\n */\r\nexport type XTableTemplate = { [property: string]: TemplateRef<any> };\r\n\r\n/**\r\n * Table Head\r\n * @selector x-table-head\r\n * @decorator component\r\n */\r\nexport const XTableHeadPrefix = 'x-table-head';\r\n\r\n/**\r\n * Table Head Property\r\n */\r\n@Component({ selector: `${XTableHeadPrefix}-property`, template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n readonly scrollYWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n readonly scrollXWidth = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 显示的位置\r\n * @en_US Display position\r\n */\r\n readonly position = input<string>();\r\n}\r\n\r\n/**\r\n * Table Body\r\n * @selector x-table-body\r\n * @decorator component\r\n */\r\nexport const XTableBodyPrefix = 'x-table-body';\r\n\r\n/**\r\n * Table Body Property\r\n */\r\n@Component({ selector: `${XTableBodyPrefix}-property`, template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n readonly data = input<XTableRow[]>([]);\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n readonly columns = input<XTableColumn[]>([]);\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n readonly columnTpl = input<XTableTemplate>({});\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n readonly activatedRow = model<XTableRow>();\r\n /**\r\n * @zh_CN 高度,单位 px。设置为 0 表示行高自适应内容高度。\r\n * @en_US Height in px. set to 0 means that the row height is adaptive to the content height\r\n */\r\n readonly rowHeight = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n readonly bodyHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n readonly allowSelectRow = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n readonly itemSize = input<number, XNumber>(42, { transform: XToNumber });\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n readonly adaptionHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n readonly docPercent = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n readonly scroll = input<{ x: number; y: number }>();\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n readonly cellConfig = input<XTableCellConfigRule>();\r\n /**\r\n * @zh_CN 行条件样式\r\n * @en_US Row condition class\r\n */\r\n readonly rowClass = input<(row: XTableRow, index: number) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 树形表格下的层级\r\n * @en_US The level under the tree table\r\n */\r\n readonly level = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 树形表格展开所有节点\r\n * @en_US Tree table\r\n */\r\n readonly expandedAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义展开内容\r\n * @en_US Customized expansion content\r\n */\r\n readonly expandTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 行点击事件\r\n * @en_US Row click event\r\n */\r\n readonly rowClick = output<XTableRow>();\r\n}\r\n\r\n/**\r\n * Table Foot\r\n * @selector x-table-foot\r\n * @decorator component\r\n */\r\nexport const XTableFootPrefix = 'x-table-foot';\r\n\r\n/**\r\n * Table Foot Property\r\n */\r\n@Component({ selector: `${XTableFootPrefix}-property`, template: '' })\r\nexport class XTableFootProperty extends XProperty {\r\n /**\r\n * @zh_CN 表格页尾\r\n * @en_US Table footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n readonly rowHeight = input<number | null, XNumber>(null, { transform: XToNumber });\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell, XTablePrefix } from './table.property';\r\nimport { XIsEmpty, XSort, XNumber, XIsFunction, XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, CdkDragSortEvent, CdkDragStart, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { XDragDirective } from '@ng-nest/ui/drag';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n imports: [\r\n NgStyle,\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XDragDirective,\r\n DragDropModule,\r\n XCheckboxComponent,\r\n XOutletDirective,\r\n XIconComponent\r\n ],\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n\r\n thead = viewChild.required<ElementRef<HTMLElement>>('thead');\r\n sort = signal<XSort[]>([]);\r\n sortStr = signal('');\r\n theadStyle = computed(() => {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n return {\r\n ['min-height']: `${this.getRowHeight()}px`\r\n };\r\n });\r\n thClassMap = computed(() => ({\r\n [`${XTablePrefix}-th-${this.table.rowSize()}`]: !XIsEmpty(this.table.rowSize())\r\n }));\r\n\r\n initColumns = computed(() => [...this.columns()]);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.theads.update((x) => {\r\n x.push(this.thead());\r\n return [...x];\r\n });\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getColumnRight(right?: number) {\r\n if (Number(right) >= 0) {\r\n if (Number(this.scrollYWidth()) >= 0) {\r\n return Number(right) + Number(this.scrollYWidth());\r\n }\r\n return Number(right);\r\n }\r\n return '';\r\n }\r\n\r\n getColumnWidth(column: XTableColumn) {\r\n return column.width;\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort())) this.sort.set([]);\r\n let sort = this.sort()!.find((y) => y.field === column.id);\r\n if (sort) {\r\n if (sort.value === 'asc') {\r\n this.sort.set([]);\r\n this.sortStr.set('');\r\n } else {\r\n sort.value = 'asc';\r\n }\r\n } else {\r\n sort = { field: column.id, value: 'desc' };\r\n this.sort.set([sort]);\r\n }\r\n if (!XIsEmpty(this.sort())) this.sortStr.set(`${sort.field} ${sort.value}`);\r\n this.table.checkSort(this.sort());\r\n this.table.sortChange.emit(this.sort());\r\n this.table.resetScroll(false, true);\r\n }\r\n\r\n dragWidthMoved(\r\n position: { x: number; y: number; offsetX: number; offsetY: number },\r\n column: XTableColumn | XTableCell\r\n ) {\r\n if (column.width) {\r\n (column.width as number) += position.offsetX;\r\n if (column.width < 60) column.width = 60;\r\n XIsFunction(column.dragWidthMoved) && column.dragWidthMoved({ position, column });\r\n this.table.columnDragWidthMoved.emit({ position, column });\r\n this.table.detectChanges();\r\n }\r\n }\r\n\r\n dragWidthStarted(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = true;\r\n if (column.width && XIsFunction(column.dragWidthStarted)) {\r\n column.dragWidthStarted({ position, column });\r\n this.table.columnDragWidthStarted.emit({ position, column });\r\n }\r\n }\r\n\r\n dragWidthEnded(position: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n column.draggingWidth = false;\r\n if (column.width && XIsFunction(column.dragWidthEnded)) {\r\n column.dragWidthEnded({ position, column });\r\n this.table.columnDragWidthEnded.emit({ position, column });\r\n }\r\n }\r\n\r\n dropListDropped(event: CdkDragDrop<XTableColumn[]>) {\r\n const previous = this.initColumns()[event.previousIndex];\r\n const current = this.initColumns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.initColumns(), event.previousIndex, event.currentIndex);\r\n this.table.columnDropListDropped.emit(this.initColumns());\r\n }\r\n\r\n dropListSorted(event: CdkDragSortEvent<XTableColumn[]>) {\r\n const previous = this.columns()[event.previousIndex];\r\n const current = this.columns()[event.currentIndex];\r\n const middle = { left: previous.left, right: previous.right };\r\n previous.left = current.left;\r\n previous.right = current.right;\r\n current.left = middle.left;\r\n current.right = middle.right;\r\n moveItemInArray(this.columns(), event.previousIndex, event.currentIndex);\r\n this.table.detectChanges();\r\n }\r\n\r\n dragStarted(_event: CdkDragStart, column: XTableColumn) {\r\n column.dragging = true;\r\n this.table.detectChanges();\r\n this.table.columnDragStarted.emit(column);\r\n }\r\n\r\n dragEnded(column: XTableColumn) {\r\n column.dragging = false;\r\n this.table.detectChanges();\r\n this.table.columnDragEnded.emit(column);\r\n }\r\n}\r\n","<thead\r\n #thead\r\n [ngStyle]=\"theadStyle()\"\r\n [class.x-table-head-top]=\"position() === 'top'\"\r\n [class.x-table-head-bottom]=\"position() === 'bottom'\"\r\n>\r\n @if (cellConfig()) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\" [style.min-height.px]=\"getRowHeight()\">\r\n @for (column of cellConfig()!.cells; track column.id) {\r\n <th\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [class.x-table-width-drag]=\"column.dragWidth\"\r\n [style.grid-area]=\"column.gridArea\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n [title]=\"column?.label\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl\"></ng-container>\r\n }\r\n @if (table.headSearchTpl()) {\r\n <ng-container *ngTemplateOutlet=\"columnsTpl; context: { case: 'search' }\"></ng-container>\r\n }\r\n</thead>\r\n\r\n<ng-template #columnsTpl let-case=\"case\">\r\n <tr\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListSorted)=\"dropListSorted($event)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n [style.padding-right.px]=\"scrollYWidth()\"\r\n [style.min-width.px]=\"scrollXWidth()\"\r\n [class.x-table-search]=\"case === 'search'\"\r\n >\r\n @for (column of initColumns(); track column.id) {\r\n <th\r\n cdkDrag\r\n [cdkDragDisabled]=\"column.draggingWidth || !column.dragColumn\"\r\n (cdkDragStarted)=\"dragStarted($event, column)\"\r\n (cdkDragEnded)=\"dragEnded(column)\"\r\n [ngClass]=\"thClassMap()\"\r\n [class.x-table-th]=\"true\"\r\n [class.x-table-sticky]=\"table.getSticky(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n [style.width.px]=\"getColumnWidth(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"getColumnRight(column.right)\"\r\n [style.flex]=\"getFlex(column)\"\r\n >\r\n @switch (case) {\r\n @case ('search') {\r\n <ng-container *xOutlet=\"table.headSearchTpl()!; context: { $column: column }\"></ng-container>\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"columnBaseTpl; context: { column: column }\"></ng-container>\r\n @if (column.dragWidth) {\r\n <div\r\n class=\"x-table-drag-width\"\r\n x-drag\r\n (dragMoved)=\"dragWidthMoved($event, column)\"\r\n (dragStarted)=\"dragWidthStarted($event, column)\"\r\n (dragEnded)=\"dragWidthEnded($event, column)\"\r\n ></div>\r\n }\r\n }\r\n }\r\n </th>\r\n }\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column=\"column\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n @if (column.headChecked) {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: column.label }]\"\r\n [(ngModel)]=\"table.checkedValues()[column.id]\"\r\n (ngModelChange)=\"table.headChecked($event, column)\"\r\n [indeterminate]=\"table.checkedValues()[column.id + table.indeterminate()]\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!column.headChecked) {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\r\n @case ('index') {\r\n <a\r\n ><ng-container *xOutlet=\"columnTpl()[column.id]; context: { $column: column }\">\r\n <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container></a\r\n >\r\n }\r\n @default {\r\n <ng-container *ngTemplateOutlet=\"cloumnDefaultTpl; context: { column: column }\"></ng-container>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cloumnDefaultTpl let-column=\"column\">\r\n <a [class.x-table-sort]=\"column.sort\" (click)=\"onSort(column)\" [style.text-align]=\"column.textAlign\">\r\n <ng-container *xOutlet=\"columnTpl()[column.id]; context: { $column: column }\">\r\n <ng-container *xOutlet=\"table.headThTpl(); context: { $column: column }\">\r\n {{ column.label }}\r\n </ng-container>\r\n </ng-container>\r\n @if (column.sort) {\r\n <x-icon\r\n type=\"fto-bar-chart\"\r\n class=\"x-table-sort-icon\"\r\n [class.x-table-icon-up]=\"sortStr() === column.id + ' desc'\"\r\n [class.x-table-icon-down]=\"sortStr() === column.id + ' asc'\"\r\n ></x-icon>\r\n }\r\n </a>\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { XRemoveNgTag } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\r\n imports: [XOutletDirective],\r\n templateUrl: './table-foot.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableFootComponent extends XTableFootProperty implements OnInit {\r\n tfoot = viewChild.required<ElementRef<HTMLElement>>('tfoot');\r\n table = inject(XTableComponent, { optional: true })!;\r\n cdr = inject(ChangeDetectorRef);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot.set(this.tfoot());\r\n }\r\n}\r\n","<tfoot #tfoot class=\"x-table-footer\" [style.height.px]=\"getRowHeight()!\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"footer()\">{{ footer() }}</ng-container>\r\n</tfoot>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal,\r\n effect,\r\n AfterViewInit,\r\n AfterViewChecked\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { XRemoveNgTag, XResize, XNumber, XStripTags, XParentPath, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XCheckboxComponent } from '@ng-nest/ui/checkbox';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XTableComponent } from './table.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\r\n imports: [\r\n NgClass,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n XEmptyComponent,\r\n ScrollingModule,\r\n XOutletDirective,\r\n XCheckboxComponent,\r\n XButtonComponent\r\n ],\r\n templateUrl: './table-body.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableBodyComponent extends XTableBodyProperty implements OnInit, AfterViewInit, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n tbody = viewChild.required<ElementRef<HTMLElement>>('tbody');\r\n virtualBody = viewChild(CdkVirtualScrollViewport);\r\n table = inject(XTableComponent, { optional: true })!;\r\n private doc = inject(DOCUMENT);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n private domSanitizer = inject(DomSanitizer);\r\n tbodyStyle = signal<{ [property: string]: any }>({});\r\n\r\n isEmpty = computed(() => this.data().length === 0);\r\n getRowHeight = computed(() => (this.rowHeight() == 0 ? '' : this.rowHeight()));\r\n getItemSize = computed(() =>\r\n this.rowHeight() !== 0 && this.itemSize() > this.rowHeight() ? this.rowHeight() : this.itemSize()\r\n );\r\n docClientHeight = signal(this.doc.documentElement.clientHeight);\r\n headHeight = signal(0);\r\n captionHeight = signal(0);\r\n footHeight = signal(0);\r\n paginationHeight = signal(0);\r\n\r\n bodyHeightSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n let bodyHeight =\r\n this.docPercent() * this.docClientHeight() -\r\n this.captionHeight() -\r\n this.headHeight() -\r\n this.footHeight() -\r\n this.paginationHeight() -\r\n adaptionHeight;\r\n if (bodyHeight < 0) bodyHeight = 0;\r\n return bodyHeight;\r\n }\r\n if (this.scroll()?.y && !this.bodyHeight()) {\r\n return this.scroll()!.y;\r\n }\r\n return this.bodyHeight();\r\n });\r\n\r\n minBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal();\r\n }\r\n return this.minBufferPx();\r\n });\r\n\r\n maxBufferPxSignal = computed(() => {\r\n const adaptionHeight = this.adaptionHeight();\r\n if (adaptionHeight && adaptionHeight > 0) {\r\n return this.bodyHeightSignal()! * 1.2;\r\n }\r\n return this.maxBufferPx();\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n }\r\n });\r\n effect(() => {\r\n if (this.virtualBody()) {\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n XRemoveNgTag(this.elementRef.nativeElement);\r\n if (this.level() > 0) XRemoveNgTag(this.tbody().nativeElement);\r\n\r\n fromEvent(this.doc.defaultView!, 'resize')\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody.set(this.virtualBody()!);\r\n this.docClientHeight.set(this.doc.documentElement.clientHeight);\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let headHeight = 0;\r\n for (let thead of this.table.theads()) {\r\n headHeight += thead.nativeElement.clientHeight;\r\n }\r\n this.headHeight.set(headHeight);\r\n const captionHeight = this.table.caption()?.nativeElement.clientHeight || 0;\r\n this.captionHeight.set(captionHeight);\r\n const footHeight = this.table.tfoot()?.nativeElement.clientHeight || 0;\r\n this.footHeight.set(footHeight);\r\n const paginationHeight = this.table.pagination()?.elementRef.nativeElement.clientHeight || 0;\r\n this.paginationHeight.set(paginationHeight);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody()) {\r\n this.table.scrollContentEle.set(\r\n this.virtualBody()!.elementRef.nativeElement.querySelector('.cdk-virtual-scroll-content-wrapper') as HTMLElement\r\n );\r\n if (this.scroll()?.x) {\r\n this.renderer.setStyle(this.table.scrollContentEle()!, 'width', `${this.scroll()?.x}px`);\r\n }\r\n XResize(this.table.table().nativeElement, this.table.scrollContentEle()!)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setScroll();\r\n });\r\n }\r\n if (this.table.scrollContentEle()) {\r\n fromEvent(this.virtualBody()!.elementRef.nativeElement, 'scroll')\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n const ele = x.srcElement as HTMLElement;\r\n this.table.scrollTop.set(ele.scrollTop);\r\n this.table.scrollLeft.set(ele.scrollLeft);\r\n if (ele.scrollLeft >= 0 && this.table.theads().length > 0) {\r\n for (let thead of this.table.theads()) {\r\n thead.nativeElement.scrollLeft = this.table.scrollLeft();\r\n }\r\n }\r\n this.table.scrollLeftMax.set(ele.scrollLeft + ele.clientWidth === ele.scrollWidth);\r\n });\r\n }\r\n }\r\n\r\n setScroll() {\r\n if (!this.virtualBody()) return;\r\n const ele = this.virtualBody()!.elementRef.nativeElement;\r\n const hasY = ele.scrollHeight > this.bodyHeightSignal()!;\r\n const hasX = this.table.scrollContentEle()!.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY() && hasY) {\r\n this.table.hasScrollY.set(true);\r\n this.table.scrollYWidth.set(ele.offsetWidth - ele.clientWidth);\r\n } else if (this.table.hasScrollY() && !hasY) {\r\n this.table.hasScrollY.set(false);\r\n this.table.scrollYWidth.set(0);\r\n }\r\n\r\n if (!this.table.hasScrollX() && hasX) {\r\n this.table.hasScrollX.set(true);\r\n this.table.scrollXHeight.set(ele.offsetHeight - ele.clientHeight);\r\n } else if (this.table.hasScrollX() && !hasX) {\r\n this.table.hasScrollX.set(false);\r\n this.table.scrollXHeight.set(0);\r\n this.table.scrollXWidth.set(null);\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth.set(ele.offsetWidth + ele.scrollWidth - ele.clientWidth);\r\n }\r\n\r\n this.virtualBody()!.checkViewportSize();\r\n\r\n // this.table.cdr.detectChanges();\r\n }\r\n\r\n setStyle() {\r\n let height = this.rowHeight() === 0 ? '' : this.rowHeight();\r\n if (this.cellConfig() && this.cellConfig()!.cells) {\r\n const spt = this.cellConfig()!.cells?.map((x) => {\r\n const gridAreaSpt = x.gridArea?.split('/');\r\n return gridAreaSpt && gridAreaSpt.length > 3 ? Number(gridAreaSpt[2]) : 2;\r\n });\r\n height = ((Math.max(...spt!) - 1) * (height as number)) as XNumber;\r\n }\r\n this.tbodyStyle.set({\r\n height: `${height}px`\r\n });\r\n }\r\n\r\n setDomSanitizer(str: string) {\r\n return this.domSanitizer.bypassSecurityTrustHtml(str);\r\n }\r\n\r\n getIndex(index: number, item: XTableRow) {\r\n if (!isNaN(index)) return index;\r\n return this.data().indexOf(item);\r\n }\r\n\r\n getFlex(column: XTableColumn) {\r\n if (column.width) return 'none';\r\n if (!column.flex) return 1;\r\n return column.flex;\r\n }\r\n\r\n getTitle(row: XTableRow, column: XTableCell | any) {\r\n let it = row[column.id as string];\r\n return it ? XStripTags(it) : '';\r\n }\r\n\r\n onRowClick(event: Event, row: XTableRow) {\r\n if (row.disabled) return;\r\n if (this.table.allowCheckRow() && this.table.rowChecked()) {\r\n if (!XParentPath(event.target as HTMLElement).includes('x-checkbox')) {\r\n row[this.table.rowChecked()!.id] = !row[this.table.rowChecked()!.id];\r\n this.table.bodyChecked(row[this.table.rowChecked()!.id], this.table.rowChecked()!, row);\r\n }\r\n }\r\n this.activatedRow.set(row);\r\n this.rowClick.emit(row);\r\n }\r\n\r\n onExpanded(_event: Event, node: XTableRow) {\r\n node.expanded = !node.expanded;\r\n // this.cdr.detectChanges();\r\n }\r\n\r\n trackByItem(_index: number, item: XTableRow | XTableColumn) {\r\n return item.id;\r\n }\r\n}\r\n","<tbody #tbody>\r\n @if (cellConfig()) {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr [style.gridTemplateColumns]=\"cellConfig()!.gridTemplateColumns\">\r\n @for (column of cellConfig()!.cells; track column; let j = $index) {\r\n <td\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [style.grid-area]=\"column.gridArea\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-container>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n } @else {\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"getItemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"bodyHeightSignal()\"\r\n >\r\n <tr\r\n *cdkVirtualFor=\"let row of data(); let index = index; trackBy: trackByItem\"\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"onRowClick($event, row)\"\r\n >\r\n <!-- rowHeight 为 0 的时候,index 下标获取不到 -->\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: getIndex(index, row) }\"></ng-container>\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n @for (row of data(); track row.id; let i = $index) {\r\n <tr\r\n [class.x-table-activated]=\"allowSelectRow() && activatedRow()?.id === row.id\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n (click)=\"onRowClick($event, row)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"rowTpl; context: { row: row, i: i }\"></ng-container>\r\n </tr>\r\n @if (table.treeTable() && row.children && row.expanded) {\r\n <div class=\"x-table-children\" [class.x-table-expandTpl]=\"expandTpl()\">\r\n <x-table-body\r\n [data]=\"row.children\"\r\n [columns]=\"table.columns()\"\r\n [itemSize]=\"table.itemSize()\"\r\n [rowHeight]=\"table.rowHeight()\"\r\n [columnTpl]=\"table.bodyColumnTpl()\"\r\n [allowSelectRow]=\"table.allowSelectRow()\"\r\n [rowClass]=\"table.rowClass()\"\r\n [cellConfig]=\"table.cellConfig()?.tbody\"\r\n [(activatedRow)]=\"table.activatedRow\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [level]=\"row.level! + 1\"\r\n ></x-table-body>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @if (table.showEmpty() && isEmpty() && level() === 0) {\r\n <x-empty [img]=\"table.emptyImg()!\" [content]=\"table.emptyContent()!\"></x-empty>\r\n }\r\n</tbody>\r\n\r\n<ng-template #rowTpl let-row=\"row\" let-i=\"i\">\r\n @if (level() > 0 && expandTpl()) {\r\n <ng-container *xOutlet=\"expandTpl(); context: { $row: row, $index: i, $level: level() }\"></ng-container>\r\n } @else if (level() === 0 || !expandTpl()) {\r\n <ng-container *xOutlet=\"rowDefault; context: { row: row, i: i, level: level() }\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rowDefault let-row=\"row\" let-i=\"i\">\r\n @for (column of columns(); track column.id; let j = $index) {\r\n <td\r\n [style.width.px]=\"column.width\"\r\n [style.flex]=\"getFlex(column)\"\r\n [title]=\"getTitle(row, column)\"\r\n [class.x-table-dragging]=\"column.dragging\"\r\n [class.x-table-sticky]=\"table.getStickyLeft(column) || table.getStickyRight(column)\"\r\n [class.x-table-sticky-left]=\"table.getStickyLeft(column)\"\r\n [class.x-table-sticky-right]=\"table.getStickyRight(column)\"\r\n [class.x-table-sticky-left-last]=\"table.getStickyLeftLast(column)\"\r\n [class.x-table-sticky-right-first]=\"table.getStickyRightFirst(column)\"\r\n [style.left.px]=\"column.left\"\r\n [style.right.px]=\"column.right\"\r\n [ngClass]=\"!rowClass() ? {} : rowClass()!(row, i)\"\r\n >\r\n <ng-template *ngTemplateOutlet=\"cellTpl; context: { column: column, row: row, i: i }\"></ng-template>\r\n </td>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column=\"column\" let-row=\"row\" let-i=\"i\">\r\n @switch (column.type) {\r\n @case ('checkbox') {\r\n <x-checkbox\r\n [data]=\"[{ id: true, label: '' }]\"\r\n [(ngModel)]=\"row[column.id]\"\r\n [disabled]=\"row.disabled\"\r\n (ngModelChange)=\"table.bodyChecked($event, column, row)\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @case ('index') {\r\n <div>{{ table.getIndex(i) }}</div>\r\n }\r\n @default {\r\n @if (table.isExpandColumn(column)) {\r\n <x-button\r\n [class.is-leaf]=\"!row.leaf\"\r\n [class.is-expanded]=\"row.expanded\"\r\n (click)=\"onExpanded($event, row)\"\r\n icon=\"fto-chevron-right\"\r\n size=\"mini\"\r\n onlyIcon\r\n flat\r\n plain\r\n class=\"x-table-expand\"\r\n [style.margin-left.rem]=\"row.level - 0.5\"\r\n ></x-button>\r\n }\r\n <ng-container\r\n *xOutlet=\"columnTpl()[column.id]; context: { $column: column, $row: row, $index: table.getIndex(i) }\"\r\n >\r\n <ng-container *xOutlet=\"table.bodyTdTpl(); context: { $column: column, $row: row, $index: table.getIndex(i) }\">\r\n @if ((table.bodyInnerHTML() && column.innerHTML !== false) || column.innerHTML) {\r\n <div [innerHTML]=\"setDomSanitizer(row[column.id])\" [style.text-align]=\"column.textAlign\"></div>\r\n } @else {\r\n <div [style.text-align]=\"column.textAlign\">{{ row[column.id] }}</div>\r\n }\r\n {{ table.rowExpand() && table.rowExpand()!.id === column.id ? 'x-table-body-level-' + row.level : '' }}\r\n </ng-container>\r\n </ng-container>\r\n }\r\n }\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnDestroy,\r\n computed,\r\n signal,\r\n viewChild,\r\n inject,\r\n viewChildren,\r\n AfterViewChecked,\r\n SimpleChange\r\n} from '@angular/core';\r\nimport {\r\n XTablePrefix,\r\n XTableProperty,\r\n XTableColumn,\r\n XTableRow,\r\n XTableCell,\r\n XTableCellConfigRule\r\n} from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XSort, XIsUndefined, XIsArray } from '@ng-nest/ui/core';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { XPaginationComponent } from '@ng-nest/ui/pagination';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { NgClass } from '@angular/common';\r\nimport { XLoadingComponent } from '@ng-nest/ui/loading';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\r\n imports: [\r\n NgClass,\r\n XOutletDirective,\r\n XLoadingComponent,\r\n XTableHeadComponent,\r\n XTableFootComponent,\r\n XTableBodyComponent,\r\n XPaginationComponent\r\n ],\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTableComponent extends XTableProperty implements OnInit, OnDestroy, AfterViewChecked {\r\n renderer = inject(Renderer2);\r\n elementRef = inject(ElementRef<HTMLElement>);\r\n cdr = inject(ChangeDetectorRef);\r\n unSubject = new Subject<void>();\r\n\r\n classMap = computed(() => ({ [`${XTablePrefix}-row-size-${this.rowSize()}`]: !XIsEmpty(this.rowSize()) }));\r\n theads = signal<ElementRef<HTMLElement>[]>([]);\r\n tfoot = signal<ElementRef<HTMLElement> | null>(null);\r\n virtualBody = signal<CdkVirtualScrollViewport | null>(null);\r\n theadsChange: (() => void)[] = [];\r\n bodyChange!: () => void;\r\n scrollContentEle = signal<HTMLElement | null>(null);\r\n hasScrollY = signal(false);\r\n scrollYWidth = signal(0);\r\n hasScrollX = signal(false);\r\n scrollXHeight = signal(0);\r\n scrollXWidth = signal<number | null>(null);\r\n scrollLeft = signal(0);\r\n scrollLeftMax = signal(false);\r\n scrollTop = signal(0);\r\n rowChecked = signal<XTableColumn | null>(null);\r\n headCheckboxList = signal<XTableColumn[]>([]);\r\n rowExpand = signal<XTableColumn | null>(null);\r\n headExpandList = signal<XTableColumn[]>([]);\r\n dataIsFunc = signal(false);\r\n getting = signal(false);\r\n tableData = signal<XTableRow[]>([]);\r\n treeTableData = signal<XTableRow[]>([]);\r\n checkedValues = signal<{ [prop: string]: boolean }>({});\r\n indeterminate = signal('$$indeterminate');\r\n table = viewChild.required<ElementRef<HTMLElement>>('table');\r\n caption = viewChild<ElementRef<HTMLElement>>('caption');\r\n pagination = viewChild<XPaginationComponent>('pagination');\r\n stickyTopRightEle = viewChild<ElementRef<HTMLElement>>('stickyTopRightEle');\r\n stickyBottomRightEle = viewChild<ElementRef<HTMLElement>>('stickyBottomRightEle');\r\n headCom = viewChildren<XTableHeadComponent>(XTableHeadComponent);\r\n bodyCom = viewChildren<XTableBodyComponent>(XTableBodyComponent);\r\n footCom = viewChild<XTableFootComponent>(XTableFootComponent);\r\n\r\n getScrollLeft = computed(() => this.scrollLeft() > 0);\r\n getScrollTop = computed(() => this.scrollTop() > 0);\r\n getRowHeight = computed(() => (this.rowHeight() === 0 ? '' : this.rowHeight()));\r\n getStickyTopScrollTop = computed(() => (this.caption() ? this.caption()!.nativeElement.offsetHeight : 0));\r\n getStickyBottomScrollTop = computed(() => {\r\n let top = 0;\r\n if (this.footer() && this.tfoot()) {\r\n top += this.tfoot()!.nativeElement.clientHeight + 1;\r\n }\r\n return top;\r\n });\r\n getStickyTopRightEleHeight = computed(() => {\r\n if (this.stickyTopRightEle()) {\r\n return this.stickyTopRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n getStickyBottomRightEleHeight = computed(() => {\r\n if (this.stickyBottomRightEle()) {\r\n return this.stickyBottomRightEle()!.nativeElement.offsetHeight;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n hasStickyTopRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'top' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n hasStickyTopRightSearch = computed(() => !!this.headSearchTpl());\r\n\r\n hasStickyBottomRight = computed(\r\n () =>\r\n this.showHeader() &&\r\n (this.headerPosition() === 'bottom' || this.headerPosition() === 'top-bottom') &&\r\n this.columns().some((x) => Number(x.right) >= 0)\r\n );\r\n\r\n cellConfigSignal = computed(() => {\r\n const cellConfig = this.cellConfig();\r\n if (!cellConfig) return;\r\n const setRule = (rule?: XTableCellConfigRule) => {\r\n if (!rule) return;\r\n let gridTemplateColumns = '',\r\n cells = [];\r\n if (!rule.gridTemplateColumns) {\r\n gridTemplateColumns = `${this.columns()\r\n .map((x) => {\r\n if (x.width) return x.width;\r\n if (x.flex) return `${x.flex}fr`;\r\n return '1fr';\r\n })\r\n .join(' ')}`;\r\n }\r\n if (!rule.cells) return;\r\n cells = rule.cells.map((y) => {\r\n const col = this.columns().find((z) => z.id === y.id);\r\n if (col) {\r\n return { ...col, ...y } as XTableCell;\r\n }\r\n return y;\r\n });\r\n return { gridTemplateColumns, cells };\r\n };\r\n\r\n return { thead: setRule(cellConfig.thead), tbody: setRule(cellConfig.tbody) };\r\n });\r\n\r\n tbodyHeight = signal(0);\r\n tbodyScrollHeight = signal(0);\r\n\r\n ngOnInit() {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll, paginationPosition } =\r\n simples;\r\n XIsChange(expandedAll) && this.setExpandedAll();\r\n XIsChange(data, checkedRow) && this.setData();\r\n if (XIsChange(columns)) {\r\n this.setRowChecked();\r\n this.setRowExpand();\r\n }\r\n XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();\r\n XIsChange(manual) && this.setManual();\r\n XIsChange(paginationPosition) && this.setPaginationPosition(paginationPosition);\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.bodyCom().length > 0) {\r\n const first = this.bodyCom()[0].tbody().nativeElement;\r\n this.tbodyHeight.set(first.clientHeight);\r\n this.tbodyScrollHeight.set(first.scrollHeight);\r\n // let trs = first.tbody().nativeElement.querySelectorAll('tr');\r\n // let i = 0;\r\n // let h = 0;\r\n // while (i < trs.length) {\r\n // h += trs[i].clientHeight;\r\n // }\r\n // this.trsHeight.set(h);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setPaginationPosition(position: SimpleChange) {\r\n const { currentValue, previousValue } = position;\r\n if (previousValue) {\r\n this.renderer.removeClass(this.elementRef.nativeElement, `x-table-${previousValue}`);\r\n }\r\n if (currentValue) {\r\n this.renderer.addClass(this.elementRef.nativeElement, `x-table-${currentValue}`);\r\n }\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return this.getStickyLeft(column) || this.getStickyRight(column);\r\n }\r\n\r\n getStickyLeft(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getStickyLeftLast(column: XTableColumn | XTableCell) {\r\n let lefts = this.columns().filter((x) => Number(x.left) >= 0);\r\n if (lefts.length === 0) return false;\r\n return lefts[lefts.length - 1].id === column.id;\r\n }\r\n\r\n getStickyRight(column: XTableColumn | XTableCell) {\r\n return Number(column.right) >= 0;\r\n }\r\n\r\n getStickyRightFirst(column: XTableColumn | XTableCell) {\r\n let rights = this.columns().filter((x) => Number(x.right) >= 0);\r\n if (rights.length === 0) return false;\r\n return rights[0].id === column.id;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (this.index() - 1) * this.size() + index + 1;\r\n }\r\n\r\n setData() {\r\n const data = this.data();\r\n if (XIsArray<XTableRow>(data)) {\r\n this.dataIsFunc.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.detectChanges();\r\n } else if (data instanceof Function) {\r\n this.dataIsFunc.set(true);\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual()) return;\r\n this.getting.set(true);\r\n this.unSubject.next();\r\n (this.data() as Function)(this.index(), this.size(), this.query())\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe((x: XResultList<XTableRow>) => {\r\n let [data, total] = [x.list as XTableRow[], x.total!];\r\n if (this.virtualBody()) {\r\n this.virtualBody()!.scrollToIndex(0);\r\n this.virtualBody()!.checkViewportSize();\r\n }\r\n this.getting.set(false);\r\n this.tableData.set(data);\r\n this.setChecked(data);\r\n this.setHeadCheckboxList(data);\r\n this.setExpand(data);\r\n this.total.set(total);\r\n });\r\n }\r\n\r\n setManual() {\r\n if (this.dataIsFunc()) this.getDataByFunc();\r\n }\r\n\r\n setRowChecked() {\r\n this.rowChecked.set(this.columns().find((x) => x.rowChecked) as XTableColumn);\r\n this.headCheckboxList.set(this.columns().filter((x) => x.type === 'checkbox' && x.headChecked));\r\n }\r\n\r\n setRowExpand() {\r\n this.rowExpand.set(this.columns().find((x) => x.rowExpand) as XTableColumn);\r\n }\r\n\r\n isExpandColumn(column: XTableColumn) {\r\n let expandColumn = this.columns().find((x) => x.id === column.id && x.type === 'expand');\r\n if (expandColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n pageChange(_type: 'index' | 'size') {\r\n this.dataIsFunc() && this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n change(index: number) {\r\n this.index.set(index);\r\n this.dataIsFunc() && this.getDataByFunc();\r\n this.resetScroll();\r\n }\r\n\r\n resetScroll(x = true, y = true) {\r\n if (this.hasScrollX() && x) this.virtualBody()?.scrollTo({ left: 0 });\r\n if (this.hasScrollY() && y) this.virtualBody()?.scrollTo({ top: 0 });\r\n }\r\n\r\n setChecked(data: XTableRow[]) {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(data) || !this.checkedRow()) return;\r\n for (let key in this.checkedRow()) {\r\n const arr = this.checkedRow()[key];\r\n for (let item of data as any[]) {\r\n item[key] = arr.includes(item.id);\r\n result = [...result, item];\r\n }\r\n }\r\n if (result.length > 0) data = [...result];\r\n }\r\n\r\n setHeadCheckboxList(data: XTableRow[]) {\r\n if (XIsEmpty(data) || !this.headCheckboxList()) return;\r\n for (let column of this.headCheckboxList()) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n setExpand(data: XTableRow[]) {\r\n const getChildren = (node: XTableRow, level: number) => {\r\n node.level = level;\r\n node.expanded = this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id);\r\n if (XIsUndefined(node.children)) node.children = data.filter((y) => y.pid === node.id);\r\n if (XIsUndefined(node.leaf)) node.leaf = (node.children?.length as number) > 0;\r\n if (node.leaf) node.children?.map((y) => getChildren(y, level + 1));\r\n return node;\r\n };\r\n this.treeTableData.set(\r\n data\r\n .filter((x) => XIsEmpty(x.pid))\r\n .map((x, index) => {\r\n if (XIsUndefined(x.id)) x.id = index + 1;\r\n return getChildren(x, 0);\r\n })\r\n );\r\n }\r\n\r\n setExpandedAll() {\r\n if (!this.treeTable() || this.treeTableData()?.length === 0) return;\r\n const setChildren = (nodes: XTableRow[]) => {\r\n if (XIsEmpty(nodes)) return;\r\n nodes.forEach((x) => {\r\n x.expanded = Boolean(this.expandedAll);\r\n setChildren(x.children as XTableRow[]);\r\n });\r\n };\r\n this.treeTableData.update((x) => {\r\n setChildren(x);\r\n return [...x];\r\n });\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n let query = this.query();\r\n if (typeof query === 'undefined') query = {};\r\n query.sort = sort;\r\n this.query.set(query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.update((z) => {\r\n z.forEach((x) => {\r\n if (!x.disabled) {\r\n x[column.id] = checked;\r\n }\r\n });\r\n return [...z];\r\n });\r\n this.setCheckedValues(column);\r\n this.headCheckboxChange.emit({ rows: this.tableData(), checkbox: this.checkedValues() });\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(_checked: boolean, column: XTableColumn, row: XTableRow) {\r\n this.setCheckedValues(column);\r\n this.bodyCheckboxChange.emit(row);\r\n // this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const notDisabled = this.tableData().filter((x) => !x.disabled);\r\n const count = notDisabled.length;\r\n const checkedLen = notDisabled.filter((x) => x[column.id]).length;\r\n this.checkedValues.update((x) => {\r\n x[column.id] = count === checkedLen && count !== 0;\r\n x[column.id + this.indeterminate()] = checkedLen > 0 && checkedLen < count;\r\n return { ...x };\r\n });\r\n }\r\n\r\n detectChanges() {\r\n this.headCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.bodyCom()?.forEach((x) => {\r\n x.cdr.markForCheck();\r\n });\r\n this.footCom()?.cdr.markForCheck();\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap()\"\r\n [x-loading]=\"loading() && getting()\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder()\"\r\n [class.x-table-scroll-left]=\"getScrollLeft()\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax()\"\r\n [class.x-table-scroll-top]=\"getScrollTop()\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth()\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth()\"\r\n [class.x-table-bordered]=\"bordered()\"\r\n [class.x-table-td-adaption-height]=\"rowHeight() == 0\"\r\n [class.x-table-cell-config]=\"!!cellConfigSignal()\"\r\n [class.x-table-last-tr-bordered]=\"!!adaptionHeight() || tbodyHeight() >= tbodyScrollHeight()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\r\n <x-table-body\r\n [data]=\"treeTable() ? treeTableData() : tableData()\"\r\n [columns]=\"columns()\"\r\n [itemSize]=\"itemSize()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [bodyHeight]=\"bodyHeight()!\"\r\n [columnTpl]=\"bodyColumnTpl()\"\r\n [allowSelectRow]=\"allowSelectRow()\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [minBufferPx]=\"minBufferPx()\"\r\n [maxBufferPx]=\"maxBufferPx()\"\r\n [adaptionHeight]=\"adaptionHeight()!\"\r\n [docPercent]=\"docPercent()\"\r\n [scroll]=\"scroll()\"\r\n [rowClass]=\"rowClass()\"\r\n [cellConfig]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (rowClick)=\"rowClick.emit($event)\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.top.px]=\"getStickyTopScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop() + getStickyTopRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight()) {\r\n <div\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop() + getStickyBottomRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n [jumpTooltipText]=\"jumpTooltipText()\"\r\n [inputSizeTooltipText]=\"inputSizeTooltipText()\"\r\n [inputIndexSizeSureType]=\"inputIndexSizeSureType()\"\r\n >\r\n </x-pagination>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTableComponent } from './table.component';\r\nimport { XTableHeadComponent } from './table-head.component';\r\nimport { XTableBodyComponent } from './table-body.component';\r\nimport { XTableFootComponent } from './table-foot.component';\r\n\r\n@NgModule({\r\n exports: [XTableComponent],\r\n imports: [XTableComponent, XTableHeadComponent, XTableBodyComponent, XTableFootComponent]\r\n})\r\nexport class XTableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|