@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-date-picker.js","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XProperty,\r\n XBoolean,\r\n XCorner,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { Input, EventEmitter, Output, TemplateRef, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDatePickerProperty extends XControlValueAccessor<any> implements XDatePickerOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'yyyy-MM-dd') format: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement: XCorner;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n @Input() @XInputBoolean() readonly: XBoolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n * @undocument true\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Choose a type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType = 'date' | 'month' | 'year' | 'date-time' | 'date-hour' | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model: Date;\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n @Input() dateTemp: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n}\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model: Date;\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() monthTemp: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n}\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model: Date;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n @Output() startChange = new EventEmitter<number>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n Renderer2,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\nimport { XDatePickerPortalPrefix, XDatePickerType } from './date-picker.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XCorner, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model: Date;\r\n startYear: number;\r\n value: any;\r\n valueChange: Subject<any>;\r\n positionChange: Subject<any>;\r\n animating: Function;\r\n closePortal: Function;\r\n destroyPortal: Function;\r\n nodeEmit: (date: Date, sure?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time: number;\r\n private _type: XDatePickerType;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public datePipe: DatePipe, public lowerCasePipe: LowerCasePipe, public cdr: ChangeDetectorRef, public i18n: XI18nService) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.model = this.display;\r\n }\r\n this.time = this.model.getTime();\r\n this._type = this.type;\r\n this.setDisplay(this.model);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = date;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model = date;\r\n this.setModel(this.model, new Date(this.time));\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type)) {\r\n this.nodeEmit(this.model, false);\r\n } else {\r\n this.nodeEmit(this.model);\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'month') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'year') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = 'month';\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear = number;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.startYear);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time = time.getTime();\r\n this.nodeEmit(this.setModel(this.model, time), false);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setModel(date: Date, time: Date) {\r\n this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());\r\n return this.model;\r\n }\r\n}\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport { XIsEmpty, XIsDate, XIsNumber, XIsChange, XCorner, XClearClass, XIsString } from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n @ViewChild('datePicker', { static: true }) datePicker: ElementRef;\r\n @ViewChild('inputCom', { static: true }) inputCom: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue: number | string;\r\n isInput = false;\r\n\r\n get getRequired() {\r\n return this.required && XIsEmpty(this.value);\r\n }\r\n\r\n writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType = 'date';\r\n this.numberValue = value.getTime();\r\n } else if (XIsNumber(value)) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value)) {\r\n this.modelType = 'string';\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue = !isNaN(valueTime) ? valueTime : '';\r\n } else if (XIsEmpty(value)) {\r\n this.numberValue = '';\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box: DOMRect;\r\n protalHeight: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (XIsChange(changes.type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setFormat() {\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.inputClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (this.inputClearable) {\r\n this.icon = 'fto-calendar';\r\n this.inputClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.numberValue = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.numberValue);\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.modelType === 'date'\r\n ? new Date(this.numberValue)\r\n : this.modelType === 'string'\r\n ? this.datePipe.transform(this.numberValue, this.format)\r\n : this.numberValue;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date, sure = true) => this.onNodeClick(node, sure),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput = false;\r\n if (sure) {\r\n this.numberValue = date.getTime();\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(this.numberValue);\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput && isNaN(this.displayValue) && !isNaN(Date.parse(this.displayValue))) {\r\n this.displayValue = this.datePipe.transform(this.displayValue, this.format);\r\n this.numberValue = new Date(this.displayValue).getTime();\r\n this.value = this.getValue();\r\n this.modelChange();\r\n this.isInput = false;\r\n } else {\r\n this.displayValue = this.datePipe.transform(dateNumber, this.format);\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputElement,\r\n placement: [this.placement, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { chunk, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService } from '@ng-nest/ui/i18n';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n titles = [\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ];\r\n now = new Date();\r\n dates: Date[][] = [];\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef, public configService: XConfigService, public i18n: XI18nService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange.pipe(takeUntil(this._unSubject)).subscribe(() => this.cdr.markForCheck());\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.display) && this.init();\r\n }\r\n\r\n ngOnDestory() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display);\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: Date[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n let date = new Date(year, month, index);\r\n dates = [date, ...dates];\r\n day = date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n dates = [...dates, new Date(year, month, index)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n let date = new Date(year, month + 1, index);\r\n dates = [...dates, date];\r\n day = date.getDay();\r\n }\r\n\r\n this.dates = chunk(dates, 7);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0], dates[dates.length - 1]]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n dateClick(date: Date) {\r\n this.model = date;\r\n this.modelChange.emit(date);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n trackByNode(index: number, item: string | Date) {\r\n return item;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { chunk, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n now = new Date();\r\n dates: Date[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths();\r\n }\r\n\r\n setMonths() {\r\n let year = this.display.getFullYear();\r\n let dates: Date[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n dates = [...dates, new Date(year, i, 1)];\r\n }\r\n this.dates = chunk(dates, 4) as Date[][];\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0], dates[dates.length - 1]]);\r\n }\r\n }\r\n\r\n monthClick(date: Date) {\r\n this.model = date;\r\n this.modelChange.emit(date);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n trackByMonth(index: number, item: Date) {\r\n return item;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { chunk, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n now = new Date();\r\n dates: Date[][] = [];\r\n start: number;\r\n end: number;\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef, public datePipe: DatePipe, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears();\r\n }\r\n\r\n setYears() {\r\n let year = this.display.getFullYear();\r\n this.start = Math.floor(year / 10) * 10;\r\n this.end = this.start + 9;\r\n let dates: Date[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n dates = [...dates, new Date(this.start + i, 1, 1)];\r\n }\r\n this.dates = chunk(dates, 4) as Date[][];\r\n this.startChange.emit(this.start);\r\n }\r\n\r\n yearClick(date: Date) {\r\n this.model = date;\r\n this.modelChange.emit(date);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start}` || yearStr > `${this.end}`;\r\n }\r\n\r\n equalYear(one: Date, two: Date) {\r\n return this.datePipe.transform(one, 'yyyy') === this.datePipe.transform(two, 'yyyy');\r\n }\r\n\r\n trackByYear(index: number, item: Date) {\r\n return item;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XDatePickerProperty, XPickerDateProperty, XPickerMonthProperty, XPickerYearProperty } from './date-picker.property';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDatePickerComponent,\r\n XDatePickerPortalComponent,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerYearComponent,\r\n XDatePickerProperty,\r\n XPickerDateProperty,\r\n XPickerMonthProperty,\r\n XPickerYearProperty\r\n ],\r\n exports: [XDatePickerComponent, XDatePickerPortalComponent, XPickerDateComponent, XPickerMonthComponent, XPickerYearComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XTimePickerModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ],\r\n entryComponents: [XDatePickerPortalComponent]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-date-picker.js","sources":["../../../../lib/ng-nest/ui/date-picker/date-picker.property.ts","../../../../lib/ng-nest/ui/date-picker/date-picker-portal.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-date.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-month.component.ts","../../../../lib/ng-nest/ui/date-picker/picker-year.component.ts","../../../../lib/ng-nest/ui/date-picker/date-picker.module.ts","../../../../lib/ng-nest/ui/date-picker/ng-nest-ui-date-picker.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XProperty,\r\n XBoolean,\r\n XCorner,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { Input, EventEmitter, Output, TemplateRef, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * DatePicker\r\n * @selector x-date-picker\r\n * @decorator component\r\n */\r\nexport const XDatePickerPrefix = 'x-date-picker';\r\nconst X_CONFIG_NAME = 'datePicker';\r\n\r\n/**\r\n * DatePicker Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDatePickerProperty extends XControlValueAccessor<any> implements XDatePickerOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Select type\r\n */\r\n @Input() type: XDatePickerType = 'date';\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'yyyy-MM-dd') format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n @Input() @XInputBoolean() readonly!: XBoolean;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * DatePicker Option\r\n * @undocument true\r\n */\r\nexport interface XDatePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 选择类型\r\n * @en_US Choose a type\r\n */\r\n type?: XDatePickerType;\r\n /**\r\n * @zh_CN 格式化类型\r\n * @en_US Format type\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: number) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 日期选择类型\r\n * @en_US Date selection type\r\n */\r\nexport type XDatePickerType = 'date' | 'month' | 'year' | 'date-time' | 'date-hour' | 'date-minute';\r\n\r\n/**\r\n * @zh_CN 日期数据类型\r\n * @en_US Date data type\r\n */\r\nexport type XDatePickerModelType = 'date' | 'number' | 'string';\r\n\r\n/**\r\n * DatePicker Portal\r\n * @selector x-date-picker-portal\r\n * @decorator component\r\n */\r\nexport const XDatePickerPortalPrefix = 'x-date-picker-portal';\r\n\r\n/**\r\n * PickerDate\r\n * @selector x-picker-date\r\n * @decorator component\r\n */\r\nexport const XPickerDatePrefix = 'x-picker-date';\r\n\r\n/**\r\n * PickerDate Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPickerDateProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date;\r\n /**\r\n * @zh_CN 日期显示模板\r\n * @en_US Date display template\r\n */\r\n @Input() dateTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n}\r\n\r\n/**\r\n * PickerMonth\r\n * @selector x-picker-month\r\n * @decorator component\r\n */\r\nexport const XPickerMonthPrefix = 'x-picker-month';\r\n\r\n/**\r\n * PickerMonth Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPickerMonthProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date;\r\n /**\r\n * @zh_CN 月份显示模板\r\n * @en_US Month display template\r\n */\r\n @Input() monthTemp?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 范围变化的事件\r\n * @en_US Scope change event\r\n */\r\n @Output() rangeChange = new EventEmitter<Date[]>();\r\n}\r\n\r\n/**\r\n * PickerYear\r\n * @selector x-picker-year\r\n * @decorator component\r\n */\r\nexport const XPickerYearPrefix = 'x-picker-year';\r\n\r\n/**\r\n * PickerYear Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPickerYearProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示的日期\r\n * @en_US Date displayed\r\n */\r\n @Input() display: Date = new Date();\r\n /**\r\n * @zh_CN 选中的日期\r\n * @en_US Selected date\r\n */\r\n @Input() model?: Date;\r\n /**\r\n * @zh_CN 选中的事件\r\n * @en_US Selected event\r\n */\r\n @Output() modelChange = new EventEmitter<Date>();\r\n /**\r\n * @zh_CN 开始年份变化的事件\r\n * @en_US Start year change event\r\n */\r\n @Output() startChange = new EventEmitter<number>();\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n Renderer2,\r\n OnDestroy,\r\n AfterViewInit,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\nimport { XDatePickerPortalPrefix, XDatePickerType } from './date-picker.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XCorner, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, map } from 'rxjs/operators';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nService, XI18nDatePicker } from '@ng-nest/ui/i18n';\r\n\r\n@Component({\r\n selector: `${XDatePickerPortalPrefix}`,\r\n templateUrl: './date-picker-portal.component.html',\r\n styleUrls: ['./date-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation],\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XDatePickerPortalComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n\r\n type: XDatePickerType = 'date';\r\n display = new Date();\r\n model!: Date;\r\n startYear!: number;\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n animating!: Function;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n nodeEmit!: (date: Date, sure?: boolean) => void;\r\n locale: XI18nDatePicker = {};\r\n time!: number;\r\n private _type!: XDatePickerType;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public datePipe: DatePipe, public lowerCasePipe: LowerCasePipe, public cdr: ChangeDetectorRef, public i18n: XI18nService) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.model = this.display;\r\n }\r\n this.time = this.model.getTime();\r\n this._type = this.type;\r\n this.setDisplay(this.model);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = date;\r\n }\r\n\r\n setDisplay(date: Date) {\r\n this.display = new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n dateChange(date: Date) {\r\n this.setDisplay(date);\r\n this.model = date;\r\n this.setModel(this.model, new Date(this.time));\r\n if (['date-time', 'date-hour', 'date-minute'].includes(this._type)) {\r\n this.nodeEmit(this.model, false);\r\n } else {\r\n this.nodeEmit(this.model);\r\n }\r\n }\r\n\r\n typeChange(type: XDatePickerType) {\r\n this.type = type;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n monthChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'month') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = this._type;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearChange(date: Date) {\r\n this.setDisplay(date);\r\n if (this._type === 'year') {\r\n this.model = date;\r\n this.nodeEmit(date);\r\n } else {\r\n this.type = 'month';\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n yearStartChange(number: number) {\r\n this.startYear = number;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextMonth(num: number) {\r\n let date = new Date(this.display);\r\n date.setMonth(date.getMonth() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYear(num: number) {\r\n let date = new Date(this.display);\r\n date.setFullYear(date.getFullYear() + num);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n nextYears(num: number) {\r\n this.startYear += num;\r\n let date = new Date(this.display);\r\n date.setFullYear(this.startYear);\r\n this.setDisplay(date);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n selectTime(time: Date) {\r\n this.time = time.getTime();\r\n this.nodeEmit(this.setModel(this.model, time), false);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setModel(date: Date, time: Date) {\r\n this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());\r\n return this.model;\r\n }\r\n}\r\n","import { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XDatePickerPrefix, XDatePickerProperty, XDatePickerModelType } from './date-picker.property';\r\nimport { XIsEmpty, XIsDate, XIsNumber, XIsChange, XCorner, XClearClass, XIsString } from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XDatePickerPrefix}`,\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XDatePickerComponent), DatePipe]\r\n})\r\nexport class XDatePickerComponent extends XDatePickerProperty implements OnInit, OnChanges {\r\n @ViewChild('datePicker', { static: true }) datePicker!: ElementRef;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n modelType: XDatePickerModelType = 'date';\r\n numberValue!: number | string;\r\n isInput = false;\r\n\r\n get getRequired() {\r\n return this.required && XIsEmpty(this.value);\r\n }\r\n\r\n writeValue(value: any) {\r\n if (XIsDate(value)) {\r\n this.modelType = 'date';\r\n this.numberValue = value.getTime();\r\n } else if (XIsNumber(value)) {\r\n this.modelType = 'number';\r\n this.numberValue = value;\r\n } else if (XIsString(value)) {\r\n this.modelType = 'string';\r\n const valueTime = new Date(value).getTime();\r\n this.numberValue = !isNaN(valueTime) ? valueTime : '';\r\n } else if (XIsEmpty(value)) {\r\n this.numberValue = '';\r\n }\r\n this.value = value;\r\n this.setDisplayValue(this.numberValue);\r\n this.valueChange.next(this.numberValue);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n enter: boolean = false;\r\n inputClearable: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal!: XPortalOverlayRef<XDatePickerPortalComponent>;\r\n icon: string = 'fto-calendar';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (XIsChange(changes.type)) {\r\n this.setFormat();\r\n this.setDisplayValue(this.numberValue);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setFormat() {\r\n if (this.type === 'date') {\r\n this.format = 'yyyy-MM-dd';\r\n } else if (this.type === 'year') {\r\n this.format = 'yyyy';\r\n } else if (this.type === 'month') {\r\n this.format = 'yyyy-MM';\r\n } else if (this.type === 'date-time') {\r\n this.format = 'yyyy-MM-dd HH:mm:ss';\r\n } else if (this.type === 'date-hour') {\r\n this.format = 'yyyy-MM-dd HH';\r\n } else if (this.type === 'date-minute') {\r\n this.format = 'yyyy-MM-dd HH:mm';\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.numberValue)) {\r\n this.icon = '';\r\n this.inputClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (this.inputClearable) {\r\n this.icon = 'fto-calendar';\r\n this.inputClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.numberValue = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.numberValue);\r\n this.modelChange();\r\n }\r\n\r\n modelChange() {\r\n if (this.onChange) {\r\n this.onChange(this.getValue());\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.modelType === 'date'\r\n ? new Date(this.numberValue)\r\n : this.modelType === 'string'\r\n ? this.datePipe.transform(this.numberValue, this.format)\r\n : this.numberValue;\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDatePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.numberValue,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date, sure = true) => this.onNodeClick(node, sure),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date, sure = true) {\r\n this.isInput = false;\r\n if (sure) {\r\n this.numberValue = date.getTime();\r\n this.value = this.getValue();\r\n this.setDisplayValue(this.numberValue);\r\n this.closeSubject.next();\r\n this.modelChange();\r\n this.nodeEmit.emit(this.numberValue);\r\n } else {\r\n this.setDisplayValue(date.getTime());\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onInput() {\r\n this.isInput = true;\r\n }\r\n\r\n setDisplayValue(dateNumber: number | string) {\r\n if (this.isInput && isNaN(this.displayValue) && !isNaN(Date.parse(this.displayValue))) {\r\n this.displayValue = this.datePipe.transform(this.displayValue, this.format);\r\n this.numberValue = new Date(this.displayValue).getTime();\r\n this.value = this.getValue();\r\n this.modelChange();\r\n this.isInput = false;\r\n } else {\r\n this.displayValue = this.datePipe.transform(dateNumber, this.format);\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputElement,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-date-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { chunk, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPickerDatePrefix, XPickerDateProperty } from './date-picker.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService } from '@ng-nest/ui/i18n';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPickerDatePrefix}`,\r\n templateUrl: './picker-date.component.html',\r\n styleUrls: ['./picker-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPickerDateComponent extends XPickerDateProperty implements OnChanges {\r\n titles = [\r\n 'datePicker.monday',\r\n 'datePicker.tuesday',\r\n 'datePicker.wednesday',\r\n 'datePicker.thursday',\r\n 'datePicker.friday',\r\n 'datePicker.saturday',\r\n 'datePicker.sunday'\r\n ];\r\n now = new Date();\r\n dates: Date[][] = [];\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef, public configService: XConfigService, public i18n: XI18nService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange.pipe(takeUntil(this._unSubject)).subscribe(() => this.cdr.markForCheck());\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.display) && this.init();\r\n }\r\n\r\n ngOnDestory() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n this.setDays(this.display);\r\n }\r\n\r\n setDays(date: Date) {\r\n let dates: Date[] = [];\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const first = new Date(year, month, 1);\r\n const last = new Date(year, month + 1, 0);\r\n const lastDate = last.getDate();\r\n const firstDay = first.getDay();\r\n const lastDay = last.getDay();\r\n\r\n let day = firstDay;\r\n let index = 1;\r\n while (day !== 1) {\r\n index--;\r\n let date = new Date(year, month, index);\r\n dates = [date, ...dates];\r\n day = date.getDay();\r\n }\r\n\r\n index = 1;\r\n do {\r\n dates = [...dates, new Date(year, month, index)];\r\n index++;\r\n } while (index <= lastDate);\r\n\r\n index = 0;\r\n day = lastDay;\r\n while (day !== 0 || dates.length !== 7 * 6) {\r\n index++;\r\n let date = new Date(year, month + 1, index);\r\n dates = [...dates, date];\r\n day = date.getDay();\r\n }\r\n\r\n this.dates = chunk(dates, 7);\r\n\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0], dates[dates.length - 1]]);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n dateClick(date: Date | string) {\r\n this.model = date as Date;\r\n this.modelChange.emit(date as Date);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n trackByTitleNode(_index: number, item: string) {\r\n return item;\r\n }\r\n\r\n trackByWeekNode(_index: number, item: Date) {\r\n return item;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { chunk, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPickerMonthProperty } from './date-picker.property';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'x-picker-month',\r\n templateUrl: './picker-month.component.html',\r\n styleUrls: ['./picker-month.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe, LowerCasePipe]\r\n})\r\nexport class XPickerMonthComponent extends XPickerMonthProperty implements OnChanges {\r\n now = new Date();\r\n dates: Date[][] = [];\r\n locale: XI18nDatePicker = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public datePipe: DatePipe,\r\n public lowerCasePipe: LowerCasePipe,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.datePicker as XI18nDatePicker),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setMonths();\r\n }\r\n\r\n setMonths() {\r\n let year = this.display.getFullYear();\r\n let dates: Date[] = [];\r\n for (let i = 0; i < 16; i++) {\r\n dates = [...dates, new Date(year, i, 1)];\r\n }\r\n this.dates = chunk(dates, 4) as Date[][];\r\n if (this.dates.length > 0) {\r\n this.rangeChange.emit([dates[0], dates[dates.length - 1]]);\r\n }\r\n }\r\n\r\n monthClick(date: Date) {\r\n this.model = date;\r\n this.modelChange.emit(date);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n getLocaleMonth(date: Date) {\r\n return (this.locale as any)[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL') as string)];\r\n }\r\n\r\n trackByMonth(index: number, item: Date) {\r\n return item;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { chunk, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPickerYearProperty } from './date-picker.property';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'x-picker-year',\r\n templateUrl: './picker-year.component.html',\r\n styleUrls: ['./picker-year.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DatePipe]\r\n})\r\nexport class XPickerYearComponent extends XPickerYearProperty implements OnChanges {\r\n now = new Date();\r\n dates: Date[][] = [];\r\n start!: number;\r\n end!: number;\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef, public datePipe: DatePipe, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.display) && this.init();\r\n }\r\n\r\n init() {\r\n this.setYears();\r\n }\r\n\r\n setYears() {\r\n let year = this.display.getFullYear();\r\n this.start = Math.floor(year / 10) * 10;\r\n this.end = this.start + 9;\r\n let dates: Date[] = [];\r\n for (let i = -3; i < 13; i++) {\r\n dates = [...dates, new Date(this.start + i, 1, 1)];\r\n }\r\n this.dates = chunk(dates, 4) as Date[][];\r\n this.startChange.emit(this.start);\r\n }\r\n\r\n yearClick(date: Date) {\r\n this.model = date;\r\n this.modelChange.emit(date);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n lastOrNext(year: Date) {\r\n const yearStr = this.datePipe.transform(year, 'yyyy') as string;\r\n return yearStr < `${this.start}` || yearStr > `${this.end}`;\r\n }\r\n\r\n equalYear(one: Date, two: Date) {\r\n return this.datePipe.transform(one, 'yyyy') === this.datePipe.transform(two, 'yyyy');\r\n }\r\n\r\n trackByYear(index: number, item: Date) {\r\n return item;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XDatePickerComponent } from './date-picker.component';\r\nimport { XDatePickerPortalComponent } from './date-picker-portal.component';\r\nimport { XPickerDateComponent } from './picker-date.component';\r\nimport { XPickerMonthComponent } from './picker-month.component';\r\nimport { XPickerYearComponent } from './picker-year.component';\r\nimport { XDatePickerProperty, XPickerDateProperty, XPickerMonthProperty, XPickerYearProperty } from './date-picker.property';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XTimePickerModule } from '@ng-nest/ui/time-picker';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDatePickerComponent,\r\n XDatePickerPortalComponent,\r\n XPickerDateComponent,\r\n XPickerMonthComponent,\r\n XPickerYearComponent,\r\n XDatePickerProperty,\r\n XPickerDateProperty,\r\n XPickerMonthProperty,\r\n XPickerYearProperty\r\n ],\r\n exports: [XDatePickerComponent, XDatePickerPortalComponent, XPickerDateComponent, XPickerMonthComponent, XPickerYearComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XTimePickerModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ],\r\n entryComponents: [XDatePickerPortalComponent]\r\n})\r\nexport class XDatePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import { XIconModule } from '@ng-nest/ui/icon';
|
|
|
12
12
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
13
13
|
import { XInputModule } from '@ng-nest/ui/input';
|
|
14
14
|
import { XOutletModule } from '@ng-nest/ui/outlet';
|
|
15
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Dialog
|
|
@@ -80,6 +81,7 @@ XDialogProperty.propDecorators = {
|
|
|
80
81
|
hasBackdrop: [{ type: Input }],
|
|
81
82
|
className: [{ type: Input }],
|
|
82
83
|
buttonsCenter: [{ type: Input }],
|
|
84
|
+
draggable: [{ type: Input }],
|
|
83
85
|
beforeClose: [{ type: Input }],
|
|
84
86
|
cancel: [{ type: Output }],
|
|
85
87
|
confirm: [{ type: Output }],
|
|
@@ -100,7 +102,7 @@ __decorate([
|
|
|
100
102
|
__metadata("design:type", String)
|
|
101
103
|
], XDialogProperty.prototype, "offset", void 0);
|
|
102
104
|
__decorate([
|
|
103
|
-
XWithConfig(X_CONFIG_NAME, '
|
|
105
|
+
XWithConfig(X_CONFIG_NAME, '32rem'),
|
|
104
106
|
__metadata("design:type", String)
|
|
105
107
|
], XDialogProperty.prototype, "width", void 0);
|
|
106
108
|
__decorate([
|
|
@@ -139,7 +141,12 @@ __decorate([
|
|
|
139
141
|
XWithConfig(X_CONFIG_NAME),
|
|
140
142
|
XInputBoolean(),
|
|
141
143
|
__metadata("design:type", Object)
|
|
142
|
-
], XDialogProperty.prototype, "buttonsCenter", void 0);
|
|
144
|
+
], XDialogProperty.prototype, "buttonsCenter", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
XWithConfig(X_CONFIG_NAME, false),
|
|
147
|
+
XInputBoolean(),
|
|
148
|
+
__metadata("design:type", Object)
|
|
149
|
+
], XDialogProperty.prototype, "draggable", void 0);
|
|
143
150
|
|
|
144
151
|
class XDialogComponent extends XDialogProperty {
|
|
145
152
|
constructor(renderer, elementRef, cdr, viewContainerRef, protalService, i18n) {
|
|
@@ -250,11 +257,11 @@ class XDialogComponent extends XDialogProperty {
|
|
|
250
257
|
XDialogComponent.decorators = [
|
|
251
258
|
{ type: Component, args: [{
|
|
252
259
|
selector: `${XDialogPrefix}`,
|
|
253
|
-
template: "<ng-template #dialogTpl>\r\n <div class=\"x-dialog\" [@x-move-box-animation]=\"placement\" (@x-move-box-animation.done)=\"moveDone($event)\">\r\n <x-alert\r\n (close)=\"onClose()\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
|
|
260
|
+
template: "<ng-template #dialogTpl>\r\n <div class=\"x-dialog\" [@x-move-box-animation]=\"placement\" (@x-move-box-animation.done)=\"moveDone($event)\">\r\n <x-alert\r\n [draggable]=\"draggable\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n (close)=\"onClose()\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
|
|
254
261
|
encapsulation: ViewEncapsulation.None,
|
|
255
262
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
256
263
|
animations: [XMoveBoxAnimation],
|
|
257
|
-
styles: [".x-dialog{margin:0;padding:0;width:100%}.x-dialog,.x-dialog x-alert{height:100%}.x-dialog x-alert .x-alert{min-height:100%;height:-
|
|
264
|
+
styles: [".x-dialog{margin:0;padding:0;width:100%}.x-dialog,.x-dialog x-alert{height:100%}.x-dialog x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog x-alert .x-alert-title{padding:.5rem 1rem 0}.x-dialog x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex:1}.x-dialog-portal x-dialog{width:100%}"]
|
|
258
265
|
},] }
|
|
259
266
|
];
|
|
260
267
|
/** @nocollapse */
|
|
@@ -280,6 +287,7 @@ XDialogModule.decorators = [
|
|
|
280
287
|
CommonModule,
|
|
281
288
|
FormsModule,
|
|
282
289
|
ReactiveFormsModule,
|
|
290
|
+
DragDropModule,
|
|
283
291
|
XInputModule,
|
|
284
292
|
XButtonModule,
|
|
285
293
|
XIconModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-dialog.js","sources":["../../../../lib/ng-nest/ui/dialog/dialog.property.ts","../../../../lib/ng-nest/ui/dialog/dialog.component.ts","../../../../lib/ng-nest/ui/dialog/dialog.module.ts","../../../../lib/ng-nest/ui/dialog/ng-nest-ui-dialog.ts"],"sourcesContent":["import { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XStatus, XPlace, XInputBoolean, XTemplate, XEffect, XBoolean, XIsBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { XAlertProperty, XAlertOption } from '@ng-nest/ui/alert';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDialogComponent } from './dialog.component';\r\n\r\n/**\r\n * Dialog\r\n * @selector x-dialog\r\n * @decorator component\r\n */\r\nexport const XDialogPrefix = 'x-dialog';\r\n\r\nconst X_CONFIG_NAME = 'dialog';\r\n\r\nexport const XDialogPortal = 'x-dialog-portal';\r\n\r\n/**\r\n * Dialog Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDialogProperty extends XAlertProperty {\r\n @Input() @XInputBoolean() visible: boolean = false;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n @Input() @XWithConfig<XPlace>(X_CONFIG_NAME, 'center') placement: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '1rem') offset: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() type: XDialogType = 'info';\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '40%') width: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n @Input() height: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n @Input() @XWithConfig<XEffect>(X_CONFIG_NAME, 'white') effect: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n @Input() footer: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) showCancel: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) showConfirm: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) backdropClose: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) hasBackdrop: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '') className: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() buttonsCenter: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n @Input() beforeClose: Function;\r\n /**\r\n * @zh_CN 取消按钮的事件\r\n * @en_US Cancel button event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认按钮的事件\r\n * @en_US Confirm button event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏改变事件\r\n * @en_US Show/hide change events\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 弹出完成动画加载\r\n * @en_US Pop up complete animation loading\r\n */\r\n @Output() showDone = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 关闭完成动画\r\n * @en_US Close complete animation\r\n */\r\n @Output() closeDone = new EventEmitter<any>();\r\n}\r\n\r\nexport interface XDialogOption extends XAlertOption {\r\n visible?: boolean;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n offset?: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XDialogType;\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 Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n effect?: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n showCancel?: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n showConfirm?: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n backdropClose?: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n hasBackdrop?: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n beforeClose?: Function;\r\n}\r\n\r\nexport interface XDialogCallback {\r\n (action: XDialogAction, message?: string): void;\r\n}\r\n\r\nexport type XDialogAction = 'confirm' | 'cancel';\r\n\r\n/**\r\n * @zh_CN 创建的消息对象\r\n * @en_US Message object created\r\n */\r\nexport interface XDialogOverlayRef extends XPortalOverlayRef<XDialogComponent> {}\r\n\r\nexport interface XDialogRef {\r\n ref?: XDialogOverlayRef;\r\n input?: XDialogProperty;\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\nexport type XDialogType = XStatus;\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n TemplateRef,\r\n ViewContainerRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XMoveBoxAnimation, XIsChange, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDialogPrefix, XDialogOverlayRef, XDialogPortal, XDialogProperty } from './dialog.property';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { Subscription, Subject } from 'rxjs';\r\nimport { BlockScrollStrategy } from '@angular/cdk/overlay';\r\nimport { XI18nDialog, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XDialogPrefix}`,\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XDialogComponent extends XDialogProperty implements OnChanges, OnDestroy {\r\n @ViewChild('dialogTpl', { static: false }) dialogTpl: TemplateRef<void>;\r\n dialogRef: XDialogOverlayRef;\r\n backdropClick$: Subscription;\r\n scrollStrategy: BlockScrollStrategy;\r\n locale: XI18nDialog = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef,\r\n public protalService: XPortalService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.dialog as XI18nDialog),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.backdropClick$?.unsubscribe();\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.create();\r\n } else {\r\n this.detach();\r\n // this.visibleChange.emit(false);\r\n }\r\n }\r\n\r\n create() {\r\n this.dialogRef = this.protalService.attach({\r\n content: this.dialogTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n panelClass: [XDialogPortal, this.className],\r\n hasBackdrop: Boolean(this.hasBackdrop),\r\n positionStrategy: this.protalService.setPlace(this.placement, this.width, this.height, this.offset)\r\n }\r\n });\r\n this.scrollStrategy.enable();\r\n if (this.hasBackdrop && this.backdropClose && this.dialogRef?.overlayRef) {\r\n this.backdropClick$ = this.dialogRef.overlayRef.backdropClick().subscribe(() => this.onClose());\r\n }\r\n }\r\n\r\n detach() {\r\n if (this.portalAttached()) {\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n this.dialogRef?.overlayRef?.detach();\r\n this.scrollStrategy.disable();\r\n this.unsubscribe();\r\n this.close.emit();\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.dialogRef?.overlayRef?.hasAttached();\r\n }\r\n\r\n onClose() {\r\n if (XIsFunction(this.beforeClose)) {\r\n this.beforeClose();\r\n } else {\r\n this.detach();\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.onClose();\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onClose();\r\n this.confirm.emit();\r\n }\r\n\r\n moveDone($event: { toState: string }) {\r\n if ($event.toState === 'void') {\r\n this.closeDone.emit($event);\r\n this.dialogRef?.overlayRef?.dispose();\r\n } else {\r\n this.showDone.emit($event);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDialogComponent } from './dialog.component';\r\nimport { XAlertModule } from '@ng-nest/ui/alert';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XDialogProperty } from './dialog.property';\r\n\r\n@NgModule({\r\n declarations: [XDialogComponent, XDialogProperty],\r\n exports: [XDialogComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XPortalModule,\r\n XAlertModule,\r\n XOutletModule\r\n ]\r\n})\r\nexport class XDialogModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-dialog.js","sources":["../../../../lib/ng-nest/ui/dialog/dialog.property.ts","../../../../lib/ng-nest/ui/dialog/dialog.component.ts","../../../../lib/ng-nest/ui/dialog/dialog.module.ts","../../../../lib/ng-nest/ui/dialog/ng-nest-ui-dialog.ts"],"sourcesContent":["import { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XStatus, XPlace, XInputBoolean, XTemplate, XEffect, XBoolean, XIsBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { XAlertProperty, XAlertOption } from '@ng-nest/ui/alert';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDialogComponent } from './dialog.component';\r\n\r\n/**\r\n * Dialog\r\n * @selector x-dialog\r\n * @decorator component\r\n */\r\nexport const XDialogPrefix = 'x-dialog';\r\n\r\nconst X_CONFIG_NAME = 'dialog';\r\n\r\nexport const XDialogPortal = 'x-dialog-portal';\r\n\r\n/**\r\n * Dialog Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDialogProperty extends XAlertProperty {\r\n @Input() @XInputBoolean() visible: boolean = false;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n @Input() @XWithConfig<XPlace>(X_CONFIG_NAME, 'center') placement!: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '1rem') offset!: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() type: XDialogType = 'info';\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '32rem') width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n @Input() height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n @Input() @XWithConfig<XEffect>(X_CONFIG_NAME, 'white') effect!: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) showCancel!: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) showConfirm!: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) backdropClose!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) hasBackdrop!: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '') className!: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() draggable?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n @Input() beforeClose!: Function;\r\n /**\r\n * @zh_CN 取消按钮的事件\r\n * @en_US Cancel button event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认按钮的事件\r\n * @en_US Confirm button event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏改变事件\r\n * @en_US Show/hide change events\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 弹出完成动画加载\r\n * @en_US Pop up complete animation loading\r\n */\r\n @Output() showDone = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 关闭完成动画\r\n * @en_US Close complete animation\r\n */\r\n @Output() closeDone = new EventEmitter<any>();\r\n}\r\n\r\nexport interface XDialogOption extends XAlertOption {\r\n visible?: boolean;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n offset?: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XDialogType;\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 Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n effect?: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n showCancel?: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n showConfirm?: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n backdropClose?: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n hasBackdrop?: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n */\r\n draggable?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n beforeClose?: Function;\r\n}\r\n\r\nexport interface XDialogCallback {\r\n (action: XDialogAction, message?: string): void;\r\n}\r\n\r\nexport type XDialogAction = 'confirm' | 'cancel';\r\n\r\n/**\r\n * @zh_CN 创建的消息对象\r\n * @en_US Message object created\r\n */\r\nexport interface XDialogOverlayRef extends XPortalOverlayRef<XDialogComponent> {}\r\n\r\nexport interface XDialogRef {\r\n ref?: XDialogOverlayRef;\r\n input?: XDialogProperty;\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\nexport type XDialogType = XStatus;\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n TemplateRef,\r\n ViewContainerRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XMoveBoxAnimation, XIsChange, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDialogPrefix, XDialogOverlayRef, XDialogPortal, XDialogProperty } from './dialog.property';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { Subscription, Subject } from 'rxjs';\r\nimport { BlockScrollStrategy } from '@angular/cdk/overlay';\r\nimport { XI18nDialog, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XDialogPrefix}`,\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XDialogComponent extends XDialogProperty implements OnChanges, OnDestroy {\r\n @ViewChild('dialogTpl', { static: false }) dialogTpl!: TemplateRef<void>;\r\n dialogRef!: XDialogOverlayRef;\r\n backdropClick$!: Subscription;\r\n scrollStrategy: BlockScrollStrategy;\r\n locale: XI18nDialog = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef,\r\n public protalService: XPortalService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.dialog as XI18nDialog),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.backdropClick$?.unsubscribe();\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.create();\r\n } else {\r\n this.detach();\r\n // this.visibleChange.emit(false);\r\n }\r\n }\r\n\r\n create() {\r\n this.dialogRef = this.protalService.attach({\r\n content: this.dialogTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n panelClass: [XDialogPortal, this.className],\r\n hasBackdrop: Boolean(this.hasBackdrop),\r\n positionStrategy: this.protalService.setPlace(this.placement, this.width, this.height, this.offset)\r\n }\r\n });\r\n this.scrollStrategy.enable();\r\n if (this.hasBackdrop && this.backdropClose && this.dialogRef?.overlayRef) {\r\n this.backdropClick$ = this.dialogRef.overlayRef.backdropClick().subscribe(() => this.onClose());\r\n }\r\n }\r\n\r\n detach() {\r\n if (this.portalAttached()) {\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n this.dialogRef?.overlayRef?.detach();\r\n this.scrollStrategy.disable();\r\n this.unsubscribe();\r\n this.close.emit();\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.dialogRef?.overlayRef?.hasAttached();\r\n }\r\n\r\n onClose() {\r\n if (XIsFunction(this.beforeClose)) {\r\n this.beforeClose();\r\n } else {\r\n this.detach();\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.onClose();\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onClose();\r\n this.confirm.emit();\r\n }\r\n\r\n moveDone($event: { toState: string }) {\r\n if ($event.toState === 'void') {\r\n this.closeDone.emit($event);\r\n this.dialogRef?.overlayRef?.dispose();\r\n } else {\r\n this.showDone.emit($event);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDialogComponent } from './dialog.component';\r\nimport { XAlertModule } from '@ng-nest/ui/alert';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XDialogProperty } from './dialog.property';\r\n\r\n@NgModule({\r\n declarations: [XDialogComponent, XDialogProperty],\r\n exports: [XDialogComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragDropModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XPortalModule,\r\n XAlertModule,\r\n XOutletModule\r\n ]\r\n})\r\nexport class XDialogModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-drawer.js","sources":["../../../../lib/ng-nest/ui/drawer/drawer.property.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.ts","../../../../lib/ng-nest/ui/drawer/drawer.module.ts","../../../../lib/ng-nest/ui/drawer/ng-nest-ui-drawer.ts"],"sourcesContent":["import { XTemplate, XPosition, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Drawer\r\n * @selector x-drawer\r\n * @decorator component\r\n */\r\nexport const XDrawerPrefix = 'x-drawer';\r\nconst X_CONFIG_NAME = 'drawer';\r\n\r\n/**\r\n * Drawer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-drawer.js","sources":["../../../../lib/ng-nest/ui/drawer/drawer.property.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.ts","../../../../lib/ng-nest/ui/drawer/drawer.module.ts","../../../../lib/ng-nest/ui/drawer/ng-nest-ui-drawer.ts"],"sourcesContent":["import { XTemplate, XPosition, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Drawer\r\n * @selector x-drawer\r\n * @decorator component\r\n */\r\nexport const XDrawerPrefix = 'x-drawer';\r\nconst X_CONFIG_NAME = 'drawer';\r\n\r\n/**\r\n * Drawer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n */\r\n @Input() @XWithConfig<XPosition>(X_CONFIG_NAME, 'right') placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '30%') size?: string;\r\n /**\r\n * @zh_CN 关闭的事件\r\n * @en_US Closed event\r\n */\r\n @Output() close = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏的事件\r\n * @en_US Show/hide event\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\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 ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { XDrawerPrefix, XDrawerProperty } from './drawer.property';\r\nimport { XIsChange, XIsEmpty, XSlideAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { Subscription } from 'rxjs';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDrawerPrefix}`,\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerComponent extends XDrawerProperty implements OnInit, OnChanges {\r\n @ViewChild('drawerTpl', { static: true }) drawerTpl!: TemplateRef<void>;\r\n portal!: XPortalOverlayRef<any>;\r\n back$: Subscription | null = null;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public overlay: Overlay,\r\n public portalService: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n XIsChange(simples.visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.back$?.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),\r\n [`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)\r\n };\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n const width = this.placement === 'left' || this.placement === 'right' ? this.size : '100%';\r\n const height = this.placement === 'top' || this.placement === 'bottom' ? this.size : '100%';\r\n this.portal = this.portalService.attach({\r\n content: this.drawerTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: true,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n positionStrategy: this.portalService.setPosition(this.placement, width, height)\r\n }\r\n });\r\n if (this.portal.overlayRef) this.back$ = this.portal.overlayRef.backdropClick().subscribe(() => this.closePortal());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.unsubscribe();\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDrawerComponent } from './drawer.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XDrawerProperty } from './drawer.property';\r\n\r\n@NgModule({\r\n declarations: [XDrawerComponent, XDrawerProperty],\r\n exports: [XDrawerComponent],\r\n imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule]\r\n})\r\nexport class XDrawerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-dropdown.js","sources":["../../../../lib/ng-nest/ui/dropdown/dropdown.property.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.module.ts","../../../../lib/ng-nest/ui/dropdown/ng-nest-ui-dropdown.ts"],"sourcesContent":["import { XData, XProperty, XDataConvert, XInputBoolean, XBoolean, XPlacement, XWithConfig, XTrigger } from '@ng-nest/ui/core';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Dropdown\r\n * @selector x-dropdown\r\n * @decorator component\r\n */\r\nexport const XDropdownPrefix = 'x-dropdown';\r\nconst X_CONFIG_NAME = 'dropdown';\r\n\r\n/**\r\n * Dropdown Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDropdownProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XDropdownNode> = [];\r\n /**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\n @Input() @XWithConfig<XDropdownTrigger>(X_CONFIG_NAME, 'hover') trigger: XDropdownTrigger;\r\n /**\r\n * @zh_CN 展示位置\r\n * @en_US Placement\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom-start') placement: XPlacement;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n @Input() @XInputBoolean() disabled: XBoolean;\r\n /**\r\n * @zh_CN 节点中已经包含子节点数据\r\n * @en_US The node already contains child node data\r\n */\r\n @Input() @XInputBoolean() children: XBoolean;\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XDropdownNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Dropdown 数据对象\r\n * @en_US Dropdown data object\r\n */\r\nexport interface XDropdownNode extends XListNode {}\r\n\r\n/**\r\n * @zh_CN 显示方式\r\n * @en_US Display method\r\n */\r\nexport type XDropdownTrigger = XTrigger;\r\n\r\n/**\r\n * Dropdown Portal\r\n * @selector x-dropdown-portal\r\n * @decorator component\r\n */\r\nexport const XDropdownPortalPrefix = 'x-dropdown-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n HostListener,\r\n ViewContainerRef,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { XDropdownPortalPrefix, XDropdownNode, XDropdownTrigger } from './dropdown.property';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ConnectedOverlayPositionChange, FlexibleConnectedPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDropdownPortalPrefix}`,\r\n templateUrl: './dropdown-portal.component.html',\r\n styleUrls: ['./dropdown-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XDropdownPortalComponent implements OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n data: XDropdownNode[];\r\n trigger: XDropdownTrigger;\r\n close: Function;\r\n nodeEmit: Function;\r\n portalHover: Function;\r\n animating: Function;\r\n destroyPortal: Function;\r\n portal: XPortalOverlayRef<XDropdownPortalComponent>;\r\n positionChange: Subject<any>;\r\n portalPositionChange: Subject<any> = new Subject();\r\n node: XDropdownNode;\r\n timeoutHide: any;\r\n timespan = 200;\r\n portalPlacement: XPositionTopBottom;\r\n childAnimating = false;\r\n private _unSubject = new Subject<void>();\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n this.portalHover(true);\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n !this.portalAttached() && this.portalHover(false);\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n nodeClick(node: XDropdownNode) {\r\n if (!node.leaf) this.close();\r\n this.nodeEmit(node);\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.dispose();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n panelClass: 'x-dropdown-portal-child',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.portalPlacement && this.portalPositionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.node?.children,\r\n close: () => this.closePortal(),\r\n placement: this.portalPlacement,\r\n positionChange: this.portalPositionChange,\r\n nodeEmit: (node: XDropdownNode) => this.nodeClick(node),\r\n portalHover: (hover: boolean) => this.hover(hover),\r\n animating: (ing: boolean) => (this.childAnimating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n hover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.portalHover(false);\r\n this.onLeave();\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: new ElementRef(this.node?.event?.target),\r\n placement: ['right-start', 'right-end', 'left-start', 'left-end'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n\r\n onEnter(node: XDropdownNode) {\r\n if (!node.leaf || node.disabled || this.childAnimating) return;\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (this.portalAttached() && this.node?.id !== node.id) {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n this.node = node;\r\n if (!this.portalAttached()) {\r\n this.createPortal();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onLeave() {\r\n if (this.portalAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.portal?.overlayRef?.dispose();\r\n });\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XDropdownPrefix, XDropdownNode, XDropdownProperty } from './dropdown.property';\r\nimport { XIsChange, XIsEmpty, XSetData, XGetChildren, XConfigService, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { debounceTime, takeUntil, throttleTime } from 'rxjs/operators';\r\nimport { ConnectedOverlayPositionChange, FlexibleConnectedPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDropdownPrefix}`,\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownComponent extends XDropdownProperty implements OnChanges {\r\n @ViewChild('dropdown', { static: true }) dropdown: ElementRef;\r\n datas: XDropdownNode[] = [];\r\n nodes: XDropdownNode[] = [];\r\n portal: XPortalOverlayRef<XDropdownPortalComponent>;\r\n timeoutHide: any;\r\n visible: boolean = false;\r\n animating = false;\r\n outsideClick = false;\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n onEnter() {\r\n if (this.disabled || this.trigger === 'click') return;\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal?.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n onLeave() {\r\n if (this.disabled || this.trigger === 'click') return;\r\n if (this.portal?.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal?.overlayRef?.dispose();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.trigger === 'hover' || this.animating) return;\r\n if (this.trigger === 'click' && this.portalAttached()) {\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.createPortal();\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.dispose();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n if (this.trigger === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n }\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.nodes,\r\n trigger: this.trigger,\r\n close: () => this.closeSubject.next(),\r\n positionChange: this.positionChange,\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: XDropdownNode) => this.nodeClick.emit(node),\r\n portalHover: (hover: boolean) => this.portalHover(hover),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n portalHover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.onLeave();\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.dropdown,\r\n placement: [this.placement, 'bottom-start', 'top-start', 'bottom-end', 'top-end'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n\r\n private setData() {\r\n XSetData<XDropdownNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.datas = x;\r\n if (!this.children) {\r\n this.nodes = x.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XDropdownNode>(x, y, 0));\r\n } else {\r\n this.nodes = x;\r\n }\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDropdownComponent } from './dropdown.component';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XDropdownProperty } from './dropdown.property';\r\n\r\n@NgModule({\r\n declarations: [XDropdownComponent, XDropdownPortalComponent, XDropdownProperty],\r\n exports: [XDropdownComponent, XDropdownPortalComponent],\r\n imports: [CommonModule, XPortalModule, XListModule],\r\n entryComponents: [XDropdownPortalComponent]\r\n})\r\nexport class XDropdownModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-dropdown.js","sources":["../../../../lib/ng-nest/ui/dropdown/dropdown.property.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.module.ts","../../../../lib/ng-nest/ui/dropdown/ng-nest-ui-dropdown.ts"],"sourcesContent":["import { XData, XProperty, XDataConvert, XInputBoolean, XBoolean, XPlacement, XWithConfig, XTrigger } from '@ng-nest/ui/core';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Dropdown\r\n * @selector x-dropdown\r\n * @decorator component\r\n */\r\nexport const XDropdownPrefix = 'x-dropdown';\r\nconst X_CONFIG_NAME = 'dropdown';\r\n\r\n/**\r\n * Dropdown Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDropdownProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XDropdownNode> = [];\r\n /**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\n @Input() @XWithConfig<XDropdownTrigger>(X_CONFIG_NAME, 'hover') trigger?: XDropdownTrigger;\r\n /**\r\n * @zh_CN 展示位置\r\n * @en_US Placement\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom-start') placement?: XPlacement;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n @Input() @XInputBoolean() disabled?: XBoolean;\r\n /**\r\n * @zh_CN 节点中已经包含子节点数据\r\n * @en_US The node already contains child node data\r\n */\r\n @Input() @XInputBoolean() children?: XBoolean;\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XDropdownNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Dropdown 数据对象\r\n * @en_US Dropdown data object\r\n */\r\nexport interface XDropdownNode extends XListNode {}\r\n\r\n/**\r\n * @zh_CN 显示方式\r\n * @en_US Display method\r\n */\r\nexport type XDropdownTrigger = XTrigger;\r\n\r\n/**\r\n * Dropdown Portal\r\n * @selector x-dropdown-portal\r\n * @decorator component\r\n */\r\nexport const XDropdownPortalPrefix = 'x-dropdown-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n HostListener,\r\n ViewContainerRef,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { XDropdownPortalPrefix, XDropdownNode, XDropdownTrigger } from './dropdown.property';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ConnectedOverlayPositionChange, FlexibleConnectedPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDropdownPortalPrefix}`,\r\n templateUrl: './dropdown-portal.component.html',\r\n styleUrls: ['./dropdown-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XDropdownPortalComponent implements OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n data!: XDropdownNode[];\r\n trigger!: XDropdownTrigger;\r\n close!: Function;\r\n nodeEmit!: Function;\r\n portalHover!: Function;\r\n animating!: Function;\r\n destroyPortal!: Function;\r\n portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n positionChange!: Subject<any>;\r\n portalPositionChange: Subject<any> = new Subject();\r\n node!: XDropdownNode;\r\n timeoutHide: any;\r\n timespan = 200;\r\n portalPlacement!: XPositionTopBottom;\r\n childAnimating = false;\r\n private _unSubject = new Subject<void>();\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n this.portalHover(true);\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n !this.portalAttached() && this.portalHover(false);\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n nodeClick(node: XDropdownNode) {\r\n if (!node.leaf) this.close();\r\n this.nodeEmit(node);\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.dispose();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n panelClass: 'x-dropdown-portal-child',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.portalPlacement && this.portalPositionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.node?.children,\r\n close: () => this.closePortal(),\r\n placement: this.portalPlacement,\r\n positionChange: this.portalPositionChange,\r\n nodeEmit: (node: XDropdownNode) => this.nodeClick(node),\r\n portalHover: (hover: boolean) => this.hover(hover),\r\n animating: (ing: boolean) => (this.childAnimating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n hover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.portalHover(false);\r\n this.onLeave();\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: new ElementRef(this.node?.event?.target),\r\n placement: ['right-start', 'right-end', 'left-start', 'left-end'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n\r\n onEnter(node: XDropdownNode) {\r\n if (!node.leaf || node.disabled || this.childAnimating) return;\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (this.portalAttached() && this.node?.id !== node.id) {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n this.node = node;\r\n if (!this.portalAttached()) {\r\n this.createPortal();\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onLeave() {\r\n if (this.portalAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.portal?.overlayRef?.dispose();\r\n });\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XDropdownPrefix, XDropdownNode, XDropdownProperty } from './dropdown.property';\r\nimport { XIsChange, XIsEmpty, XSetData, XGetChildren, XConfigService, XPositionTopBottom, XPlacement } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { debounceTime, takeUntil, throttleTime } from 'rxjs/operators';\r\nimport { ConnectedOverlayPositionChange, FlexibleConnectedPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDropdownPrefix}`,\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownComponent extends XDropdownProperty implements OnChanges {\r\n @ViewChild('dropdown', { static: true }) dropdown!: ElementRef;\r\n datas: XDropdownNode[] = [];\r\n nodes: XDropdownNode[] = [];\r\n portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n timeoutHide: any;\r\n visible: boolean = false;\r\n animating = false;\r\n outsideClick = false;\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n onEnter() {\r\n if (this.disabled || this.trigger === 'click') return;\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal?.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n onLeave() {\r\n if (this.disabled || this.trigger === 'click') return;\r\n if (this.portal?.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal?.overlayRef?.dispose();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.trigger === 'hover' || this.animating) return;\r\n if (this.trigger === 'click' && this.portalAttached()) {\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.createPortal();\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.dispose();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n if (this.trigger === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n }\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.nodes,\r\n trigger: this.trigger,\r\n close: () => this.closeSubject.next(),\r\n positionChange: this.positionChange,\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: XDropdownNode) => this.nodeClick.emit(node),\r\n portalHover: (hover: boolean) => this.portalHover(hover),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n portalHover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.onLeave();\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.dropdown,\r\n placement: [this.placement as XPlacement, 'bottom-start', 'top-start', 'bottom-end', 'top-end'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n\r\n private setData() {\r\n XSetData<XDropdownNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.datas = x;\r\n if (!this.children) {\r\n this.nodes = x.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XDropdownNode>(x, y, 0));\r\n } else {\r\n this.nodes = x;\r\n }\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDropdownComponent } from './dropdown.component';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XDropdownProperty } from './dropdown.property';\r\n\r\n@NgModule({\r\n declarations: [XDropdownComponent, XDropdownPortalComponent, XDropdownProperty],\r\n exports: [XDropdownComponent, XDropdownPortalComponent],\r\n imports: [CommonModule, XPortalModule, XListModule],\r\n entryComponents: [XDropdownPortalComponent]\r\n})\r\nexport class XDropdownModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|