@ng-nest/ui 11.2.9 → 11.2.13
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/affix/affix.property.d.ts +2 -2
- package/alert/alert.property.d.ts +22 -12
- package/alert/ng-nest-ui-alert.metadata.json +1 -1
- package/auto-complete/auto-complete.property.d.ts +3 -3
- package/avatar/avatar.property.d.ts +6 -6
- package/back-top/back-top.property.d.ts +4 -4
- package/badge/badge.property.d.ts +3 -3
- package/base-form/base-form.component.d.ts +1 -1
- package/base-form/base-form.property.d.ts +10 -10
- package/border/ng-nest-ui-border.metadata.json +1 -1
- package/bundles/ng-nest-ui-affix.umd.js +10 -4
- package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
- package/bundles/ng-nest-ui-affix.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-alert.umd.js +26 -12
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-alert.umd.min.js +2 -2
- package/bundles/ng-nest-ui-alert.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-anchor.umd.js +10 -4
- package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
- package/bundles/ng-nest-ui-anchor.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-auto-complete.umd.js +15 -8
- package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
- package/bundles/ng-nest-ui-auto-complete.umd.min.js +2 -2
- package/bundles/ng-nest-ui-auto-complete.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-avatar.umd.js +10 -4
- package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
- package/bundles/ng-nest-ui-avatar.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-back-top.umd.js +10 -4
- package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
- package/bundles/ng-nest-ui-back-top.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-badge.umd.js +10 -4
- package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
- package/bundles/ng-nest-ui-badge.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-base-form.umd.js +10 -4
- package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
- package/bundles/ng-nest-ui-base-form.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-border.umd.js +1 -1
- package/bundles/ng-nest-ui-border.umd.js.map +1 -1
- package/bundles/ng-nest-ui-border.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-button.umd.js +11 -5
- package/bundles/ng-nest-ui-button.umd.js.map +1 -1
- package/bundles/ng-nest-ui-button.umd.min.js +1 -1
- package/bundles/ng-nest-ui-button.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-calendar.umd.js +16 -6
- package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
- package/bundles/ng-nest-ui-calendar.umd.min.js +1 -1
- package/bundles/ng-nest-ui-calendar.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-card.umd.js +10 -4
- package/bundles/ng-nest-ui-card.umd.js.map +1 -1
- package/bundles/ng-nest-ui-card.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.js +10 -4
- package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-cascade.umd.js +10 -4
- package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
- package/bundles/ng-nest-ui-cascade.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-checkbox.umd.js +16 -9
- package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
- package/bundles/ng-nest-ui-checkbox.umd.min.js +2 -2
- package/bundles/ng-nest-ui-checkbox.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-collapse.umd.js +10 -4
- package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
- package/bundles/ng-nest-ui-collapse.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-color-picker.umd.js +10 -4
- package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-color-picker.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-color.umd.js +10 -4
- package/bundles/ng-nest-ui-color.umd.js.map +1 -1
- package/bundles/ng-nest-ui-color.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-comment.umd.js +16 -6
- package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
- package/bundles/ng-nest-ui-comment.umd.min.js +2 -2
- package/bundles/ng-nest-ui-comment.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-container.umd.js +10 -4
- package/bundles/ng-nest-ui-container.umd.js.map +1 -1
- package/bundles/ng-nest-ui-container.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js +30 -8
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.min.js +2 -2
- package/bundles/ng-nest-ui-core.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-crumb.umd.js +10 -4
- package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
- package/bundles/ng-nest-ui-crumb.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.js +16 -7
- package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.min.js +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.js +25 -12
- package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.min.js +2 -2
- package/bundles/ng-nest-ui-dialog.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.js +10 -4
- package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-dropdown.umd.js +10 -4
- package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dropdown.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-empty.umd.js +10 -4
- package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
- package/bundles/ng-nest-ui-empty.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.js +79 -12
- package/bundles/ng-nest-ui-find.umd.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.min.js +2 -2
- package/bundles/ng-nest-ui-find.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-form.umd.js +16 -9
- package/bundles/ng-nest-ui-form.umd.js.map +1 -1
- package/bundles/ng-nest-ui-form.umd.min.js +1 -1
- package/bundles/ng-nest-ui-form.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-highlight.umd.js +10 -4
- package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
- package/bundles/ng-nest-ui-highlight.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-i18n.umd.js +1 -1
- package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
- package/bundles/ng-nest-ui-i18n.umd.min.js +1 -1
- package/bundles/ng-nest-ui-i18n.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-icon.umd.js +10 -4
- package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
- package/bundles/ng-nest-ui-icon.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-inner.umd.js +10 -4
- package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
- package/bundles/ng-nest-ui-inner.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-input-number.umd.js +10 -4
- package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input-number.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.js +10 -4
- package/bundles/ng-nest-ui-input.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-layout.umd.js +10 -4
- package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
- package/bundles/ng-nest-ui-layout.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-link.umd.js +10 -4
- package/bundles/ng-nest-ui-link.umd.js.map +1 -1
- package/bundles/ng-nest-ui-link.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-list.umd.js +10 -4
- package/bundles/ng-nest-ui-list.umd.js.map +1 -1
- package/bundles/ng-nest-ui-list.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-loading.umd.js +10 -4
- package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
- package/bundles/ng-nest-ui-loading.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.js +22 -11
- package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.min.js +2 -2
- package/bundles/ng-nest-ui-menu.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-message-box.umd.js +37 -10
- package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message-box.umd.min.js +1 -1
- package/bundles/ng-nest-ui-message-box.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +10 -4
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-notification.umd.js +10 -4
- package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
- package/bundles/ng-nest-ui-notification.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-outlet.umd.js +10 -4
- package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
- package/bundles/ng-nest-ui-outlet.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-page-header.umd.js +10 -4
- package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
- package/bundles/ng-nest-ui-page-header.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-pagination.umd.js +10 -4
- package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
- package/bundles/ng-nest-ui-pagination.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.js +11 -5
- package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.min.js +2 -2
- package/bundles/ng-nest-ui-popconfirm.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.js +10 -4
- package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.js +10 -4
- package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.js +10 -4
- package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-radio.umd.js +11 -5
- package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
- package/bundles/ng-nest-ui-radio.umd.min.js +1 -1
- package/bundles/ng-nest-ui-radio.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-rate.umd.js +10 -4
- package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
- package/bundles/ng-nest-ui-rate.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-result.umd.js +18 -5
- package/bundles/ng-nest-ui-result.umd.js.map +1 -1
- package/bundles/ng-nest-ui-result.umd.min.js +1 -1
- package/bundles/ng-nest-ui-result.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-ripple.umd.js +11 -5
- package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
- package/bundles/ng-nest-ui-ripple.umd.min.js +2 -2
- package/bundles/ng-nest-ui-ripple.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.js +12 -6
- package/bundles/ng-nest-ui-select.umd.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.min.js +1 -1
- package/bundles/ng-nest-ui-select.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.js +11 -5
- package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.min.js +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-slider-select.umd.js +10 -4
- package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
- package/bundles/ng-nest-ui-slider-select.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-slider.umd.js +10 -4
- package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
- package/bundles/ng-nest-ui-slider.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-statistic.umd.js +10 -4
- package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
- package/bundles/ng-nest-ui-statistic.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-steps.umd.js +10 -4
- package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
- package/bundles/ng-nest-ui-steps.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-switch.umd.js +10 -4
- package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
- package/bundles/ng-nest-ui-switch.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.js +78 -26
- package/bundles/ng-nest-ui-table.umd.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.min.js +2 -2
- package/bundles/ng-nest-ui-table.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tabs.umd.js +12 -6
- package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tabs.umd.min.js +1 -1
- package/bundles/ng-nest-ui-tabs.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tag.umd.js +10 -4
- package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tag.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-text-retract.umd.js +10 -4
- package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
- package/bundles/ng-nest-ui-text-retract.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-textarea.umd.js +10 -4
- package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
- package/bundles/ng-nest-ui-textarea.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-theme.umd.js +10 -4
- package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
- package/bundles/ng-nest-ui-theme.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-time-ago.umd.js +2 -0
- package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-ago.umd.min.js +1 -1
- package/bundles/ng-nest-ui-time-ago.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-time-picker.umd.js +10 -4
- package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-picker.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-time-range.umd.js +10 -4
- package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-range.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-timeline.umd.js +10 -4
- package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
- package/bundles/ng-nest-ui-timeline.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tooltip.umd.js +10 -4
- package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tooltip.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-transfer.umd.js +14 -7
- package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-transfer.umd.min.js +1 -1
- package/bundles/ng-nest-ui-transfer.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tree-file.umd.js +27 -5
- package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tree-file.umd.min.js +1 -1
- package/bundles/ng-nest-ui-tree-file.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-tree.umd.js +27 -14
- package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tree.umd.min.js +1 -1
- package/bundles/ng-nest-ui-tree.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-typography.umd.js +11 -6
- package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
- package/bundles/ng-nest-ui-typography.umd.min.js +1 -1
- package/bundles/ng-nest-ui-typography.umd.min.js.map +1 -1
- package/bundles/ng-nest-ui-upload.umd.js +10 -4
- package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
- package/bundles/ng-nest-ui-upload.umd.min.js.map +1 -1
- package/button/button.property.d.ts +14 -14
- package/button/buttons.component.d.ts +2 -2
- package/button/ng-nest-ui-button.metadata.json +1 -1
- package/calendar/calendar.property.d.ts +1 -1
- package/card/card.property.d.ts +1 -1
- package/carousel/carousel.property.d.ts +7 -7
- package/cascade/cascade.property.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -0
- package/checkbox/checkbox.property.d.ts +4 -4
- package/checkbox/ng-nest-ui-checkbox.metadata.json +1 -1
- package/collapse/collapse.property.d.ts +3 -3
- package/color/color.property.d.ts +2 -2
- package/color-picker/color-picker.property.d.ts +1 -1
- package/comment/comment.component.d.ts +1 -0
- package/comment/comment.property.d.ts +1 -1
- package/comment/ng-nest-ui-comment.metadata.json +1 -1
- package/container/aside.component.d.ts +1 -1
- package/container/container.property.d.ts +3 -3
- package/container/header.component.d.ts +1 -1
- package/core/config/config.d.ts +7 -0
- package/core/ng-nest-ui-core.metadata.json +1 -1
- package/core/util/html.d.ts +4 -0
- package/core/util/public-api.d.ts +1 -0
- package/core/util/resize.d.ts +1 -1
- package/crumb/crumb.property.d.ts +2 -2
- package/date-picker/date-picker.property.d.ts +8 -8
- package/date-picker/ng-nest-ui-date-picker.metadata.json +1 -1
- package/date-picker/picker-date.component.d.ts +3 -2
- package/dialog/dialog.property.d.ts +16 -6
- package/dialog/ng-nest-ui-dialog.metadata.json +1 -1
- package/drawer/drawer.property.d.ts +3 -3
- package/dropdown/dropdown.property.d.ts +4 -4
- package/esm2015/affix/affix.property.js +1 -1
- package/esm2015/alert/alert.component.js +5 -4
- package/esm2015/alert/alert.module.js +3 -2
- package/esm2015/alert/alert.property.js +8 -1
- package/esm2015/anchor/anchor.component.js +1 -1
- package/esm2015/anchor/anchor.property.js +1 -1
- package/esm2015/auto-complete/auto-complete-portal.component.js +1 -1
- package/esm2015/auto-complete/auto-complete.component.js +6 -5
- package/esm2015/auto-complete/auto-complete.property.js +1 -1
- package/esm2015/avatar/avatar.property.js +1 -1
- package/esm2015/back-top/back-top.component.js +1 -1
- package/esm2015/back-top/back-top.property.js +1 -1
- package/esm2015/badge/badge.property.js +1 -1
- package/esm2015/base-form/base-form.component.js +1 -1
- package/esm2015/base-form/base-form.property.js +1 -1
- package/esm2015/border/border.component.js +2 -2
- package/esm2015/button/button.property.js +1 -1
- package/esm2015/button/buttons.component.js +1 -1
- package/esm2015/calendar/calendar.component.js +7 -3
- package/esm2015/calendar/calendar.property.js +1 -1
- package/esm2015/card/card.property.js +1 -1
- package/esm2015/carousel/carousel-panel.component.js +1 -1
- package/esm2015/carousel/carousel.component.js +1 -1
- package/esm2015/carousel/carousel.property.js +1 -1
- package/esm2015/cascade/cascade-portal.component.js +1 -1
- package/esm2015/cascade/cascade.component.js +1 -1
- package/esm2015/cascade/cascade.property.js +1 -1
- package/esm2015/checkbox/checkbox.component.js +7 -6
- package/esm2015/checkbox/checkbox.property.js +1 -1
- package/esm2015/collapse/collapse-panel.component.js +1 -1
- package/esm2015/collapse/collapse.property.js +1 -1
- package/esm2015/color/color.component.js +1 -1
- package/esm2015/color/color.property.js +1 -1
- package/esm2015/color-picker/color-picker-portal.component.js +1 -1
- package/esm2015/color-picker/color-picker.component.js +1 -1
- package/esm2015/color-picker/color-picker.property.js +1 -1
- package/esm2015/comment/comment-reply.component.js +1 -1
- package/esm2015/comment/comment.component.js +6 -2
- package/esm2015/comment/comment.property.js +2 -2
- package/esm2015/container/container.property.js +1 -1
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/core/config/config.service.js +1 -1
- package/esm2015/core/theme/theme.service.js +1 -1
- package/esm2015/core/util/html.js +11 -0
- package/esm2015/core/util/public-api.js +2 -1
- package/esm2015/core/util/resize.js +2 -2
- package/esm2015/crumb/crumb.property.js +1 -1
- package/esm2015/date-picker/date-picker-portal.component.js +1 -1
- package/esm2015/date-picker/date-picker.component.js +1 -1
- package/esm2015/date-picker/date-picker.property.js +1 -1
- package/esm2015/date-picker/picker-date.component.js +6 -3
- package/esm2015/date-picker/picker-month.component.js +2 -2
- package/esm2015/date-picker/picker-year.component.js +1 -1
- package/esm2015/dialog/dialog.component.js +3 -3
- package/esm2015/dialog/dialog.module.js +3 -1
- package/esm2015/dialog/dialog.property.js +8 -2
- package/esm2015/drawer/drawer.component.js +1 -1
- package/esm2015/drawer/drawer.property.js +1 -1
- package/esm2015/dropdown/dropdown-portal.component.js +1 -1
- package/esm2015/dropdown/dropdown.component.js +1 -1
- package/esm2015/dropdown/dropdown.property.js +1 -1
- package/esm2015/find/find.component.js +43 -4
- package/esm2015/find/find.module.js +3 -1
- package/esm2015/find/find.property.js +19 -2
- package/esm2015/form/control.component.js +7 -7
- package/esm2015/form/form.component.js +2 -2
- package/esm2015/form/form.property.js +1 -1
- package/esm2015/highlight/highlight.component.js +1 -1
- package/esm2015/highlight/highlight.property.js +1 -1
- package/esm2015/i18n/i18n.directive.js +1 -1
- package/esm2015/i18n/i18n.service.js +1 -1
- package/esm2015/i18n/ng-nest-ui-i18n.js +1 -2
- package/esm2015/i18n/public-api.js +2 -1
- package/esm2015/icon/icon.component.js +1 -1
- package/esm2015/icon/icon.property.js +1 -1
- package/esm2015/inner/inner.property.js +1 -1
- package/esm2015/input/input.component.js +1 -1
- package/esm2015/input/input.property.js +1 -1
- package/esm2015/input-number/input-number.component.js +1 -1
- package/esm2015/layout/layout.property.js +1 -1
- package/esm2015/link/link.property.js +1 -1
- package/esm2015/list/list.component.js +1 -1
- package/esm2015/list/list.property.js +1 -1
- package/esm2015/loading/loading.component.js +1 -1
- package/esm2015/loading/loading.property.js +1 -1
- package/esm2015/menu/menu-node.component.js +8 -6
- package/esm2015/menu/menu.component.js +2 -2
- package/esm2015/menu/menu.property.js +2 -2
- package/esm2015/message-box/message-box.component.js +20 -7
- package/esm2015/message-box/message-box.property.js +1 -1
- package/esm2015/outlet/outlet.directive.js +1 -1
- package/esm2015/page-header/page-header.property.js +1 -1
- package/esm2015/pagination/pagination.component.js +1 -1
- package/esm2015/pagination/pagination.property.js +1 -1
- package/esm2015/popconfirm/popconfirm.component.js +2 -2
- package/esm2015/popconfirm/popconfirm.property.js +1 -1
- package/esm2015/popover/popover-portal.component.js +1 -1
- package/esm2015/popover/popover.directive.js +1 -1
- package/esm2015/popover/popover.property.js +1 -1
- package/esm2015/progress/progress.component.js +1 -1
- package/esm2015/progress/progress.property.js +1 -1
- package/esm2015/radio/radio.component.js +2 -2
- package/esm2015/radio/radio.property.js +1 -1
- package/esm2015/rate/rate.component.js +1 -1
- package/esm2015/rate/rate.property.js +2 -2
- package/esm2015/result/result.component.js +5 -2
- package/esm2015/result/result.property.js +1 -1
- package/esm2015/ripple/ripple.directive.js +2 -2
- package/esm2015/ripple/ripple.property.js +1 -1
- package/esm2015/select/select-portal.component.js +1 -1
- package/esm2015/select/select.component.js +4 -4
- package/esm2015/select/select.property.js +1 -1
- package/esm2015/skeleton/skeleton.component.js +2 -2
- package/esm2015/skeleton/skeleton.property.js +1 -1
- package/esm2015/slider/slider.component.js +1 -1
- package/esm2015/slider/slider.property.js +1 -1
- package/esm2015/slider-select/slider-select.component.js +1 -1
- package/esm2015/slider-select/slider-select.property.js +1 -1
- package/esm2015/statistic/countdown.component.js +1 -1
- package/esm2015/statistic/statistic.property.js +1 -1
- package/esm2015/steps/steps.property.js +1 -1
- package/esm2015/switch/switch.component.js +1 -1
- package/esm2015/table/table-body.component.js +19 -9
- package/esm2015/table/table-foot.component.js +7 -7
- package/esm2015/table/table-head.component.js +13 -9
- package/esm2015/table/table.component.js +10 -3
- package/esm2015/table/table.property.js +8 -3
- package/esm2015/tabs/tab-content.component.js +1 -1
- package/esm2015/tabs/tab.component.js +1 -1
- package/esm2015/tabs/tabs.component.js +3 -3
- package/esm2015/tabs/tabs.property.js +1 -1
- package/esm2015/tag/tag.property.js +1 -1
- package/esm2015/text-retract/text-retract.component.js +1 -1
- package/esm2015/text-retract/text-retract.property.js +1 -1
- package/esm2015/textarea/textarea.component.js +1 -1
- package/esm2015/textarea/textarea.property.js +1 -1
- package/esm2015/theme/theme.property.js +1 -1
- package/esm2015/time-ago/time-ago.pipe.js +3 -1
- package/esm2015/time-picker/time-picker-frame.component.js +1 -1
- package/esm2015/time-picker/time-picker-portal.component.js +1 -1
- package/esm2015/time-picker/time-picker.component.js +2 -2
- package/esm2015/time-picker/time-picker.property.js +1 -1
- package/esm2015/timeline/timeline.property.js +1 -1
- package/esm2015/tooltip/tooltip-portal.component.js +1 -1
- package/esm2015/tooltip/tooltip.directive.js +1 -1
- package/esm2015/tooltip/tooltip.property.js +1 -1
- package/esm2015/transfer/transfer.component.js +5 -4
- package/esm2015/transfer/transfer.property.js +1 -1
- package/esm2015/tree/tree-node.component.js +10 -7
- package/esm2015/tree/tree.component.js +2 -2
- package/esm2015/tree/tree.property.js +3 -2
- package/esm2015/tree-file/tree-file.component.js +10 -2
- package/esm2015/tree-file/tree-file.property.js +1 -1
- package/esm2015/typography/typography.component.js +2 -3
- package/esm2015/typography/typography.property.js +1 -1
- package/esm2015/upload/upload-portal.component.js +1 -1
- package/esm2015/upload/upload.component.js +1 -1
- package/esm2015/upload/upload.property.js +1 -1
- package/fesm2015/ng-nest-ui-affix.js.map +1 -1
- package/fesm2015/ng-nest-ui-alert.js +14 -5
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.js +5 -4
- package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
- package/fesm2015/ng-nest-ui-avatar.js.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
- package/fesm2015/ng-nest-ui-badge.js.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
- package/fesm2015/ng-nest-ui-border.js +1 -1
- package/fesm2015/ng-nest-ui-border.js.map +1 -1
- package/fesm2015/ng-nest-ui-button.js +1 -1
- package/fesm2015/ng-nest-ui-button.js.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.js +6 -2
- package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
- package/fesm2015/ng-nest-ui-card.js.map +1 -1
- package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.js +6 -5
- package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
- package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-color.js.map +1 -1
- package/fesm2015/ng-nest-ui-comment.js +6 -2
- package/fesm2015/ng-nest-ui-comment.js.map +1 -1
- package/fesm2015/ng-nest-ui-container.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js +13 -2
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.js +6 -3
- package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.js +12 -4
- package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
- package/fesm2015/ng-nest-ui-find.js +62 -4
- package/fesm2015/ng-nest-ui-find.js.map +1 -1
- package/fesm2015/ng-nest-ui-form.js +7 -6
- package/fesm2015/ng-nest-ui-form.js.map +1 -1
- package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.js +1 -1
- package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
- package/fesm2015/ng-nest-ui-icon.js.map +1 -1
- package/fesm2015/ng-nest-ui-inner.js.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
- package/fesm2015/ng-nest-ui-input.js.map +1 -1
- package/fesm2015/ng-nest-ui-layout.js.map +1 -1
- package/fesm2015/ng-nest-ui-link.js.map +1 -1
- package/fesm2015/ng-nest-ui-list.js.map +1 -1
- package/fesm2015/ng-nest-ui-loading.js.map +1 -1
- package/fesm2015/ng-nest-ui-menu.js +10 -7
- package/fesm2015/ng-nest-ui-menu.js.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.js +19 -6
- package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
- package/fesm2015/ng-nest-ui-outlet.js.map +1 -1
- package/fesm2015/ng-nest-ui-page-header.js.map +1 -1
- package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
- package/fesm2015/ng-nest-ui-popover.js.map +1 -1
- package/fesm2015/ng-nest-ui-progress.js.map +1 -1
- package/fesm2015/ng-nest-ui-radio.js +1 -1
- package/fesm2015/ng-nest-ui-radio.js.map +1 -1
- package/fesm2015/ng-nest-ui-rate.js.map +1 -1
- package/fesm2015/ng-nest-ui-result.js +4 -1
- package/fesm2015/ng-nest-ui-result.js.map +1 -1
- package/fesm2015/ng-nest-ui-ripple.js +1 -1
- package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
- package/fesm2015/ng-nest-ui-select.js +3 -3
- package/fesm2015/ng-nest-ui-select.js.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.js +1 -1
- package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.js.map +1 -1
- package/fesm2015/ng-nest-ui-slider.js.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
- package/fesm2015/ng-nest-ui-steps.js.map +1 -1
- package/fesm2015/ng-nest-ui-switch.js.map +1 -1
- package/fesm2015/ng-nest-ui-table.js +50 -21
- package/fesm2015/ng-nest-ui-table.js.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.js +2 -2
- package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
- package/fesm2015/ng-nest-ui-tag.js.map +1 -1
- package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
- package/fesm2015/ng-nest-ui-theme.js.map +1 -1
- package/fesm2015/ng-nest-ui-time-ago.js +2 -0
- package/fesm2015/ng-nest-ui-time-ago.js.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
- package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.js +4 -3
- package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
- package/fesm2015/ng-nest-ui-tree-file.js +9 -1
- package/fesm2015/ng-nest-ui-tree-file.js.map +1 -1
- package/fesm2015/ng-nest-ui-tree.js +12 -7
- package/fesm2015/ng-nest-ui-tree.js.map +1 -1
- package/fesm2015/ng-nest-ui-typography.js +1 -2
- package/fesm2015/ng-nest-ui-typography.js.map +1 -1
- package/fesm2015/ng-nest-ui-upload.js.map +1 -1
- package/find/find.component.d.ts +3 -0
- package/find/find.property.d.ts +53 -9
- package/find/ng-nest-ui-find.metadata.json +1 -1
- package/form/control.component.d.ts +2 -3
- package/form/form.property.d.ts +5 -5
- package/form/ng-nest-ui-form.metadata.json +1 -1
- package/highlight/highlight.property.d.ts +2 -2
- package/i18n/ng-nest-ui-i18n.d.ts +0 -1
- package/i18n/ng-nest-ui-i18n.metadata.json +1 -1
- package/i18n/public-api.d.ts +1 -0
- package/icon/icon.component.d.ts +2 -2
- package/icon/icon.property.d.ts +6 -6
- package/inner/inner.property.d.ts +1 -1
- package/input/input.property.d.ts +4 -4
- package/layout/layout.property.d.ts +11 -11
- package/link/link.property.d.ts +3 -3
- package/list/list.property.d.ts +8 -8
- package/list/ng-nest-ui-list.metadata.json +1 -1
- package/loading/loading.property.d.ts +6 -6
- package/menu/menu-node.component.d.ts +2 -3
- package/menu/menu.property.d.ts +6 -6
- package/menu/ng-nest-ui-menu.metadata.json +1 -1
- package/message-box/message-box.component.d.ts +3 -0
- package/message-box/message-box.property.d.ts +4 -3
- package/message-box/ng-nest-ui-message-box.metadata.json +1 -1
- package/outlet/outlet.directive.d.ts +1 -1
- package/package.json +1 -1
- package/page-header/page-header.property.d.ts +4 -4
- package/pagination/pagination.property.d.ts +2 -2
- package/popconfirm/ng-nest-ui-popconfirm.metadata.json +1 -1
- package/popconfirm/popconfirm.component.d.ts +2 -2
- package/popconfirm/popconfirm.property.d.ts +7 -7
- package/popover/popover.property.d.ts +4 -4
- package/progress/progress.property.d.ts +2 -2
- package/radio/ng-nest-ui-radio.metadata.json +1 -1
- package/radio/radio.property.d.ts +3 -3
- package/rate/rate.property.d.ts +3 -2
- package/result/ng-nest-ui-result.metadata.json +1 -1
- package/result/result.component.d.ts +1 -0
- package/result/result.property.d.ts +3 -3
- package/ripple/ripple.property.d.ts +2 -2
- package/select/ng-nest-ui-select.metadata.json +1 -1
- package/select/select.property.d.ts +5 -5
- package/skeleton/ng-nest-ui-skeleton.metadata.json +1 -1
- package/skeleton/skeleton.property.d.ts +2 -2
- package/slider/slider.property.d.ts +6 -6
- package/slider-select/slider-select.property.d.ts +1 -1
- package/statistic/statistic.property.d.ts +1 -1
- package/steps/steps.property.d.ts +1 -1
- package/style/core/index.scss +1 -1
- package/style/directives/index.scss +2 -0
- package/style/directives/ripple/index.scss +6 -0
- package/style/directives/ripple/mixin.scss +37 -0
- package/style/directives/ripple/param.scss +3 -0
- package/table/ng-nest-ui-table.metadata.json +1 -1
- package/table/table-body.component.d.ts +6 -4
- package/table/table-foot.component.d.ts +2 -3
- package/table/table-head.component.d.ts +3 -3
- package/table/table.component.d.ts +1 -0
- package/table/table.property.d.ts +22 -12
- package/tabs/ng-nest-ui-tabs.metadata.json +1 -1
- package/tabs/tabs.property.d.ts +5 -5
- package/tag/tag.property.d.ts +3 -3
- package/text-retract/text-retract.property.d.ts +2 -2
- package/textarea/textarea.property.d.ts +2 -2
- package/theme/theme.property.d.ts +2 -2
- package/time-ago/time-ago.pipe.d.ts +1 -1
- package/time-picker/time-picker.property.d.ts +2 -2
- package/timeline/timeline.property.d.ts +5 -5
- package/tooltip/tooltip.property.d.ts +4 -4
- package/transfer/transfer.component.d.ts +1 -1
- package/transfer/transfer.property.d.ts +4 -4
- package/tree/ng-nest-ui-tree.metadata.json +1 -1
- package/tree/tree-node.component.d.ts +3 -3
- package/tree/tree.property.d.ts +12 -13
- package/tree-file/ng-nest-ui-tree-file.metadata.json +1 -1
- package/tree-file/tree-file.component.d.ts +3 -0
- package/tree-file/tree-file.property.d.ts +2 -2
- package/typography/typography.property.d.ts +1 -1
- package/upload/upload.property.d.ts +5 -5
- package/style/core/directive.scss +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@ng-nest/ui/core"),require("@ng-nest/ui/pagination"),require("rxjs/operators"),require("rxjs"),require("@angular/common"),require("@ng-nest/ui/outlet"),require("@ng-nest/ui/icon"),require("@angular/cdk/scrolling"),require("@ng-nest/ui/empty"),require("@ng-nest/ui/checkbox"),require("@ng-nest/ui/loading"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@ng-nest/ui/table",["exports","@angular/core","@ng-nest/ui/core","@ng-nest/ui/pagination","rxjs/operators","rxjs","@angular/common","@ng-nest/ui/outlet","@ng-nest/ui/icon","@angular/cdk/scrolling","@ng-nest/ui/empty","@ng-nest/ui/checkbox","@ng-nest/ui/loading","@angular/forms"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self)["ng-nest"]=t["ng-nest"]||{},t["ng-nest"].ui=t["ng-nest"].ui||{},t["ng-nest"].ui.table={}),t.ng.core,t["ng-nest"].ui.core,t["ng-nest"].ui.pagination,t.rxjs.operators,t.rxjs,t.ng.common,t["ng-nest"].ui.outlet,t["ng-nest"].ui.icon,t.ng.cdk.scrolling,t["ng-nest"].ui.empty,t["ng-nest"].ui.checkbox,t["ng-nest"].ui.loading,t.ng.forms)}(this,(function(t,e,n,o,
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@ng-nest/ui/core"),require("@ng-nest/ui/pagination"),require("rxjs/operators"),require("rxjs"),require("@angular/common"),require("@ng-nest/ui/outlet"),require("@ng-nest/ui/icon"),require("@angular/cdk/scrolling"),require("@ng-nest/ui/empty"),require("@ng-nest/ui/checkbox"),require("@ng-nest/ui/loading"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@ng-nest/ui/table",["exports","@angular/core","@ng-nest/ui/core","@ng-nest/ui/pagination","rxjs/operators","rxjs","@angular/common","@ng-nest/ui/outlet","@ng-nest/ui/icon","@angular/cdk/scrolling","@ng-nest/ui/empty","@ng-nest/ui/checkbox","@ng-nest/ui/loading","@angular/forms"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self)["ng-nest"]=t["ng-nest"]||{},t["ng-nest"].ui=t["ng-nest"].ui||{},t["ng-nest"].ui.table={}),t.ng.core,t["ng-nest"].ui.core,t["ng-nest"].ui.pagination,t.rxjs.operators,t.rxjs,t.ng.common,t["ng-nest"].ui.outlet,t["ng-nest"].ui.icon,t.ng.cdk.scrolling,t["ng-nest"].ui.empty,t["ng-nest"].ui.checkbox,t["ng-nest"].ui.loading,t.ng.forms)}(this,(function(t,e,n,r,o,i,l,a,c,s,d,h,u,p){"use strict";
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */var g=function(t,e){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function b(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}g(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function y(t,e,n,o){var r,i=arguments.length,l=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,e,n,o);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(l=(i<3?r(l):i>3?r(e,n,l):r(e,n))||l);return i>3&&l&&Object.defineProperty(e,n,l),l}function f(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}Object.create;function m(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function x(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),l=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)l.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return l}function v(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(x(arguments[e]));return t}Object.create;var w="x-table",C="table",S=function(t){function n(){var n=t.apply(this,v(arguments))||this;return n.data=[],n.columns=[],n.activatedRowChange=new e.EventEmitter,n.headColumnTpl={},n.bodyColumnTpl={},n.sortChange=new e.EventEmitter,n.minBufferPx=100,n.maxBufferPx=200,n.docPercent=1,n.checkedRow={},n.manual=!0,n.manualChange=new e.EventEmitter,n}return b(n,t),n}(o.XPaginationProperty);S.decorators=[{type:e.Component,args:[{template:""}]}],S.propDecorators={data:[{type:e.Input}],columns:[{type:e.Input}],rowHeight:[{type:e.Input}],loading:[{type:e.Input}],bordered:[{type:e.Input}],activatedRow:[{type:e.Input}],activatedRowChange:[{type:e.Output}],headColumnTpl:[{type:e.Input}],bodyColumnTpl:[{type:e.Input}],sortChange:[{type:e.Output}],allowSelectRow:[{type:e.Input}],virtualScroll:[{type:e.Input}],bodyHeight:[{type:e.Input}],itemSize:[{type:e.Input}],minBufferPx:[{type:e.Input}],maxBufferPx:[{type:e.Input}],adaptionHeight:[{type:e.Input}],docPercent:[{type:e.Input}],checkedRow:[{type:e.Input}],manual:[{type:e.Input}],scroll:[{type:e.Input}],manualChange:[{type:e.Output}],cellConfig:[{type:e.Input}]},y([n.XWithConfig(C,42),n.XInputNumber(),f("design:type",Number)],S.prototype,"rowHeight",void 0),y([n.XWithConfig(C,!1),n.XInputBoolean(),f("design:type",Object)],S.prototype,"loading",void 0),y([n.XWithConfig(C,!1),n.XInputBoolean(),f("design:type",Object)],S.prototype,"bordered",void 0),y([n.XWithConfig(C,!0),n.XInputBoolean(),f("design:type",Object)],S.prototype,"allowSelectRow",void 0),y([n.XWithConfig(C),n.XInputBoolean(),f("design:type",Object)],S.prototype,"virtualScroll",void 0),y([n.XInputNumber(),f("design:type",Number)],S.prototype,"bodyHeight",void 0),y([n.XWithConfig(C,42),n.XInputNumber(),f("design:type",Number)],S.prototype,"itemSize",void 0),y([n.XInputNumber(),f("design:type",Object)],S.prototype,"adaptionHeight",void 0),y([n.XInputNumber(),f("design:type",Object)],S.prototype,"docPercent",void 0),y([n.XInputBoolean(),f("design:type",Object)],S.prototype,"manual",void 0);var k="x-table-head",I=function(t){function e(){var e=t.apply(this,v(arguments))||this;return e.columns=[],e.rowHeight=42,e.columnTpl={},e}return b(e,t),e}(n.XProperty);I.decorators=[{type:e.Component,args:[{template:""}]}],I.propDecorators={columns:[{type:e.Input}],rowHeight:[{type:e.Input}],columnTpl:[{type:e.Input}],scrollYWidth:[{type:e.Input}],scrollXWidth:[{type:e.Input}],cellConfig:[{type:e.Input}]},y([n.XInputNumber(),f("design:type",Object)],I.prototype,"rowHeight",void 0);var X="x-table-body",T=function(t){function n(){var n=t.apply(this,v(arguments))||this;return n.data=[],n.columns=[],n.columnTpl={},n.activatedRowChange=new e.EventEmitter,n.rowHeight=42,n.allowSelectRow=!0,n.virtualScroll=!1,n.itemSize=42,n.minBufferPx=100,n.maxBufferPx=200,n.docPercent=1,n}return b(n,t),n}(n.XProperty);T.decorators=[{type:e.Component,args:[{template:""}]}],T.propDecorators={data:[{type:e.Input}],columns:[{type:e.Input}],columnTpl:[{type:e.Input}],activatedRow:[{type:e.Input}],activatedRowChange:[{type:e.Output}],rowHeight:[{type:e.Input}],bodyHeight:[{type:e.Input}],allowSelectRow:[{type:e.Input}],virtualScroll:[{type:e.Input}],itemSize:[{type:e.Input}],minBufferPx:[{type:e.Input}],maxBufferPx:[{type:e.Input}],adaptionHeight:[{type:e.Input}],docPercent:[{type:e.Input}],scroll:[{type:e.Input}],cellConfig:[{type:e.Input}]},y([n.XInputNumber(),f("design:type",Object)],T.prototype,"rowHeight",void 0),y([n.XInputNumber(),f("design:type",Number)],T.prototype,"bodyHeight",void 0),y([n.XInputBoolean(),f("design:type",Object)],T.prototype,"allowSelectRow",void 0),y([n.XInputBoolean(),f("design:type",Object)],T.prototype,"virtualScroll",void 0),y([n.XInputNumber(),f("design:type",Number)],T.prototype,"itemSize",void 0),y([n.XInputNumber(),f("design:type",Object)],T.prototype,"adaptionHeight",void 0),y([n.XInputNumber(),f("design:type",Object)],T.prototype,"docPercent",void 0);var H="x-table-foot",B=function(){};B.decorators=[{type:e.Component,args:[{template:""}]}];var O=function(t){function e(e,n,o,r){var l=t.call(this)||this;return l.renderer=e,l.elementRef=n,l.cdr=o,l.configService=r,l.hasScrollY=!1,l.scrollYWidth=0,l.hasScrollX=!1,l.scrollXHeight=0,l.scrollLeft=0,l.scrollTop=0,l.dataIsFunc=!1,l.getting=!1,l.tableData=[],l.checkedValues={},l.indeterminate="$$indeterminate",l._unSubject=new i.Subject,l}return b(e,t),Object.defineProperty(e.prototype,"getScrollLeft",{get:function(){return this.scrollLeft>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"getScrollTop",{get:function(){return this.scrollTop>0},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.setRowChecked(),this.setMerge()},e.prototype.ngOnChanges=function(t){n.XIsChange(t.data,t.checkedRow)&&this.setData(),n.XIsChange(t.columns,t.activatedRow)&&this.cdr.detectChanges(),n.XIsChange(t.manual)&&this.setManual()},e.prototype.ngOnDestroy=function(){this._unSubject.next(),this._unSubject.complete()},e.prototype.getSticky=function(t){return Number(t.left)>=0},e.prototype.getIndex=function(t){return(Number(this.index)-1)*Number(this.size)+t+1},e.prototype.setData=function(){Array.isArray(this.data)?(this.dataIsFunc=!1,this.tableData=this.data,this.setChecked(),this.setHeadCheckboxList()):this.data instanceof Function&&(this.dataIsFunc=!0,this.getDataByFunc())},e.prototype.getDataByFunc=function(){var t=this;this.manual&&(this.getting=!0,this.cdr.detectChanges(),this._unSubject.next(),this.data(this.index,this.size,this.query).pipe(r.takeUntil(this._unSubject)).subscribe((function(e){var n;n=x([e.list,e.total],2),t.tableData=n[0],t.total=n[1],t.virtualBody&&(t.virtualBody.scrollToIndex(0),t.virtualBody.checkViewportSize()),t.getting=!1,t.setChecked(),t.setHeadCheckboxList(),t.detectChanges()})))},e.prototype.setManual=function(){this.dataIsFunc&&this.getDataByFunc()},e.prototype.setRowChecked=function(){this.rowChecked=this.columns.find((function(t){return t.rowChecked})),this.headCheckboxList=this.columns.filter((function(t){return"checkbox"===t.type&&t.headChecked}))},e.prototype.setMerge=function(){var t=this;if(this.cellConfig){var e=function(e){if(e){var n="";if(e.gridTemplateColumns||(n=""+t.columns.map((function(t){return t.width?t.width:t.flex?t.flex+"fr":"1fr"})).join(" ")),e.cells)return{gridTemplateColumns:n,cells:e.cells.map((function(e){var n=t.columns.find((function(t){return t.id===e.id}));return n?Object.assign(Object.assign({},n),e):e}))}}};this.cellConfig.thead=e(this.cellConfig.thead),this.cellConfig.tbody=e(this.cellConfig.tbody)}},e.prototype.change=function(t){this.index=t,this.dataIsFunc&&this.getDataByFunc(),this.indexChange.emit(t),this.resetScroll()},e.prototype.resetScroll=function(t,e){var n,o;void 0===t&&(t=!0),void 0===e&&(e=!0),this.hasScrollX&&t&&(null===(n=this.virtualBody)||void 0===n||n.scrollTo({left:0})),this.hasScrollY&&e&&(null===(o=this.virtualBody)||void 0===o||o.scrollTo({top:0}))},e.prototype.setChecked=function(){var t,e,o=[];if(!n.XIsEmpty(this.tableData)&&this.checkedRow){for(var r in this.checkedRow){var i=this.checkedRow[r];try{for(var l=(t=void 0,m(this.tableData)),a=l.next();!a.done;a=l.next()){var c=a.value;c[r]=i.includes(c.id),o=v(o,[c])}}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=l.return)&&e.call(l)}finally{if(t)throw t.error}}}o.length>0&&(this.tableData=v(o)),this.detectChanges()}},e.prototype.setHeadCheckboxList=function(){var t,e;if(!n.XIsEmpty(this.tableData)&&this.headCheckboxList)try{for(var o=m(this.headCheckboxList),r=o.next();!r.done;r=o.next()){var i=r.value;this.setCheckedValues(i)}}catch(e){t={error:e}}finally{try{r&&!r.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}},e.prototype.checkSort=function(t){this.dataIsFunc&&(void 0===this.query&&(this.query={}),this.query.sort=t,this.queryChange.emit(this.query),this.getDataByFunc())},e.prototype.headChecked=function(t,e){this.tableData.forEach((function(n){n[e.id]=t})),this.setCheckedValues(e),this.detectChanges()},e.prototype.bodyChecked=function(t,e){this.setCheckedValues(e),this.detectChanges()},e.prototype.setCheckedValues=function(t){var e=this.tableData.length,n=this.tableData.filter((function(e){return e[t.id]})).length;this.checkedValues[t.id]=e===n,this.checkedValues[t.id+this.indeterminate]=n>0&&n<e},e.prototype.detectChanges=function(){this.bodyChange&&this.bodyChange(),this.headChange&&this.headChange(),this.cdr.detectChanges()},e}(S);O.decorators=[{type:e.Component,args:[{selector:"x-table",template:'<table\r\n #table\r\n class="x-table"\r\n [x-loading]="loading && getting"\r\n [class.x-table-scroll-left]="getScrollLeft"\r\n [class.x-table-scroll-top]="getScrollTop"\r\n [class.x-table-bordered]="bordered"\r\n [class.x-table-td-adaption-height]="rowHeight == 0"\r\n [class.x-table-cell-config]="cellConfig"\r\n>\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]="cellConfig?.thead"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]="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 [cellConfig]="cellConfig?.tbody"\r\n [(activatedRow)]="activatedRow"\r\n (activatedRowChange)="activatedRowChange.emit($event)"\r\n ></x-table-body>\r\n <x-table-foot></x-table-foot>\r\n</table>\r\n<x-pagination #pagination [(index)]="index" [(size)]="size" [(query)]="query" [total]="total" (indexChange)="change($event)">\r\n</x-pagination>\r\n',encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush,styles:[".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background-a100);min-height:42px}.x-table>thead>tr{position:absolute;width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background-a100);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:1}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr>th:first-child{padding-left:var(--x-font-size)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex;min-height:42px}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background-a100);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:1}.x-table>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table>tfoot{display:flex;flex-direction:column;justify-content:center}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-down,.x-table-sort-icon.x-icon.x-table-icon-up{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left>tbody .x-table-sticky,.x-table-scroll-left>thead .x-table-sticky{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>tbody tr>td,.x-table-bordered>thead>tr>th{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:var(--x-font-size)}.x-table-bordered>tbody tr>td:last-child,.x-table-bordered>thead>tr>th:last-child{border-right:none}.x-table-cell-config>tbody tr,.x-table-cell-config>thead tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>tbody tr>td,.x-table-cell-config>thead>tr>th{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:var(--x-font-size)}.x-table-cell-config>tbody tr>td:last-child,.x-table-cell-config>thead>tr>th:last-child{border-right:none}x-table{width:100%}x-table .x-pagination{padding-top:var(--x-font-size)}"]}]}],O.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef},{type:n.XConfigService}]},O.propDecorators={table:[{type:e.ViewChild,args:["table"]}],pagination:[{type:e.ViewChild,args:["pagination"]}]};var R=function(t){function e(e,n,o,r,i){var l=t.call(this)||this;return l.table=e,l.renderer=n,l.elementRef=o,l.cdr=r,l.configService=i,l.sort=[],l.sortStr="",l.theadStyle={},l}return b(e,t),e.prototype.ngOnChanges=function(t){n.XIsChange(t.columns,t.scrollYWidth,t.scrollXWidth,t.cellConfig)&&this.cdr.detectChanges()},e.prototype.ngOnInit=function(){n.removeNgTag(this.elementRef.nativeElement),this.setStyle()},e.prototype.ngAfterViewInit=function(){var t=this;this.table.thead=this.thead,this.table.headChange=function(){return t.cdr.detectChanges()}},e.prototype.getSticky=function(t){return Number(t.left)>=0},e.prototype.setStyle=function(){var t=0==this.rowHeight?"":this.rowHeight;if(this.cellConfig&&this.cellConfig.cells){var e=this.cellConfig.cells.map((function(t){var e,n=null===(e=t.gridArea)||void 0===e?void 0:e.split("/");return n&&n.length>3?Number(n[2]):2}));t=(Math.max.apply(Math,v(e))-1)*t}this.theadStyle={height:t+"px"}},e.prototype.onSort=function(t){var e;if(t.sort){n.XIsEmpty(this.sort)&&(this.sort=[]);var o=null===(e=this.sort)||void 0===e?void 0:e.find((function(e){return e.field===t.id}));o?"asc"===o.value?(this.sort=[],this.sortStr=""):o.value="asc":(o={field:t.id,value:"desc"},this.sort=[o]),n.XIsEmpty(this.sort)||(this.sortStr=o.field+" "+o.value),this.table.checkSort(this.sort),this.table.sortChange.emit(this.sort),this.table.resetScroll(!1,!0),this.cdr.detectChanges()}},e.prototype.dragWidth=function(t,e){e.width&&(e.width+=t.x,e.width<60&&(e.width=60),this.cdr.detectChanges(),this.table.bodyChange())},e.prototype.trackByItem=function(t,e){return e.id},e}(I);R.decorators=[{type:e.Component,args:[{selector:"x-table-head",template:'<thead #thead [ngStyle]="theadStyle">\r\n <ng-container *ngIf="cellConfig; else columnsTpl">\r\n <tr [style.gridTemplateColumns]="cellConfig.gridTemplateColumns">\r\n <th\r\n *ngFor="let column of cellConfig.cells"\r\n [class.x-table-sticky]="getSticky(column)"\r\n [class.x-table-width-drag]="column.widthDrag"\r\n [style.grid-area]="column.gridArea"\r\n [style.left.px]="column.left"\r\n [title]="column?.label"\r\n >\r\n <ng-container *ngTemplateOutlet="columnBaseTpl; context: { column: column }"></ng-container>\r\n <div *ngIf="column.dragWidth" class="x-table-drag-width" xDrag (draging)="dragWidth($event, column)"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl>\r\n <tr [style.height.px]="rowHeight == 0 ? \'\' : rowHeight" [style.padding-right.px]="scrollYWidth" [style.width.px]="scrollXWidth">\r\n <th\r\n *ngFor="let column of columns; trackBy: trackByItem"\r\n [class.x-table-sticky]="getSticky(column)"\r\n [style.width.px]="column.width"\r\n [style.left.px]="column.left"\r\n [style.flex]="column.width ? \'none\' : column.flex"\r\n >\r\n <ng-container *ngTemplateOutlet="columnBaseTpl; context: { column: column }"></ng-container>\r\n <div *ngIf="column.dragWidth" class="x-table-drag-width" xDrag (draging)="dragWidth($event, column)"></div>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column="column">\r\n <ng-container [ngSwitch]="column.type">\r\n <ng-container *ngSwitchCase="\'checkbox\'">\r\n <x-checkbox\r\n *ngIf="column.headChecked"\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 ></x-checkbox>\r\n <ng-container *ngIf="!column.headChecked">\r\n <ng-container *ngTemplateOutlet="cloumnDefaultTpl; context: { column: column }"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase="\'index\'">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet="cloumnDefaultTpl; context: { column: column }"></ng-container>\r\n </ng-container>\r\n </ng-container>\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 {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf="column.sort"\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 </a>\r\n</ng-template>\r\n',encapsulation:e.ViewEncapsulation.None}]}],R.ctorParameters=function(){return[{type:O,decorators:[{type:e.Host},{type:e.Optional}]},{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef},{type:n.XConfigService}]},R.propDecorators={thead:[{type:e.ViewChild,args:["thead"]}]};var j=function(t){function e(e,n,o,r,l,a){var c=t.call(this)||this;return c.table=e,c.renderer=n,c.elementRef=o,c.cdr=r,c.doc=l,c.configService=a,c.tbodyStyle={},c._unSubject=new i.Subject,c}return b(e,t),Object.defineProperty(e.prototype,"isEmpty",{get:function(){var t;return 0===(null===(t=this.data)||void 0===t?void 0:t.length)},enumerable:!1,configurable:!0}),e.prototype.ngOnChanges=function(t){n.XIsChange(t.data,t.columns,t.activatedRow,t.mergeRule)&&this.cdr.detectChanges()},e.prototype.ngOnInit=function(){var t;n.removeNgTag(this.elementRef.nativeElement),(null===(t=this.scroll)||void 0===t?void 0:t.y)&&!this.bodyHeight&&(this.bodyHeight=this.scroll.y)},e.prototype.ngAfterViewInit=function(){var t=this;this.table.virtualBody=this.virtualBody,this.table.bodyChange=function(){return t.cdr.detectChanges()},this.setSubject(),this.setScroll()},e.prototype.ngOnDestroy=function(){var t;this._unSubject.next(),this._unSubject.unsubscribe(),null===(t=this._resizeObserver)||void 0===t||t.disconnect()},e.prototype.setSubject=function(){var t,e,o,l=this;this.virtualBody&&(this.table.scrollContentEle=null===(e=null===(t=this.virtualBody)||void 0===t?void 0:t.elementRef)||void 0===e?void 0:e.nativeElement.querySelector(".cdk-virtual-scroll-content-wrapper"),(null===(o=this.scroll)||void 0===o?void 0:o.x)&&this.renderer.setStyle(this.table.scrollContentEle,"width",this.scroll.x+"px"),n.XResize(this.table.table.nativeElement,this.table.scrollContentEle).pipe(r.takeUntil(this._unSubject)).subscribe((function(t){l._resizeObserver=t.resizeObserver,l.setAdaptionHeight(),l.setScroll()})),i.fromEvent(window,"resize").pipe(r.takeUntil(this._unSubject)).subscribe((function(){l.setAdaptionHeight()}))),this.table.scrollContentEle&&i.fromEvent(this.virtualBody.elementRef.nativeElement,"scroll").pipe(r.takeUntil(this._unSubject)).subscribe((function(t){var e=t.srcElement;l.table.scrollTop=e.scrollTop,l.table.scrollLeft=e.scrollLeft,e.scrollLeft>=0&&l.table.thead&&(l.table.thead.nativeElement.scrollLeft=l.table.scrollLeft),l.table.cdr.detectChanges()}))},e.prototype.setScroll=function(){if(this.virtualBody&&this.table.thead){var t=this.virtualBody.elementRef.nativeElement,e=t.scrollHeight>this.bodyHeight,n=this.table.scrollContentEle.clientWidth>t.clientWidth;!this.table.hasScrollY&&e?(this.table.hasScrollY=!0,this.table.scrollYWidth=t.offsetWidth-t.clientWidth):this.table.hasScrollY&&!e&&(this.table.hasScrollY=!1,this.table.scrollYWidth=0),!this.table.hasScrollX&&n?(this.table.hasScrollX=!0,this.table.scrollXHeight=t.offsetHeight-t.clientHeight):this.table.hasScrollX&&!n&&(this.table.hasScrollX=!1,this.table.scrollXHeight=0,this.table.scrollXWidth=null),n&&(this.table.scrollXWidth=t.offsetWidth+t.scrollWidth-t.clientWidth),this.table.cdr.detectChanges()}},e.prototype.setStyle=function(){var t=0==this.rowHeight?"":this.rowHeight;if(this.cellConfig&&this.cellConfig.cells){var e=this.cellConfig.cells.map((function(t){var e,n=null===(e=t.gridArea)||void 0===e?void 0:e.split("/");return n&&n.length>3?Number(n[2]):2}));t=(Math.max.apply(Math,v(e))-1)*t}this.tbodyStyle={height:t+"px"}},e.prototype.getIndex=function(t,e){return isNaN(t)?this.data.indexOf(e):t},e.prototype.setAdaptionHeight=function(){var t,e,n;if(this.adaptionHeight>0){var o=(null===(t=this.table.thead)||void 0===t?void 0:t.nativeElement.clientHeight)||0,r=(null===(e=this.table.tfoot)||void 0===e?void 0:e.nativeElement.clientHeight)||0,i=(null===(n=this.table.pagination)||void 0===n?void 0:n.elementRef.nativeElement.clientHeight)||0;this.bodyHeight=Number(this.docPercent)*this.doc.documentElement.clientHeight-o-r-i-Number(this.adaptionHeight),this.bodyHeight<0&&(this.bodyHeight=0),this.minBufferPx=this.bodyHeight,this.maxBufferPx=1.2*this.bodyHeight,this.virtualBody._scrollStrategy._minBufferPx=this.minBufferPx,this.virtualBody._scrollStrategy._maxBufferPx=this.maxBufferPx,this.cdr.detectChanges()}},e.prototype.rowClick=function(t){this.activatedRow=t,this.table.rowChecked&&(Array.from(event.path).find((function(t){return"x-checkbox"==t.localName}))||(t[this.table.rowChecked.id]=!t[this.table.rowChecked.id],this.table.bodyChecked(t[this.table.rowChecked.id],this.table.rowChecked))),this.activatedRowChange.emit(t),this.cdr.detectChanges()},e.prototype.trackByItem=function(t,e){return e.id},e}(T);j.decorators=[{type:e.Component,args:[{selector:"x-table-body",template:'<tbody #tbody>\r\n <ng-container *ngIf="cellConfig; else virtualScrollTpl">\r\n <tr *ngFor="let row of data; index as i; trackBy: trackByItem" [style.gridTemplateColumns]="cellConfig.gridTemplateColumns">\r\n <td\r\n *ngFor="let column of cellConfig.cells; index as j"\r\n [title]="row[column.id] ? row[column.id] : \'\'"\r\n [class.x-table-sticky]="table.getSticky(column)"\r\n [style.left.px]="column.left"\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 </tr>\r\n </ng-container>\r\n <x-empty *ngIf="isEmpty"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf="virtualScroll; else bodyTpl"\r\n [itemSize]="itemSize"\r\n [minBufferPx]="minBufferPx"\r\n [maxBufferPx]="maxBufferPx"\r\n [style.height.px]="bodyHeight"\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]="rowHeight == 0 ? \'\' : rowHeight"\r\n (click)="rowClick(row)"\r\n >\r\n \x3c!-- rowHeight 为 0 的时候,index 下标获取不到 --\x3e\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</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <tr\r\n *ngFor="let row of data; index as i; trackBy: trackByItem"\r\n [class.x-table-activated]="allowSelectRow && activatedRow?.id === row.id"\r\n [style.height.px]="rowHeight == 0 ? \'\' : rowHeight"\r\n (click)="rowClick(row)"\r\n >\r\n <ng-container *ngTemplateOutlet="rowTpl; context: { row: row, i: i }"></ng-container>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row="row" let-i="i">\r\n <ng-container *ngFor="let column of columns; index as j; trackBy: trackByItem">\r\n <td\r\n [style.width.px]="column.width"\r\n [style.flex]="column.width ? \'none\' : column.flex"\r\n [title]="row[column.id] ? row[column.id] : \'\'"\r\n [class.x-table-sticky]="table.getSticky(column)"\r\n [style.left.px]="column.left"\r\n >\r\n <ng-template *ngTemplateOutlet="cellTpl; context: { column: column, row: row, i: i }"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column="column" let-row="row" let-i="i">\r\n <ng-container [ngSwitch]="column.type">\r\n <ng-container *ngSwitchCase="\'checkbox\'">\r\n <x-checkbox\r\n [data]="[{ id: true, label: \'\' }]"\r\n [(ngModel)]="row[column.id]"\r\n (ngModelChange)="table.bodyChecked($event, column)"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase="\'index\'">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *xOutlet="columnTpl[column.id]; context: { $column: column, $row: row }">\r\n <div [innerHTML]="row[column.id]" [style.text-align]="column.textAlign"></div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n',encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush}]}],j.ctorParameters=function(){return[{type:O,decorators:[{type:e.Host},{type:e.Optional}]},{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef},{type:void 0,decorators:[{type:e.Inject,args:[l.DOCUMENT]}]},{type:n.XConfigService}]},j.propDecorators={tbody:[{type:e.ViewChild,args:["tbody"]}],virtualBody:[{type:e.ViewChild,args:["virtualBody"]}]};var E=function(t){function e(e,n,o,r){var i=t.call(this)||this;return i.table=e,i.renderer=n,i.elementRef=o,i.cdr=r,i}return b(e,t),e.prototype.ngOnInit=function(){n.removeNgTag(this.elementRef.nativeElement)},e.prototype.ngAfterViewInit=function(){this.table.tfoot=this.tfoot},e}(B);E.decorators=[{type:e.Component,args:[{selector:"x-table-foot",template:"<tfoot></tfoot>\r\n",encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush}]}],E.ctorParameters=function(){return[{type:O,decorators:[{type:e.Host},{type:e.Optional}]},{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef}]},E.propDecorators={tfoot:[{type:e.ViewChild,args:["tfoot"]}]};var P=function(){function t(t,n,o){this.elementRef=t,this.renderer=o,this.draging=new e.EventEmitter,this._unSubject=new i.Subject,this.doc=n}return t.prototype.ngOnInit=function(){var t=this;i.fromEvent(this.elementRef.nativeElement,"mousedown").subscribe((function(e){var n=e.pageX,o=e.pageY,l=0,a=0,c=new i.Subject;t.renderer.setStyle(t.doc.documentElement,"cursor","ew-resize"),t.renderer.setStyle(t.doc.documentElement,"user-select","none"),i.fromEvent(t.doc.documentElement,"mousemove").pipe(r.takeUntil(c)).subscribe((function(e){l=e.pageX-n,a=e.pageY-o,n=e.pageX,o=e.pageY,t.draging.emit({x:l,y:a})})),i.fromEvent(t.doc.documentElement,"mouseup").pipe(r.takeUntil(c)).subscribe((function(e){t.renderer.removeStyle(t.doc.documentElement,"cursor"),t.renderer.removeStyle(t.doc.documentElement,"user-select"),c.next(),c.complete()}))}))},t.prototype.ngOnDestroy=function(){this._unSubject.next(),this._unSubject.complete()},t}();P.decorators=[{type:e.Directive,args:[{selector:"[xDrag]"}]}],P.ctorParameters=function(){return[{type:e.ElementRef},{type:void 0,decorators:[{type:e.Inject,args:[l.DOCUMENT]}]},{type:e.Renderer2}]},P.propDecorators={draging:[{type:e.Output}]};var D=function(){};D.decorators=[{type:e.NgModule,args:[{declarations:[P,O,S,R,I,j,T,E,B],exports:[O],imports:[l.CommonModule,p.FormsModule,o.XPaginationModule,a.XOutletModule,u.XCheckboxModule,c.XIconModule,s.ScrollingModule,d.XEmptyModule,h.XLoadingModule]}]}],t.XDragDirective=P,t.XTableBodyComponent=j,t.XTableBodyPrefix=X,t.XTableBodyProperty=T,t.XTableComponent=O,t.XTableFootComponent=E,t.XTableFootPrefix=H,t.XTableFootProperty=B,t.XTableHeadComponent=R,t.XTableHeadPrefix=k,t.XTableHeadProperty=I,t.XTableModule=D,t.XTablePrefix=w,t.XTableProperty=S,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */var g=function(t,e){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function b(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}g(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function f(t,e,n,r){var o,i=arguments.length,l=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(l=(i<3?o(l):i>3?o(e,n,l):o(e,n))||l);return i>3&&l&&Object.defineProperty(e,n,l),l}function y(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}Object.create;function m(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function x(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,o,i=n.call(t),l=[];try{for(;(void 0===e||e-- >0)&&!(r=i.next()).done;)l.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return l}function v(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(x(arguments[e]));return t}Object.create;var w="x-table",C="table",S=function(t){function n(){var n=t.apply(this,v(arguments))||this;return n.data=[],n.columns=[],n.activatedRowChange=new e.EventEmitter,n.headColumnTpl={},n.bodyColumnTpl={},n.sortChange=new e.EventEmitter,n.minBufferPx=100,n.maxBufferPx=200,n.docPercent=1,n.checkedRow={},n.manual=!0,n.manualChange=new e.EventEmitter,n}return b(n,t),n}(r.XPaginationProperty);S.decorators=[{type:e.Component,args:[{template:""}]}],S.propDecorators={data:[{type:e.Input}],columns:[{type:e.Input}],rowHeight:[{type:e.Input}],loading:[{type:e.Input}],bordered:[{type:e.Input}],activatedRow:[{type:e.Input}],activatedRowChange:[{type:e.Output}],headColumnTpl:[{type:e.Input}],bodyColumnTpl:[{type:e.Input}],sortChange:[{type:e.Output}],allowSelectRow:[{type:e.Input}],virtualScroll:[{type:e.Input}],bodyHeight:[{type:e.Input}],itemSize:[{type:e.Input}],minBufferPx:[{type:e.Input}],maxBufferPx:[{type:e.Input}],adaptionHeight:[{type:e.Input}],docPercent:[{type:e.Input}],checkedRow:[{type:e.Input}],manual:[{type:e.Input}],scroll:[{type:e.Input}],manualChange:[{type:e.Output}],cellConfig:[{type:e.Input}],rowSize:[{type:e.Input}]},f([n.XWithConfig(C,42),n.XInputNumber(),y("design:type",Number)],S.prototype,"rowHeight",void 0),f([n.XWithConfig(C,!1),n.XInputBoolean(),y("design:type",Object)],S.prototype,"loading",void 0),f([n.XWithConfig(C,!1),n.XInputBoolean(),y("design:type",Object)],S.prototype,"bordered",void 0),f([n.XWithConfig(C,!0),n.XInputBoolean(),y("design:type",Object)],S.prototype,"allowSelectRow",void 0),f([n.XWithConfig(C),n.XInputBoolean(),y("design:type",Object)],S.prototype,"virtualScroll",void 0),f([n.XInputNumber(),y("design:type",Number)],S.prototype,"bodyHeight",void 0),f([n.XWithConfig(C,42),n.XInputNumber(),y("design:type",Number)],S.prototype,"itemSize",void 0),f([n.XInputNumber(),y("design:type",Object)],S.prototype,"adaptionHeight",void 0),f([n.XInputNumber(),y("design:type",Object)],S.prototype,"docPercent",void 0),f([n.XInputBoolean(),y("design:type",Object)],S.prototype,"manual",void 0),f([n.XWithConfig(C,"medium"),y("design:type",String)],S.prototype,"rowSize",void 0);var k="x-table-head",I=function(t){function e(){var e=t.apply(this,v(arguments))||this;return e.columns=[],e.rowHeight=42,e.columnTpl={},e}return b(e,t),e}(n.XProperty);I.decorators=[{type:e.Component,args:[{template:""}]}],I.propDecorators={columns:[{type:e.Input}],rowHeight:[{type:e.Input}],columnTpl:[{type:e.Input}],scrollYWidth:[{type:e.Input}],scrollXWidth:[{type:e.Input}],cellConfig:[{type:e.Input}]},f([n.XInputNumber(),y("design:type",Object)],I.prototype,"rowHeight",void 0);var z="x-table-body",T=function(t){function n(){var n=t.apply(this,v(arguments))||this;return n.data=[],n.columns=[],n.columnTpl={},n.activatedRowChange=new e.EventEmitter,n.rowHeight=42,n.allowSelectRow=!0,n.virtualScroll=!1,n.itemSize=42,n.minBufferPx=100,n.maxBufferPx=200,n.docPercent=1,n}return b(n,t),n}(n.XProperty);T.decorators=[{type:e.Component,args:[{template:""}]}],T.propDecorators={data:[{type:e.Input}],columns:[{type:e.Input}],columnTpl:[{type:e.Input}],activatedRow:[{type:e.Input}],activatedRowChange:[{type:e.Output}],rowHeight:[{type:e.Input}],bodyHeight:[{type:e.Input}],allowSelectRow:[{type:e.Input}],virtualScroll:[{type:e.Input}],itemSize:[{type:e.Input}],minBufferPx:[{type:e.Input}],maxBufferPx:[{type:e.Input}],adaptionHeight:[{type:e.Input}],docPercent:[{type:e.Input}],scroll:[{type:e.Input}],cellConfig:[{type:e.Input}]},f([n.XInputNumber(),y("design:type",Object)],T.prototype,"rowHeight",void 0),f([n.XInputNumber(),y("design:type",Number)],T.prototype,"bodyHeight",void 0),f([n.XInputBoolean(),y("design:type",Object)],T.prototype,"allowSelectRow",void 0),f([n.XInputBoolean(),y("design:type",Object)],T.prototype,"virtualScroll",void 0),f([n.XInputNumber(),y("design:type",Number)],T.prototype,"itemSize",void 0),f([n.XInputNumber(),y("design:type",Object)],T.prototype,"adaptionHeight",void 0),f([n.XInputNumber(),y("design:type",Object)],T.prototype,"docPercent",void 0);var X="x-table-foot",H=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return b(e,t),e}(n.XProperty);H.decorators=[{type:e.Component,args:[{template:""}]}];var R=function(t){function e(e,n,r,o){var l=t.call(this)||this;return l.renderer=e,l.elementRef=n,l.cdr=r,l.configService=o,l.hasScrollY=!1,l.scrollYWidth=0,l.hasScrollX=!1,l.scrollXHeight=0,l.scrollLeft=0,l.scrollTop=0,l.dataIsFunc=!1,l.getting=!1,l.tableData=[],l.checkedValues={},l.indeterminate="$$indeterminate",l._unSubject=new i.Subject,l}return b(e,t),Object.defineProperty(e.prototype,"getScrollLeft",{get:function(){return this.scrollLeft>0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"getScrollTop",{get:function(){return this.scrollTop>0},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.setClassMap(),this.setRowChecked(),this.setMerge()},e.prototype.ngOnChanges=function(t){n.XIsChange(t.data,t.checkedRow)&&this.setData(),n.XIsChange(t.columns,t.activatedRow)&&this.cdr.detectChanges(),n.XIsChange(t.manual)&&this.setManual()},e.prototype.ngOnDestroy=function(){this._unSubject.next(),this._unSubject.complete()},e.prototype.setClassMap=function(){var t;this.classMap=((t={})["x-table-row-size-"+this.rowSize]=!n.XIsEmpty(this.rowSize),t),this.cdr.detectChanges()},e.prototype.getSticky=function(t){return Number(t.left)>=0},e.prototype.getIndex=function(t){return(Number(this.index)-1)*Number(this.size)+t+1},e.prototype.setData=function(){Array.isArray(this.data)?(this.dataIsFunc=!1,this.tableData=this.data,this.setChecked(),this.setHeadCheckboxList()):this.data instanceof Function&&(this.dataIsFunc=!0,this.getDataByFunc())},e.prototype.getDataByFunc=function(){var t=this;this.manual&&(this.getting=!0,this.cdr.detectChanges(),this._unSubject.next(),this.data(this.index,this.size,this.query).pipe(o.takeUntil(this._unSubject)).subscribe((function(e){var n;n=x([e.list,e.total],2),t.tableData=n[0],t.total=n[1],t.virtualBody&&(t.virtualBody.scrollToIndex(0),t.virtualBody.checkViewportSize()),t.getting=!1,t.setChecked(),t.setHeadCheckboxList(),t.detectChanges()})))},e.prototype.setManual=function(){this.dataIsFunc&&this.getDataByFunc()},e.prototype.setRowChecked=function(){this.rowChecked=this.columns.find((function(t){return t.rowChecked})),this.headCheckboxList=this.columns.filter((function(t){return"checkbox"===t.type&&t.headChecked}))},e.prototype.setMerge=function(){var t=this;if(this.cellConfig){var e=function(e){if(e){var n="";if(e.gridTemplateColumns||(n=""+t.columns.map((function(t){return t.width?t.width:t.flex?t.flex+"fr":"1fr"})).join(" ")),e.cells)return{gridTemplateColumns:n,cells:e.cells.map((function(e){var n=t.columns.find((function(t){return t.id===e.id}));return n?Object.assign(Object.assign({},n),e):e}))}}};this.cellConfig.thead=e(this.cellConfig.thead),this.cellConfig.tbody=e(this.cellConfig.tbody)}},e.prototype.change=function(t){this.index=t,this.dataIsFunc&&this.getDataByFunc(),this.indexChange.emit(t),this.resetScroll()},e.prototype.resetScroll=function(t,e){var n,r;void 0===t&&(t=!0),void 0===e&&(e=!0),this.hasScrollX&&t&&(null===(n=this.virtualBody)||void 0===n||n.scrollTo({left:0})),this.hasScrollY&&e&&(null===(r=this.virtualBody)||void 0===r||r.scrollTo({top:0}))},e.prototype.setChecked=function(){var t,e,r=[];if(!n.XIsEmpty(this.tableData)&&this.checkedRow){for(var o in this.checkedRow){var i=this.checkedRow[o];try{for(var l=(t=void 0,m(this.tableData)),a=l.next();!a.done;a=l.next()){var c=a.value;c[o]=i.includes(c.id),r=v(r,[c])}}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=l.return)&&e.call(l)}finally{if(t)throw t.error}}}r.length>0&&(this.tableData=v(r)),this.detectChanges()}},e.prototype.setHeadCheckboxList=function(){var t,e;if(!n.XIsEmpty(this.tableData)&&this.headCheckboxList)try{for(var r=m(this.headCheckboxList),o=r.next();!o.done;o=r.next()){var i=o.value;this.setCheckedValues(i)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}},e.prototype.checkSort=function(t){this.dataIsFunc&&(void 0===this.query&&(this.query={}),this.query.sort=t,this.queryChange.emit(this.query),this.getDataByFunc())},e.prototype.headChecked=function(t,e){this.tableData.forEach((function(n){n[e.id]=t})),this.setCheckedValues(e),this.detectChanges()},e.prototype.bodyChecked=function(t,e){this.setCheckedValues(e),this.detectChanges()},e.prototype.setCheckedValues=function(t){var e=this.tableData.length,n=this.tableData.filter((function(e){return e[t.id]})).length;this.checkedValues[t.id]=e===n,this.checkedValues[t.id+this.indeterminate]=n>0&&n<e},e.prototype.detectChanges=function(){this.bodyChange&&this.bodyChange(),this.headChange&&this.headChange(),this.cdr.detectChanges()},e}(S);R.decorators=[{type:e.Component,args:[{selector:"x-table",template:'<table\r\n #table\r\n class="x-table"\r\n [ngClass]="classMap"\r\n [x-loading]="loading && getting"\r\n [class.x-table-scroll-left]="getScrollLeft"\r\n [class.x-table-scroll-top]="getScrollTop"\r\n [class.x-table-bordered]="bordered"\r\n [class.x-table-td-adaption-height]="rowHeight == 0"\r\n [class.x-table-cell-config]="cellConfig"\r\n>\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]="cellConfig?.thead"\r\n [table]="this"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]="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 [cellConfig]="cellConfig?.tbody"\r\n [(activatedRow)]="activatedRow"\r\n (activatedRowChange)="activatedRowChange.emit($event)"\r\n [table]="this"\r\n ></x-table-body>\r\n <x-table-foot [table]="this"></x-table-foot>\r\n</table>\r\n<x-pagination #pagination *ngIf="size" [(index)]="index" [(size)]="size" [(query)]="query" [total]="total" (indexChange)="change($event)">\r\n</x-pagination>\r\n',encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush,styles:[".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{position:absolute;width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:1}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:1}.x-table>tbody tr.x-table-activated>td{color:var(--x-primary)}.x-table>tbody tr.x-table-activated>td,.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table>tfoot{display:flex;flex-direction:column;justify-content:center}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-down,.x-table-sort-icon.x-icon.x-table-icon-up{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left>tbody .x-table-sticky,.x-table-scroll-left>thead .x-table-sticky{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>tbody tr>td,.x-table-bordered>thead>tr>th{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>tbody tr>td:last-child,.x-table-bordered>thead>tr>th:last-child{border-right:none}.x-table-cell-config>tbody tr,.x-table-cell-config>thead tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>tbody tr>td,.x-table-cell-config>thead>tr>th{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>tbody tr>td:last-child,.x-table-cell-config>thead>tr>th:last-child{border-right:none}.x-table-row-size-big>tbody tr>td,.x-table-row-size-big>thead>tr>th{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big.x-table-bordered>tbody tr>td,.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td,.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big>tbody tr>td:first-child,.x-table-row-size-big>thead>tr>th:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>tbody tr>td,.x-table-row-size-large>thead>tr>th{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large.x-table-bordered>tbody tr>td,.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td,.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large>tbody tr>td:first-child,.x-table-row-size-large>thead>tr>th:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>tbody tr>td,.x-table-row-size-medium>thead>tr>th{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium.x-table-bordered>tbody tr>td,.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td,.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium>tbody tr>td:first-child,.x-table-row-size-medium>thead>tr>th:first-child{padding-left:var(--x-font-size)}.x-table-row-size-small>tbody tr>td,.x-table-row-size-small>thead>tr>th{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small.x-table-bordered>tbody tr>td,.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td,.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small>tbody tr>td:first-child,.x-table-row-size-small>thead>tr>th:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>tbody tr>td,.x-table-row-size-mini>thead>tr>th{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini.x-table-bordered>tbody tr>td,.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td,.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini>tbody tr>td:first-child,.x-table-row-size-mini>thead>tr>th:first-child{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}"]}]}],R.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef},{type:n.XConfigService}]},R.propDecorators={table:[{type:e.ViewChild,args:["table"]}],pagination:[{type:e.ViewChild,args:["pagination"]}]};var B=function(t){function e(e,n,r,o){var i=t.call(this)||this;return i.renderer=e,i.elementRef=n,i.cdr=r,i.configService=o,i.sort=[],i.sortStr="",i.theadStyle={},i}return b(e,t),Object.defineProperty(e.prototype,"getRowHeight",{get:function(){return 0==this.rowHeight?"":this.rowHeight},enumerable:!1,configurable:!0}),e.prototype.ngOnChanges=function(t){n.XIsChange(t.columns,t.scrollYWidth,t.scrollXWidth,t.cellConfig)&&this.cdr.detectChanges()},e.prototype.ngOnInit=function(){n.removeNgTag(this.elementRef.nativeElement),this.setStyle()},e.prototype.ngAfterViewInit=function(){var t=this;this.table.thead=this.thead,this.table.headChange=function(){return t.cdr.detectChanges()}},e.prototype.getSticky=function(t){return Number(t.left)>=0},e.prototype.setStyle=function(){var t,e=0==this.rowHeight?"":this.rowHeight;if(this.cellConfig&&this.cellConfig.cells){var n=this.cellConfig.cells.map((function(t){var e,n=null===(e=t.gridArea)||void 0===e?void 0:e.split("/");return n&&n.length>3?Number(n[2]):2}));e=(Math.max.apply(Math,v(n))-1)*e}this.theadStyle=((t={height:e+"px"})["min-height"]=this.getRowHeight+"px",t)},e.prototype.onSort=function(t){var e;if(t.sort){n.XIsEmpty(this.sort)&&(this.sort=[]);var r=null===(e=this.sort)||void 0===e?void 0:e.find((function(e){return e.field===t.id}));r?"asc"===r.value?(this.sort=[],this.sortStr=""):r.value="asc":(r={field:t.id,value:"desc"},this.sort=[r]),n.XIsEmpty(this.sort)||(this.sortStr=r.field+" "+r.value),this.table.checkSort(this.sort),this.table.sortChange.emit(this.sort),this.table.resetScroll(!1,!0),this.cdr.detectChanges()}},e.prototype.dragWidth=function(t,e){e.width&&(e.width+=t.x,e.width<60&&(e.width=60),this.cdr.detectChanges(),this.table.bodyChange())},e.prototype.trackByItem=function(t,e){return e.id},e}(I);B.decorators=[{type:e.Component,args:[{selector:"x-table-head",template:'<thead #thead [ngStyle]="theadStyle">\r\n <ng-container *ngIf="cellConfig; else columnsTpl">\r\n <tr [style.gridTemplateColumns]="cellConfig.gridTemplateColumns" [style.min-height.px]="getRowHeight">\r\n <th\r\n *ngFor="let column of cellConfig.cells"\r\n [class.x-table-sticky]="getSticky(column)"\r\n [class.x-table-width-drag]="column.widthDrag"\r\n [style.grid-area]="column.gridArea"\r\n [style.left.px]="column.left"\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 <div *ngIf="column.dragWidth" class="x-table-drag-width" xDrag (draging)="dragWidth($event, column)"></div>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n</thead>\r\n\r\n<ng-template #columnsTpl>\r\n <tr\r\n [style.height.px]="getRowHeight"\r\n [style.min-height.px]="getRowHeight"\r\n [style.padding-right.px]="scrollYWidth"\r\n [style.width.px]="scrollXWidth"\r\n >\r\n <th\r\n *ngFor="let column of columns; trackBy: trackByItem"\r\n [class.x-table-sticky]="getSticky(column)"\r\n [style.min-height.px]="getRowHeight"\r\n [style.width.px]="column.width"\r\n [style.left.px]="column.left"\r\n [style.flex]="column.width ? \'none\' : column.flex"\r\n >\r\n <ng-container *ngTemplateOutlet="columnBaseTpl; context: { column: column }"></ng-container>\r\n <div *ngIf="column.dragWidth" class="x-table-drag-width" xDrag (draging)="dragWidth($event, column)"></div>\r\n </th>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #columnBaseTpl let-column="column">\r\n <ng-container [ngSwitch]="column.type">\r\n <ng-container *ngSwitchCase="\'checkbox\'">\r\n <x-checkbox\r\n *ngIf="column.headChecked"\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 ></x-checkbox>\r\n <ng-container *ngIf="!column.headChecked">\r\n <ng-container *ngTemplateOutlet="cloumnDefaultTpl; context: { column: column }"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase="\'index\'">\r\n <a>{{ column.label }}</a>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet="cloumnDefaultTpl; context: { column: column }"></ng-container>\r\n </ng-container>\r\n </ng-container>\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 {{ column.label }}\r\n </ng-container>\r\n <x-icon\r\n *ngIf="column.sort"\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 </a>\r\n</ng-template>\r\n',encapsulation:e.ViewEncapsulation.None}]}],B.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef},{type:n.XConfigService}]},B.propDecorators={thead:[{type:e.ViewChild,args:["thead"]}],table:[{type:e.Input}]};var O=function(t){function e(e,n,r,o,l){var a=t.call(this)||this;return a.renderer=e,a.elementRef=n,a.cdr=r,a.doc=o,a.configService=l,a.tbodyStyle={},a._unSubject=new i.Subject,a}return b(e,t),Object.defineProperty(e.prototype,"isEmpty",{get:function(){var t;return 0===(null===(t=this.data)||void 0===t?void 0:t.length)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"getRowHeight",{get:function(){return 0==this.rowHeight?"":this.rowHeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"getItemSize",{get:function(){return 0!==this.rowHeight&&this.itemSize>this.rowHeight?this.rowHeight:this.itemSize},enumerable:!1,configurable:!0}),e.prototype.ngOnChanges=function(t){n.XIsChange(t.data,t.columns,t.activatedRow,t.mergeRule)&&this.cdr.detectChanges()},e.prototype.ngOnInit=function(){var t;n.removeNgTag(this.elementRef.nativeElement),(null===(t=this.scroll)||void 0===t?void 0:t.y)&&!this.bodyHeight&&(this.bodyHeight=this.scroll.y)},e.prototype.ngAfterViewInit=function(){var t=this;this.table.virtualBody=this.virtualBody,this.table.bodyChange=function(){return t.cdr.detectChanges()},this.setSubject(),this.setScroll()},e.prototype.ngOnDestroy=function(){var t;this._unSubject.next(),this._unSubject.unsubscribe(),null===(t=this._resizeObserver)||void 0===t||t.disconnect()},e.prototype.setSubject=function(){var t,e,r,l=this;this.virtualBody&&(this.table.scrollContentEle=null===(e=null===(t=this.virtualBody)||void 0===t?void 0:t.elementRef)||void 0===e?void 0:e.nativeElement.querySelector(".cdk-virtual-scroll-content-wrapper"),(null===(r=this.scroll)||void 0===r?void 0:r.x)&&this.renderer.setStyle(this.table.scrollContentEle,"width",this.scroll.x+"px"),n.XResize(this.table.table.nativeElement,this.table.scrollContentEle).pipe(o.takeUntil(this._unSubject)).subscribe((function(t){l._resizeObserver=t.resizeObserver,l.setAdaptionHeight(),l.setScroll()})),i.fromEvent(window,"resize").pipe(o.takeUntil(this._unSubject)).subscribe((function(){l.setAdaptionHeight()}))),this.table.scrollContentEle&&i.fromEvent(this.virtualBody.elementRef.nativeElement,"scroll").pipe(o.takeUntil(this._unSubject)).subscribe((function(t){var e=t.srcElement;l.table.scrollTop=e.scrollTop,l.table.scrollLeft=e.scrollLeft,e.scrollLeft>=0&&l.table.thead&&(l.table.thead.nativeElement.scrollLeft=l.table.scrollLeft),l.table.cdr.detectChanges()}))},e.prototype.setScroll=function(){if(this.virtualBody&&this.table.thead){var t=this.virtualBody.elementRef.nativeElement,e=t.scrollHeight>this.bodyHeight,n=this.table.scrollContentEle.clientWidth>t.clientWidth;!this.table.hasScrollY&&e?(this.table.hasScrollY=!0,this.table.scrollYWidth=t.offsetWidth-t.clientWidth):this.table.hasScrollY&&!e&&(this.table.hasScrollY=!1,this.table.scrollYWidth=0),!this.table.hasScrollX&&n?(this.table.hasScrollX=!0,this.table.scrollXHeight=t.offsetHeight-t.clientHeight):this.table.hasScrollX&&!n&&(this.table.hasScrollX=!1,this.table.scrollXHeight=0,this.table.scrollXWidth=null),n&&(this.table.scrollXWidth=t.offsetWidth+t.scrollWidth-t.clientWidth),this.table.cdr.detectChanges()}},e.prototype.setStyle=function(){var t=0==this.rowHeight?"":this.rowHeight;if(this.cellConfig&&this.cellConfig.cells){var e=this.cellConfig.cells.map((function(t){var e,n=null===(e=t.gridArea)||void 0===e?void 0:e.split("/");return n&&n.length>3?Number(n[2]):2}));t=(Math.max.apply(Math,v(e))-1)*t}this.tbodyStyle={height:t+"px"}},e.prototype.getIndex=function(t,e){return isNaN(t)?this.data.indexOf(e):t},e.prototype.getTitle=function(t,e){var r=t[e.id];return r?n.stripTags(r):""},e.prototype.setAdaptionHeight=function(){var t,e,n;if(this.adaptionHeight>0){var r=(null===(t=this.table.thead)||void 0===t?void 0:t.nativeElement.clientHeight)||0,o=(null===(e=this.table.tfoot)||void 0===e?void 0:e.nativeElement.clientHeight)||0,i=(null===(n=this.table.pagination)||void 0===n?void 0:n.elementRef.nativeElement.clientHeight)||0;this.bodyHeight=Number(this.docPercent)*this.doc.documentElement.clientHeight-r-o-i-Number(this.adaptionHeight),this.bodyHeight<0&&(this.bodyHeight=0),this.minBufferPx=this.bodyHeight,this.maxBufferPx=1.2*this.bodyHeight,this.virtualBody._scrollStrategy._minBufferPx=this.minBufferPx,this.virtualBody._scrollStrategy._maxBufferPx=this.maxBufferPx,this.cdr.detectChanges()}},e.prototype.rowClick=function(t){this.activatedRow=t,this.table.rowChecked&&(Array.from(event.path).find((function(t){return"x-checkbox"==t.localName}))||(t[this.table.rowChecked.id]=!t[this.table.rowChecked.id],this.table.bodyChecked(t[this.table.rowChecked.id],this.table.rowChecked))),this.activatedRowChange.emit(t),this.cdr.detectChanges()},e.prototype.trackByItem=function(t,e){return e.id},e}(T);O.decorators=[{type:e.Component,args:[{selector:"x-table-body",template:'<tbody #tbody>\r\n <ng-container *ngIf="cellConfig; else virtualScrollTpl">\r\n <tr *ngFor="let row of data; index as i; trackBy: trackByItem" [style.gridTemplateColumns]="cellConfig.gridTemplateColumns">\r\n <td\r\n *ngFor="let column of cellConfig.cells; index as j"\r\n [title]="getTitle(row, column)"\r\n [class.x-table-sticky]="table.getSticky(column)"\r\n [style.left.px]="column.left"\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 </tr>\r\n </ng-container>\r\n <x-empty *ngIf="isEmpty"></x-empty>\r\n</tbody>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n *ngIf="virtualScroll; else bodyTpl"\r\n [itemSize]="getItemSize"\r\n [minBufferPx]="minBufferPx"\r\n [maxBufferPx]="maxBufferPx"\r\n [style.height.px]="bodyHeight"\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)="rowClick(row)"\r\n >\r\n \x3c!-- rowHeight 为 0 的时候,index 下标获取不到 --\x3e\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</ng-template>\r\n\r\n<ng-template #bodyTpl>\r\n <tr\r\n *ngFor="let row of data; index as i; 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)="rowClick(row)"\r\n >\r\n <ng-container *ngTemplateOutlet="rowTpl; context: { row: row, i: i }"></ng-container>\r\n </tr>\r\n</ng-template>\r\n\r\n<ng-template #rowTpl let-row="row" let-i="i">\r\n <ng-container *ngFor="let column of columns; index as j; trackBy: trackByItem">\r\n <td\r\n [style.width.px]="column.width"\r\n [style.flex]="column.width ? \'none\' : column.flex"\r\n [title]="getTitle(row, column)"\r\n [class.x-table-sticky]="table.getSticky(column)"\r\n [style.left.px]="column.left"\r\n >\r\n <ng-template *ngTemplateOutlet="cellTpl; context: { column: column, row: row, i: i }"></ng-template>\r\n </td>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #cellTpl let-column="column" let-row="row" let-i="i">\r\n <ng-container [ngSwitch]="column.type">\r\n <ng-container *ngSwitchCase="\'checkbox\'">\r\n <x-checkbox\r\n [data]="[{ id: true, label: \'\' }]"\r\n [(ngModel)]="row[column.id]"\r\n (ngModelChange)="table.bodyChecked($event, column)"\r\n ></x-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase="\'index\'">\r\n <div>{{ table.getIndex(i) }}</div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *xOutlet="columnTpl[column.id]; context: { $column: column, $row: row }">\r\n <div [innerHTML]="row[column.id]" [style.text-align]="column.textAlign"></div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n',encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush}]}],O.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef},{type:void 0,decorators:[{type:e.Inject,args:[l.DOCUMENT]}]},{type:n.XConfigService}]},O.propDecorators={tbody:[{type:e.ViewChild,args:["tbody"]}],virtualBody:[{type:e.ViewChild,args:["virtualBody"]}],table:[{type:e.Input}]};var j=function(t){function e(e,n,r){var o=t.call(this)||this;return o.renderer=e,o.elementRef=n,o.cdr=r,o}return b(e,t),e.prototype.ngOnInit=function(){n.removeNgTag(this.elementRef.nativeElement)},e.prototype.ngAfterViewInit=function(){this.table.tfoot=this.tfoot},e}(H);j.decorators=[{type:e.Component,args:[{selector:"x-table-foot",template:"<tfoot></tfoot>\r\n",encapsulation:e.ViewEncapsulation.None,changeDetection:e.ChangeDetectionStrategy.OnPush}]}],j.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ElementRef},{type:e.ChangeDetectorRef}]},j.propDecorators={tfoot:[{type:e.ViewChild,args:["tfoot"]}],table:[{type:e.Input}]};var P=function(){function t(t,n,r){this.elementRef=t,this.renderer=r,this.draging=new e.EventEmitter,this._unSubject=new i.Subject,this.doc=n}return t.prototype.ngOnInit=function(){var t=this;i.fromEvent(this.elementRef.nativeElement,"mousedown").subscribe((function(e){var n=e.pageX,r=e.pageY,l=0,a=0,c=new i.Subject;t.renderer.setStyle(t.doc.documentElement,"cursor","ew-resize"),t.renderer.setStyle(t.doc.documentElement,"user-select","none"),i.fromEvent(t.doc.documentElement,"mousemove").pipe(o.takeUntil(c)).subscribe((function(e){l=e.pageX-n,a=e.pageY-r,n=e.pageX,r=e.pageY,t.draging.emit({x:l,y:a})})),i.fromEvent(t.doc.documentElement,"mouseup").pipe(o.takeUntil(c)).subscribe((function(e){t.renderer.removeStyle(t.doc.documentElement,"cursor"),t.renderer.removeStyle(t.doc.documentElement,"user-select"),c.next(),c.complete()}))}))},t.prototype.ngOnDestroy=function(){this._unSubject.next(),this._unSubject.complete()},t}();P.decorators=[{type:e.Directive,args:[{selector:"[xDrag]"}]}],P.ctorParameters=function(){return[{type:e.ElementRef},{type:void 0,decorators:[{type:e.Inject,args:[l.DOCUMENT]}]},{type:e.Renderer2}]},P.propDecorators={draging:[{type:e.Output}]};var E=function(){};E.decorators=[{type:e.NgModule,args:[{declarations:[P,R,S,B,I,O,T,j,H],exports:[R],imports:[l.CommonModule,p.FormsModule,r.XPaginationModule,a.XOutletModule,h.XCheckboxModule,c.XIconModule,s.ScrollingModule,d.XEmptyModule,u.XLoadingModule]}]}],t.XDragDirective=P,t.XTableBodyComponent=O,t.XTableBodyPrefix=z,t.XTableBodyProperty=T,t.XTableComponent=R,t.XTableFootComponent=j,t.XTableFootPrefix=X,t.XTableFootProperty=H,t.XTableHeadComponent=B,t.XTableHeadPrefix=k,t.XTableHeadProperty=I,t.XTableModule=E,t.XTablePrefix=w,t.XTableProperty=S,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=ng-nest-ui-table.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/table.component.ts","../../../../lib/ng-nest/ui/table/table-head.component.ts","../../../../lib/ng-nest/ui/table/table-body.component.ts","../../../../lib/ng-nest/ui/table/table-foot.component.ts","../../../../lib/ng-nest/ui/table/drag.directive.ts","../../../../lib/ng-nest/ui/table/table.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__values","o","s","Symbol","iterator","m","next","value","done","__read","n","e","ar","push","error","__spread","concat","XTablePrefix","X_CONFIG_NAME","XTableProperty","_this","_super","apply","data","columns","activatedRowChange","EventEmitter","headColumnTpl","bodyColumnTpl","sortChange","minBufferPx","maxBufferPx","docPercent","checkedRow","manual","manualChange","XPaginationProperty","Component","args","template","Input","Output","XWithConfig","XInputNumber","XInputBoolean","XTableHeadPrefix","XTableHeadProperty","rowHeight","columnTpl","XProperty","XTableBodyPrefix","XTableBodyProperty","allowSelectRow","virtualScroll","itemSize","XTableFootPrefix","XTableComponent","renderer","elementRef","cdr","configService","hasScrollY","scrollYWidth","hasScrollX","scrollXHeight","scrollLeft","scrollTop","dataIsFunc","getting","tableData","checkedValues","indeterminate","_unSubject","Subject","ngOnInit","setRowChecked","setMerge","ngOnChanges","simples","XIsChange","setData","activatedRow","detectChanges","setManual","ngOnDestroy","complete","getSticky","column","Number","left","getIndex","index","size","isArray","setChecked","setHeadCheckboxList","Function","getDataByFunc","query","pipe","takeUntil","subscribe","x","_c","list","total","virtualBody","scrollToIndex","checkViewportSize","rowChecked","find","headCheckboxList","filter","type","headChecked","cellConfig","setRule","rule","gridTemplateColumns","map","width","flex","join","cells","y","col","z","id","assign","thead","tbody","change","indexChange","emit","resetScroll","_a","scrollTo","_b","top","result","XIsEmpty","arr","_d","e_1","_e","item","includes","setCheckedValues","checkSort","sort","queryChange","checked","forEach","bodyChecked","count","checkedLen","bodyChange","headChange","selector","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","Renderer2","ElementRef","ChangeDetectorRef","XConfigService","ViewChild","XTableHeadComponent","table","sortStr","theadStyle","scrollXWidth","removeNgTag","nativeElement","setStyle","ngAfterViewInit","height","spt","gridAreaSpt","gridArea","split","Math","max","onSort","field","dragWidth","dis","trackByItem","Host","Optional","XTableBodyComponent","doc","tbodyStyle","mergeRule","scroll","bodyHeight","setSubject","setScroll","unsubscribe","_resizeObserver","disconnect","scrollContentEle","querySelector","XResize","resizeObserver","setAdaptionHeight","fromEvent","window","ele","srcElement","hasY","scrollHeight","hasX","clientWidth","offsetWidth","offsetHeight","clientHeight","scrollWidth","isNaN","indexOf","adaptionHeight","headHeight","footHeight","tfoot","paginationHeight","pagination","documentElement","rowClick","row","from","event","path","localName","Inject","DOCUMENT","XTableFootComponent","XTableFootProperty","XDragDirective","document","draging","downMe","pageX","pageY","offsetX","offsetY","_unSub","moveMe","removeStyle","Directive","NgModule","declarations","exports","imports","CommonModule","FormsModule","XPaginationModule","XOutletModule","XCheckboxModule","XIconModule","ScrollingModule","XEmptyModule","XLoadingModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n XProperty,\r\n XNumber,\r\n XInputNumber,\r\n XIdentityProperty,\r\n XId,\r\n XSort,\r\n XInputBoolean,\r\n XBoolean,\r\n XData,\r\n XWithConfig,\r\n XTextAlign\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, EventEmitter, TemplateRef, Output } from '@angular/core';\r\nimport { XPaginationProperty, XPaginationOption } from '@ng-nest/ui/pagination';\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_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTableProperty extends XPaginationProperty implements XTableOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XData<XTableRow> = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() rowHeight: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() loading: XBoolean;\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() bordered: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n @Input() headColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n @Input() bodyColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n @Output() sortChange = new EventEmitter<XSort[]>();\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() allowSelectRow: XBoolean;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() virtualScroll: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight: number;\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() itemSize: number;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() minBufferPx: number = 100;\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() maxBufferPx: number = 200;\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n @Input() @XInputNumber() adaptionHeight: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\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 @Input() checkedRow: { [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 @Input() @XInputBoolean() manual: XBoolean = true;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll: { x: number; y: number };\r\n /**\r\n * @zh_CN 参数控制请求改变事件\r\n * @en_US Parameter control request change event\r\n */\r\n @Output() manualChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n @Input() cellConfig: XTableCellConfig;\r\n}\r\n\r\n/**\r\n * Table Option\r\n * @undocument true\r\n */\r\nexport interface XTableOption extends XPaginationOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n data?: XData<XTableRow>;\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n columns?: XTableColumn[];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n rowHeight?: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n loading?: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n headColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n bodyColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n virtualScroll?: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n bodyHeight?: number;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n minBufferPx?: number;\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 maxBufferPx?: number;\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 adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n docPercent?: XNumber;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n cellConfig?: XTableCellConfig;\r\n}\r\n\r\n/**\r\n * @zh_CN 数据\r\n * @en_US Data\r\n */\r\nexport interface XTableRow extends XId {\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 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 文字对齐方式\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 Custom attributes\r\n */\r\n [property: string]: any;\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?: string;\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 对应列的 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 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';\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({ template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n @Input() scrollYWidth: number;\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n @Input() scrollXWidth: number | null;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XTableRow[] = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<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 @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight: number;\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XInputBoolean() allowSelectRow: XBoolean = true;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XInputBoolean() virtualScroll?: XBoolean = false;\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n @Input() @XInputNumber() itemSize: number = 42;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() minBufferPx: number = 100;\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() maxBufferPx: number = 200;\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n @Input() @XInputNumber() adaptionHeight: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll: { x: number; y: number };\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableFootProperty {}\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 ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XTablePrefix, XTableProperty, XTableColumn, XTableRow, XTableCell, XTableCellConfigRule } from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XNumber, XSort, XConfigService } 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\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\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 {\r\n get getScrollLeft() {\r\n return this.scrollLeft > 0;\r\n }\r\n get getScrollTop() {\r\n return this.scrollTop > 0;\r\n }\r\n thead: ElementRef;\r\n tfoot: ElementRef;\r\n virtualBody: CdkVirtualScrollViewport;\r\n headChange: () => void;\r\n bodyChange: () => void;\r\n scrollContentEle: HTMLElement;\r\n hasScrollY = false;\r\n scrollYWidth = 0;\r\n hasScrollX = false;\r\n scrollXHeight = 0;\r\n scrollXWidth: number | null;\r\n scrollLeft = 0;\r\n scrollTop = 0;\r\n rowChecked: XTableColumn;\r\n headCheckboxList: XTableColumn[];\r\n dataIsFunc = false;\r\n getting = false;\r\n tableData: XTableRow[] = [];\r\n checkedValues: { [prop: string]: boolean } = {};\r\n indeterminate = '$$indeterminate';\r\n @ViewChild('table') table: ElementRef;\r\n @ViewChild('pagination') pagination: XPaginationComponent;\r\n private _unSubject = new Subject();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setRowChecked();\r\n this.setMerge();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.data, simples.checkedRow) && this.setData();\r\n XIsChange(simples.columns, simples.activatedRow) && this.cdr.detectChanges();\r\n XIsChange(simples.manual) && this.setManual();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (Number(this.index) - 1) * Number(this.size) + index + 1;\r\n }\r\n\r\n setData() {\r\n if (Array.isArray(this.data)) {\r\n this.dataIsFunc = false;\r\n this.tableData = this.data;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n } else if (this.data instanceof Function) {\r\n this.dataIsFunc = true;\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual) return;\r\n this.getting = true;\r\n this.cdr.detectChanges();\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 [this.tableData, this.total] = [x.list as XTableRow[], x.total as XNumber];\r\n if (this.virtualBody) {\r\n this.virtualBody.scrollToIndex(0);\r\n this.virtualBody.checkViewportSize();\r\n }\r\n this.getting = false;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n this.detectChanges();\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 = this.columns.find((x) => x.rowChecked) as XTableColumn;\r\n this.headCheckboxList = this.columns.filter((x) => x.type === 'checkbox' && x.headChecked);\r\n }\r\n\r\n setMerge() {\r\n if (!this.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 this.cellConfig.thead = setRule(this.cellConfig.thead);\r\n this.cellConfig.tbody = setRule(this.cellConfig.tbody);\r\n }\r\n\r\n change(index: number) {\r\n this.index = index;\r\n this.dataIsFunc && this.getDataByFunc();\r\n this.indexChange.emit(index);\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() {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(this.tableData) || !this.checkedRow) return;\r\n for (let key in this.checkedRow) {\r\n const arr = this.checkedRow[key];\r\n for (let item of this.tableData 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) this.tableData = [...result];\r\n this.detectChanges();\r\n }\r\n\r\n setHeadCheckboxList() {\r\n if (XIsEmpty(this.tableData) || !this.headCheckboxList) return;\r\n for (let column of this.headCheckboxList) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n if (typeof this.query === 'undefined') this.query = {};\r\n this.query.sort = sort;\r\n this.queryChange.emit(this.query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.forEach((x) => {\r\n x[column.id] = checked;\r\n });\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(checked: boolean, column: XTableColumn) {\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const count = this.tableData.length;\r\n const checkedLen = this.tableData.filter((x) => x[column.id]).length;\r\n this.checkedValues[column.id] = count === checkedLen;\r\n this.checkedValues[column.id + this.indeterminate] = checkedLen > 0 && checkedLen < count;\r\n }\r\n\r\n detectChanges() {\r\n this.bodyChange && this.bodyChange();\r\n this.headChange && this.headChange();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Optional,\r\n Host,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsEmpty, XSort, XIsChange, XConfigService, XNumber } from '@ng-nest/ui/core';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n sort: XSort[] = [];\r\n sortStr = '';\r\n theadStyle: { [property: string]: any } = {};\r\n @ViewChild('thead') thead: ElementRef;\r\n constructor(\r\n @Host() @Optional() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.columns, simples.scrollYWidth, simples.scrollXWidth, simples.cellConfig) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n this.setStyle();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.thead = this.thead;\r\n this.table.headChange = () => this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\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.theadStyle = {\r\n height: `${height}px`\r\n };\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort)) this.sort = [];\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 = [];\r\n this.sortStr = '';\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 = [sort];\r\n }\r\n if (!XIsEmpty(this.sort)) this.sortStr = `${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 this.cdr.detectChanges();\r\n }\r\n\r\n dragWidth(dis: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n if (column.width) {\r\n (column.width as number) += dis.x;\r\n if (column.width < 60) column.width = 60;\r\n this.cdr.detectChanges();\r\n this.table.bodyChange();\r\n }\r\n }\r\n\r\n trackByItem(index: number, item: XTableColumn) {\r\n return item.id;\r\n }\r\n}\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 Host,\r\n Optional,\r\n SimpleChanges,\r\n OnChanges,\r\n Inject,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn } from './table.property';\r\nimport { removeNgTag, XIsChange, XResize, XConfigService, XNumber } from '@ng-nest/ui/core';\r\nimport { XTableComponent } from './table.component';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\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, OnChanges {\r\n tbodyStyle: { [property: string]: any } = {};\r\n get isEmpty() {\r\n return this.data?.length === 0;\r\n }\r\n\r\n @ViewChild('tbody') tbody: ElementRef;\r\n @ViewChild('virtualBody') virtualBody: CdkVirtualScrollViewport;\r\n\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver: ResizeObserver;\r\n\r\n constructor(\r\n @Host() @Optional() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) public doc: any,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.data, simples.columns, simples.activatedRow, simples.mergeRule) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n if (this.scroll?.y && !this.bodyHeight) {\r\n this.bodyHeight = this.scroll.y;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody = this.virtualBody;\r\n this.table.bodyChange = () => this.cdr.detectChanges();\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody) {\r\n this.table.scrollContentEle = this.virtualBody?.elementRef?.nativeElement.querySelector(\r\n '.cdk-virtual-scroll-content-wrapper'\r\n ) as HTMLElement;\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(takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this._resizeObserver = x.resizeObserver;\r\n this.setAdaptionHeight();\r\n this.setScroll();\r\n });\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setAdaptionHeight();\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 = ele.scrollTop;\r\n this.table.scrollLeft = ele.scrollLeft;\r\n if (ele.scrollLeft >= 0 && this.table.thead) {\r\n this.table.thead.nativeElement.scrollLeft = this.table.scrollLeft;\r\n }\r\n this.table.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n setScroll() {\r\n if (!this.virtualBody || !this.table.thead) return;\r\n const ele = this.virtualBody.elementRef.nativeElement;\r\n const hasY = ele.scrollHeight > this.bodyHeight;\r\n const hasX = this.table.scrollContentEle.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY && hasY) {\r\n this.table.hasScrollY = true;\r\n this.table.scrollYWidth = ele.offsetWidth - ele.clientWidth;\r\n } else if (this.table.hasScrollY && !hasY) {\r\n this.table.hasScrollY = false;\r\n this.table.scrollYWidth = 0;\r\n }\r\n\r\n if (!this.table.hasScrollX && hasX) {\r\n this.table.hasScrollX = true;\r\n this.table.scrollXHeight = ele.offsetHeight - ele.clientHeight;\r\n } else if (this.table.hasScrollX && !hasX) {\r\n this.table.hasScrollX = false;\r\n this.table.scrollXHeight = 0;\r\n this.table.scrollXWidth = null;\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth = ele.offsetWidth + ele.scrollWidth - ele.clientWidth;\r\n }\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 = {\r\n height: `${height}px`\r\n };\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 setAdaptionHeight() {\r\n if (this.adaptionHeight > 0) {\r\n const headHeight = this.table.thead?.nativeElement.clientHeight || 0;\r\n const footHeight = this.table.tfoot?.nativeElement.clientHeight || 0;\r\n const paginationHeight = this.table.pagination?.elementRef.nativeElement.clientHeight || 0;\r\n this.bodyHeight =\r\n Number(this.docPercent) * this.doc.documentElement.clientHeight -\r\n headHeight -\r\n footHeight -\r\n paginationHeight -\r\n Number(this.adaptionHeight);\r\n if (this.bodyHeight < 0) this.bodyHeight = 0;\r\n this.minBufferPx = this.bodyHeight;\r\n this.maxBufferPx = this.bodyHeight * 1.2;\r\n this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;\r\n this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n rowClick(row: XTableRow) {\r\n this.activatedRow = row;\r\n if (this.table.rowChecked) {\r\n if (!Array.from((event as any).path).find((x: any) => x.localName == '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);\r\n }\r\n }\r\n this.activatedRowChange.emit(row);\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","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Host,\r\n Optional,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { removeNgTag } from '@ng-nest/ui/core';\r\nimport { XTableComponent } from './table.component';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\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 @ViewChild('tfoot') tfoot: ElementRef;\r\n constructor(\r\n @Host() @Optional() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot = this.tfoot;\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, EventEmitter, Inject, Input, Output, Renderer2 } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({ selector: '[xDrag]' })\r\nexport class XDragDirective {\r\n @Output() draging = new EventEmitter<{ x: number; y: number }>();\r\n private _unSubject = new Subject<void>();\r\n doc: Document;\r\n\r\n constructor(private elementRef: ElementRef, @Inject(DOCUMENT) document: any, private renderer: Renderer2) {\r\n this.doc = document;\r\n }\r\n\r\n ngOnInit() {\r\n const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown');\r\n\r\n mouseDown.subscribe((downMe: MouseEvent) => {\r\n let x = downMe.pageX;\r\n let y = downMe.pageY;\r\n let offsetX = 0;\r\n let offsetY = 0;\r\n const _unSub = new Subject<void>();\r\n this.renderer.setStyle(this.doc.documentElement, 'cursor', 'ew-resize');\r\n this.renderer.setStyle(this.doc.documentElement, 'user-select', 'none');\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((moveMe: MouseEvent) => {\r\n offsetX = moveMe.pageX - x;\r\n offsetY = moveMe.pageY - y;\r\n x = moveMe.pageX;\r\n y = moveMe.pageY;\r\n this.draging.emit({ x: offsetX, y: offsetY });\r\n });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((x) => {\r\n this.renderer.removeStyle(this.doc.documentElement, 'cursor');\r\n this.renderer.removeStyle(this.doc.documentElement, 'user-select');\r\n _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n\r\n // fromEvent(this.elementRef.nativeElement, 'mousedown')\r\n // .pipe(\r\n // tap((mouse: MouseEvent) => {\r\n // return { startX: mouse.clientX, startY: mouse.clientY };\r\n // }),\r\n // tap((x) => {\r\n // fromEvent(this.elementRef.nativeElement, 'mousemove').pipe()\r\n // }),\r\n // takeUntil(this._unSubject)\r\n // )\r\n // .subscribe((x) => {\r\n // console.log(x);\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","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPaginationModule } from '@ng-nest/ui/pagination';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XEmptyModule } from '@ng-nest/ui/empty';\r\nimport { XCheckboxModule } from '@ng-nest/ui/checkbox';\r\nimport { XLoadingModule } from '@ng-nest/ui/loading';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableProperty, XTableHeadProperty, XTableBodyProperty, XTableFootProperty } from './table.property';\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\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDragDirective,\r\n XTableComponent,\r\n XTableProperty,\r\n XTableHeadComponent,\r\n XTableHeadProperty,\r\n XTableBodyComponent,\r\n XTableBodyProperty,\r\n XTableFootComponent,\r\n XTableFootProperty\r\n ],\r\n exports: [XTableComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n XPaginationModule,\r\n XOutletModule,\r\n XCheckboxModule,\r\n XIconModule,\r\n ScrollingModule,\r\n XEmptyModule,\r\n XLoadingModule\r\n ]\r\n})\r\nexport class XTableModule {}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../lib/ng-nest/ui/table/table.property.ts","../../../../lib/ng-nest/ui/table/table.component.ts","../../../../lib/ng-nest/ui/table/table-head.component.ts","../../../../lib/ng-nest/ui/table/table-body.component.ts","../../../../lib/ng-nest/ui/table/table-foot.component.ts","../../../../lib/ng-nest/ui/table/drag.directive.ts","../../../../lib/ng-nest/ui/table/table.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__values","o","s","Symbol","iterator","m","next","value","done","__read","n","e","ar","push","error","__spread","concat","XTablePrefix","X_CONFIG_NAME","XTableProperty","_this","_super","apply","data","columns","activatedRowChange","EventEmitter","headColumnTpl","bodyColumnTpl","sortChange","minBufferPx","maxBufferPx","docPercent","checkedRow","manual","manualChange","XPaginationProperty","Component","args","template","Input","Output","XWithConfig","XInputNumber","XInputBoolean","XTableHeadPrefix","XTableHeadProperty","rowHeight","columnTpl","XProperty","XTableBodyPrefix","XTableBodyProperty","allowSelectRow","virtualScroll","itemSize","XTableFootPrefix","XTableFootProperty","XTableComponent","renderer","elementRef","cdr","configService","hasScrollY","scrollYWidth","hasScrollX","scrollXHeight","scrollLeft","scrollTop","dataIsFunc","getting","tableData","checkedValues","indeterminate","_unSubject","Subject","ngOnInit","setClassMap","setRowChecked","setMerge","ngOnChanges","simples","XIsChange","setData","activatedRow","detectChanges","setManual","ngOnDestroy","complete","classMap","_c","rowSize","XIsEmpty","getSticky","column","Number","left","getIndex","index","size","isArray","setChecked","setHeadCheckboxList","Function","getDataByFunc","query","pipe","takeUntil","subscribe","x","list","total","virtualBody","scrollToIndex","checkViewportSize","rowChecked","find","headCheckboxList","filter","type","headChecked","cellConfig","setRule","rule","gridTemplateColumns","map","width","flex","join","cells","y","col","z","id","assign","thead","tbody","change","indexChange","emit","resetScroll","_a","scrollTo","_b","top","result","arr","_d","e_1","_e","item","includes","setCheckedValues","checkSort","sort","queryChange","checked","forEach","bodyChecked","count","checkedLen","bodyChange","headChange","selector","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","Renderer2","ElementRef","ChangeDetectorRef","XConfigService","ViewChild","XTableHeadComponent","sortStr","theadStyle","scrollXWidth","removeNgTag","nativeElement","setStyle","ngAfterViewInit","table","height","spt","gridAreaSpt","gridArea","split","Math","max","getRowHeight","onSort","field","dragWidth","dis","trackByItem","XTableBodyComponent","doc","tbodyStyle","mergeRule","scroll","bodyHeight","setSubject","setScroll","unsubscribe","_resizeObserver","disconnect","scrollContentEle","querySelector","XResize","resizeObserver","setAdaptionHeight","fromEvent","window","ele","srcElement","hasY","scrollHeight","hasX","clientWidth","offsetWidth","offsetHeight","clientHeight","scrollWidth","isNaN","indexOf","getTitle","row","it","stripTags","adaptionHeight","headHeight","footHeight","tfoot","paginationHeight","pagination","documentElement","rowClick","from","event","path","localName","Inject","DOCUMENT","XTableFootComponent","XDragDirective","document","draging","downMe","pageX","pageY","offsetX","offsetY","_unSub","moveMe","removeStyle","Directive","NgModule","declarations","exports","imports","CommonModule","FormsModule","XPaginationModule","XOutletModule","XCheckboxModule","XIconModule","ScrollingModule","XEmptyModule","XLoadingModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n XProperty,\r\n XNumber,\r\n XInputNumber,\r\n XIdentityProperty,\r\n XId,\r\n XSort,\r\n XInputBoolean,\r\n XBoolean,\r\n XData,\r\n XWithConfig,\r\n XTextAlign,\r\n XSize\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, EventEmitter, TemplateRef, Output } from '@angular/core';\r\nimport { XPaginationProperty, XPaginationOption } from '@ng-nest/ui/pagination';\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_CONFIG_NAME = 'table';\r\n\r\n/**\r\n * Table Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTableProperty extends XPaginationProperty implements XTableOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XData<XTableRow> = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() rowHeight!: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() loading!: XBoolean;\r\n /**\r\n * @zh_CN 是否展示列边框\r\n * @en_US Whether to show column borders\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() bordered!: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<XTableRow>();\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n @Input() headColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n @Input() bodyColumnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 排序点击的事件\r\n * @en_US Sort click events\r\n */\r\n @Output() sortChange = new EventEmitter<XSort[]>();\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() allowSelectRow!: XBoolean;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() virtualScroll!: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight?: number;\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 42) @XInputNumber() itemSize!: number;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() minBufferPx: number = 100;\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() maxBufferPx: number = 200;\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n @Input() @XInputNumber() adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\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 @Input() checkedRow: { [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 @Input() @XInputBoolean() manual: XBoolean = true;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll?: { x: number; y: number };\r\n /**\r\n * @zh_CN 参数控制请求改变事件\r\n * @en_US Parameter control request change event\r\n */\r\n @Output() manualChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n @Input() cellConfig?: XTableCellConfig;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') rowSize?: XSize;\r\n}\r\n\r\n/**\r\n * Table Option\r\n * @undocument true\r\n */\r\nexport interface XTableOption extends XPaginationOption {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n data?: XData<XTableRow>;\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n columns?: XTableColumn[];\r\n /**\r\n * @zh_CN 表头和行高,单位 px\r\n * @en_US Header and row height, unit px\r\n */\r\n rowHeight?: number;\r\n /**\r\n * @zh_CN 是否启用加载 loading\r\n * @en_US Whether to enable loading\r\n */\r\n loading?: XBoolean;\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 列头自定义模板\r\n * @en_US Column header custom template\r\n */\r\n headColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 列内容自定义模板\r\n * @en_US Column content custom template\r\n */\r\n bodyColumnTpl?: XTableTemplate;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n virtualScroll?: XBoolean;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n bodyHeight?: number;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n minBufferPx?: number;\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 maxBufferPx?: number;\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 adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n docPercent?: XNumber;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell config\r\n */\r\n cellConfig?: XTableCellConfig;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n rowSize?: XSize;\r\n}\r\n\r\n/**\r\n * @zh_CN 数据\r\n * @en_US Data\r\n */\r\nexport interface XTableRow extends XId {\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 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 文字对齐方式\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 Custom attributes\r\n */\r\n [property: string]: any;\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?: string;\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 对应列的 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 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';\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({ template: '' })\r\nexport class XTableHeadProperty extends XProperty {\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 高度,单位 px\r\n * @en_US Height in px\r\n */\r\n @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 竖向滚动条宽度\r\n * @en_US Vertical scroll bar width\r\n */\r\n @Input() scrollYWidth?: number;\r\n /**\r\n * @zh_CN 横向滚动条宽度\r\n * @en_US Horizontal scroll bar width\r\n */\r\n @Input() scrollXWidth?: number | null;\r\n /**\r\n * @zh_CN 单元格配置\r\n * @en_US Cell merge rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableBodyProperty extends XProperty {\r\n /**\r\n * @zh_CN 行数据\r\n * @en_US Row data\r\n */\r\n @Input() data: XTableRow[] = [];\r\n /**\r\n * @zh_CN 列集合\r\n * @en_US Column set\r\n */\r\n @Input() columns: XTableColumn[] = [];\r\n /**\r\n * @zh_CN 自定义模板\r\n * @en_US Custom template\r\n */\r\n @Input() columnTpl: XTableTemplate = {};\r\n /**\r\n * @zh_CN 当前选中行数据\r\n * @en_US Currently selected row data\r\n */\r\n @Input() activatedRow?: XTableRow;\r\n /**\r\n * @zh_CN 当前选中行改变\r\n * @en_US The currently selected row changes\r\n */\r\n @Output() activatedRowChange = new EventEmitter<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 @Input() @XInputNumber() rowHeight: XNumber = 42;\r\n /**\r\n * @zh_CN body 数据高度\r\n * @en_US body data height\r\n */\r\n @Input() @XInputNumber() bodyHeight?: number;\r\n /**\r\n * @zh_CN 允许行点击选中\r\n * @en_US Allow row click to select\r\n */\r\n @Input() @XInputBoolean() allowSelectRow: XBoolean = true;\r\n /**\r\n * @zh_CN 开启虚拟滚动\r\n * @en_US Turn on virtual scrolling\r\n */\r\n @Input() @XInputBoolean() virtualScroll: XBoolean = false;\r\n /**\r\n * @zh_CN itemSize,对应 cdk scroll 中的参数\r\n * @en_US itemSize,corresponding to the parameters in cdk scroll\r\n */\r\n @Input() @XInputNumber() itemSize: number = 42;\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() minBufferPx: number = 100;\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n @Input() maxBufferPx: number = 200;\r\n /**\r\n * @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值\r\n * @en_US Adaptive height, table height is equal to the screen height minus the value set here\r\n */\r\n @Input() @XInputNumber() adaptionHeight?: XNumber;\r\n /**\r\n * @zh_CN 文档高度百分比,弹窗百分比高度用到\r\n * @en_US Document height percentage, used by pop-up window percentage height\r\n */\r\n @Input() @XInputNumber() docPercent: XNumber = 1;\r\n /**\r\n * @zh_CN 滚动区域高宽\r\n * @en_US Height and width of rolling area\r\n */\r\n @Input() scroll?: { x: number; y: number };\r\n /**\r\n * @zh_CN 单元格配置规则\r\n * @en_US Cell config rules\r\n */\r\n @Input() cellConfig?: XTableCellConfigRule;\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({ template: '' })\r\nexport class XTableFootProperty extends XProperty {}\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 ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XTablePrefix, XTableProperty, XTableColumn, XTableRow, XTableCell, XTableCellConfigRule } from './table.property';\r\nimport { XIsChange, XIsEmpty, XResultList, XNumber, XSort, XConfigService } 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\n\r\n@Component({\r\n selector: `${XTablePrefix}`,\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 {\r\n get getScrollLeft() {\r\n return this.scrollLeft > 0;\r\n }\r\n get getScrollTop() {\r\n return this.scrollTop > 0;\r\n }\r\n thead!: ElementRef;\r\n tfoot!: ElementRef;\r\n virtualBody!: CdkVirtualScrollViewport;\r\n headChange!: () => void;\r\n bodyChange!: () => void;\r\n scrollContentEle!: HTMLElement;\r\n hasScrollY = false;\r\n scrollYWidth = 0;\r\n hasScrollX = false;\r\n scrollXHeight = 0;\r\n scrollXWidth!: number | null;\r\n scrollLeft = 0;\r\n scrollTop = 0;\r\n rowChecked!: XTableColumn;\r\n headCheckboxList!: XTableColumn[];\r\n dataIsFunc = false;\r\n getting = false;\r\n tableData: XTableRow[] = [];\r\n checkedValues: { [prop: string]: boolean } = {};\r\n indeterminate = '$$indeterminate';\r\n @ViewChild('table') table!: ElementRef;\r\n @ViewChild('pagination') pagination!: XPaginationComponent;\r\n private _unSubject = new Subject();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setRowChecked();\r\n this.setMerge();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.data, simples.checkedRow) && this.setData();\r\n XIsChange(simples.columns, simples.activatedRow) && this.cdr.detectChanges();\r\n XIsChange(simples.manual) && this.setManual();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XTablePrefix}-row-size-${this.rowSize}`]: !XIsEmpty(this.rowSize)\r\n };\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\r\n }\r\n\r\n getIndex(index: number) {\r\n return (Number(this.index) - 1) * Number(this.size) + index + 1;\r\n }\r\n\r\n setData() {\r\n if (Array.isArray(this.data)) {\r\n this.dataIsFunc = false;\r\n this.tableData = this.data;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n } else if (this.data instanceof Function) {\r\n this.dataIsFunc = true;\r\n this.getDataByFunc();\r\n }\r\n }\r\n\r\n getDataByFunc() {\r\n if (!this.manual) return;\r\n this.getting = true;\r\n this.cdr.detectChanges();\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 [this.tableData, this.total] = [x.list as XTableRow[], x.total as XNumber];\r\n if (this.virtualBody) {\r\n this.virtualBody.scrollToIndex(0);\r\n this.virtualBody.checkViewportSize();\r\n }\r\n this.getting = false;\r\n this.setChecked();\r\n this.setHeadCheckboxList();\r\n this.detectChanges();\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 = this.columns.find((x) => x.rowChecked) as XTableColumn;\r\n this.headCheckboxList = this.columns.filter((x) => x.type === 'checkbox' && x.headChecked);\r\n }\r\n\r\n setMerge() {\r\n if (!this.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 this.cellConfig.thead = setRule(this.cellConfig.thead);\r\n this.cellConfig.tbody = setRule(this.cellConfig.tbody);\r\n }\r\n\r\n change(index: number) {\r\n this.index = index;\r\n this.dataIsFunc && this.getDataByFunc();\r\n this.indexChange.emit(index);\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() {\r\n let result: XTableRow[] = [];\r\n if (XIsEmpty(this.tableData) || !this.checkedRow) return;\r\n for (let key in this.checkedRow) {\r\n const arr = this.checkedRow[key];\r\n for (let item of this.tableData 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) this.tableData = [...result];\r\n this.detectChanges();\r\n }\r\n\r\n setHeadCheckboxList() {\r\n if (XIsEmpty(this.tableData) || !this.headCheckboxList) return;\r\n for (let column of this.headCheckboxList) {\r\n this.setCheckedValues(column);\r\n }\r\n }\r\n\r\n checkSort(sort: XSort[]) {\r\n if (!this.dataIsFunc) return;\r\n if (typeof this.query === 'undefined') this.query = {};\r\n this.query.sort = sort;\r\n this.queryChange.emit(this.query);\r\n this.getDataByFunc();\r\n }\r\n\r\n headChecked(checked: boolean, column: XTableColumn) {\r\n this.tableData.forEach((x) => {\r\n x[column.id] = checked;\r\n });\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n bodyChecked(checked: boolean, column: XTableColumn) {\r\n this.setCheckedValues(column);\r\n this.detectChanges();\r\n }\r\n\r\n setCheckedValues(column: XTableColumn) {\r\n const count = this.tableData.length;\r\n const checkedLen = this.tableData.filter((x) => x[column.id]).length;\r\n this.checkedValues[column.id] = count === checkedLen;\r\n this.checkedValues[column.id + this.indeterminate] = checkedLen > 0 && checkedLen < count;\r\n }\r\n\r\n detectChanges() {\r\n this.bodyChange && this.bodyChange();\r\n this.headChange && this.headChange();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Optional,\r\n Host,\r\n SimpleChanges,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableHeadPrefix, XTableHeadProperty, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsEmpty, XSort, XIsChange, XConfigService, XNumber } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableHeadPrefix}`,\r\n templateUrl: './table-head.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class XTableHeadComponent extends XTableHeadProperty implements OnInit {\r\n sort: XSort[] = [];\r\n sortStr = '';\r\n theadStyle: { [property: string]: any } = {};\r\n @ViewChild('thead') thead!: ElementRef;\r\n @Input() table: any;\r\n get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.columns, simples.scrollYWidth, simples.scrollXWidth, simples.cellConfig) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n this.setStyle();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.thead = this.thead;\r\n this.table.headChange = () => this.cdr.detectChanges();\r\n }\r\n\r\n getSticky(column: XTableColumn | XTableCell) {\r\n return Number(column.left) >= 0;\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.theadStyle = {\r\n height: `${height}px`,\r\n ['min-height']: `${this.getRowHeight}px`\r\n };\r\n }\r\n\r\n onSort(column: XTableColumn) {\r\n if (!column.sort) return;\r\n if (XIsEmpty(this.sort)) this.sort = [];\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 = [];\r\n this.sortStr = '';\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 = [sort];\r\n }\r\n if (!XIsEmpty(this.sort)) this.sortStr = `${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 this.cdr.detectChanges();\r\n }\r\n\r\n dragWidth(dis: { x: number; y: number }, column: XTableColumn | XTableCell) {\r\n if (column.width) {\r\n (column.width as number) += dis.x;\r\n if (column.width < 60) column.width = 60;\r\n this.cdr.detectChanges();\r\n this.table.bodyChange();\r\n }\r\n }\r\n\r\n trackByItem(index: number, item: XTableColumn) {\r\n return item.id;\r\n }\r\n}\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 Host,\r\n Optional,\r\n SimpleChanges,\r\n OnChanges,\r\n Inject,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableBodyPrefix, XTableBodyProperty, XTableRow, XTableColumn, XTableCell } from './table.property';\r\nimport { removeNgTag, XIsChange, XResize, XConfigService, XNumber, stripTags } from '@ng-nest/ui/core';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTableBodyPrefix}`,\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, OnChanges {\r\n tbodyStyle: { [property: string]: any } = {};\r\n get isEmpty() {\r\n return this.data?.length === 0;\r\n }\r\n get getRowHeight() {\r\n return this.rowHeight == 0 ? '' : this.rowHeight;\r\n }\r\n get getItemSize() {\r\n return this.rowHeight !== 0 && this.itemSize > this.rowHeight ? this.rowHeight : this.itemSize;\r\n }\r\n\r\n @ViewChild('tbody') tbody!: ElementRef;\r\n @ViewChild('virtualBody') virtualBody!: CdkVirtualScrollViewport;\r\n @Input() table: any;\r\n\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: ResizeObserver;\r\n\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) public doc: any,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.data, simples.columns, simples.activatedRow, simples.mergeRule) && this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n if (this.scroll?.y && !this.bodyHeight) {\r\n this.bodyHeight = this.scroll.y;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.virtualBody = this.virtualBody;\r\n this.table.bodyChange = () => this.cdr.detectChanges();\r\n this.setSubject();\r\n this.setScroll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n setSubject() {\r\n if (this.virtualBody) {\r\n this.table.scrollContentEle = this.virtualBody?.elementRef?.nativeElement.querySelector(\r\n '.cdk-virtual-scroll-content-wrapper'\r\n ) as HTMLElement;\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(takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this._resizeObserver = x.resizeObserver;\r\n this.setAdaptionHeight();\r\n this.setScroll();\r\n });\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setAdaptionHeight();\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 = ele.scrollTop;\r\n this.table.scrollLeft = ele.scrollLeft;\r\n if (ele.scrollLeft >= 0 && this.table.thead) {\r\n this.table.thead.nativeElement.scrollLeft = this.table.scrollLeft;\r\n }\r\n this.table.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n setScroll() {\r\n if (!this.virtualBody || !this.table.thead) return;\r\n const ele = this.virtualBody.elementRef.nativeElement;\r\n const hasY = ele.scrollHeight > (this.bodyHeight as number);\r\n const hasX = this.table.scrollContentEle.clientWidth > ele.clientWidth;\r\n\r\n if (!this.table.hasScrollY && hasY) {\r\n this.table.hasScrollY = true;\r\n this.table.scrollYWidth = ele.offsetWidth - ele.clientWidth;\r\n } else if (this.table.hasScrollY && !hasY) {\r\n this.table.hasScrollY = false;\r\n this.table.scrollYWidth = 0;\r\n }\r\n\r\n if (!this.table.hasScrollX && hasX) {\r\n this.table.hasScrollX = true;\r\n this.table.scrollXHeight = ele.offsetHeight - ele.clientHeight;\r\n } else if (this.table.hasScrollX && !hasX) {\r\n this.table.hasScrollX = false;\r\n this.table.scrollXHeight = 0;\r\n this.table.scrollXWidth = null;\r\n }\r\n if (hasX) {\r\n this.table.scrollXWidth = ele.offsetWidth + ele.scrollWidth - ele.clientWidth;\r\n }\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 = {\r\n height: `${height}px`\r\n };\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 getTitle(row: XTableRow, column: XTableCell | any) {\r\n let it = row[column.id as string];\r\n return it ? stripTags(it) : '';\r\n }\r\n\r\n setAdaptionHeight() {\r\n if ((this.adaptionHeight as number) > 0) {\r\n const headHeight = this.table.thead?.nativeElement.clientHeight || 0;\r\n const footHeight = this.table.tfoot?.nativeElement.clientHeight || 0;\r\n const paginationHeight = this.table.pagination?.elementRef.nativeElement.clientHeight || 0;\r\n this.bodyHeight =\r\n Number(this.docPercent) * this.doc.documentElement.clientHeight -\r\n headHeight -\r\n footHeight -\r\n paginationHeight -\r\n Number(this.adaptionHeight);\r\n if (this.bodyHeight < 0) this.bodyHeight = 0;\r\n this.minBufferPx = this.bodyHeight;\r\n this.maxBufferPx = this.bodyHeight * 1.2;\r\n this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;\r\n this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n rowClick(row: XTableRow) {\r\n this.activatedRow = row;\r\n if (this.table.rowChecked) {\r\n if (!Array.from((event as any).path).find((x: any) => x.localName == '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);\r\n }\r\n }\r\n this.activatedRowChange.emit(row);\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","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Host,\r\n Optional,\r\n ViewChild,\r\n Input\r\n} from '@angular/core';\r\nimport { XTableFootPrefix, XTableFootProperty } from './table.property';\r\nimport { removeNgTag } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTableFootPrefix}`,\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 @ViewChild('tfoot') tfoot!: ElementRef;\r\n @Input() table: any;\r\n constructor(\r\n // @Optional() @Host() public table: XTableComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n removeNgTag(this.elementRef.nativeElement);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.table.tfoot = this.tfoot!;\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, EventEmitter, Inject, Input, Output, Renderer2 } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({ selector: '[xDrag]' })\r\nexport class XDragDirective {\r\n @Output() draging = new EventEmitter<{ x: number; y: number }>();\r\n private _unSubject = new Subject<void>();\r\n doc: Document;\r\n\r\n constructor(private elementRef: ElementRef, @Inject(DOCUMENT) document: any, private renderer: Renderer2) {\r\n this.doc = document;\r\n }\r\n\r\n ngOnInit() {\r\n const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown');\r\n\r\n mouseDown.subscribe((downMe: MouseEvent) => {\r\n let x = downMe.pageX;\r\n let y = downMe.pageY;\r\n let offsetX = 0;\r\n let offsetY = 0;\r\n const _unSub = new Subject<void>();\r\n this.renderer.setStyle(this.doc.documentElement, 'cursor', 'ew-resize');\r\n this.renderer.setStyle(this.doc.documentElement, 'user-select', 'none');\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((moveMe: MouseEvent) => {\r\n offsetX = moveMe.pageX - x;\r\n offsetY = moveMe.pageY - y;\r\n x = moveMe.pageX;\r\n y = moveMe.pageY;\r\n this.draging.emit({ x: offsetX, y: offsetY });\r\n });\r\n fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n .pipe(takeUntil(_unSub))\r\n .subscribe((x) => {\r\n this.renderer.removeStyle(this.doc.documentElement, 'cursor');\r\n this.renderer.removeStyle(this.doc.documentElement, 'user-select');\r\n _unSub.next();\r\n _unSub.complete();\r\n });\r\n });\r\n\r\n // fromEvent(this.elementRef.nativeElement, 'mousedown')\r\n // .pipe(\r\n // tap((mouse: MouseEvent) => {\r\n // return { startX: mouse.clientX, startY: mouse.clientY };\r\n // }),\r\n // tap((x) => {\r\n // fromEvent(this.elementRef.nativeElement, 'mousemove').pipe()\r\n // }),\r\n // takeUntil(this._unSubject)\r\n // )\r\n // .subscribe((x) => {\r\n // console.log(x);\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","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPaginationModule } from '@ng-nest/ui/pagination';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XEmptyModule } from '@ng-nest/ui/empty';\r\nimport { XCheckboxModule } from '@ng-nest/ui/checkbox';\r\nimport { XLoadingModule } from '@ng-nest/ui/loading';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XTableProperty, XTableHeadProperty, XTableBodyProperty, XTableFootProperty } from './table.property';\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\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDragDirective,\r\n XTableComponent,\r\n XTableProperty,\r\n XTableHeadComponent,\r\n XTableHeadProperty,\r\n XTableBodyComponent,\r\n XTableBodyProperty,\r\n XTableFootComponent,\r\n XTableFootProperty\r\n ],\r\n exports: [XTableComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n XPaginationModule,\r\n XOutletModule,\r\n XCheckboxModule,\r\n XIconModule,\r\n ScrollingModule,\r\n XEmptyModule,\r\n XLoadingModule\r\n ]\r\n})\r\nexport class XTableModule {}\r\n"]}
|