@ng-nest/ui 12.0.8 → 12.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alert/alert.component.d.ts +2 -1
- package/auto-complete/auto-complete-portal.component.d.ts +1 -3
- package/auto-complete/auto-complete.component.d.ts +1 -1
- package/back-top/back-top.component.d.ts +1 -2
- package/bundles/ng-nest-ui-alert.umd.js +6 -1
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-anchor.umd.js +1 -1
- package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
- package/bundles/ng-nest-ui-auto-complete.umd.js +7 -6
- package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
- package/bundles/ng-nest-ui-back-top.umd.js +2 -2
- package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
- package/bundles/ng-nest-ui-badge.umd.js +2 -1
- package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
- package/bundles/ng-nest-ui-button.umd.js +4 -3
- package/bundles/ng-nest-ui-button.umd.js.map +1 -1
- package/bundles/ng-nest-ui-calendar.umd.js +4 -3
- package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.js +13 -12
- package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
- package/bundles/ng-nest-ui-cascade.umd.js +9 -9
- package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
- package/bundles/ng-nest-ui-checkbox.umd.js +3 -2
- package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
- package/bundles/ng-nest-ui-color-picker.umd.js +9 -10
- package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-color.umd.js +1 -1
- package/bundles/ng-nest-ui-color.umd.js.map +1 -1
- package/bundles/ng-nest-ui-comment.umd.js +3 -2
- package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
- package/bundles/ng-nest-ui-container.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js +3 -3
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-crumb.umd.js +3 -2
- package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
- package/bundles/ng-nest-ui-date-picker.umd.js +34 -44
- package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-description.umd.js +5 -6
- package/bundles/ng-nest-ui-description.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.js +285 -32
- package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.js +247 -15
- package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dropdown.umd.js +4 -3
- package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.js +33 -8
- package/bundles/ng-nest-ui-find.umd.js.map +1 -1
- package/bundles/ng-nest-ui-form.umd.js +6 -10
- package/bundles/ng-nest-ui-form.umd.js.map +1 -1
- package/bundles/ng-nest-ui-highlight.umd.js +2 -1
- package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
- package/bundles/ng-nest-ui-i18n.umd.js +2 -1
- package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
- package/bundles/ng-nest-ui-icon.umd.js +3 -2
- package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
- package/bundles/ng-nest-ui-inner.umd.js +1 -1
- package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.js +9 -7
- package/bundles/ng-nest-ui-input.umd.js.map +1 -1
- package/bundles/ng-nest-ui-list.umd.js +4 -3
- package/bundles/ng-nest-ui-list.umd.js.map +1 -1
- package/bundles/ng-nest-ui-loading.umd.js +2 -1
- package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.js +6 -6
- package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message-box.umd.js +28 -26
- package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +53 -17
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-notification.umd.js +1 -1
- package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
- package/bundles/ng-nest-ui-pagination.umd.js +3 -2
- package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.js +33 -4
- package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.js +15 -3
- package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.js +8 -8
- package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.js +236 -20
- package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
- package/bundles/ng-nest-ui-radio.umd.js +3 -2
- package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
- package/bundles/ng-nest-ui-rate.umd.js +5 -5
- package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
- package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.js +7 -6
- package/bundles/ng-nest-ui-select.umd.js.map +1 -1
- package/bundles/ng-nest-ui-skeleton.umd.js +2 -1
- package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
- package/bundles/ng-nest-ui-slider.umd.js +7 -8
- package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
- package/bundles/ng-nest-ui-statistic.umd.js +6 -4
- package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
- package/bundles/ng-nest-ui-steps.umd.js +23 -10
- package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.js +13 -10
- package/bundles/ng-nest-ui-table.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tabs.umd.js +5 -4
- package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tag.umd.js +2 -1
- package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
- package/bundles/ng-nest-ui-text-retract.umd.js +2 -1
- package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
- package/bundles/ng-nest-ui-textarea.umd.js +3 -12
- package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
- package/bundles/ng-nest-ui-theme.umd.js +2 -2
- package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
- package/bundles/ng-nest-ui-time-picker.umd.js +32 -15
- package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
- package/bundles/ng-nest-ui-timeline.umd.js +3 -2
- package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tooltip.umd.js +3 -2
- package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
- package/bundles/ng-nest-ui-transfer.umd.js +3 -2
- package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-tree.umd.js +8 -7
- package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
- package/bundles/ng-nest-ui-upload.umd.js +5 -4
- package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
- package/button/buttons.component.d.ts +1 -1
- package/calendar/calendar.component.d.ts +2 -2
- package/carousel/carousel-panel.component.d.ts +2 -3
- package/carousel/carousel.component.d.ts +1 -1
- package/cascade/cascade-portal.component.d.ts +4 -7
- package/cascade/cascade.component.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -1
- package/color/color.component.d.ts +2 -2
- package/color-picker/color-picker-portal.component.d.ts +1 -3
- package/color-picker/color-picker.component.d.ts +2 -3
- package/comment/comment.component.d.ts +1 -1
- package/core/config/config.d.ts +7 -0
- package/core/interfaces/layout.type.d.ts +1 -1
- package/core/services/reuse-strategy.service.d.ts +1 -1
- package/crumb/crumb.component.d.ts +1 -1
- package/date-picker/date-picker-portal.component.d.ts +1 -3
- package/date-picker/date-picker.component.d.ts +3 -4
- package/date-picker/date-picker.property.d.ts +1 -16
- package/date-picker/date-range-portal.component.d.ts +1 -3
- package/date-picker/date-range.component.d.ts +2 -3
- package/date-picker/picker-date.component.d.ts +1 -1
- package/date-picker/picker-month.component.d.ts +1 -1
- package/date-picker/picker-year.component.d.ts +1 -1
- package/description/description.component.d.ts +2 -4
- package/dialog/dialog-container.component.d.ts +18 -0
- package/dialog/dialog-container.directives.d.ts +24 -0
- package/dialog/dialog-ref.d.ts +9 -0
- package/dialog/dialog.module.d.ts +13 -11
- package/dialog/dialog.property.d.ts +84 -6
- package/dialog/dialog.service.d.ts +19 -0
- package/dialog/public-api.d.ts +4 -0
- package/drawer/drawer-container.component.d.ts +18 -0
- package/drawer/drawer-container.directives.d.ts +19 -0
- package/drawer/drawer-ref.d.ts +9 -0
- package/drawer/drawer.module.d.ts +8 -6
- package/drawer/drawer.property.d.ts +83 -2
- package/drawer/drawer.service.d.ts +19 -0
- package/drawer/public-api.d.ts +5 -0
- package/dropdown/dropdown-portal.component.d.ts +1 -3
- package/dropdown/dropdown.component.d.ts +2 -2
- package/esm2015/alert/alert.component.js +8 -3
- package/esm2015/anchor/anchor.component.js +2 -2
- package/esm2015/anchor/anchor.property.js +1 -1
- package/esm2015/auto-complete/auto-complete-portal.component.js +4 -4
- package/esm2015/auto-complete/auto-complete.component.js +5 -4
- package/esm2015/auto-complete/auto-complete.property.js +1 -1
- package/esm2015/back-top/back-top.component.js +3 -3
- package/esm2015/badge/badge.component.js +3 -2
- package/esm2015/button/button.component.js +5 -4
- package/esm2015/button/buttons.component.js +1 -1
- package/esm2015/calendar/calendar.component.js +5 -4
- package/esm2015/carousel/carousel-panel.component.js +12 -11
- package/esm2015/carousel/carousel.component.js +4 -3
- package/esm2015/cascade/cascade-portal.component.js +6 -7
- package/esm2015/cascade/cascade.component.js +5 -4
- package/esm2015/checkbox/checkbox.component.js +4 -3
- package/esm2015/checkbox/checkbox.property.js +1 -1
- package/esm2015/color/color.component.js +2 -2
- package/esm2015/color-picker/color-picker-portal.component.js +3 -3
- package/esm2015/color-picker/color-picker.component.js +8 -9
- package/esm2015/comment/comment.component.js +4 -3
- package/esm2015/container/container.component.js +2 -2
- package/esm2015/core/animation/fade.js +1 -1
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/core/interfaces/layout.type.js +1 -1
- package/esm2015/core/services/http.service.js +2 -2
- package/esm2015/core/services/preloading-strategy.service.js +2 -2
- package/esm2015/core/services/reuse-strategy.service.js +2 -2
- package/esm2015/crumb/crumb.component.js +4 -3
- package/esm2015/date-picker/date-picker-portal.component.js +4 -4
- package/esm2015/date-picker/date-picker.component.js +9 -13
- package/esm2015/date-picker/date-picker.property.js +8 -17
- package/esm2015/date-picker/date-range-portal.component.js +2 -2
- package/esm2015/date-picker/date-range.component.js +7 -7
- package/esm2015/date-picker/picker-date.component.js +4 -3
- package/esm2015/date-picker/picker-month.component.js +4 -3
- package/esm2015/date-picker/picker-year.component.js +4 -3
- package/esm2015/description/description.component.js +6 -7
- package/esm2015/dialog/dialog-container.component.js +59 -0
- package/esm2015/dialog/dialog-container.directives.js +73 -0
- package/esm2015/dialog/dialog-ref.js +17 -0
- package/esm2015/dialog/dialog.component.js +4 -3
- package/esm2015/dialog/dialog.module.js +37 -7
- package/esm2015/dialog/dialog.property.js +17 -16
- package/esm2015/dialog/dialog.service.js +67 -0
- package/esm2015/dialog/public-api.js +5 -1
- package/esm2015/drawer/drawer-container.component.js +59 -0
- package/esm2015/drawer/drawer-container.directives.js +57 -0
- package/esm2015/drawer/drawer-ref.js +17 -0
- package/esm2015/drawer/drawer.component.js +4 -3
- package/esm2015/drawer/drawer.module.js +22 -6
- package/esm2015/drawer/drawer.property.js +22 -6
- package/esm2015/drawer/drawer.service.js +65 -0
- package/esm2015/drawer/public-api.js +6 -1
- package/esm2015/dropdown/dropdown-portal.component.js +2 -2
- package/esm2015/dropdown/dropdown.component.js +4 -3
- package/esm2015/find/find.component.js +18 -8
- package/esm2015/find/find.property.js +18 -2
- package/esm2015/form/control.component.js +1 -1
- package/esm2015/form/form.component.js +6 -5
- package/esm2015/form/form.property.js +3 -8
- package/esm2015/highlight/highlight.component.js +3 -2
- package/esm2015/highlight/highlight.property.js +1 -1
- package/esm2015/i18n/i18n.directive.js +3 -2
- package/esm2015/icon/icon.component.js +4 -3
- package/esm2015/inner/inner.component.js +2 -2
- package/esm2015/input/input-group.component.js +2 -4
- package/esm2015/input/input.component.js +9 -5
- package/esm2015/input/input.property.js +1 -1
- package/esm2015/list/list.component.js +5 -4
- package/esm2015/list/list.property.js +1 -1
- package/esm2015/loading/loading.component.js +3 -2
- package/esm2015/menu/menu-node.component.js +1 -1
- package/esm2015/menu/menu.component.js +7 -7
- package/esm2015/message/message-ref.js +12 -0
- package/esm2015/message/message.component.js +4 -4
- package/esm2015/message/message.property.js +2 -2
- package/esm2015/message/message.service.js +37 -15
- package/esm2015/message/public-api.js +2 -1
- package/esm2015/message-box/message-box.component.js +17 -21
- package/esm2015/message-box/message-box.service.js +7 -5
- package/esm2015/notification/notification.component.js +2 -2
- package/esm2015/notification/notification.property.js +1 -1
- package/esm2015/pagination/pagination.component.js +4 -3
- package/esm2015/popconfirm/popconfirm.component.js +25 -4
- package/esm2015/popconfirm/popconfirm.property.js +10 -3
- package/esm2015/popover/popover.directive.js +10 -3
- package/esm2015/popover/popover.property.js +7 -2
- package/esm2015/portal/portal.module.js +4 -3
- package/esm2015/portal/portal.service.js +8 -9
- package/esm2015/progress/progress.component.js +178 -15
- package/esm2015/progress/progress.property.js +50 -3
- package/esm2015/radio/radio.component.js +4 -3
- package/esm2015/radio/radio.property.js +1 -1
- package/esm2015/rate/rate.component.js +6 -6
- package/esm2015/ripple/ripple.directive.js +1 -1
- package/esm2015/ripple/ripple.property.js +1 -1
- package/esm2015/select/select-portal.component.js +3 -3
- package/esm2015/select/select.component.js +6 -5
- package/esm2015/skeleton/skeleton.component.js +3 -2
- package/esm2015/slider/slider.component.js +8 -9
- package/esm2015/statistic/countdown.component.js +5 -4
- package/esm2015/statistic/statistic.component.js +3 -2
- package/esm2015/steps/steps.component.js +18 -10
- package/esm2015/steps/steps.property.js +8 -3
- package/esm2015/table/drag.directive.js +2 -2
- package/esm2015/table/table-body.component.js +4 -3
- package/esm2015/table/table-foot.component.js +1 -1
- package/esm2015/table/table-head.component.js +5 -4
- package/esm2015/table/table.component.js +6 -5
- package/esm2015/table/table.property.js +1 -1
- package/esm2015/tabs/tab.component.js +1 -1
- package/esm2015/tabs/tabs.component.js +6 -5
- package/esm2015/tag/tag.component.js +3 -2
- package/esm2015/text-retract/text-retract.component.js +3 -2
- package/esm2015/textarea/textarea.component.js +3 -2
- package/esm2015/textarea/textarea.property.js +2 -12
- package/esm2015/theme/theme.component.js +3 -3
- package/esm2015/theme/theme.property.js +1 -1
- package/esm2015/time-picker/time-picker-frame.component.js +9 -5
- package/esm2015/time-picker/time-picker-portal.component.js +2 -2
- package/esm2015/time-picker/time-picker.component.js +25 -12
- package/esm2015/timeline/timeline.component.js +4 -3
- package/esm2015/tooltip/tooltip.directive.js +4 -3
- package/esm2015/tooltip/tooltip.property.js +1 -1
- package/esm2015/transfer/transfer.component.js +4 -3
- package/esm2015/tree/tree-node.component.js +2 -2
- package/esm2015/tree/tree.component.js +8 -7
- package/esm2015/tree/tree.property.js +1 -1
- package/esm2015/upload/upload-portal.component.js +2 -2
- package/esm2015/upload/upload.component.js +5 -4
- package/fesm2015/ng-nest-ui-alert.js +7 -2
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-anchor.js +1 -1
- package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.js +7 -6
- package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
- package/fesm2015/ng-nest-ui-back-top.js +2 -2
- package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
- package/fesm2015/ng-nest-ui-badge.js +2 -1
- package/fesm2015/ng-nest-ui-badge.js.map +1 -1
- package/fesm2015/ng-nest-ui-button.js +4 -3
- package/fesm2015/ng-nest-ui-button.js.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.js +4 -3
- package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
- package/fesm2015/ng-nest-ui-carousel.js +12 -11
- package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.js +9 -9
- package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.js +3 -2
- package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.js +9 -10
- package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-color.js +1 -1
- package/fesm2015/ng-nest-ui-color.js.map +1 -1
- package/fesm2015/ng-nest-ui-comment.js +3 -2
- package/fesm2015/ng-nest-ui-comment.js.map +1 -1
- package/fesm2015/ng-nest-ui-container.js +1 -1
- package/fesm2015/ng-nest-ui-container.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js +3 -3
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-crumb.js +3 -2
- package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.js +34 -44
- package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-description.js +5 -6
- package/fesm2015/ng-nest-ui-description.js.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.js +256 -26
- package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.js +226 -14
- package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.js +4 -3
- package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
- package/fesm2015/ng-nest-ui-find.js +34 -8
- package/fesm2015/ng-nest-ui-find.js.map +1 -1
- package/fesm2015/ng-nest-ui-form.js +7 -11
- package/fesm2015/ng-nest-ui-form.js.map +1 -1
- package/fesm2015/ng-nest-ui-highlight.js +2 -1
- package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.js +2 -1
- package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
- package/fesm2015/ng-nest-ui-icon.js +3 -2
- package/fesm2015/ng-nest-ui-icon.js.map +1 -1
- package/fesm2015/ng-nest-ui-inner.js +1 -1
- package/fesm2015/ng-nest-ui-inner.js.map +1 -1
- package/fesm2015/ng-nest-ui-input.js +9 -7
- package/fesm2015/ng-nest-ui-input.js.map +1 -1
- package/fesm2015/ng-nest-ui-list.js +4 -3
- package/fesm2015/ng-nest-ui-list.js.map +1 -1
- package/fesm2015/ng-nest-ui-loading.js +2 -1
- package/fesm2015/ng-nest-ui-loading.js.map +1 -1
- package/fesm2015/ng-nest-ui-menu.js +6 -6
- package/fesm2015/ng-nest-ui-menu.js.map +1 -1
- package/fesm2015/ng-nest-ui-message-box.js +22 -24
- package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
- package/fesm2015/ng-nest-ui-message.js +51 -18
- package/fesm2015/ng-nest-ui-message.js.map +1 -1
- package/fesm2015/ng-nest-ui-notification.js +1 -1
- package/fesm2015/ng-nest-ui-notification.js.map +1 -1
- package/fesm2015/ng-nest-ui-pagination.js +3 -2
- package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js +33 -5
- package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
- package/fesm2015/ng-nest-ui-popover.js +15 -3
- package/fesm2015/ng-nest-ui-popover.js.map +1 -1
- package/fesm2015/ng-nest-ui-portal.js +10 -10
- package/fesm2015/ng-nest-ui-portal.js.map +1 -1
- package/fesm2015/ng-nest-ui-progress.js +226 -17
- package/fesm2015/ng-nest-ui-progress.js.map +1 -1
- package/fesm2015/ng-nest-ui-radio.js +3 -2
- package/fesm2015/ng-nest-ui-radio.js.map +1 -1
- package/fesm2015/ng-nest-ui-rate.js +5 -5
- package/fesm2015/ng-nest-ui-rate.js.map +1 -1
- package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
- package/fesm2015/ng-nest-ui-select.js +7 -6
- package/fesm2015/ng-nest-ui-select.js.map +1 -1
- package/fesm2015/ng-nest-ui-skeleton.js +2 -1
- package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
- package/fesm2015/ng-nest-ui-slider.js +7 -8
- package/fesm2015/ng-nest-ui-slider.js.map +1 -1
- package/fesm2015/ng-nest-ui-statistic.js +6 -4
- package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
- package/fesm2015/ng-nest-ui-steps.js +24 -11
- package/fesm2015/ng-nest-ui-steps.js.map +1 -1
- package/fesm2015/ng-nest-ui-table.js +13 -10
- package/fesm2015/ng-nest-ui-table.js.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.js +5 -4
- package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
- package/fesm2015/ng-nest-ui-tag.js +2 -1
- package/fesm2015/ng-nest-ui-tag.js.map +1 -1
- package/fesm2015/ng-nest-ui-text-retract.js +2 -1
- package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.js +3 -12
- package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
- package/fesm2015/ng-nest-ui-theme.js +2 -2
- package/fesm2015/ng-nest-ui-theme.js.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.js +33 -16
- package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
- package/fesm2015/ng-nest-ui-timeline.js +3 -2
- package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
- package/fesm2015/ng-nest-ui-tooltip.js +3 -2
- package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.js +3 -2
- package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
- package/fesm2015/ng-nest-ui-tree.js +8 -7
- package/fesm2015/ng-nest-ui-tree.js.map +1 -1
- package/fesm2015/ng-nest-ui-upload.js +5 -4
- package/fesm2015/ng-nest-ui-upload.js.map +1 -1
- package/find/find.component.d.ts +1 -1
- package/find/find.property.d.ts +31 -1
- package/form/control.component.d.ts +1 -1
- package/form/form.component.d.ts +1 -1
- package/form/form.property.d.ts +6 -6
- package/inner/inner.component.d.ts +1 -1
- package/input/input-group.component.d.ts +2 -4
- package/list/list.component.d.ts +2 -2
- package/menu/menu.component.d.ts +1 -1
- package/message/message-ref.d.ts +8 -0
- package/message/message.component.d.ts +3 -3
- package/message/message.property.d.ts +24 -4
- package/message/message.service.d.ts +4 -1
- package/message/public-api.d.ts +1 -0
- package/message-box/message-box.component.d.ts +2 -1
- package/notification/notification.component.d.ts +1 -1
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +1 -1
- package/popconfirm/popconfirm.component.d.ts +6 -2
- package/popconfirm/popconfirm.property.d.ts +13 -2
- package/popover/popover.property.d.ts +6 -1
- package/portal/portal.module.d.ts +1 -1
- package/portal/portal.service.d.ts +2 -3
- package/progress/progress.component.d.ts +31 -3
- package/progress/progress.property.d.ts +80 -5
- package/radio/radio.component.d.ts +1 -1
- package/rate/rate.component.d.ts +5 -5
- package/select/select-portal.component.d.ts +1 -3
- package/select/select.component.d.ts +1 -1
- package/slider/slider.component.d.ts +1 -1
- package/steps/steps.component.d.ts +1 -1
- package/steps/steps.property.d.ts +7 -2
- package/table/table-body.component.d.ts +1 -1
- package/table/table-head.component.d.ts +1 -1
- package/table/table.component.d.ts +1 -1
- package/table/table.property.d.ts +11 -1
- package/textarea/textarea.property.d.ts +1 -6
- package/theme/theme.component.d.ts +1 -1
- package/time-picker/time-picker-frame.component.d.ts +1 -0
- package/time-picker/time-picker-portal.component.d.ts +1 -3
- package/time-picker/time-picker.component.d.ts +5 -3
- package/timeline/timeline.component.d.ts +1 -1
- package/transfer/transfer.component.d.ts +1 -1
- package/tree/tree-node.component.d.ts +1 -1
- package/tree/tree.component.d.ts +1 -1
- package/upload/upload.component.d.ts +3 -3
|
@@ -184,10 +184,11 @@ class XTabsComponent extends XTabsProperty {
|
|
|
184
184
|
this.setNodeJustify();
|
|
185
185
|
}
|
|
186
186
|
ngOnChanges(changes) {
|
|
187
|
-
|
|
188
|
-
XIsChange(
|
|
189
|
-
XIsChange(
|
|
190
|
-
XIsChange(
|
|
187
|
+
const { data, layout, justify, activatedIndex } = changes;
|
|
188
|
+
XIsChange(data) && this.setData();
|
|
189
|
+
XIsChange(layout) && this.setLayout(layout);
|
|
190
|
+
XIsChange(justify) && this.cdr.detectChanges();
|
|
191
|
+
XIsChange(activatedIndex) && this.setActivatedIndex();
|
|
191
192
|
}
|
|
192
193
|
ngOnDestroy() {
|
|
193
194
|
this._unSubject.next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-tabs.js","sources":["../../../../lib/ng-nest/ui/tabs/tabs.property.ts","../../../../lib/ng-nest/ui/tabs/tab.component.ts","../../../../lib/ng-nest/ui/tabs/tab.component.html","../../../../lib/ng-nest/ui/tabs/tab-content.component.ts","../../../../lib/ng-nest/ui/tabs/tab-content.component.html","../../../../lib/ng-nest/ui/tabs/tabs.component.ts","../../../../lib/ng-nest/ui/tabs/tabs.component.html","../../../../lib/ng-nest/ui/tabs/tabs.module.ts","../../../../lib/ng-nest/ui/tabs/ng-nest-ui-tabs.ts"],"sourcesContent":["import {\r\n XData,\r\n XJustify,\r\n XProperty,\r\n XInputBoolean,\r\n XSize,\r\n XIdentityProperty,\r\n XTemplate,\r\n XInputNumber,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { Input, TemplateRef, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Tabs\r\n * @selector x-tabs\r\n * @decorator component\r\n */\r\nexport const XTabsPrefix = 'x-tabs';\r\nconst X_CONFIG_NAME = 'tabs';\r\n\r\n/**\r\n * Tabs Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTabsProperty extends XProperty {\r\n /**\r\n * @zh_CN Data 数据\r\n * @en_US Data\r\n */\r\n @Input() data: XData<XTabsNode> = [];\r\n /**\r\n * @zh_CN 对齐方式\r\n * @en_US Alignment\r\n */\r\n @Input() justify: XJustify = 'start';\r\n /**\r\n * @zh_CN 样式\r\n * @en_US Style\r\n */\r\n @Input() type: XTabsType = 'block';\r\n /**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\n @Input() layout: XTabsLayout = 'top';\r\n /**\r\n * @zh_CN 激活的序号\r\n * @en_US Activation number\r\n */\r\n @Input() @XInputNumber() activatedIndex: XNumber = 0;\r\n /**\r\n * @zh_CN 动画\r\n * @en_US Animation\r\n */\r\n @Input() @XInputBoolean() animated: XBoolean = true;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl!: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size?: XSize;\r\n /**\r\n * @zh_CN 节点排列方式\r\n * @en_US Node arrangement\r\n */\r\n @Input() nodeJustify?: XJustify;\r\n /**\r\n * @zh_CN 隐藏标签栏\r\n * @en_US Hide tab bar\r\n */\r\n @Input() @XInputBoolean() sliderHidden?: XBoolean;\r\n /**\r\n * @zh_CN 标签切换变化的事件\r\n * @en_US Label switching event\r\n */\r\n @Output() indexChange = new EventEmitter<XActivatedTab>();\r\n}\r\n\r\n/**\r\n * @zh_CN Tabs 数据对象\r\n * @en_US Tabs data object\r\n */\r\nexport interface XTabsNode extends XIdentityProperty {}\r\n\r\n/**\r\n * @zh_CN 激活的tab\r\n * @en_US Active tab\r\n */\r\nexport interface XActivatedTab {\r\n activatedIndex?: number;\r\n activatedTab?: XTabsNode;\r\n}\r\n\r\n/**\r\n * @zh_CN 样式类型\r\n * @en_US Style type\r\n */\r\nexport type XTabsType = 'block' | 'tag' | 'card';\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XTabsLayout = 'top' | 'right' | 'bottom' | 'left';\r\n\r\n/**\r\n * Tab\r\n * @selector x-tab\r\n * @decorator component\r\n */\r\nexport const XTabPrefix = 'x-tab';\r\n\r\n/**\r\n * Tab Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTabProperty {\r\n /**\r\n * @zh_CN 标签名称,支持自定义模板\r\n * @en_US Label name, support custom template\r\n */\r\n @Input() label?: XTemplate;\r\n}\r\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, Input, ViewEncapsulation } from '@angular/core';\r\nimport { XTabPrefix, XTabProperty } from './tabs.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTabPrefix}`,\r\n templateUrl: './tab.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTabComponent extends XTabProperty {\r\n @ViewChild(TemplateRef, { static: true }) content!: TemplateRef<void>;\r\n\r\n constructor(public configService: XConfigService) {\r\n super();\r\n }\r\n}\r\n","<ng-template>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n ElementRef,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { XBoolean } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: 'x-tab-content',\r\n preserveWhitespaces: false,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './tab-content.component.html'\r\n})\r\nexport class XTabContentComponent {\r\n @Input() content!: TemplateRef<void>;\r\n @Input() active: XBoolean = false;\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {\r\n this.renderer.addClass(this.elementRef.nativeElement, 'x-tab-content');\r\n }\r\n}\r\n","<ng-container>\r\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\r\n</ng-container>\r\n","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n ViewChild,\r\n ViewEncapsulation,\r\n SimpleChange,\r\n QueryList\r\n} from '@angular/core';\r\nimport { XTabsPrefix, XTabsNode, XTabsProperty } from './tabs.property';\r\nimport { XIsChange, XSetData, XIsEmpty, XConfigService, XData } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XSliderComponent, XSliderNode, XSliderProperty } from '@ng-nest/ui/slider';\r\nimport { XTabComponent } from './tab.component';\r\n\r\n@Component({\r\n selector: `${XTabsPrefix}`,\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTabsComponent extends XTabsProperty implements OnInit, OnChanges {\r\n sliderOption = new XSliderProperty();\r\n tabs: XTabsNode[] = [];\r\n private _unSubject = new Subject<void>();\r\n\r\n get activeIndex() {\r\n return Number(this.activatedIndex);\r\n }\r\n\r\n @ContentChildren(XTabComponent) listTabs!: QueryList<XTabComponent>;\r\n\r\n @ViewChild(XSliderComponent, { static: false }) slider!: XSliderComponent;\r\n\r\n constructor(private cdr: ChangeDetectorRef, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setSliderOption();\r\n this.setNodeJustify();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.data) && this.setData();\r\n XIsChange(changes.layout) && this.setLayout(changes.layout);\r\n XIsChange(changes.justify) && this.cdr.detectChanges();\r\n XIsChange(changes.activatedIndex) && this.setActivatedIndex();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setData();\r\n }\r\n\r\n activatedChange(index: number) {\r\n this.activatedIndex = index;\r\n this.indexChange.emit({\r\n activatedIndex: index,\r\n activatedTab: this.tabs[index]\r\n });\r\n this.setFirstAndLast();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setActivatedIndex() {\r\n if (typeof this.sliderOption === 'undefined') {\r\n this.sliderOption = new XSliderProperty();\r\n }\r\n this.sliderOption.activatedIndex = this.activatedIndex;\r\n this.setFirstAndLast();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setClassMap() {\r\n this.classMap = {\r\n [`${XTabsPrefix}-${this.layout}`]: !XIsEmpty(this.layout),\r\n [`${XTabsPrefix}-${this.type}`]: !XIsEmpty(this.type)\r\n };\r\n }\r\n\r\n private setLayout(layout: SimpleChange) {\r\n this.classMap[`${XTabsPrefix}-${layout.previousValue}`] = false;\r\n this.classMap[`${XTabsPrefix}-${layout.currentValue}`] = true;\r\n this.setSliderOption();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setNodeJustify() {\r\n this.nodeJustify = this.nodeJustify ? this.nodeJustify : this.layout === 'left' ? 'end' : this.layout === 'right' ? 'start' : 'center';\r\n }\r\n\r\n private setData() {\r\n if (XIsEmpty(this.data)) {\r\n if (this.listTabs && this.listTabs.length > 0) {\r\n let _data: any[] = [];\r\n this.listTabs.forEach((x, index) => {\r\n _data = [...(_data as XTabsNode[]), { id: index + 1, label: x.label }];\r\n });\r\n this.data = _data;\r\n } else {\r\n return;\r\n }\r\n }\r\n XSetData<XTabsNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.tabs = x;\r\n if (!this.sliderHidden) {\r\n this.sliderHidden = this.tabs.length <= 1;\r\n }\r\n this.sliderOption.data = this.tabs;\r\n this.setFirstAndLast();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n private setSliderOption() {\r\n this.sliderOption.layout = ['top', 'bottom'].indexOf(this.layout) !== -1 ? 'row' : 'column';\r\n }\r\n\r\n private setFirstAndLast() {\r\n this.classMap[`${XTabsPrefix}-is-first`] = this.activatedIndex === 0;\r\n this.classMap[`${XTabsPrefix}-is-last`] = this.activatedIndex === this.tabs?.length - 1;\r\n }\r\n}\r\n","<div class=\"x-tabs\" [ngClass]=\"classMap\">\r\n <div #list class=\"x-tabs-list\" *ngIf=\"!sliderHidden\">\r\n <x-slider\r\n #slider\r\n [animated]=\"animated && type !== 'tag'\"\r\n [justify]=\"justify\"\r\n [nodeJustify]=\"nodeJustify\"\r\n [data]=\"sliderOption.data\"\r\n [layout]=\"sliderOption.layout\"\r\n [size]=\"size\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [activatedIndex]=\"sliderOption.activatedIndex\"\r\n (indexChange)=\"activatedChange($event)\"\r\n ></x-slider>\r\n </div>\r\n <div #content class=\"x-tabs-contents\" [class.x-tabs-contents-animated]=\"animated && (layout === 'top' || layout === 'bottom')\">\r\n <x-tab-content\r\n *ngFor=\"let tab of listTabs; index as i\"\r\n [active]=\"activeIndex == i\"\r\n [content]=\"tab.content\"\r\n [class.x-tab-content-unactivated]=\"activeIndex != i\"\r\n [style.transform]=\"'translate(' + (-activeIndex || 0) * 100 + '%, 0px)'\"\r\n >\r\n </x-tab-content>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTabsComponent } from './tabs.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XSliderModule } from '@ng-nest/ui/slider';\r\nimport { XTabComponent } from './tab.component';\r\nimport { XTabContentComponent } from './tab-content.component';\r\nimport { XTabsProperty, XTabProperty } from './tabs.property';\r\n\r\n@NgModule({\r\n declarations: [XTabsComponent, XTabContentComponent, XTabComponent, XTabsProperty, XTabProperty],\r\n exports: [XTabsComponent, XTabContentComponent, XTabComponent],\r\n imports: [CommonModule, XSliderModule, XIconModule]\r\n})\r\nexport class XTabsModule {}\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-tabs.js","sources":["../../../../lib/ng-nest/ui/tabs/tabs.property.ts","../../../../lib/ng-nest/ui/tabs/tab.component.ts","../../../../lib/ng-nest/ui/tabs/tab.component.html","../../../../lib/ng-nest/ui/tabs/tab-content.component.ts","../../../../lib/ng-nest/ui/tabs/tab-content.component.html","../../../../lib/ng-nest/ui/tabs/tabs.component.ts","../../../../lib/ng-nest/ui/tabs/tabs.component.html","../../../../lib/ng-nest/ui/tabs/tabs.module.ts","../../../../lib/ng-nest/ui/tabs/ng-nest-ui-tabs.ts"],"sourcesContent":["import {\r\n XData,\r\n XJustify,\r\n XProperty,\r\n XInputBoolean,\r\n XSize,\r\n XIdentityProperty,\r\n XTemplate,\r\n XInputNumber,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { Input, TemplateRef, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Tabs\r\n * @selector x-tabs\r\n * @decorator component\r\n */\r\nexport const XTabsPrefix = 'x-tabs';\r\nconst X_CONFIG_NAME = 'tabs';\r\n\r\n/**\r\n * Tabs Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTabsProperty extends XProperty {\r\n /**\r\n * @zh_CN Data 数据\r\n * @en_US Data\r\n */\r\n @Input() data: XData<XTabsNode> = [];\r\n /**\r\n * @zh_CN 对齐方式\r\n * @en_US Alignment\r\n */\r\n @Input() justify: XJustify = 'start';\r\n /**\r\n * @zh_CN 样式\r\n * @en_US Style\r\n */\r\n @Input() type: XTabsType = 'block';\r\n /**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\n @Input() layout: XTabsLayout = 'top';\r\n /**\r\n * @zh_CN 激活的序号\r\n * @en_US Activation number\r\n */\r\n @Input() @XInputNumber() activatedIndex: XNumber = 0;\r\n /**\r\n * @zh_CN 动画\r\n * @en_US Animation\r\n */\r\n @Input() @XInputBoolean() animated: XBoolean = true;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl!: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size?: XSize;\r\n /**\r\n * @zh_CN 节点排列方式\r\n * @en_US Node arrangement\r\n */\r\n @Input() nodeJustify?: XJustify;\r\n /**\r\n * @zh_CN 隐藏标签栏\r\n * @en_US Hide tab bar\r\n */\r\n @Input() @XInputBoolean() sliderHidden?: XBoolean;\r\n /**\r\n * @zh_CN 标签切换变化的事件\r\n * @en_US Label switching event\r\n */\r\n @Output() indexChange = new EventEmitter<XActivatedTab>();\r\n}\r\n\r\n/**\r\n * @zh_CN Tabs 数据对象\r\n * @en_US Tabs data object\r\n */\r\nexport interface XTabsNode extends XIdentityProperty {}\r\n\r\n/**\r\n * @zh_CN 激活的tab\r\n * @en_US Active tab\r\n */\r\nexport interface XActivatedTab {\r\n activatedIndex?: number;\r\n activatedTab?: XTabsNode;\r\n}\r\n\r\n/**\r\n * @zh_CN 样式类型\r\n * @en_US Style type\r\n */\r\nexport type XTabsType = 'block' | 'tag' | 'card';\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XTabsLayout = 'top' | 'right' | 'bottom' | 'left';\r\n\r\n/**\r\n * Tab\r\n * @selector x-tab\r\n * @decorator component\r\n */\r\nexport const XTabPrefix = 'x-tab';\r\n\r\n/**\r\n * Tab Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTabProperty {\r\n /**\r\n * @zh_CN 标签名称,支持自定义模板\r\n * @en_US Label name, support custom template\r\n */\r\n @Input() label?: XTemplate;\r\n}\r\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { XTabPrefix, XTabProperty } from './tabs.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTabPrefix}`,\r\n templateUrl: './tab.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTabComponent extends XTabProperty {\r\n @ViewChild(TemplateRef, { static: true }) content!: TemplateRef<void>;\r\n\r\n constructor(public configService: XConfigService) {\r\n super();\r\n }\r\n}\r\n","<ng-template>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n ElementRef,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { XBoolean } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: 'x-tab-content',\r\n preserveWhitespaces: false,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './tab-content.component.html'\r\n})\r\nexport class XTabContentComponent {\r\n @Input() content!: TemplateRef<void>;\r\n @Input() active: XBoolean = false;\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {\r\n this.renderer.addClass(this.elementRef.nativeElement, 'x-tab-content');\r\n }\r\n}\r\n","<ng-container>\r\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\r\n</ng-container>\r\n","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n ViewChild,\r\n ViewEncapsulation,\r\n SimpleChange,\r\n QueryList\r\n} from '@angular/core';\r\nimport { XTabsPrefix, XTabsNode, XTabsProperty } from './tabs.property';\r\nimport { XIsChange, XSetData, XIsEmpty, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XSliderComponent, XSliderProperty } from '@ng-nest/ui/slider';\r\nimport { XTabComponent } from './tab.component';\r\n\r\n@Component({\r\n selector: `${XTabsPrefix}`,\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTabsComponent extends XTabsProperty implements OnInit, OnChanges {\r\n sliderOption = new XSliderProperty();\r\n tabs: XTabsNode[] = [];\r\n private _unSubject = new Subject<void>();\r\n\r\n get activeIndex() {\r\n return Number(this.activatedIndex);\r\n }\r\n\r\n @ContentChildren(XTabComponent) listTabs!: QueryList<XTabComponent>;\r\n\r\n @ViewChild(XSliderComponent, { static: false }) slider!: XSliderComponent;\r\n\r\n constructor(private cdr: ChangeDetectorRef, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setSliderOption();\r\n this.setNodeJustify();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data, layout, justify, activatedIndex } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(layout) && this.setLayout(layout);\r\n XIsChange(justify) && this.cdr.detectChanges();\r\n XIsChange(activatedIndex) && this.setActivatedIndex();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setData();\r\n }\r\n\r\n activatedChange(index: number) {\r\n this.activatedIndex = index;\r\n this.indexChange.emit({\r\n activatedIndex: index,\r\n activatedTab: this.tabs[index]\r\n });\r\n this.setFirstAndLast();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setActivatedIndex() {\r\n if (typeof this.sliderOption === 'undefined') {\r\n this.sliderOption = new XSliderProperty();\r\n }\r\n this.sliderOption.activatedIndex = this.activatedIndex;\r\n this.setFirstAndLast();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setClassMap() {\r\n this.classMap = {\r\n [`${XTabsPrefix}-${this.layout}`]: !XIsEmpty(this.layout),\r\n [`${XTabsPrefix}-${this.type}`]: !XIsEmpty(this.type)\r\n };\r\n }\r\n\r\n private setLayout(layout: SimpleChange) {\r\n this.classMap[`${XTabsPrefix}-${layout.previousValue}`] = false;\r\n this.classMap[`${XTabsPrefix}-${layout.currentValue}`] = true;\r\n this.setSliderOption();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setNodeJustify() {\r\n this.nodeJustify = this.nodeJustify ? this.nodeJustify : this.layout === 'left' ? 'end' : this.layout === 'right' ? 'start' : 'center';\r\n }\r\n\r\n private setData() {\r\n if (XIsEmpty(this.data)) {\r\n if (this.listTabs && this.listTabs.length > 0) {\r\n let _data: any[] = [];\r\n this.listTabs.forEach((x, index) => {\r\n _data = [...(_data as XTabsNode[]), { id: index + 1, label: x.label }];\r\n });\r\n this.data = _data;\r\n } else {\r\n return;\r\n }\r\n }\r\n XSetData<XTabsNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.tabs = x;\r\n if (!this.sliderHidden) {\r\n this.sliderHidden = this.tabs.length <= 1;\r\n }\r\n this.sliderOption.data = this.tabs;\r\n this.setFirstAndLast();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n private setSliderOption() {\r\n this.sliderOption.layout = ['top', 'bottom'].indexOf(this.layout) !== -1 ? 'row' : 'column';\r\n }\r\n\r\n private setFirstAndLast() {\r\n this.classMap[`${XTabsPrefix}-is-first`] = this.activatedIndex === 0;\r\n this.classMap[`${XTabsPrefix}-is-last`] = this.activatedIndex === this.tabs?.length - 1;\r\n }\r\n}\r\n","<div class=\"x-tabs\" [ngClass]=\"classMap\">\r\n <div #list class=\"x-tabs-list\" *ngIf=\"!sliderHidden\">\r\n <x-slider\r\n #slider\r\n [animated]=\"animated && type !== 'tag'\"\r\n [justify]=\"justify\"\r\n [nodeJustify]=\"nodeJustify\"\r\n [data]=\"sliderOption.data\"\r\n [layout]=\"sliderOption.layout\"\r\n [size]=\"size\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [activatedIndex]=\"sliderOption.activatedIndex\"\r\n (indexChange)=\"activatedChange($event)\"\r\n ></x-slider>\r\n </div>\r\n <div #content class=\"x-tabs-contents\" [class.x-tabs-contents-animated]=\"animated && (layout === 'top' || layout === 'bottom')\">\r\n <x-tab-content\r\n *ngFor=\"let tab of listTabs; index as i\"\r\n [active]=\"activeIndex == i\"\r\n [content]=\"tab.content\"\r\n [class.x-tab-content-unactivated]=\"activeIndex != i\"\r\n [style.transform]=\"'translate(' + (-activeIndex || 0) * 100 + '%, 0px)'\"\r\n >\r\n </x-tab-content>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTabsComponent } from './tabs.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XSliderModule } from '@ng-nest/ui/slider';\r\nimport { XTabComponent } from './tab.component';\r\nimport { XTabContentComponent } from './tab-content.component';\r\nimport { XTabsProperty, XTabProperty } from './tabs.property';\r\n\r\n@NgModule({\r\n declarations: [XTabsComponent, XTabContentComponent, XTabComponent, XTabsProperty, XTabProperty],\r\n exports: [XTabsComponent, XTabContentComponent, XTabComponent],\r\n imports: [CommonModule, XSliderModule, XIconModule]\r\n})\r\nexport class XTabsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -85,7 +85,8 @@ class XTagComponent extends XTagProperty {
|
|
|
85
85
|
this.setClassMap();
|
|
86
86
|
}
|
|
87
87
|
ngOnChanges(changes) {
|
|
88
|
-
|
|
88
|
+
const { type, size, dark } = changes;
|
|
89
|
+
XIsChange(type, size, dark) && this.setClassMap();
|
|
89
90
|
}
|
|
90
91
|
setClassMap() {
|
|
91
92
|
XClearClass(this.classMap);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-tag.js","sources":["../../../../lib/ng-nest/ui/tag/tag.property.ts","../../../../lib/ng-nest/ui/tag/tag.component.ts","../../../../lib/ng-nest/ui/tag/tag.component.html","../../../../lib/ng-nest/ui/tag/tag.module.ts","../../../../lib/ng-nest/ui/tag/ng-nest-ui-tag.ts"],"sourcesContent":["import { XType, XSize, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Tag\r\n * @selector x-tag\r\n * @decorator component\r\n */\r\nexport const XTagPrefix = 'x-tag';\r\nconst X_CONFIG_NAME = 'tag';\r\n\r\n/**\r\n * Tag Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTagProperty extends XProperty {\r\n /**\r\n * @zh_CN 标签样式类型\r\n * @en_US Label style type\r\n */\r\n @Input() type: XType = 'initial';\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size?: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 显示关闭按钮\r\n * @en_US Show close button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() closable?: XBoolean;\r\n /**\r\n * @zh_CN 深色主题\r\n * @en_US Dark theme\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() dark?: XBoolean;\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 Click to close the event\r\n */\r\n @Output() close = new EventEmitter<void>();\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 SimpleChanges\r\n} from '@angular/core';\r\nimport { XTagPrefix, XTagProperty } from './tag.property';\r\nimport { XIsEmpty, XConfigService, XIsChange, XClearClass } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTagPrefix}`,\r\n templateUrl: './tag.component.html',\r\n styleUrls: ['./tag.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTagComponent extends XTagProperty implements OnInit {\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-tag.js","sources":["../../../../lib/ng-nest/ui/tag/tag.property.ts","../../../../lib/ng-nest/ui/tag/tag.component.ts","../../../../lib/ng-nest/ui/tag/tag.component.html","../../../../lib/ng-nest/ui/tag/tag.module.ts","../../../../lib/ng-nest/ui/tag/ng-nest-ui-tag.ts"],"sourcesContent":["import { XType, XSize, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Tag\r\n * @selector x-tag\r\n * @decorator component\r\n */\r\nexport const XTagPrefix = 'x-tag';\r\nconst X_CONFIG_NAME = 'tag';\r\n\r\n/**\r\n * Tag Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTagProperty extends XProperty {\r\n /**\r\n * @zh_CN 标签样式类型\r\n * @en_US Label style type\r\n */\r\n @Input() type: XType = 'initial';\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size?: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 显示关闭按钮\r\n * @en_US Show close button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() closable?: XBoolean;\r\n /**\r\n * @zh_CN 深色主题\r\n * @en_US Dark theme\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() dark?: XBoolean;\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 Click to close the event\r\n */\r\n @Output() close = new EventEmitter<void>();\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 SimpleChanges\r\n} from '@angular/core';\r\nimport { XTagPrefix, XTagProperty } from './tag.property';\r\nimport { XIsEmpty, XConfigService, XIsChange, XClearClass } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTagPrefix}`,\r\n templateUrl: './tag.component.html',\r\n styleUrls: ['./tag.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTagComponent extends XTagProperty implements OnInit {\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type, size, dark } = changes;\r\n XIsChange(type, size, dark) && this.setClassMap();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap);\r\n this.classMap = {\r\n [`${XTagPrefix}-${this.type}`]: !XIsEmpty(this.type),\r\n [`${XTagPrefix}-${this.size}`]: !XIsEmpty(this.size),\r\n [`${XTagPrefix}-dark`]: Boolean(this.dark)\r\n };\r\n }\r\n\r\n onClose() {\r\n if (this.disabled) return;\r\n this.close.emit();\r\n }\r\n}\r\n","<div #tag class=\"x-tag\" [ngClass]=\"classMap\" [class.x-disabled]=\"disabled\" [class.x-tag-bordered]=\"bordered\">\r\n <ng-content></ng-content>\r\n <x-icon type=\"fto-x\" *ngIf=\"closable\" (click)=\"onClose()\"></x-icon>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTagComponent } from './tag.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XTagProperty } from './tag.property';\r\n\r\n@NgModule({\r\n declarations: [XTagComponent, XTagProperty],\r\n exports: [XTagComponent],\r\n imports: [CommonModule, XIconModule, XOutletModule]\r\n})\r\nexport class XTagModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;AAGA;;;;;MAKa,UAAU,GAAG,QAAQ;AAClC,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B;;;MAIa,YAAa,SAAQ,SAAS;IAD3C;;;;;;QAMW,SAAI,GAAU,SAAS,CAAC;;;;;QA8BvB,UAAK,GAAG,IAAI,YAAY,EAAQ,CAAC;KAC5C;;4HApCY,YAAY;gHAAZ,YAAY,gOADF,EAAE;AAW+B;IAA5C,WAAW,CAAQ,aAAa,EAAE,QAAQ,CAAC;0CAAc;AAKG;IAA5D,aAAa,EAAE;IAAE,WAAW,CAAW,aAAa,EAAE,IAAI,CAAC;8CAAqB;AAK1B;IAAtD,WAAW,CAAW,aAAa,CAAC;IAAE,aAAa,EAAE;8CAAqB;AAKpB;IAAtD,WAAW,CAAW,aAAa,CAAC;IAAE,aAAa,EAAE;0CAAiB;AAKtD;IAAhB,aAAa,EAAE;8CAAqB;2FA9BnC,YAAY;kBADxB,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAMhB,IAAI;sBAAZ,KAAK;gBAKgD,IAAI;sBAAzD,KAAK;gBAKgE,QAAQ;sBAA7E,KAAK;gBAK0D,QAAQ;sBAAvE,KAAK;gBAK0D,IAAI;sBAAnE,KAAK;gBAKoB,QAAQ;sBAAjC,KAAK;gBAKI,KAAK;sBAAd,MAAM;;;MC9BI,aAAc,SAAQ,YAAY;IAC7C,YACS,QAAmB,EACnB,UAAsB,EACtB,GAAsB,EACtB,aAA6B;QAEpC,KAAK,EAAE,CAAC;QALD,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,QAAG,GAAH,GAAG,CAAmB;QACtB,kBAAa,GAAb,aAAa,CAAgB;KAGrC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,WAAW,CAAC,OAAsB;QAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACrC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;KACnD;IAED,WAAW;QACT,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG;YACd,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACpD,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACpD,CAAC,GAAG,UAAU,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C,CAAC;KACH;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;;6HA/BU,aAAa;iHAAb,aAAa,yFCpB1B,mPAIA;2FDgBa,aAAa;kBAPzB,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,UAAU,EAAE;oBACzB,WAAW,EAAE,sBAAsB;oBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;oBACnC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;;MEPY,UAAU;;0HAAV,UAAU;2HAAV,UAAU,iBAJN,aAAa,EAAE,YAAY,aAEhC,YAAY,EAAE,WAAW,EAAE,aAAa,aADxC,aAAa;2HAGZ,UAAU,YAFZ,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;2FAExC,UAAU;kBALtB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;oBAC3C,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;iBACpD;;;ACXD;;;;;;"}
|
|
@@ -57,7 +57,8 @@ class XTextRetractComponent extends XTextRetractProperty {
|
|
|
57
57
|
this.i18n.localeChange.pipe(takeUntil(this._unSubject)).subscribe(() => this.cdr.markForCheck());
|
|
58
58
|
}
|
|
59
59
|
ngOnChanges(changes) {
|
|
60
|
-
|
|
60
|
+
const { content } = changes;
|
|
61
|
+
XIsChange(content) && this.setDisplayValue();
|
|
61
62
|
}
|
|
62
63
|
ngOnDestory() {
|
|
63
64
|
this._unSubject.next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-text-retract.js","sources":["../../../../lib/ng-nest/ui/text-retract/text-retract.property.ts","../../../../lib/ng-nest/ui/text-retract/text-retract.component.ts","../../../../lib/ng-nest/ui/text-retract/text-retract.component.html","../../../../lib/ng-nest/ui/text-retract/text-retract.module.ts","../../../../lib/ng-nest/ui/text-retract/ng-nest-ui-text-retract.ts"],"sourcesContent":["import { Input, Component } from '@angular/core';\r\nimport { XInputNumber, XNumber, XWithConfig } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * TextRetract\r\n * @selector x-text-retract\r\n * @decorator component\r\n */\r\nexport const XTextRetractPrefix = 'x-text-retract';\r\nconst X_CONFIG_NAME = 'textRetract';\r\n\r\n/**\r\n * TextRetract Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTextRetractProperty {\r\n /**\r\n * @zh_CN 文本\r\n * @en_US text\r\n */\r\n @Input() content?: string;\r\n /**\r\n * @zh_CN 默认最大显示字符数\r\n * @en_US Default maximum number of characters displayed\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 256) @XInputNumber() max?: XNumber;\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 OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextRetractPrefix, XTextRetractProperty } from './text-retract.property';\r\nimport { XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XI18nService } from '@ng-nest/ui/i18n';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XTextRetractPrefix}`,\r\n templateUrl: './text-retract.component.html',\r\n styleUrls: ['./text-retract.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTextRetractComponent extends XTextRetractProperty implements OnInit, OnChanges {\r\n displayValue!: string;\r\n retract: boolean = false;\r\n unfold: boolean = true;\r\n\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 public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDisplayValue();\r\n this.i18n.localeChange.pipe(takeUntil(this._unSubject)).subscribe(() => this.cdr.markForCheck());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n XIsChange(
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-text-retract.js","sources":["../../../../lib/ng-nest/ui/text-retract/text-retract.property.ts","../../../../lib/ng-nest/ui/text-retract/text-retract.component.ts","../../../../lib/ng-nest/ui/text-retract/text-retract.component.html","../../../../lib/ng-nest/ui/text-retract/text-retract.module.ts","../../../../lib/ng-nest/ui/text-retract/ng-nest-ui-text-retract.ts"],"sourcesContent":["import { Input, Component } from '@angular/core';\r\nimport { XInputNumber, XNumber, XWithConfig } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * TextRetract\r\n * @selector x-text-retract\r\n * @decorator component\r\n */\r\nexport const XTextRetractPrefix = 'x-text-retract';\r\nconst X_CONFIG_NAME = 'textRetract';\r\n\r\n/**\r\n * TextRetract Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTextRetractProperty {\r\n /**\r\n * @zh_CN 文本\r\n * @en_US text\r\n */\r\n @Input() content?: string;\r\n /**\r\n * @zh_CN 默认最大显示字符数\r\n * @en_US Default maximum number of characters displayed\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 256) @XInputNumber() max?: XNumber;\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 OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextRetractPrefix, XTextRetractProperty } from './text-retract.property';\r\nimport { XIsChange, XConfigService } from '@ng-nest/ui/core';\r\nimport { XI18nService } from '@ng-nest/ui/i18n';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XTextRetractPrefix}`,\r\n templateUrl: './text-retract.component.html',\r\n styleUrls: ['./text-retract.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTextRetractComponent extends XTextRetractProperty implements OnInit, OnChanges {\r\n displayValue!: string;\r\n retract: boolean = false;\r\n unfold: boolean = true;\r\n\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 public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDisplayValue();\r\n this.i18n.localeChange.pipe(takeUntil(this._unSubject)).subscribe(() => this.cdr.markForCheck());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { content } = changes;\r\n XIsChange(content) && this.setDisplayValue();\r\n }\r\n\r\n ngOnDestory() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setDisplayValue() {\r\n if (this.content && this.content.length > (this.max as number)) {\r\n this.displayValue = this.content.substring(0, Number(this.max));\r\n this.retract = true;\r\n } else {\r\n this.displayValue = this.content as string;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n toggle() {\r\n this.unfold = !this.unfold;\r\n if (this.unfold) {\r\n this.displayValue = (this.content as string).substring(0, Number(this.max));\r\n } else {\r\n this.displayValue = this.content as string;\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div class=\"x-text-retract\">\r\n {{ displayValue }}\r\n <ng-container *ngIf=\"retract\">\r\n <x-link type=\"primary\" (click)=\"toggle()\" *ngIf=\"unfold\">...{{ 'textRetract.unfold' | xI18n }}</x-link>\r\n <x-link type=\"primary\" (click)=\"toggle()\" *ngIf=\"!unfold\">{{ 'textRetract.packUp' | xI18n }}</x-link>\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTextRetractComponent } from './text-retract.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XTextRetractProperty } from './text-retract.property';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\n\r\n@NgModule({\r\n declarations: [XTextRetractComponent, XTextRetractProperty],\r\n exports: [XTextRetractComponent],\r\n imports: [CommonModule, FormsModule, XLinkModule, XI18nModule]\r\n})\r\nexport class XTextRetractModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,6 @@ const X_CONFIG_NAME = 'textarea';
|
|
|
24
24
|
class XTextareaProperty extends XControlValueAccessor {
|
|
25
25
|
constructor() {
|
|
26
26
|
super(...arguments);
|
|
27
|
-
/**
|
|
28
|
-
* @zh_CN 只读
|
|
29
|
-
* @en_US Read only
|
|
30
|
-
*/
|
|
31
|
-
this.readonly = false;
|
|
32
27
|
/**
|
|
33
28
|
* @zh_CN 图标布局方式
|
|
34
29
|
* @en_US Icon layout
|
|
@@ -57,14 +52,11 @@ class XTextareaProperty extends XControlValueAccessor {
|
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
54
|
/** @nocollapse */ XTextareaProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XTextareaProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
/** @nocollapse */ XTextareaProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XTextareaProperty, selector: "ng-component", inputs: { clearable: "clearable",
|
|
55
|
+
/** @nocollapse */ XTextareaProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XTextareaProperty, selector: "ng-component", inputs: { clearable: "clearable", icon: "icon", iconLayout: "iconLayout", iconSpin: "iconSpin", maxlength: "maxlength", height: "height" }, outputs: { clearEmit: "clearEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
61
56
|
__decorate([
|
|
62
57
|
XWithConfig(X_CONFIG_NAME, false),
|
|
63
58
|
XInputBoolean()
|
|
64
59
|
], XTextareaProperty.prototype, "clearable", void 0);
|
|
65
|
-
__decorate([
|
|
66
|
-
XInputBoolean()
|
|
67
|
-
], XTextareaProperty.prototype, "readonly", void 0);
|
|
68
60
|
__decorate([
|
|
69
61
|
XWithConfig(X_CONFIG_NAME, 'right')
|
|
70
62
|
], XTextareaProperty.prototype, "iconLayout", void 0);
|
|
@@ -79,8 +71,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
79
71
|
args: [{ template: '' }]
|
|
80
72
|
}], propDecorators: { clearable: [{
|
|
81
73
|
type: Input
|
|
82
|
-
}], readonly: [{
|
|
83
|
-
type: Input
|
|
84
74
|
}], icon: [{
|
|
85
75
|
type: Input
|
|
86
76
|
}], iconLayout: [{
|
|
@@ -129,7 +119,8 @@ class XTextareaComponent extends XTextareaProperty {
|
|
|
129
119
|
this.setClassMap();
|
|
130
120
|
}
|
|
131
121
|
ngOnChanges(changes) {
|
|
132
|
-
|
|
122
|
+
const { clearable } = changes;
|
|
123
|
+
XIsChange(clearable) && this.setClearable();
|
|
133
124
|
}
|
|
134
125
|
change(value) {
|
|
135
126
|
if (this._required && !this.disabled) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-textarea.js","sources":["../../../../lib/ng-nest/ui/textarea/textarea.property.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.html","../../../../lib/ng-nest/ui/textarea/textarea.module.ts","../../../../lib/ng-nest/ui/textarea/ng-nest-ui-textarea.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XInputNumber,\r\n XSize,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XPositionLeftRight\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Textarea\r\n * @selector x-textarea\r\n * @decorator component\r\n */\r\nexport const XTextareaPrefix = 'x-textarea';\r\nconst X_CONFIG_NAME = 'textarea';\r\n\r\n/**\r\n * Textarea Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTextareaProperty extends XControlValueAccessor<any> implements XTextareaOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n @Input() @XInputBoolean() readonly: XBoolean = false;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n @Input() @XWithConfig<XTextareaIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XTextareaIconLayoutType = 'right';\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n @Input() @XInputBoolean() iconSpin: XBoolean = false;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n @Input() @XInputNumber() maxlength: XNumber = 0;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n @Input() height: string = '4rem';\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n @Output() clearEmit = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Textarea Option\r\n * @undocument true\r\n */\r\nexport interface XTextareaOption extends XFormOption {\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 Read only\r\n */\r\n readonly?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n iconLayout?: XTextareaIconLayoutType;\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n iconSpin?: XBoolean;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n maxlength?: XNumber;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n clearClick?: (value: any) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标布局方式,指在输入框中的位置\r\n * @en_US Icon layout, refers to the position in the input box\r\n * @value \"left\" 靠左\r\n * @value \"right\" 靠右\r\n */\r\nexport type XTextareaIconLayoutType = XPositionLeftRight;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextareaPrefix, XTextareaProperty } from './textarea.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTextareaPrefix}`,\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTextareaComponent)]\r\n})\r\nexport class XTextareaComponent extends XTextareaProperty implements OnInit, OnChanges {\r\n @ViewChild('textarea', { static: true }) textarea!: ElementRef;\r\n @ViewChild('textareaRef', { static: true }) textareaRef!: ElementRef;\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this.change(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _required: boolean = false;\r\n valueLength: number = 0;\r\n lengthTotal: string = '';\r\n paddingLeft: number = 0.4;\r\n paddingRight: number = 0.4;\r\n clearShow: boolean = false;\r\n\r\n get getIcon() {\r\n return !XIsEmpty(this.icon);\r\n }\r\n\r\n get getIconLayoutLeft() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'left';\r\n }\r\n\r\n get getIconLayoutRight() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'right';\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 configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.clearable) && this.setClearable();\r\n }\r\n\r\n change(value: any) {\r\n if (this._required && !this.disabled) {\r\n this.required = XIsEmpty(value);\r\n }\r\n this.setClearable();\r\n if (this.maxlength) {\r\n this.valueLength = XIsEmpty(value) ? 0 : `${value}`.length;\r\n this.lengthTotal = `${this.valueLength}/${this.maxlength}`;\r\n }\r\n this.setPadding();\r\n if (this.onChange) this.onChange(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClear() {\r\n const clearValue = this.value;\r\n this.value = '';\r\n this.change(this.value);\r\n this.clearEmit.emit(clearValue);\r\n this.textareaRef.nativeElement.focus();\r\n }\r\n\r\n setClearable() {\r\n if (this.clearable && !this.disabled) {\r\n this.clearShow = !XIsEmpty(this.value);\r\n } else {\r\n this.clearShow = false;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft = this.icon && this.iconLayout === 'left' ? 1.8 : 0.4;\r\n this.paddingRight = this.icon && this.iconLayout === 'right' ? 1.8 : 0.4;\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XTextareaPrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.change(this.value);\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XTextareaComponent } from './textarea.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTextareaProperty } from './textarea.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTextareaComponent, XTextareaProperty],\r\n exports: [XTextareaComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule]\r\n})\r\nexport class XTextareaModule {}\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-textarea.js","sources":["../../../../lib/ng-nest/ui/textarea/textarea.property.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.html","../../../../lib/ng-nest/ui/textarea/textarea.module.ts","../../../../lib/ng-nest/ui/textarea/ng-nest-ui-textarea.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XInputNumber,\r\n XSize,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XPositionLeftRight\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Textarea\r\n * @selector x-textarea\r\n * @decorator component\r\n */\r\nexport const XTextareaPrefix = 'x-textarea';\r\nconst X_CONFIG_NAME = 'textarea';\r\n\r\n/**\r\n * Textarea Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTextareaProperty extends XControlValueAccessor<any> implements XTextareaOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n @Input() @XWithConfig<XTextareaIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XTextareaIconLayoutType = 'right';\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n @Input() @XInputBoolean() iconSpin: XBoolean = false;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n @Input() @XInputNumber() maxlength: XNumber = 0;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n @Input() height: string = '4rem';\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n @Output() clearEmit = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Textarea Option\r\n * @undocument true\r\n */\r\nexport interface XTextareaOption extends XFormOption {\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 Read only\r\n */\r\n readonly?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n iconLayout?: XTextareaIconLayoutType;\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n iconSpin?: XBoolean;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n maxlength?: XNumber;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n clearClick?: (value: any) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标布局方式,指在输入框中的位置\r\n * @en_US Icon layout, refers to the position in the input box\r\n * @value \"left\" 靠左\r\n * @value \"right\" 靠右\r\n */\r\nexport type XTextareaIconLayoutType = XPositionLeftRight;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextareaPrefix, XTextareaProperty } from './textarea.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTextareaPrefix}`,\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTextareaComponent)]\r\n})\r\nexport class XTextareaComponent extends XTextareaProperty implements OnInit, OnChanges {\r\n @ViewChild('textarea', { static: true }) textarea!: ElementRef;\r\n @ViewChild('textareaRef', { static: true }) textareaRef!: ElementRef;\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this.change(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _required: boolean = false;\r\n valueLength: number = 0;\r\n lengthTotal: string = '';\r\n paddingLeft: number = 0.4;\r\n paddingRight: number = 0.4;\r\n clearShow: boolean = false;\r\n\r\n get getIcon() {\r\n return !XIsEmpty(this.icon);\r\n }\r\n\r\n get getIconLayoutLeft() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'left';\r\n }\r\n\r\n get getIconLayoutRight() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'right';\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 configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { clearable } = changes;\r\n XIsChange(clearable) && this.setClearable();\r\n }\r\n\r\n change(value: any) {\r\n if (this._required && !this.disabled) {\r\n this.required = XIsEmpty(value);\r\n }\r\n this.setClearable();\r\n if (this.maxlength) {\r\n this.valueLength = XIsEmpty(value) ? 0 : `${value}`.length;\r\n this.lengthTotal = `${this.valueLength}/${this.maxlength}`;\r\n }\r\n this.setPadding();\r\n if (this.onChange) this.onChange(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClear() {\r\n const clearValue = this.value;\r\n this.value = '';\r\n this.change(this.value);\r\n this.clearEmit.emit(clearValue);\r\n this.textareaRef.nativeElement.focus();\r\n }\r\n\r\n setClearable() {\r\n if (this.clearable && !this.disabled) {\r\n this.clearShow = !XIsEmpty(this.value);\r\n } else {\r\n this.clearShow = false;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft = this.icon && this.iconLayout === 'left' ? 1.8 : 0.4;\r\n this.paddingRight = this.icon && this.iconLayout === 'right' ? 1.8 : 0.4;\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XTextareaPrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.change(this.value);\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XTextareaComponent } from './textarea.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTextareaProperty } from './textarea.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTextareaComponent, XTextareaProperty],\r\n exports: [XTextareaComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule]\r\n})\r\nexport class XTextareaModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -219,7 +219,7 @@ class XThemeComponent extends XThemeProperty {
|
|
|
219
219
|
}
|
|
220
220
|
return result;
|
|
221
221
|
}
|
|
222
|
-
darkChanges(
|
|
222
|
+
darkChanges() {
|
|
223
223
|
let colors = this.darkBeforeColors;
|
|
224
224
|
if (this.dark) {
|
|
225
225
|
this.beforeColors = this.formGroup.value;
|
|
@@ -231,7 +231,7 @@ class XThemeComponent extends XThemeProperty {
|
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
/** @nocollapse */ XThemeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XThemeComponent, deps: [{ token: i1.XConfigService }, { token: i2.XI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
234
|
-
/** @nocollapse */ XThemeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XThemeComponent, selector: "x-theme", providers: [XValueAccessor(XThemeComponent)], usesInheritance: true, ngImport: i0, template: "<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale?.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges(
|
|
234
|
+
/** @nocollapse */ XThemeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XThemeComponent, selector: "x-theme", providers: [XValueAccessor(XThemeComponent)], usesInheritance: true, ngImport: i0, template: "<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale?.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale?.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n", styles: [".x-theme{margin:0;padding:0;display:inline-block}.x-theme x-color-picker:not(:first-child){margin-left:.125rem}.x-theme-darken,.x-theme-default,.x-theme-gradual{display:flex}.x-theme-default x-color-picker{width:9.25rem}\n"], components: [{ type: i3.XRowComponent, selector: "x-row" }, { type: i3.XColComponent, selector: "x-col" }, { type: i4.XSwitchComponent, selector: "x-switch" }, { type: i5.XButtonComponent, selector: "x-button" }, { type: i6.XFormComponent, selector: "x-form" }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
235
235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XThemeComponent, decorators: [{
|
|
236
236
|
type: Component,
|
|
237
237
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-theme.js","sources":["../../../../lib/ng-nest/ui/theme/theme.property.ts","../../../../lib/ng-nest/ui/theme/theme.component.ts","../../../../lib/ng-nest/ui/theme/theme.component.html","../../../../lib/ng-nest/ui/theme/theme.module.ts","../../../../lib/ng-nest/ui/theme/ng-nest-ui-theme.ts"],"sourcesContent":["import { XWithConfig, XNumber, XColorsTheme, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Theme\r\n * @selector x-theme\r\n * @decorator component\r\n */\r\nexport const XThemePrefix = 'x-theme';\r\n\r\nconst X_CONFIG_NAME = 'theme';\r\n\r\nexport const XThemeAmounts = [-0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\n/**\r\n * Theme Property\r\n */\r\n@Component({ template: '' })\r\nexport class XThemeProperty extends XControlValueAccessor<XColorsTheme> {\r\n /**\r\n * @zh_CN 参数前缀\r\n * @en_US Parameter prefix\r\n */\r\n @Input() prefix: string = '--x-';\r\n /**\r\n * @zh_CN 混合的颜色占比\r\n * @en_US Proportion of mixed colors\r\n */\r\n @Input() @XWithConfig<XNumber[]>(X_CONFIG_NAME, XThemeAmounts) amounts!: XNumber[];\r\n /**\r\n * @zh_CN 显示暗黑模式的设置\r\n * @en_US Show dark mode settings\r\n */\r\n @Input() @XInputBoolean() showDark?: XBoolean;\r\n /**\r\n * @zh_CN 详细设置\r\n * @en_US Detailed settings\r\n */\r\n @Input() @XInputBoolean() showDetail?: XBoolean;\r\n /**\r\n * @zh_CN 暗黑模式\r\n * @en_US Dark mode\r\n */\r\n @Input() @XInputBoolean() dark: XBoolean = false;\r\n /**\r\n * @zh_CN 初始化默认值事件\r\n * @en_US Initialize default value event\r\n */\r\n @Output() defaultClick = new EventEmitter<XColorsTheme>();\r\n /**\r\n * @zh_CN 暗黑模式改变事件\r\n * @en_US Dark mode change event\r\n */\r\n @Output() darkChange = new EventEmitter<XBoolean>();\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Optional, OnDestroy } from '@angular/core';\r\nimport { XThemeProperty } from './theme.property';\r\nimport {\r\n XConfigService,\r\n XThemeService,\r\n XColorsTheme,\r\n XTheme,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_COLORS,\r\n X_THEME_DARK_COLORS\r\n} from '@ng-nest/ui/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { XControl } from '@ng-nest/ui/form';\r\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nTheme } from '@ng-nest/ui/i18n';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-theme',\r\n templateUrl: './theme.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XThemeComponent)]\r\n})\r\nexport class XThemeComponent extends XThemeProperty implements OnInit, OnDestroy {\r\n formGroup = new FormGroup({});\r\n\r\n theme: XTheme = {\r\n colors: {}\r\n };\r\n width = '45rem';\r\n beforeColors: XColorsTheme = {};\r\n currentColors: XColorsTheme = {};\r\n darkBeforeColors: XColorsTheme = {};\r\n controls: XControl[] = [\r\n { control: 'color-picker', id: 'primary', label: '主色', span: 5 },\r\n { control: 'color-picker', id: 'success', label: '成功', span: 5 },\r\n { control: 'color-picker', id: 'warning', label: '警告', span: 5 },\r\n { control: 'color-picker', id: 'danger', label: '危险', span: 5 },\r\n { control: 'color-picker', id: 'info', label: '信息', span: 5 },\r\n { control: 'color-picker', id: 'background', label: '背景', span: 5 },\r\n { control: 'color-picker', id: 'border', label: '边框', span: 5 },\r\n { control: 'color-picker', id: 'text', label: '文字', span: 5 }\r\n ];\r\n\r\n value: XColorsTheme = {};\r\n\r\n themeService: XThemeService;\r\n\r\n locale: XI18nTheme = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n writeValue(value: XColorsTheme) {\r\n this.value = value;\r\n if (this.value && Object.keys(this.value).length > 0) {\r\n this.theme = { colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark as boolean) };\r\n this.formGroup.patchValue(this.theme.colors as XColorsTheme);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(public configService: XConfigService, public i18n: XI18nService, public cdr: ChangeDetectorRef) {\r\n super();\r\n this.themeService = this.configService.themeService;\r\n }\r\n\r\n ngOnInit() {\r\n this.theme = this.configService.getTheme(true);\r\n this.setControls();\r\n this.setDefaultColors();\r\n this.controls.map((x: XControl) => {\r\n x.value = (this.theme.colors as XColorsTheme)[x.id];\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.theme as XI18nTheme),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.setControlsLabel();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this._unSubject)).subscribe((x: XColorsTheme) => {\r\n this.beforeColors = this.currentColors;\r\n let changes = this.getChanges(x);\r\n if (this.isOneAndInColorKeys(changes)) {\r\n let [key, value] = Object.entries(changes)[0];\r\n let colors = !this.dark ? this.themeService.setRoot(key, value, '') : this.themeService.setDarkRoot(key, value, '');\r\n Object.assign(x, colors);\r\n this.currentColors = x;\r\n this.formGroup.patchValue(x);\r\n } else {\r\n this.currentColors = x;\r\n this.value = x;\r\n this.configService.setTheme({ colors: x });\r\n }\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 setControlsLabel() {\r\n Object.keys(this.locale).forEach((x) => {\r\n let control = this.controls.find((y) => y.id === x);\r\n if (control) {\r\n control.label = (this.locale as any)[x];\r\n control.change && control.change();\r\n }\r\n });\r\n }\r\n\r\n setDefaultColors() {\r\n this.beforeColors = this.theme.colors as XColorsTheme;\r\n this.currentColors = this.beforeColors;\r\n this.darkBeforeColors = this.beforeColors;\r\n }\r\n\r\n setControls() {\r\n [...this.controls].forEach((control, index) => {\r\n let addControls: XControl[] = [];\r\n control.span = !this.showDetail ? 6 : 5;\r\n this.width = !this.showDetail ? '36rem' : '45rem';\r\n for (let amount of this.amounts) {\r\n addControls.push({\r\n control: 'color-picker',\r\n id: `${control.id}${this.themeService.getSuffix(amount as number)}`,\r\n label: '',\r\n hidden: !this.showDetail\r\n });\r\n }\r\n this.controls.splice(index * this.amounts.length + index + 1, 0, ...addControls);\r\n });\r\n }\r\n\r\n default() {\r\n this.dark = false;\r\n let colors = this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS), '', this.dark);\r\n this.beforeColors = colors;\r\n this.currentColors = colors;\r\n this.formGroup.patchValue(colors);\r\n this.defaultClick.emit(colors);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n isOneAndInColorKeys(colors: XColorsTheme) {\r\n const keys = Object.keys(colors);\r\n if (keys.length === 1 && X_THEME_COLOR_KEYS.includes(keys[0])) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getChanges(colors: XColorsTheme) {\r\n let result: XColorsTheme = {};\r\n for (let color in colors) {\r\n if (colors[color] !== this.beforeColors[color]) {\r\n result[color] = colors[color];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n darkChanges($event: Event) {\r\n let colors = this.darkBeforeColors as XColorsTheme;\r\n if (this.dark) {\r\n this.beforeColors = this.formGroup.value;\r\n this.darkBeforeColors = this.formGroup.value;\r\n colors = this.themeService.getDefineColors(\r\n Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), X_THEME_DARK_COLORS),\r\n '',\r\n this.dark as boolean\r\n );\r\n }\r\n this.formGroup.patchValue(colors);\r\n this.darkChange.emit(this.dark);\r\n }\r\n}\r\n","<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale?.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges($event)\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale?.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XThemeComponent } from './theme.component';\r\nimport { XThemeProperty } from './theme.property';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XFormModule } from '@ng-nest/ui/form';\r\nimport { XSwitchModule } from '@ng-nest/ui/switch';\r\nimport { XLayoutModule } from '@ng-nest/ui/layout';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XThemeComponent, XThemeProperty],\r\n exports: [XThemeComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XSwitchModule,\r\n XButtonModule,\r\n XLayoutModule,\r\n XFormModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XThemeModule {}\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-theme.js","sources":["../../../../lib/ng-nest/ui/theme/theme.property.ts","../../../../lib/ng-nest/ui/theme/theme.component.ts","../../../../lib/ng-nest/ui/theme/theme.component.html","../../../../lib/ng-nest/ui/theme/theme.module.ts","../../../../lib/ng-nest/ui/theme/ng-nest-ui-theme.ts"],"sourcesContent":["import { XWithConfig, XNumber, XColorsTheme, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Theme\r\n * @selector x-theme\r\n * @decorator component\r\n */\r\nexport const XThemePrefix = 'x-theme';\r\n\r\nconst X_CONFIG_NAME = 'theme';\r\n\r\nexport const XThemeAmounts = [-0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\n/**\r\n * Theme Property\r\n */\r\n@Component({ template: '' })\r\nexport class XThemeProperty extends XControlValueAccessor<XColorsTheme> {\r\n /**\r\n * @zh_CN 参数前缀\r\n * @en_US Parameter prefix\r\n */\r\n @Input() prefix: string = '--x-';\r\n /**\r\n * @zh_CN 混合的颜色占比\r\n * @en_US Proportion of mixed colors\r\n */\r\n @Input() @XWithConfig<XNumber[]>(X_CONFIG_NAME, XThemeAmounts) amounts!: XNumber[];\r\n /**\r\n * @zh_CN 显示暗黑模式的设置\r\n * @en_US Show dark mode settings\r\n */\r\n @Input() @XInputBoolean() showDark?: XBoolean;\r\n /**\r\n * @zh_CN 详细设置\r\n * @en_US Detailed settings\r\n */\r\n @Input() @XInputBoolean() showDetail?: XBoolean;\r\n /**\r\n * @zh_CN 暗黑模式\r\n * @en_US Dark mode\r\n */\r\n @Input() @XInputBoolean() dark: XBoolean = false;\r\n /**\r\n * @zh_CN 初始化默认值事件\r\n * @en_US Initialize default value event\r\n */\r\n @Output() defaultClick = new EventEmitter<XColorsTheme>();\r\n /**\r\n * @zh_CN 暗黑模式改变事件\r\n * @en_US Dark mode change event\r\n */\r\n @Output() darkChange = new EventEmitter<XBoolean>();\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { XThemeProperty } from './theme.property';\r\nimport {\r\n XConfigService,\r\n XThemeService,\r\n XColorsTheme,\r\n XTheme,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_COLORS,\r\n X_THEME_DARK_COLORS\r\n} from '@ng-nest/ui/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { XControl } from '@ng-nest/ui/form';\r\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nTheme } from '@ng-nest/ui/i18n';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-theme',\r\n templateUrl: './theme.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XThemeComponent)]\r\n})\r\nexport class XThemeComponent extends XThemeProperty implements OnInit, OnDestroy {\r\n formGroup = new FormGroup({});\r\n\r\n theme: XTheme = {\r\n colors: {}\r\n };\r\n width = '45rem';\r\n beforeColors: XColorsTheme = {};\r\n currentColors: XColorsTheme = {};\r\n darkBeforeColors: XColorsTheme = {};\r\n controls: XControl[] = [\r\n { control: 'color-picker', id: 'primary', label: '主色', span: 5 },\r\n { control: 'color-picker', id: 'success', label: '成功', span: 5 },\r\n { control: 'color-picker', id: 'warning', label: '警告', span: 5 },\r\n { control: 'color-picker', id: 'danger', label: '危险', span: 5 },\r\n { control: 'color-picker', id: 'info', label: '信息', span: 5 },\r\n { control: 'color-picker', id: 'background', label: '背景', span: 5 },\r\n { control: 'color-picker', id: 'border', label: '边框', span: 5 },\r\n { control: 'color-picker', id: 'text', label: '文字', span: 5 }\r\n ];\r\n\r\n value: XColorsTheme = {};\r\n\r\n themeService: XThemeService;\r\n\r\n locale: XI18nTheme = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n writeValue(value: XColorsTheme) {\r\n this.value = value;\r\n if (this.value && Object.keys(this.value).length > 0) {\r\n this.theme = { colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark as boolean) };\r\n this.formGroup.patchValue(this.theme.colors as XColorsTheme);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(public configService: XConfigService, public i18n: XI18nService, public cdr: ChangeDetectorRef) {\r\n super();\r\n this.themeService = this.configService.themeService;\r\n }\r\n\r\n ngOnInit() {\r\n this.theme = this.configService.getTheme(true);\r\n this.setControls();\r\n this.setDefaultColors();\r\n this.controls.map((x: XControl) => {\r\n x.value = (this.theme.colors as XColorsTheme)[x.id];\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.theme as XI18nTheme),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.setControlsLabel();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this._unSubject)).subscribe((x: XColorsTheme) => {\r\n this.beforeColors = this.currentColors;\r\n let changes = this.getChanges(x);\r\n if (this.isOneAndInColorKeys(changes)) {\r\n let [key, value] = Object.entries(changes)[0];\r\n let colors = !this.dark ? this.themeService.setRoot(key, value, '') : this.themeService.setDarkRoot(key, value, '');\r\n Object.assign(x, colors);\r\n this.currentColors = x;\r\n this.formGroup.patchValue(x);\r\n } else {\r\n this.currentColors = x;\r\n this.value = x;\r\n this.configService.setTheme({ colors: x });\r\n }\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 setControlsLabel() {\r\n Object.keys(this.locale).forEach((x) => {\r\n let control = this.controls.find((y) => y.id === x);\r\n if (control) {\r\n control.label = (this.locale as any)[x];\r\n control.change && control.change();\r\n }\r\n });\r\n }\r\n\r\n setDefaultColors() {\r\n this.beforeColors = this.theme.colors as XColorsTheme;\r\n this.currentColors = this.beforeColors;\r\n this.darkBeforeColors = this.beforeColors;\r\n }\r\n\r\n setControls() {\r\n [...this.controls].forEach((control, index) => {\r\n let addControls: XControl[] = [];\r\n control.span = !this.showDetail ? 6 : 5;\r\n this.width = !this.showDetail ? '36rem' : '45rem';\r\n for (let amount of this.amounts) {\r\n addControls.push({\r\n control: 'color-picker',\r\n id: `${control.id}${this.themeService.getSuffix(amount as number)}`,\r\n label: '',\r\n hidden: !this.showDetail\r\n });\r\n }\r\n this.controls.splice(index * this.amounts.length + index + 1, 0, ...addControls);\r\n });\r\n }\r\n\r\n default() {\r\n this.dark = false;\r\n let colors = this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS), '', this.dark);\r\n this.beforeColors = colors;\r\n this.currentColors = colors;\r\n this.formGroup.patchValue(colors);\r\n this.defaultClick.emit(colors);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n isOneAndInColorKeys(colors: XColorsTheme) {\r\n const keys = Object.keys(colors);\r\n if (keys.length === 1 && X_THEME_COLOR_KEYS.includes(keys[0])) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getChanges(colors: XColorsTheme) {\r\n let result: XColorsTheme = {};\r\n for (let color in colors) {\r\n if (colors[color] !== this.beforeColors[color]) {\r\n result[color] = colors[color];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n darkChanges() {\r\n let colors = this.darkBeforeColors as XColorsTheme;\r\n if (this.dark) {\r\n this.beforeColors = this.formGroup.value;\r\n this.darkBeforeColors = this.formGroup.value;\r\n colors = this.themeService.getDefineColors(\r\n Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), X_THEME_DARK_COLORS),\r\n '',\r\n this.dark as boolean\r\n );\r\n }\r\n this.formGroup.patchValue(colors);\r\n this.darkChange.emit(this.dark);\r\n }\r\n}\r\n","<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale?.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale?.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XThemeComponent } from './theme.component';\r\nimport { XThemeProperty } from './theme.property';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XFormModule } from '@ng-nest/ui/form';\r\nimport { XSwitchModule } from '@ng-nest/ui/switch';\r\nimport { XLayoutModule } from '@ng-nest/ui/layout';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XThemeComponent, XThemeProperty],\r\n exports: [XThemeComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XSwitchModule,\r\n XButtonModule,\r\n XLayoutModule,\r\n XFormModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XThemeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;MAKa,YAAY,GAAG,UAAU;AAEtC,MAAM,aAAa,GAAG,OAAO,CAAC;MAEjB,aAAa,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAEjI;;;MAIa,cAAe,SAAQ,qBAAmC;IADvE;;;;;;QAMW,WAAM,GAAW,MAAM,CAAC;;;;;QAoBP,SAAI,GAAa,KAAK,CAAC;;;;;QAKvC,iBAAY,GAAG,IAAI,YAAY,EAAgB,CAAC;;;;;QAKhD,eAAU,GAAG,IAAI,YAAY,EAAY,CAAC;KACrD;;8HApCY,cAAc;kHAAd,cAAc,gQADJ,EAAE;AAWwC;IAArD,WAAW,CAAY,aAAa,EAAE,aAAa,CAAC;+CAAqB;AAKzD;IAAhB,aAAa,EAAE;gDAAqB;AAKpB;IAAhB,aAAa,EAAE;kDAAuB;AAKtB;IAAhB,aAAa,EAAE;4CAAwB;2FAzBtC,cAAc;kBAD1B,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAMhB,MAAM;sBAAd,KAAK;gBAKyD,OAAO;sBAArE,KAAK;gBAKoB,QAAQ;sBAAjC,KAAK;gBAKoB,UAAU;sBAAnC,KAAK;gBAKoB,IAAI;sBAA7B,KAAK;gBAKI,YAAY;sBAArB,MAAM;gBAKG,UAAU;sBAAnB,MAAM;;;MC5BI,eAAgB,SAAQ,cAAc;IAsCjD,YAAmB,aAA6B,EAAS,IAAkB,EAAS,GAAsB;QACxG,KAAK,EAAE,CAAC;QADS,kBAAa,GAAb,aAAa,CAAgB;QAAS,SAAI,GAAJ,IAAI,CAAc;QAAS,QAAG,GAAH,GAAG,CAAmB;QArC1G,cAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAE9B,UAAK,GAAW;YACd,MAAM,EAAE,EAAE;SACX,CAAC;QACF,UAAK,GAAG,OAAO,CAAC;QAChB,iBAAY,GAAiB,EAAE,CAAC;QAChC,kBAAa,GAAiB,EAAE,CAAC;QACjC,qBAAgB,GAAiB,EAAE,CAAC;QACpC,aAAQ,GAAe;YACrB,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAChE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAChE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAChE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAC/D,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAC7D,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YACnE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;YAC/D,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;SAC9D,CAAC;QAEF,UAAK,GAAiB,EAAE,CAAC;QAIzB,WAAM,GAAe,EAAE,CAAC;QAEhB,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;QAavC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;KACrD;IAZD,UAAU,CAAC,KAAmB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAe,CAAC,EAAE,CAAC;YACpI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAsB,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAOD,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAW;YAC5B,CAAC,CAAC,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,MAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,YAAY;aACnB,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAmB,CAAC,EACjC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;aACA,SAAS,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACN;IAED,eAAe;QACb,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAe;YACxG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;gBACrC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5C;SACF,CAAC,CAAC;KACJ;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;IAED,gBAAgB;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,KAAK,GAAI,IAAI,CAAC,MAAc,CAAC,CAAC,CAAC,CAAC;gBACxC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;aACpC;SACF,CAAC,CAAC;KACJ;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAsB,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;KAC3C;IAED,WAAW;QACT,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK;YACxC,IAAI,WAAW,GAAe,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;YAClD,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/B,WAAW,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,cAAc;oBACvB,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAgB,CAAC,EAAE;oBACnE,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU;iBACzB,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;SAClF,CAAC,CAAC;KACJ;IAED,OAAO;QACL,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,mBAAmB,CAAC,MAAoB;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7D,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;KACd;IAED,UAAU,CAAC,MAAoB;QAC7B,IAAI,MAAM,GAAiB,EAAE,CAAC;QAC9B,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;gBAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;SACF;QACD,OAAO,MAAM,CAAC;KACf;IAED,WAAW;QACT,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7C,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CACxC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC,EAC7F,EAAE,EACF,IAAI,CAAC,IAAe,CACrB,CAAC;SACH;QACD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;;+HA/JU,eAAe;mHAAf,eAAe,kCAFf,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,iDCxB9C,wgBAWA;2FDea,eAAe;kBAR3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,SAAS;oBACnB,WAAW,EAAE,wBAAwB;oBACrC,SAAS,EAAE,CAAC,oBAAoB,CAAC;oBACjC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,cAAc,iBAAiB,CAAC;iBAC7C;;;MEEY,YAAY;;4HAAZ,YAAY;6HAAZ,YAAY,iBAdR,eAAe,EAAE,cAAc,aAG5C,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,aAAa;QACb,aAAa;QACb,aAAa;QACb,WAAW;QACX,WAAW;QACX,eAAe,aAVP,eAAe;6HAad,YAAY,YAZd;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,aAAa;YACb,WAAW;YACX,WAAW;YACX,eAAe;SAChB;2FAEU,YAAY;kBAfxB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;oBAC/C,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,aAAa;wBACb,aAAa;wBACb,aAAa;wBACb,WAAW;wBACX,WAAW;wBACX,eAAe;qBAChB;iBACF;;;AC1BD;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, HostBinding, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
|
-
import { XWithConfig, XInputBoolean, XIsChange, XIsEmpty, reqAnimFrame, XConnectBaseAnimation, XIsDate, XIsNumber, XClearClass } from '@ng-nest/ui/core';
|
|
4
|
+
import { XWithConfig, XInputBoolean, XIsChange, XIsEmpty, reqAnimFrame, XConnectBaseAnimation, XIsDate, XIsNumber, XIsString, XClearClass } from '@ng-nest/ui/core';
|
|
5
5
|
import { XControlValueAccessor, XValueAccessor, XBaseFormModule } from '@ng-nest/ui/base-form';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
7
7
|
import { takeUntil } from 'rxjs/operators';
|
|
@@ -118,24 +118,28 @@ class XTimePickerFrameComponent {
|
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
120
|
ngOnChanges(changes) {
|
|
121
|
-
|
|
121
|
+
const { value } = changes;
|
|
122
|
+
if (XIsChange(value)) {
|
|
122
123
|
this.init();
|
|
123
124
|
this.setScrollTop();
|
|
124
125
|
}
|
|
125
126
|
}
|
|
127
|
+
ngOnInit() {
|
|
128
|
+
this.init();
|
|
129
|
+
}
|
|
126
130
|
init() {
|
|
127
131
|
if (!XIsEmpty(this.value)) {
|
|
128
132
|
this.setDefault();
|
|
129
133
|
}
|
|
130
134
|
else {
|
|
131
|
-
|
|
135
|
+
const def = new Date('1970-01-01');
|
|
136
|
+
this.model = new Date(def.getFullYear(), def.getMonth(), def.getDate(), this.now.getHours(), this.now.getMinutes(), this.now.getSeconds());
|
|
132
137
|
}
|
|
133
138
|
this.setTime(this.model);
|
|
134
139
|
this.cdr.detectChanges();
|
|
135
140
|
}
|
|
136
141
|
setDefault() {
|
|
137
|
-
|
|
138
|
-
this.model = new Date(0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds());
|
|
142
|
+
this.model = new Date(this.value);
|
|
139
143
|
}
|
|
140
144
|
setTime(date) {
|
|
141
145
|
this.hour = date.getHours();
|
|
@@ -238,7 +242,7 @@ class XTimePickerPortalComponent {
|
|
|
238
242
|
this.animating(false);
|
|
239
243
|
event.toState === 'void' && this.destroyPortal();
|
|
240
244
|
}
|
|
241
|
-
start(
|
|
245
|
+
start() {
|
|
242
246
|
this.animating(true);
|
|
243
247
|
}
|
|
244
248
|
ngOnInit() {
|
|
@@ -303,16 +307,26 @@ class XTimePickerComponent extends XTimePickerProperty {
|
|
|
303
307
|
this.dataChange = new Subject();
|
|
304
308
|
this.positionChange = new Subject();
|
|
305
309
|
this.closeSubject = new Subject();
|
|
310
|
+
this.valueType = 'date';
|
|
306
311
|
this._unSubject = new Subject();
|
|
307
312
|
}
|
|
308
313
|
writeValue(value) {
|
|
309
|
-
if (XIsDate(value))
|
|
314
|
+
if (XIsDate(value)) {
|
|
310
315
|
this.value = value.getTime();
|
|
311
|
-
|
|
316
|
+
this.valueType = 'date';
|
|
317
|
+
}
|
|
318
|
+
else if (XIsNumber(value)) {
|
|
312
319
|
this.value = value;
|
|
313
|
-
|
|
320
|
+
this.valueType = 'number';
|
|
321
|
+
}
|
|
322
|
+
else if (XIsString(value)) {
|
|
323
|
+
this.value = new Date(value).getTime();
|
|
324
|
+
this.valueType = 'string';
|
|
325
|
+
}
|
|
326
|
+
else if (XIsEmpty(value)) {
|
|
314
327
|
this.value = '';
|
|
315
|
-
|
|
328
|
+
}
|
|
329
|
+
this.setDisplayValue(this.value);
|
|
316
330
|
this.valueChange.next(this.value);
|
|
317
331
|
this.cdr.detectChanges();
|
|
318
332
|
}
|
|
@@ -344,7 +358,7 @@ class XTimePickerComponent extends XTimePickerProperty {
|
|
|
344
358
|
}
|
|
345
359
|
}
|
|
346
360
|
setSubject() {
|
|
347
|
-
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((
|
|
361
|
+
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
|
|
348
362
|
this.closePortal();
|
|
349
363
|
});
|
|
350
364
|
}
|
|
@@ -442,15 +456,18 @@ class XTimePickerComponent extends XTimePickerProperty {
|
|
|
442
456
|
componentRef.changeDetectorRef.detectChanges();
|
|
443
457
|
}
|
|
444
458
|
onNodeClick(date) {
|
|
445
|
-
this.value =
|
|
446
|
-
this.setDisplayValue();
|
|
459
|
+
this.value = this.setValue(date);
|
|
460
|
+
this.setDisplayValue(date);
|
|
447
461
|
this.cdr.detectChanges();
|
|
448
462
|
if (this.onChange)
|
|
449
463
|
this.onChange(this.value);
|
|
450
464
|
this.nodeEmit.emit(this.value);
|
|
451
465
|
}
|
|
452
|
-
|
|
453
|
-
|
|
466
|
+
setValue(value) {
|
|
467
|
+
return ['date', 'string'].includes(this.valueType) ? new Date(value) : value.getTime();
|
|
468
|
+
}
|
|
469
|
+
setDisplayValue(date) {
|
|
470
|
+
this.displayValue = this.datePipe.transform(date, this.format);
|
|
454
471
|
}
|
|
455
472
|
setPlacement() {
|
|
456
473
|
return this.portalService.setPlacement({
|
|
@@ -471,7 +488,7 @@ class XTimePickerComponent extends XTimePickerProperty {
|
|
|
471
488
|
}
|
|
472
489
|
}
|
|
473
490
|
/** @nocollapse */ XTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XTimePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.DatePipe }, { token: i3.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
474
|
-
/** @nocollapse */ XTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XTimePickerComponent, selector: "x-time-picker", providers: [XValueAccessor(XTimePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block}.x-time-picker{margin:0;padding:0;width:100%}\n"], components: [{ type: i4.XInputComponent, selector: "x-input" }], directives: [{ type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
491
|
+
/** @nocollapse */ XTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XTimePickerComponent, selector: "x-time-picker", providers: [XValueAccessor(XTimePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #datePicker class=\"x-time-picker\">\r\n <div class=\"x-time-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-time-picker{display:inline-block}.x-time-picker{margin:0;padding:0;width:100%}.x-time-picker x-input{width:100%}\n"], components: [{ type: i4.XInputComponent, selector: "x-input" }], directives: [{ type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
475
492
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XTimePickerComponent, decorators: [{
|
|
476
493
|
type: Component,
|
|
477
494
|
args: [{
|