@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-carousel.js","sources":["../../../../lib/ng-nest/ui/carousel/carousel.property.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.html","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.html","../../../../lib/ng-nest/ui/carousel/carousel.module.ts","../../../../lib/ng-nest/ui/carousel/ng-nest-ui-carousel.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XInputNumber,\r\n XInputBoolean,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XShadow,\r\n XDisplayDirection,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Carousel\r\n * @selector x-carousel\r\n * @decorator component\r\n */\r\nexport const XCarouselPrefix = 'x-carousel';\r\nconst X_CONFIG_NAME = 'carousel';\r\n\r\n/**\r\n * Carousel Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCarouselProperty extends XProperty {\r\n /**\r\n * @zh_CN 当前激活的幻灯片索引\r\n * @en_US Index of the currently active slide\r\n */\r\n @Input() @XInputNumber() active: XNumber = 0;\r\n /**\r\n * @zh_CN 幻灯片高度\r\n * @en_US Slide height\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '15rem') height?: string;\r\n /**\r\n * @zh_CN 切换器触发方式\r\n * @en_US Switcher trigger method\r\n */\r\n @Input() @XWithConfig<XCarouselTrigger>(X_CONFIG_NAME, 'hover') trigger?: XCarouselTrigger;\r\n /**\r\n * @zh_CN 箭头显示影藏方式\r\n * @en_US Arrow shows how to hide\r\n */\r\n @Input() @XWithConfig<XCarouselArrow>(X_CONFIG_NAME, 'hover') arrow?: XCarouselArrow;\r\n /**\r\n * @zh_CN 幻灯片轮播方向\r\n * @en_US Slide rotation direction\r\n */\r\n @Input() @XWithConfig<XCarouselDirection>(X_CONFIG_NAME, 'horizontal') direction?: XCarouselDirection;\r\n /**\r\n * @zh_CN 自动切换\r\n * @en_US Automatic switching\r\n */\r\n @Input() @XInputBoolean() autoplay: XBoolean = true;\r\n /**\r\n * @zh_CN 自动切换时间间隔\r\n * @en_US Automatic switching time interval\r\n */\r\n @Input() interval: XNumber = 3000;\r\n /**\r\n * @zh_CN 切换器否显示在外面\r\n * @en_US Whether the switcher is displayed outside\r\n */\r\n @Input() @XInputBoolean() outside?: XBoolean;\r\n /**\r\n * @zh_CN 是否以卡片的方式显示幻灯片\r\n * @en_US Whether to display the slideshow as a card\r\n */\r\n @Input() @XInputBoolean() card?: XBoolean;\r\n /**\r\n * @zh_CN 激活的序号改变的事件\r\n * @en_US The activated sequence number changed event\r\n */\r\n @Output() activeChange = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * @zh_CN 指示器切换方式\r\n * @en_US Indicator switching method\r\n */\r\nexport type XCarouselTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 切换箭头显示方式\r\n * @en_US Toggle arrow display\r\n */\r\nexport type XCarouselArrow = XShadow;\r\n\r\n/**\r\n * @zh_CN 走马灯展示的方向\r\n * @en_US The direction of the revolving lantern\r\n */\r\nexport type XCarouselDirection = XDisplayDirection;\r\n\r\n/**\r\n * Carousel Panel\r\n * @selector x-carousel-panel\r\n * @decorator component\r\n */\r\nexport const XCarouselPanelPrefix = 'x-carousel-panel';\r\n\r\n/**\r\n * Carousel Panel Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCarouselPanelProperty extends XProperty {\r\n /**\r\n * @zh_CN 激活当前幻灯片\r\n * @en_US Activate the current slide\r\n */\r\n @Input() @XInputBoolean() active?: XBoolean;\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 OnChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XCarouselPrefix, XCarouselProperty } from './carousel.property';\r\nimport { XIsUndefined, XIsChange, XIsEmpty, XNumber, XResize, XConfigService } from '@ng-nest/ui/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { takeUntil, debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XCarouselPrefix}`,\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselComponent extends XCarouselProperty implements OnInit, OnChanges {\r\n @ViewChild('carousel') carousel!: ElementRef;\r\n @ViewChild('content') content!: ElementRef;\r\n start: number = -1;\r\n before!: number;\r\n timer: any;\r\n panelChanges: BehaviorSubject<any>[] = [];\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: ResizeObserver;\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.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.autoplay && this.resetInterval();\r\n XResize(this.content.nativeElement)\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this._resizeObserver = x.resizeObserver;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges): void {\r\n XIsChange(simples.active) && this.setActiveItem(Number(this.active));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.timer && clearInterval(this.timer);\r\n this.panelChanges.forEach((x) => x.complete());\r\n this._unSubject.complete();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n action(index: XNumber, increase: number, event?: string): void {\r\n if (!XIsUndefined(event) && this.trigger !== event) return;\r\n this.autoplay && this.resetInterval();\r\n this.setActiveItem(Number(index) + increase);\r\n }\r\n\r\n resetInterval(): void {\r\n this.timer && clearInterval(this.timer);\r\n this.timer = setInterval(() => {\r\n this.setActiveItem(Number(this.active) + 1);\r\n }, Number(this.interval));\r\n }\r\n\r\n setActiveItem(index: number): void {\r\n if (this.start === -1) return;\r\n this.before = Number(this.active);\r\n const nextValue = index > this.start ? 0 : index < 0 ? this.start : index;\r\n this.active = nextValue;\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XCarouselPrefix}-${this.direction}`] = !XIsEmpty(this.direction);\r\n }\r\n\r\n getActivated(index: number) {\r\n return Number(this.active) === index;\r\n }\r\n\r\n trackByPanel(index: number, item: any) {\r\n return index;\r\n }\r\n}\r\n","<div #carousel class=\"x-carousel\" [ngClass]=\"classMap\" [class.x-carousel-arrow-always]=\"arrow === 'always'\">\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height\">\r\n <ng-container *ngIf=\"arrow !== 'never' && direction !== 'vertical'\">\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active, -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active, 1)\"></x-button>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n <ul class=\"x-carousel-indicator\" [class.x-carousel-indicator-outside]=\"outside || card\">\r\n <li\r\n *ngFor=\"let panel of panelChanges; let i = index; trackBy: trackByPanel\"\r\n [class.x-activated]=\"getActivated(i)\"\r\n (click)=\"action(i, 0, 'click')\"\r\n (mouseenter)=\"action(i, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n </ul>\r\n</div>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Host,\r\n Optional\r\n} from '@angular/core';\r\nimport { XCarouselPanelPrefix, XCarouselPanelProperty } from './carousel.property';\r\nimport { XDropAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCarouselPanelPrefix}`,\r\n templateUrl: './carousel-panel.component.html',\r\n styleUrls: ['./carousel-panel.component.scss'],\r\n animations: [XDropAnimation],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselPanelComponent extends XCarouselPanelProperty implements OnInit {\r\n index!: number;\r\n width!: number;\r\n height!: number;\r\n animating!: boolean;\r\n preTranslate!: number;\r\n cardScale = 0.83;\r\n scale = 1;\r\n inStage = false;\r\n updateSub = new BehaviorSubject(false);\r\n updateSub$!: Subscription;\r\n\r\n constructor(\r\n @Optional() @Host() public carousel: XCarouselComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public sanitizer: DomSanitizer,\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.carousel.start++;\r\n this.index = this.carousel.start;\r\n this.setClass('x-carousel-card', Boolean(this.carousel.card));\r\n this.carousel.panelChanges.push(this.updateSub);\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.updateSub.subscribe((x) => {\r\n if (x) this.update();\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.updateSub$?.unsubscribe();\r\n }\r\n\r\n setActive() {\r\n const isActive: boolean = this.carousel.active === this.index;\r\n if (this.active !== isActive) {\r\n this.active = isActive;\r\n this.setClass('x-activated', this.active);\r\n }\r\n }\r\n\r\n setStyles() {\r\n this.width = this.elementRef.nativeElement.offsetWidth;\r\n this.height = this.elementRef.nativeElement.offsetHeight;\r\n\r\n let translate: number;\r\n let offset: number = Number(this.carousel.active) - this.index;\r\n let distance = this.width;\r\n let translateType = 'translateX';\r\n if (this.carousel.card) {\r\n if (this.carousel.direction === 'vertical') {\r\n console.warn('[x-carousel] vertical direction is not supported in card mode');\r\n }\r\n this.inStage = Math.round(Math.abs(offset)) <= 1;\r\n this.setClass('x-carousel-in-stage', this.inStage);\r\n translate = this.calcCardTranslate(this.index, Number(this.carousel.active));\r\n this.scale = offset === 0 ? 1 : this.cardScale;\r\n } else {\r\n if (this.carousel.direction === 'vertical') {\r\n distance = this.height;\r\n translateType = 'translateY';\r\n }\r\n const map: any = {\r\n '-2': -distance,\r\n '-1': distance,\r\n '0': 0,\r\n '1': 0 - distance,\r\n '2': distance\r\n };\r\n offset = offset < -2 ? -2 : offset > 2 ? 2 : offset;\r\n translate = map[offset];\r\n }\r\n this.animating =\r\n this.carousel.active === this.index ||\r\n this.carousel.before === this.index ||\r\n this.carousel.start === Math.abs(offset) ||\r\n Boolean(this.carousel.card);\r\n this.setClass('x-carousel-animating', this.animating);\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', `${translateType}(${translate}px) scale(${this.scale})`);\r\n }\r\n\r\n calcCardTranslate(index: number, activeIndex: number) {\r\n const parentWidth = this.carousel.carousel.nativeElement.offsetWidth;\r\n let offset: number = index - activeIndex;\r\n let activeFirstOrLast = this.carousel.start > 1 && this.carousel.start === Math.abs(offset);\r\n if (this.inStage || activeFirstOrLast) {\r\n if (activeFirstOrLast) offset = offset < 0 ? 1 : -1;\r\n return (parentWidth * ((2 - this.cardScale) * offset + 1)) / 4;\r\n } else if (index < activeIndex) {\r\n return (-(1 + this.cardScale) * parentWidth) / 4;\r\n } else {\r\n return ((3 + this.cardScale) * parentWidth) / 4;\r\n }\r\n }\r\n\r\n update() {\r\n this.setActive();\r\n this.setStyles();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n panelClick() {\r\n if (this.carousel.card && this.carousel.active !== this.index) {\r\n this.carousel.autoplay && this.carousel.resetInterval();\r\n this.carousel.setActiveItem(this.index);\r\n }\r\n }\r\n\r\n setClass(cls: string, value: boolean) {\r\n if (value) this.renderer.addClass(this.elementRef.nativeElement, cls);\r\n else this.renderer.removeClass(this.elementRef.nativeElement, cls);\r\n }\r\n}\r\n","<div #carouselPanel class=\"x-carousel-panel\" (click)=\"panelClick()\">\r\n <div *ngIf=\"carousel?.card\" [hidden]=\"active\" class=\"x-carousel-mask\"></div>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { XCarouselPanelComponent } from './carousel-panel.component';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XCarouselProperty, XCarouselPanelProperty } from './carousel.property';\r\n\r\n@NgModule({\r\n declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty],\r\n exports: [XCarouselComponent, XCarouselPanelComponent],\r\n imports: [CommonModule, XButtonModule]\r\n})\r\nexport class XCarouselModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAaA;;;;;MAKa,eAAe,GAAG,aAAa;AAC5C,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC;;;MAIa,iBAAkB,SAAQ,SAAS;IADhD;;;;;;QAM2B,WAAM,GAAY,CAAC,CAAC;;;;;QAyBnB,aAAQ,GAAa,IAAI,CAAC;;;;;QAK3C,aAAQ,GAAY,IAAI,CAAC;;;;;QAexB,iBAAY,GAAG,IAAI,YAAY,EAAU,CAAC;KACrD;;iIAnDY,iBAAiB;qHAAjB,iBAAiB,gTADP,EAAE;AAME;IAAf,YAAY,EAAE;iDAAqB;AAKS;IAA5C,WAAW,CAAS,aAAa,EAAE,OAAO,CAAC;iDAAiB;AAKN;IAAtD,WAAW,CAAmB,aAAa,EAAE,OAAO,CAAC;kDAA4B;AAK7B;IAApD,WAAW,CAAiB,aAAa,EAAE,OAAO,CAAC;gDAAwB;AAKd;IAA7D,WAAW,CAAqB,aAAa,EAAE,YAAY,CAAC;oDAAgC;AAK5E;IAAhB,aAAa,EAAE;mDAA2B;AAU1B;IAAhB,aAAa,EAAE;kDAAoB;AAKnB;IAAhB,aAAa,EAAE;+CAAiB;2FA7C/B,iBAAiB;kBAD7B,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAMA,MAAM;sBAA9B,KAAK;gBAKgD,MAAM;sBAA3D,KAAK;gBAK0D,OAAO;sBAAtE,KAAK;gBAKwD,KAAK;sBAAlE,KAAK;gBAKiE,SAAS;sBAA/E,KAAK;gBAKoB,QAAQ;sBAAjC,KAAK;gBAKG,QAAQ;sBAAhB,KAAK;gBAKoB,OAAO;sBAAhC,KAAK;gBAKoB,IAAI;sBAA7B,KAAK;gBAKI,YAAY;sBAArB,MAAM;;AAqBT;;;;;MAKa,oBAAoB,GAAG,mBAAmB;AAEvD;;;MAIa,sBAAuB,SAAQ,SAAS;;sIAAxC,sBAAsB;0HAAtB,sBAAsB,yGADZ,EAAE;AAMG;IAAhB,aAAa,EAAE;sDAAmB;2FALjC,sBAAsB;kBADlC,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAMC,MAAM;sBAA/B,KAAK;;;MCxFK,kBAAmB,SAAQ,iBAAiB;IAUvD,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;QAXtC,UAAK,GAAW,CAAC,CAAC,CAAC;QAGnB,iBAAY,GAA2B,EAAE,CAAC;QAClC,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAUxC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;aAChC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAClD,SAAS,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,cAAc,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACN;IAED,WAAW,CAAC,OAAsB;QAChC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACtE;IAED,WAAW;;QACT,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAA,IAAI,CAAC,eAAe,0CAAE,UAAU,EAAE,CAAC;KACpC;IAED,MAAM,CAAC,KAAc,EAAE,QAAgB,EAAE,KAAc;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QAC3D,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;KAC9C;IAED,aAAa;QACX,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7C,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3B;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnF;IAED,YAAY,CAAC,KAAa;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;KACtC;IAED,YAAY,CAAC,KAAa,EAAE,IAAS;QACnC,OAAO,KAAK,CAAC;KACd;;kIA/EU,kBAAkB;sHAAlB,kBAAkB,yRCxB/B,q9BAmBA;2FDKa,kBAAkB;kBAP9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,eAAe,EAAE;oBAC9B,WAAW,EAAE,2BAA2B;oBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;oBACxC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;sLAEwB,QAAQ;sBAA9B,SAAS;uBAAC,UAAU;gBACC,OAAO;sBAA5B,SAAS;uBAAC,SAAS;;;MEDT,uBAAwB,SAAQ,sBAAsB;IAYjE,YAC6B,QAA4B,EAChD,QAAmB,EACnB,UAAsB,EACtB,SAAuB,EACvB,GAAsB,EACtB,aAA6B;QAEpC,KAAK,EAAE,CAAC;QAPmB,aAAQ,GAAR,QAAQ,CAAoB;QAChD,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAc;QACvB,QAAG,GAAH,GAAG,CAAmB;QACtB,kBAAa,GAAb,aAAa,CAAgB;QAZtC,cAAS,GAAG,IAAI,CAAC;QACjB,UAAK,GAAG,CAAC,CAAC;QACV,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KAYtC;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACjD;IAED,eAAe;QACb,UAAU,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC;oBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aACtB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAED,WAAW;;QACT,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,EAAE,CAAC;KAChC;IAED,SAAS;QACP,MAAM,QAAQ,GAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3C;KACF;IAED,SAAS;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;QAEzD,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAM,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/D,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,aAAa,GAAG,YAAY,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE;gBAC1C,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;aAC/E;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAChD;aAAM;YACL,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE;gBAC1C,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;gBACvB,aAAa,GAAG,YAAY,CAAC;aAC9B;YACD,MAAM,GAAG,GAAQ;gBACf,IAAI,EAAE,CAAC,QAAQ;gBACf,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC,GAAG,QAAQ;gBACjB,GAAG,EAAE,QAAQ;aACd,CAAC;YACF,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACpD,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK;gBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK;gBACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,aAAa,IAAI,SAAS,aAAa,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAC7H;IAED,iBAAiB,CAAC,KAAa,EAAE,WAAmB;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC;QACrE,IAAI,MAAM,GAAW,KAAK,GAAG,WAAW,CAAC;QACzC,IAAI,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,OAAO,IAAI,iBAAiB,EAAE;YACrC,IAAI,iBAAiB;gBAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;SAChE;aAAM,IAAI,KAAK,GAAG,WAAW,EAAE;YAC9B,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;SAClD;aAAM;YACL,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,CAAC,CAAC;SACjD;KACF;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;YAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzC;KACF;IAED,QAAQ,CAAC,GAAW,EAAE,KAAc;QAClC,IAAI,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;;YACjE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KACpE;;uIAxHU,uBAAuB;2HAAvB,uBAAuB,+ECzBpC,+MAIA,oODiBc,CAAC,cAAc,CAAC;2FAIjB,uBAAuB;kBARnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,oBAAoB,EAAE;oBACnC,WAAW,EAAE,iCAAiC;oBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;oBAC9C,UAAU,EAAE,CAAC,cAAc,CAAC;oBAC5B,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;0BAcI,QAAQ;;0BAAI,IAAI;;;ME1BR,eAAe;;+HAAf,eAAe;gIAAf,eAAe,iBAJX,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,sBAAsB,aAE3F,YAAY,EAAE,aAAa,aAD3B,kBAAkB,EAAE,uBAAuB;gIAG1C,eAAe,YAFjB,CAAC,YAAY,EAAE,aAAa,CAAC;2FAE3B,eAAe;kBAL3B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;oBACtG,OAAO,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;oBACtD,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;iBACvC;;;ACXD;;;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-carousel.js","sources":["../../../../lib/ng-nest/ui/carousel/carousel.property.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.html","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.html","../../../../lib/ng-nest/ui/carousel/carousel.module.ts","../../../../lib/ng-nest/ui/carousel/ng-nest-ui-carousel.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XInputNumber,\r\n XInputBoolean,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XShadow,\r\n XDisplayDirection,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Carousel\r\n * @selector x-carousel\r\n * @decorator component\r\n */\r\nexport const XCarouselPrefix = 'x-carousel';\r\nconst X_CONFIG_NAME = 'carousel';\r\n\r\n/**\r\n * Carousel Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCarouselProperty extends XProperty {\r\n /**\r\n * @zh_CN 当前激活的幻灯片索引\r\n * @en_US Index of the currently active slide\r\n */\r\n @Input() @XInputNumber() active: XNumber = 0;\r\n /**\r\n * @zh_CN 幻灯片高度\r\n * @en_US Slide height\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '15rem') height?: string;\r\n /**\r\n * @zh_CN 切换器触发方式\r\n * @en_US Switcher trigger method\r\n */\r\n @Input() @XWithConfig<XCarouselTrigger>(X_CONFIG_NAME, 'hover') trigger?: XCarouselTrigger;\r\n /**\r\n * @zh_CN 箭头显示影藏方式\r\n * @en_US Arrow shows how to hide\r\n */\r\n @Input() @XWithConfig<XCarouselArrow>(X_CONFIG_NAME, 'hover') arrow?: XCarouselArrow;\r\n /**\r\n * @zh_CN 幻灯片轮播方向\r\n * @en_US Slide rotation direction\r\n */\r\n @Input() @XWithConfig<XCarouselDirection>(X_CONFIG_NAME, 'horizontal') direction?: XCarouselDirection;\r\n /**\r\n * @zh_CN 自动切换\r\n * @en_US Automatic switching\r\n */\r\n @Input() @XInputBoolean() autoplay: XBoolean = true;\r\n /**\r\n * @zh_CN 自动切换时间间隔\r\n * @en_US Automatic switching time interval\r\n */\r\n @Input() interval: XNumber = 3000;\r\n /**\r\n * @zh_CN 切换器否显示在外面\r\n * @en_US Whether the switcher is displayed outside\r\n */\r\n @Input() @XInputBoolean() outside?: XBoolean;\r\n /**\r\n * @zh_CN 是否以卡片的方式显示幻灯片\r\n * @en_US Whether to display the slideshow as a card\r\n */\r\n @Input() @XInputBoolean() card?: XBoolean;\r\n /**\r\n * @zh_CN 激活的序号改变的事件\r\n * @en_US The activated sequence number changed event\r\n */\r\n @Output() activeChange = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * @zh_CN 指示器切换方式\r\n * @en_US Indicator switching method\r\n */\r\nexport type XCarouselTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 切换箭头显示方式\r\n * @en_US Toggle arrow display\r\n */\r\nexport type XCarouselArrow = XShadow;\r\n\r\n/**\r\n * @zh_CN 走马灯展示的方向\r\n * @en_US The direction of the revolving lantern\r\n */\r\nexport type XCarouselDirection = XDisplayDirection;\r\n\r\n/**\r\n * Carousel Panel\r\n * @selector x-carousel-panel\r\n * @decorator component\r\n */\r\nexport const XCarouselPanelPrefix = 'x-carousel-panel';\r\n\r\n/**\r\n * Carousel Panel Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCarouselPanelProperty extends XProperty {\r\n /**\r\n * @zh_CN 激活当前幻灯片\r\n * @en_US Activate the current slide\r\n */\r\n @Input() @XInputBoolean() active?: XBoolean;\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 OnChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XCarouselPrefix, XCarouselProperty } from './carousel.property';\r\nimport { XIsUndefined, XIsChange, XIsEmpty, XNumber, XResize, XConfigService } from '@ng-nest/ui/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { takeUntil, debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XCarouselPrefix}`,\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselComponent extends XCarouselProperty implements OnInit, OnChanges {\r\n @ViewChild('carousel') carousel!: ElementRef;\r\n @ViewChild('content') content!: ElementRef;\r\n start: number = -1;\r\n before!: number;\r\n timer: any;\r\n panelChanges: BehaviorSubject<any>[] = [];\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: ResizeObserver;\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.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.autoplay && this.resetInterval();\r\n XResize(this.content.nativeElement)\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this._resizeObserver = x.resizeObserver;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges): void {\r\n const { active } = simples;\r\n XIsChange(active) && this.setActiveItem(Number(this.active));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.timer && clearInterval(this.timer);\r\n this.panelChanges.forEach((x) => x.complete());\r\n this._unSubject.complete();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n action(index: XNumber, increase: number, event?: string): void {\r\n if (!XIsUndefined(event) && this.trigger !== event) return;\r\n this.autoplay && this.resetInterval();\r\n this.setActiveItem(Number(index) + increase);\r\n }\r\n\r\n resetInterval(): void {\r\n this.timer && clearInterval(this.timer);\r\n this.timer = setInterval(() => {\r\n this.setActiveItem(Number(this.active) + 1);\r\n }, Number(this.interval));\r\n }\r\n\r\n setActiveItem(index: number): void {\r\n if (this.start === -1) return;\r\n this.before = Number(this.active);\r\n const nextValue = index > this.start ? 0 : index < 0 ? this.start : index;\r\n this.active = nextValue;\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XCarouselPrefix}-${this.direction}`] = !XIsEmpty(this.direction);\r\n }\r\n\r\n getActivated(index: number) {\r\n return Number(this.active) === index;\r\n }\r\n\r\n trackByPanel(index: number, _item: any) {\r\n return index;\r\n }\r\n}\r\n","<div #carousel class=\"x-carousel\" [ngClass]=\"classMap\" [class.x-carousel-arrow-always]=\"arrow === 'always'\">\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height\">\r\n <ng-container *ngIf=\"arrow !== 'never' && direction !== 'vertical'\">\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active, -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active, 1)\"></x-button>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n <ul class=\"x-carousel-indicator\" [class.x-carousel-indicator-outside]=\"outside || card\">\r\n <li\r\n *ngFor=\"let panel of panelChanges; let i = index; trackBy: trackByPanel\"\r\n [class.x-activated]=\"getActivated(i)\"\r\n (click)=\"action(i, 0, 'click')\"\r\n (mouseenter)=\"action(i, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n </ul>\r\n</div>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Host,\r\n Optional\r\n} from '@angular/core';\r\nimport { XCarouselPanelPrefix, XCarouselPanelProperty } from './carousel.property';\r\nimport { XDropAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XCarouselPanelPrefix}`,\r\n templateUrl: './carousel-panel.component.html',\r\n styleUrls: ['./carousel-panel.component.scss'],\r\n animations: [XDropAnimation],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselPanelComponent extends XCarouselPanelProperty implements OnInit {\r\n index!: number;\r\n width!: number;\r\n height!: number;\r\n animating!: boolean;\r\n preTranslate!: number;\r\n cardScale = 0.83;\r\n scale = 1;\r\n inStage = false;\r\n updateSub = new BehaviorSubject(false);\r\n unSubject = new Subject<void>();\r\n\r\n constructor(\r\n @Optional() @Host() public carousel: XCarouselComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public sanitizer: DomSanitizer,\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.carousel.start++;\r\n this.index = this.carousel.start;\r\n this.setClass('x-carousel-card', Boolean(this.carousel.card));\r\n this.carousel.panelChanges.push(this.updateSub);\r\n this.updateSub.pipe(takeUntil(this.unSubject)).subscribe((x) => {\r\n if (x) this.update();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel.start--;\r\n const idx = this.carousel.panelChanges.indexOf(this.updateSub);\r\n this.carousel.panelChanges.splice(idx, 1);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setActive() {\r\n const isActive: boolean = this.carousel.active === this.index;\r\n if (this.active !== isActive) {\r\n this.active = isActive;\r\n this.setClass('x-activated', this.active);\r\n }\r\n }\r\n\r\n setStyles() {\r\n this.width = this.elementRef.nativeElement.offsetWidth;\r\n this.height = this.elementRef.nativeElement.offsetHeight;\r\n\r\n let translate: number;\r\n let offset: number = Number(this.carousel.active) - this.index;\r\n let distance = this.width;\r\n let translateType = 'translateX';\r\n if (this.carousel.card) {\r\n if (this.carousel.direction === 'vertical') {\r\n console.warn('[x-carousel] vertical direction is not supported in card mode');\r\n }\r\n this.inStage = Math.round(Math.abs(offset)) <= 1;\r\n this.setClass('x-carousel-in-stage', this.inStage);\r\n translate = this.calcCardTranslate(this.index, Number(this.carousel.active));\r\n this.scale = offset === 0 ? 1 : this.cardScale;\r\n } else {\r\n if (this.carousel.direction === 'vertical') {\r\n distance = this.height;\r\n translateType = 'translateY';\r\n }\r\n const map: any = {\r\n '-2': -distance,\r\n '-1': distance,\r\n '0': 0,\r\n '1': 0 - distance,\r\n '2': distance\r\n };\r\n offset = offset < -2 ? -2 : offset > 2 ? 2 : offset;\r\n translate = map[offset];\r\n }\r\n this.animating =\r\n this.carousel.active === this.index ||\r\n this.carousel.before === this.index ||\r\n this.carousel.start === Math.abs(offset) ||\r\n Boolean(this.carousel.card);\r\n this.setClass('x-carousel-animating', this.animating);\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', `${translateType}(${translate}px) scale(${this.scale})`);\r\n }\r\n\r\n calcCardTranslate(index: number, activeIndex: number) {\r\n const parentWidth = this.carousel.carousel.nativeElement.offsetWidth;\r\n let offset: number = index - activeIndex;\r\n let activeFirstOrLast = this.carousel.start > 1 && this.carousel.start === Math.abs(offset);\r\n if (this.inStage || activeFirstOrLast) {\r\n if (activeFirstOrLast) offset = offset < 0 ? 1 : -1;\r\n return (parentWidth * ((2 - this.cardScale) * offset + 1)) / 4;\r\n } else if (index < activeIndex) {\r\n return (-(1 + this.cardScale) * parentWidth) / 4;\r\n } else {\r\n return ((3 + this.cardScale) * parentWidth) / 4;\r\n }\r\n }\r\n\r\n update() {\r\n this.setActive();\r\n this.setStyles();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n panelClick() {\r\n if (this.carousel.card && this.carousel.active !== this.index) {\r\n this.carousel.autoplay && this.carousel.resetInterval();\r\n this.carousel.setActiveItem(this.index);\r\n }\r\n }\r\n\r\n setClass(cls: string, value: boolean) {\r\n if (value) this.renderer.addClass(this.elementRef.nativeElement, cls);\r\n else this.renderer.removeClass(this.elementRef.nativeElement, cls);\r\n }\r\n}\r\n","<div #carouselPanel class=\"x-carousel-panel\" (click)=\"panelClick()\">\r\n <div *ngIf=\"carousel?.card\" [hidden]=\"active\" class=\"x-carousel-mask\"></div>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { XCarouselPanelComponent } from './carousel-panel.component';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XCarouselProperty, XCarouselPanelProperty } from './carousel.property';\r\n\r\n@NgModule({\r\n declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty],\r\n exports: [XCarouselComponent, XCarouselPanelComponent],\r\n imports: [CommonModule, XButtonModule]\r\n})\r\nexport class XCarouselModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,7 @@ import * as i3 from '@ng-nest/ui/input';
|
|
|
18
18
|
import { XInputModule } from '@ng-nest/ui/input';
|
|
19
19
|
|
|
20
20
|
class XCascadePortalComponent {
|
|
21
|
-
constructor(
|
|
22
|
-
this.renderer = renderer;
|
|
21
|
+
constructor(ngZone, cdr) {
|
|
23
22
|
this.ngZone = ngZone;
|
|
24
23
|
this.cdr = cdr;
|
|
25
24
|
this.nodes = [];
|
|
@@ -33,7 +32,7 @@ class XCascadePortalComponent {
|
|
|
33
32
|
this.animating(false);
|
|
34
33
|
event.toState === 'void' && this.destroyPortal();
|
|
35
34
|
}
|
|
36
|
-
start(
|
|
35
|
+
start() {
|
|
37
36
|
this.animating(true);
|
|
38
37
|
}
|
|
39
38
|
ngOnInit() {
|
|
@@ -118,8 +117,8 @@ class XCascadePortalComponent {
|
|
|
118
117
|
});
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
|
-
/** @nocollapse */ XCascadePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XCascadePortalComponent, deps: [{ token: i0.
|
|
122
|
-
/** @nocollapse */ XCascadePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XCascadePortalComponent, selector: "x-cascade-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, ngImport: i0, template: "<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <ng-container *ngFor=\"let list of nodes\">\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger === 'hover' && nodeMouseleave()\"\r\n checked\r\n ></x-list>\r\n </ng-container>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-cascade-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);display:flex}.x-cascade-portal>x-list .x-list-option{min-width:8rem}.x-cascade-portal>x-list:not(:first-child){border-left:var(--x-border-width) solid var(--x-border)}\n"], components: [{ type: i1.XListComponent, selector: "x-list" }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
120
|
+
/** @nocollapse */ XCascadePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XCascadePortalComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
+
/** @nocollapse */ XCascadePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XCascadePortalComponent, selector: "x-cascade-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, ngImport: i0, template: "<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <ng-container *ngFor=\"let list of nodes\">\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger === 'hover' && nodeMouseleave()\"\r\n checked\r\n ></x-list>\r\n </ng-container>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-cascade-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);display:flex}.x-cascade-portal:focus{outline:none}.x-cascade-portal>x-list .x-list-option{min-width:8rem}.x-cascade-portal>x-list:not(:first-child){border-left:var(--x-border-width) solid var(--x-border)}\n"], components: [{ type: i1.XListComponent, selector: "x-list" }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
123
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XCascadePortalComponent, decorators: [{
|
|
124
123
|
type: Component,
|
|
125
124
|
args: [{
|
|
@@ -130,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
130
129
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
131
130
|
animations: [XConnectBaseAnimation]
|
|
132
131
|
}]
|
|
133
|
-
}], ctorParameters: function () { return [{ type: i0.
|
|
132
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { placement: [{
|
|
134
133
|
type: HostBinding,
|
|
135
134
|
args: ['@x-connect-base-animation']
|
|
136
135
|
}], done: [{
|
|
@@ -256,7 +255,8 @@ class XCascadeComponent extends XCascadeProperty {
|
|
|
256
255
|
this.setPortal();
|
|
257
256
|
}
|
|
258
257
|
ngOnChanges(changes) {
|
|
259
|
-
|
|
258
|
+
const { data } = changes;
|
|
259
|
+
XIsChange(data) && this.setData();
|
|
260
260
|
}
|
|
261
261
|
ngOnDestroy() {
|
|
262
262
|
this._unSubject.next();
|
|
@@ -275,7 +275,7 @@ class XCascadeComponent extends XCascadeProperty {
|
|
|
275
275
|
});
|
|
276
276
|
}
|
|
277
277
|
setSubject() {
|
|
278
|
-
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((
|
|
278
|
+
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
|
|
279
279
|
this.closePortal();
|
|
280
280
|
});
|
|
281
281
|
}
|
|
@@ -429,7 +429,7 @@ class XCascadeComponent extends XCascadeProperty {
|
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
431
|
/** @nocollapse */ XCascadeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XCascadeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2$1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
432
|
-
/** @nocollapse */ XCascadeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XCascadeComponent, selector: "x-cascade", providers: [XValueAccessor(XCascadeComponent)], viewQueries: [{ propertyName: "cascade", first: true, predicate: ["cascade"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-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 (click)=\"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-cascade{display:inline-block}.x-cascade{margin:0;padding:0;width:100%}\n"], components: [{ type: i3.XInputComponent, selector: "x-input" }], directives: [{ type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
432
|
+
/** @nocollapse */ XCascadeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XCascadeComponent, selector: "x-cascade", providers: [XValueAccessor(XCascadeComponent)], viewQueries: [{ propertyName: "cascade", first: true, predicate: ["cascade"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-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 (click)=\"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-cascade{display:inline-block}.x-cascade{margin:0;padding:0;width:100%}.x-cascade x-input{width:100%}\n"], components: [{ type: i3.XInputComponent, selector: "x-input" }], directives: [{ type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
433
433
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XCascadeComponent, decorators: [{
|
|
434
434
|
type: Component,
|
|
435
435
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-cascade.js","sources":["../../../../lib/ng-nest/ui/cascade/cascade-portal.component.ts","../../../../lib/ng-nest/ui/cascade/cascade-portal.component.html","../../../../lib/ng-nest/ui/cascade/cascade.property.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.html","../../../../lib/ng-nest/ui/cascade/cascade.module.ts","../../../../lib/ng-nest/ui/cascade/ng-nest-ui-cascade.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n NgZone,\r\n Renderer2,\r\n OnDestroy,\r\n HostBinding,\r\n HostListener,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XCascadeNode, XCascadeNodeTrigger } from './cascade.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { delay, takeUntil } from 'rxjs/operators';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\n\r\n@Component({\r\n selector: 'x-cascade-portal',\r\n templateUrl: './cascade-portal.component.html',\r\n styleUrls: ['./cascade-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XCascadePortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n\r\n nodes: XCascadeNode[][] = [];\r\n datas: XCascadeNode[] = [];\r\n selecteds: XCascadeNode[] = [];\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n animating!: Function;\r\n nodeEmit!: Function;\r\n values: XCascadeNode[] = [];\r\n nodeTpl!: TemplateRef<any>;\r\n nodeTrigger!: XCascadeNodeTrigger;\r\n nodeHoverDelay!: number;\r\n hoverDelayUnSub = new Subject();\r\n inputCom!: XInputComponent;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public ngZone: NgZone, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.values = [];\r\n }\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n let node = this.datas.find((x) => x.id === this.value) as XCascadeNode;\r\n this.selecteds = [node];\r\n this.nodes = [this.datas.filter((x) => x.pid === node.pid)];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas.find((x) => x.id === node.pid) as XCascadeNode;\r\n this.selecteds = [node, ...this.selecteds];\r\n this.nodes = [this.datas.filter((x) => x.pid === node.pid), ...this.nodes];\r\n }\r\n this.values = this.selecteds.map((x) => x.id) as XCascadeNode[];\r\n }\r\n\r\n nodeMouseenter(node: XCascadeNode) {\r\n of(true)\r\n .pipe(delay(this.nodeHoverDelay), takeUntil(this.hoverDelayUnSub))\r\n .subscribe(() => this.nodeExpansion(node, false));\r\n }\r\n\r\n nodeMouseleave() {\r\n this.hoverDelayUnSub.next();\r\n }\r\n\r\n nodeClick(node: XCascadeNode) {\r\n this.nodeExpansion(node);\r\n }\r\n\r\n nodeExpansion(node: XCascadeNode, click = true) {\r\n const level = Number(node.level);\r\n this.ngZone.run(() => {\r\n if (node.leaf) {\r\n if (this.nodes.length === level) {\r\n this.nodes = [...this.nodes, node.children] as XCascadeNode[][];\r\n this.selecteds = [...this.selecteds, node];\r\n } else {\r\n if (this.nodes.length > Number(level) + 1) {\r\n this.nodes = this.nodes.splice(0, level + 1);\r\n this.selecteds = this.selecteds.splice(0, level + 1);\r\n }\r\n this.nodes[level + 1] = node.children as XCascadeNode[];\r\n this.selecteds[level] = node;\r\n }\r\n this.values = this.selecteds.map((x) => x.id);\r\n this.cdr.detectChanges();\r\n } else if (click) {\r\n if (this.selecteds.length >= level + 1) {\r\n this.selecteds = this.selecteds.splice(0, level);\r\n }\r\n this.selecteds = [...this.selecteds, node];\r\n this.nodeEmit({\r\n node: node,\r\n nodes: this.selecteds,\r\n label: this.selecteds.map((x) => x.label).join(` / `)\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <ng-container *ngFor=\"let list of nodes\">\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger === 'hover' && nodeMouseleave()\"\r\n checked\r\n ></x-list>\r\n </ng-container>\r\n</div>\r\n","import {\r\n XParentIdentityProperty,\r\n XDataConvert,\r\n XData,\r\n XCorner,\r\n XWithConfig,\r\n XSize,\r\n XInputBoolean,\r\n XBoolean,\r\n XTrigger,\r\n XNumber\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, TemplateRef } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Cascade\r\n * @selector x-cascade\r\n * @decorator component\r\n */\r\nexport const XCascadePrefix = 'x-cascade';\r\nconst X_CONFIG_NAME = 'cascade';\r\n\r\n/**\r\n * Cascade Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCascadeProperty extends XControlValueAccessor<any> implements XCascadeOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XCascadeNode> = [];\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US 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 Sub node triggering method\r\n */\r\n @Input() @XWithConfig<XCascadeNodeTrigger>(X_CONFIG_NAME, 'click') nodeTrigger?: XCascadeNodeTrigger;\r\n /**\r\n * @zh_CN 子节点触发方式为 hover 时的延迟时间\r\n * @en_US Sub node triggering method\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 200) nodeHoverDelay?: XNumber;\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 Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<XCascadeNode>();\r\n}\r\n\r\n/**\r\n * Cascade Option\r\n * @undocument true\r\n */\r\nexport interface XCascadeOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XCascadeNode>;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (node: XCascadeNode) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN Cascade 数据对象\r\n * @en_US Cascade data object\r\n */\r\nexport interface XCascadeNode extends XParentIdentityProperty<XCascadeNode> {}\r\n\r\n/**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\nexport type XCascadeNodeTrigger = XTrigger;\r\n\r\n/**\r\n * Cascade-Portal\r\n * @selector x-cascade-portal\r\n * @decorator component\r\n */\r\nexport const XCascadePortalPrefix = 'x-cascade-portal';\r\n","import { XCascadePortalComponent } from './cascade-portal.component';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XCascadePrefix, XCascadeNode, XCascadeProperty } from './cascade.property';\r\nimport { XIsEmpty, XIsChange, XSetData, XGetChildren, XCorner, XClearClass } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-cascade',\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCascadeComponent)]\r\n})\r\nexport class XCascadeComponent extends XCascadeProperty implements OnInit, OnChanges {\r\n @ViewChild('cascade', { static: true }) cascade!: ElementRef;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this.setDisplayValue();\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n readonly: boolean = true;\r\n clearable: boolean = false;\r\n enter: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n datas: XCascadeNode[] = [];\r\n nodes: XCascadeNode[] = [];\r\n portal!: XPortalOverlayRef<XCascadePortalComponent>;\r\n icon: string = 'fto-chevron-down';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueTplContext: { $node: any; $nodes: any; $isValue: boolean } = { $node: null, $nodes: null, $isValue: true };\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n this.renderer.addClass(this.elementRef.nativeElement, XCascadePrefix);\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.cascade.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setData() {\r\n XSetData<XCascadeNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.datas = x;\r\n this.nodes = x.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XCascadeNode>(x, y, 0));\r\n this.setPortal();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.value)) {\r\n this.icon = '';\r\n this.clearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-chevron-down';\r\n this.clearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.valueTplContext.$nodes = null;\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XCascadePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.placement) {\r\n this.positionChange.next(place);\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n datas: this.datas,\r\n nodes: [this.nodes],\r\n value: this.value,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n nodeTpl: this.nodeTpl,\r\n nodeTrigger: this.nodeTrigger,\r\n nodeHoverDelay: this.nodeHoverDelay,\r\n inputCom: this.inputCom,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) => this.onNodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(selected: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) {\r\n this.value = selected.node.id;\r\n this.displayValue = selected.label;\r\n this.valueTplContext.$node = selected;\r\n this.valueTplContext.$nodes = selected.nodes;\r\n this.closeSubject.next();\r\n this.inputCom.inputFocus();\r\n if (this.onChange) this.onChange(this.value);\r\n this.nodeEmit.emit(selected);\r\n }\r\n\r\n setDisplayValue() {\r\n let node = this.datas.find((x) => x.id === this.value) as XCascadeNode;\r\n if (typeof node === 'undefined') {\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.valueTplContext.$nodes = null;\r\n return;\r\n } else {\r\n let selecteds = [node];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas.find((x) => x.id === node.pid) as XCascadeNode;\r\n selecteds = [node, ...selecteds];\r\n }\r\n this.displayValue = selecteds.map((x) => x.label).join(` / `);\r\n this.valueTplContext.$node = node;\r\n this.valueTplContext.$nodes = selecteds;\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-cascade-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.setData();\r\n this.setDisplayValue();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-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 (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\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 { XCascadeComponent } from './cascade.component';\r\nimport { XCascadePortalComponent } from './cascade-portal.component';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XCascadeProperty } from './cascade.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XCascadeComponent, XCascadePortalComponent, XCascadeProperty],\r\n exports: [XCascadeComponent, XCascadePortalComponent],\r\n imports: [CommonModule, FormsModule, XPortalModule, ReactiveFormsModule, XInputModule, XListModule, XBaseFormModule],\r\n entryComponents: [XCascadePortalComponent]\r\n})\r\nexport class XCascadeModule {}\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-cascade.js","sources":["../../../../lib/ng-nest/ui/cascade/cascade-portal.component.ts","../../../../lib/ng-nest/ui/cascade/cascade-portal.component.html","../../../../lib/ng-nest/ui/cascade/cascade.property.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.html","../../../../lib/ng-nest/ui/cascade/cascade.module.ts","../../../../lib/ng-nest/ui/cascade/ng-nest-ui-cascade.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n NgZone,\r\n OnDestroy,\r\n HostBinding,\r\n HostListener,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XCascadeNode, XCascadeNodeTrigger } from './cascade.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { delay, takeUntil } from 'rxjs/operators';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\n\r\n@Component({\r\n selector: 'x-cascade-portal',\r\n templateUrl: './cascade-portal.component.html',\r\n styleUrls: ['./cascade-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XCascadePortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n nodes: XCascadeNode[][] = [];\r\n datas: XCascadeNode[] = [];\r\n selecteds: XCascadeNode[] = [];\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n animating!: Function;\r\n nodeEmit!: Function;\r\n values: XCascadeNode[] = [];\r\n nodeTpl!: TemplateRef<any>;\r\n nodeTrigger!: XCascadeNodeTrigger;\r\n nodeHoverDelay!: number;\r\n hoverDelayUnSub = new Subject<void>();\r\n inputCom!: XInputComponent;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public ngZone: NgZone, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.init();\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.values = [];\r\n }\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n let node = this.datas.find((x) => x.id === this.value) as XCascadeNode;\r\n this.selecteds = [node];\r\n this.nodes = [this.datas.filter((x) => x.pid === node.pid)];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas.find((x) => x.id === node.pid) as XCascadeNode;\r\n this.selecteds = [node, ...this.selecteds];\r\n this.nodes = [this.datas.filter((x) => x.pid === node.pid), ...this.nodes];\r\n }\r\n this.values = this.selecteds.map((x) => x.id) as XCascadeNode[];\r\n }\r\n\r\n nodeMouseenter(node: XCascadeNode) {\r\n of(true)\r\n .pipe(delay(this.nodeHoverDelay), takeUntil(this.hoverDelayUnSub))\r\n .subscribe(() => this.nodeExpansion(node, false));\r\n }\r\n\r\n nodeMouseleave() {\r\n this.hoverDelayUnSub.next();\r\n }\r\n\r\n nodeClick(node: XCascadeNode) {\r\n this.nodeExpansion(node);\r\n }\r\n\r\n nodeExpansion(node: XCascadeNode, click = true) {\r\n const level = Number(node.level);\r\n this.ngZone.run(() => {\r\n if (node.leaf) {\r\n if (this.nodes.length === level) {\r\n this.nodes = [...this.nodes, node.children] as XCascadeNode[][];\r\n this.selecteds = [...this.selecteds, node];\r\n } else {\r\n if (this.nodes.length > Number(level) + 1) {\r\n this.nodes = this.nodes.splice(0, level + 1);\r\n this.selecteds = this.selecteds.splice(0, level + 1);\r\n }\r\n this.nodes[level + 1] = node.children as XCascadeNode[];\r\n this.selecteds[level] = node;\r\n }\r\n this.values = this.selecteds.map((x) => x.id);\r\n this.cdr.detectChanges();\r\n } else if (click) {\r\n if (this.selecteds.length >= level + 1) {\r\n this.selecteds = this.selecteds.splice(0, level);\r\n }\r\n this.selecteds = [...this.selecteds, node];\r\n this.nodeEmit({\r\n node: node,\r\n nodes: this.selecteds,\r\n label: this.selecteds.map((x) => x.label).join(` / `)\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <ng-container *ngFor=\"let list of nodes\">\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger === 'hover' && nodeMouseleave()\"\r\n checked\r\n ></x-list>\r\n </ng-container>\r\n</div>\r\n","import {\r\n XParentIdentityProperty,\r\n XDataConvert,\r\n XData,\r\n XCorner,\r\n XWithConfig,\r\n XSize,\r\n XInputBoolean,\r\n XBoolean,\r\n XTrigger,\r\n XNumber\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, TemplateRef } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Cascade\r\n * @selector x-cascade\r\n * @decorator component\r\n */\r\nexport const XCascadePrefix = 'x-cascade';\r\nconst X_CONFIG_NAME = 'cascade';\r\n\r\n/**\r\n * Cascade Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCascadeProperty extends XControlValueAccessor<any> implements XCascadeOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XCascadeNode> = [];\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US 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 Sub node triggering method\r\n */\r\n @Input() @XWithConfig<XCascadeNodeTrigger>(X_CONFIG_NAME, 'click') nodeTrigger?: XCascadeNodeTrigger;\r\n /**\r\n * @zh_CN 子节点触发方式为 hover 时的延迟时间\r\n * @en_US Sub node triggering method\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 200) nodeHoverDelay?: XNumber;\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 Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<XCascadeNode>();\r\n}\r\n\r\n/**\r\n * Cascade Option\r\n * @undocument true\r\n */\r\nexport interface XCascadeOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XCascadeNode>;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (node: XCascadeNode) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN Cascade 数据对象\r\n * @en_US Cascade data object\r\n */\r\nexport interface XCascadeNode extends XParentIdentityProperty<XCascadeNode> {}\r\n\r\n/**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\nexport type XCascadeNodeTrigger = XTrigger;\r\n\r\n/**\r\n * Cascade-Portal\r\n * @selector x-cascade-portal\r\n * @decorator component\r\n */\r\nexport const XCascadePortalPrefix = 'x-cascade-portal';\r\n","import { XCascadePortalComponent } from './cascade-portal.component';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XCascadePrefix, XCascadeNode, XCascadeProperty } from './cascade.property';\r\nimport { XIsEmpty, XIsChange, XSetData, XGetChildren, XCorner, XClearClass } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-cascade',\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCascadeComponent)]\r\n})\r\nexport class XCascadeComponent extends XCascadeProperty implements OnInit, OnChanges {\r\n @ViewChild('cascade', { static: true }) cascade!: ElementRef;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this.setDisplayValue();\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n readonly: boolean = true;\r\n clearable: boolean = false;\r\n enter: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n datas: XCascadeNode[] = [];\r\n nodes: XCascadeNode[] = [];\r\n portal!: XPortalOverlayRef<XCascadePortalComponent>;\r\n icon: string = 'fto-chevron-down';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n valueTplContext: { $node: any; $nodes: any; $isValue: boolean } = { $node: null, $nodes: null, $isValue: true };\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n this.renderer.addClass(this.elementRef.nativeElement, XCascadePrefix);\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.cascade.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setData() {\r\n XSetData<XCascadeNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.datas = x;\r\n this.nodes = x.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XCascadeNode>(x, y, 0));\r\n this.setPortal();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.value)) {\r\n this.icon = '';\r\n this.clearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-chevron-down';\r\n this.clearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.valueTplContext.$nodes = null;\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n this.active = true;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XCascadePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.placement) {\r\n this.positionChange.next(place);\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n datas: this.datas,\r\n nodes: [this.nodes],\r\n value: this.value,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n nodeTpl: this.nodeTpl,\r\n nodeTrigger: this.nodeTrigger,\r\n nodeHoverDelay: this.nodeHoverDelay,\r\n inputCom: this.inputCom,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) => this.onNodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(selected: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) {\r\n this.value = selected.node.id;\r\n this.displayValue = selected.label;\r\n this.valueTplContext.$node = selected;\r\n this.valueTplContext.$nodes = selected.nodes;\r\n this.closeSubject.next();\r\n this.inputCom.inputFocus();\r\n if (this.onChange) this.onChange(this.value);\r\n this.nodeEmit.emit(selected);\r\n }\r\n\r\n setDisplayValue() {\r\n let node = this.datas.find((x) => x.id === this.value) as XCascadeNode;\r\n if (typeof node === 'undefined') {\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.valueTplContext.$nodes = null;\r\n return;\r\n } else {\r\n let selecteds = [node];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas.find((x) => x.id === node.pid) as XCascadeNode;\r\n selecteds = [node, ...selecteds];\r\n }\r\n this.displayValue = selecteds.map((x) => x.label).join(` / `);\r\n this.valueTplContext.$node = node;\r\n this.valueTplContext.$nodes = selecteds;\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-cascade-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.setData();\r\n this.setDisplayValue();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-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 (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\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 { XCascadeComponent } from './cascade.component';\r\nimport { XCascadePortalComponent } from './cascade-portal.component';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XCascadeProperty } from './cascade.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XCascadeComponent, XCascadePortalComponent, XCascadeProperty],\r\n exports: [XCascadeComponent, XCascadePortalComponent],\r\n imports: [CommonModule, FormsModule, XPortalModule, ReactiveFormsModule, XInputModule, XListModule, XBaseFormModule],\r\n entryComponents: [XCascadePortalComponent]\r\n})\r\nexport class XCascadeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -88,7 +88,8 @@ class XCheckboxComponent extends XCheckboxProperty {
|
|
|
88
88
|
this.setClassMap();
|
|
89
89
|
}
|
|
90
90
|
ngOnChanges(changes) {
|
|
91
|
-
|
|
91
|
+
const { data } = changes;
|
|
92
|
+
XIsChange(data) && this.setData();
|
|
92
93
|
}
|
|
93
94
|
ngOnDestroy() {
|
|
94
95
|
this._unSubject.next();
|
|
@@ -132,7 +133,7 @@ class XCheckboxComponent extends XCheckboxProperty {
|
|
|
132
133
|
this.cdr.detectChanges();
|
|
133
134
|
});
|
|
134
135
|
}
|
|
135
|
-
trackByItem(
|
|
136
|
+
trackByItem(_index, item) {
|
|
136
137
|
return item.id;
|
|
137
138
|
}
|
|
138
139
|
formControlChanges() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-checkbox.js","sources":["../../../../lib/ng-nest/ui/checkbox/checkbox.property.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.html","../../../../lib/ng-nest/ui/checkbox/checkbox.module.ts","../../../../lib/ng-nest/ui/checkbox/ng-nest-ui-checkbox.ts"],"sourcesContent":["import {\r\n XData,\r\n XTemplate,\r\n XIdentityProperty,\r\n XDataConvert,\r\n XInputBoolean,\r\n XSize,\r\n XBoolean,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Checkbox\r\n * @selector x-checkbox\r\n * @decorator component\r\n */\r\nexport const XCheckboxPrefix = 'x-checkbox';\r\nconst X_CONFIG_NAME = 'checkbox';\r\n\r\n/**\r\n * Checkbox Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCheckboxProperty extends XControlValueAccessor<boolean | Array<any>> implements XCheckboxOption {\r\n /**\r\n * @zh_CN 多选框数据\r\n * @en_US Checkbox data\r\n */\r\n @Input() @XDataConvert() data: XData<XCheckboxNode> = [];\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n @Input() @XInputBoolean() button?: XBoolean;\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n @Input() @XInputBoolean() icon?: XBoolean;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n @Input() @XInputBoolean() indeterminate?: XBoolean;\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\r\n/**\r\n * Checkbox Option\r\n * @undocument true\r\n */\r\nexport interface XCheckboxOption extends XFormOption {\r\n /**\r\n * @zh_CN 单选框数据\r\n * @en_US Radio data\r\n */\r\n data?: XData<XCheckboxNode>;\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n button?: XBoolean;\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n icon?: XBoolean;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n indeterminate?: XBoolean;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n}\r\n\r\n/**\r\n * @zh_CN Checkbox 数据对象\r\n * @en_US Checkbox data object\r\n */\r\nexport interface XCheckboxNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n disabled?: boolean;\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 message\r\n */\r\n title?: string;\r\n /**\r\n * @zh_CN 标签文字\r\n * @en_US Label text\r\n */\r\n label?: XTemplate;\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XCheckboxPrefix, XCheckboxNode, XCheckboxProperty } from './checkbox.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XIsChange, XSetData, XClearClass, XConfigService, XBoolean, XJustify, XAlign, XDirection } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XCheckboxPrefix}`,\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCheckboxComponent)]\r\n})\r\nexport class XCheckboxComponent extends XCheckboxProperty implements OnChanges {\r\n @ViewChild('checkbox', { static: true }) checkbox!: ElementRef;\r\n\r\n writeValue(value: boolean | Array<any>) {\r\n this.value = value;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getDisabled(disabled?: boolean) {\r\n return (this.disabled || disabled) as XBoolean;\r\n }\r\n\r\n nodes: XCheckboxNode[] = [];\r\n single: boolean = false;\r\n private _unSubject = new Subject<void>();\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.setFlex(this.checkbox.nativeElement, this.renderer, this.justify as XJustify, this.align as XAlign, this.direction as XDirection);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n checkboxClick(event: Event, node: XCheckboxNode) {\r\n event.preventDefault();\r\n if (this.disabled || node.disabled) return;\r\n if (this.single) {\r\n this.value = !this.value;\r\n } else {\r\n this.value = this.value as Array<any> || []; \r\n let index = this.value.indexOf(node.id);\r\n if (index >= 0) {\r\n this.value.splice(index, 1);\r\n this.value = [...this.value];\r\n } else this.value = [...this.value, node.id];\r\n }\r\n this.cdr.detectChanges();\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n getChecked(id: any): boolean {\r\n if (this.single) return this.value as boolean;\r\n else return Array.isArray(this.value) && this.value.includes(id);\r\n }\r\n\r\n private setData() {\r\n XSetData<XCheckboxNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.single = this.nodes.length === 1;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n trackByItem(index: number, item: XCheckboxNode) {\r\n return item.id;\r\n }\r\n\r\n formControlChanges() {\r\n this.setData();\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #checkbox\r\n class=\"x-checkbox\"\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>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <ng-container *ngIf=\"button || icon; else default\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #default>\r\n <div class=\"x-checkbox-row\">\r\n <div\r\n class=\"x-checkbox-item\"\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [class.x-checked]=\"getChecked(item.id)\"\r\n [class.x-disabled]=\"disabled || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCheckboxComponent } from './checkbox.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XCheckboxProperty } from './checkbox.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XCheckboxComponent, XCheckboxProperty],\r\n exports: [XCheckboxComponent],\r\n imports: [CommonModule, FormsModule, XButtonModule, XOutletModule, XBaseFormModule]\r\n})\r\nexport class XCheckboxModule {}\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-checkbox.js","sources":["../../../../lib/ng-nest/ui/checkbox/checkbox.property.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.html","../../../../lib/ng-nest/ui/checkbox/checkbox.module.ts","../../../../lib/ng-nest/ui/checkbox/ng-nest-ui-checkbox.ts"],"sourcesContent":["import { XData, XTemplate, XIdentityProperty, XDataConvert, XInputBoolean, XSize, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Checkbox\r\n * @selector x-checkbox\r\n * @decorator component\r\n */\r\nexport const XCheckboxPrefix = 'x-checkbox';\r\nconst X_CONFIG_NAME = 'checkbox';\r\n\r\n/**\r\n * Checkbox Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCheckboxProperty extends XControlValueAccessor<boolean | Array<any>> implements XCheckboxOption {\r\n /**\r\n * @zh_CN 多选框数据\r\n * @en_US Checkbox data\r\n */\r\n @Input() @XDataConvert() data: XData<XCheckboxNode> = [];\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n @Input() @XInputBoolean() button?: XBoolean;\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n @Input() @XInputBoolean() icon?: XBoolean;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n @Input() @XInputBoolean() indeterminate?: XBoolean;\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\r\n/**\r\n * Checkbox Option\r\n * @undocument true\r\n */\r\nexport interface XCheckboxOption extends XFormOption {\r\n /**\r\n * @zh_CN 单选框数据\r\n * @en_US Radio data\r\n */\r\n data?: XData<XCheckboxNode>;\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n button?: XBoolean;\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n icon?: XBoolean;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n indeterminate?: XBoolean;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n}\r\n\r\n/**\r\n * @zh_CN Checkbox 数据对象\r\n * @en_US Checkbox data object\r\n */\r\nexport interface XCheckboxNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n disabled?: boolean;\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 message\r\n */\r\n title?: string;\r\n /**\r\n * @zh_CN 标签文字\r\n * @en_US Label text\r\n */\r\n label?: XTemplate;\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XCheckboxPrefix, XCheckboxNode, XCheckboxProperty } from './checkbox.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XIsChange, XSetData, XClearClass, XConfigService, XBoolean, XJustify, XAlign, XDirection } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XCheckboxPrefix}`,\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCheckboxComponent)]\r\n})\r\nexport class XCheckboxComponent extends XCheckboxProperty implements OnChanges {\r\n @ViewChild('checkbox', { static: true }) checkbox!: ElementRef;\r\n\r\n writeValue(value: boolean | Array<any>) {\r\n this.value = value;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getDisabled(disabled?: boolean) {\r\n return (this.disabled || disabled) as XBoolean;\r\n }\r\n\r\n nodes: XCheckboxNode[] = [];\r\n single: boolean = false;\r\n private _unSubject = new Subject<void>();\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.setFlex(this.checkbox.nativeElement, this.renderer, this.justify as XJustify, this.align as XAlign, this.direction as XDirection);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n checkboxClick(event: Event, node: XCheckboxNode) {\r\n event.preventDefault();\r\n if (this.disabled || node.disabled) return;\r\n if (this.single) {\r\n this.value = !this.value;\r\n } else {\r\n this.value = (this.value as Array<any>) || [];\r\n let index = this.value.indexOf(node.id);\r\n if (index >= 0) {\r\n this.value.splice(index, 1);\r\n this.value = [...this.value];\r\n } else this.value = [...this.value, node.id];\r\n }\r\n this.cdr.detectChanges();\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n getChecked(id: any): boolean {\r\n if (this.single) return this.value as boolean;\r\n else return Array.isArray(this.value) && this.value.includes(id);\r\n }\r\n\r\n private setData() {\r\n XSetData<XCheckboxNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.single = this.nodes.length === 1;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n trackByItem(_index: number, item: XCheckboxNode) {\r\n return item.id;\r\n }\r\n\r\n formControlChanges() {\r\n this.setData();\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #checkbox\r\n class=\"x-checkbox\"\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>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <ng-container *ngIf=\"button || icon; else default\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #default>\r\n <div class=\"x-checkbox-row\">\r\n <div\r\n class=\"x-checkbox-item\"\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [class.x-checked]=\"getChecked(item.id)\"\r\n [class.x-disabled]=\"disabled || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCheckboxComponent } from './checkbox.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XCheckboxProperty } from './checkbox.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XCheckboxComponent, XCheckboxProperty],\r\n exports: [XCheckboxComponent],\r\n imports: [CommonModule, FormsModule, XButtonModule, XOutletModule, XBaseFormModule]\r\n})\r\nexport class XCheckboxModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -84,7 +84,7 @@ class XColorPickerPortalComponent {
|
|
|
84
84
|
this.animating(false);
|
|
85
85
|
event.toState === 'void' && this.destroyPortal();
|
|
86
86
|
}
|
|
87
|
-
start(
|
|
87
|
+
start() {
|
|
88
88
|
this.animating(true);
|
|
89
89
|
}
|
|
90
90
|
ngOnInit() {
|
|
@@ -411,7 +411,7 @@ class XColorPickerPortalComponent {
|
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
413
|
/** @nocollapse */ XColorPickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XColorPickerPortalComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DecimalPipe }, { token: i1.PercentPipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
414
|
-
/** @nocollapse */ XColorPickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XColorPickerPortalComponent, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;top:0;left:0;right:0;bottom:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], components: [{ type: i2.XSliderSelectComponent, selector: "x-slider-select" }, { type: i3.XTabsComponent, selector: "x-tabs" }, { type: i3.XTabComponent, selector: "x-tab" }, { type: i4.XInputComponent, selector: "x-input" }], directives: [{ type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
414
|
+
/** @nocollapse */ XColorPickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XColorPickerPortalComponent, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;top:0;left:0;right:0;bottom:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], components: [{ type: i2.XSliderSelectComponent, selector: "x-slider-select" }, { type: i3.XTabsComponent, selector: "x-tabs" }, { type: i3.XTabComponent, selector: "x-tab" }, { type: i4.XInputComponent, selector: "x-input" }], directives: [{ type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
415
415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
|
|
416
416
|
type: Component,
|
|
417
417
|
args: [{
|
|
@@ -447,10 +447,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
447
447
|
}] } });
|
|
448
448
|
|
|
449
449
|
class XColorPickerComponent extends XColorPickerProperty {
|
|
450
|
-
constructor(renderer,
|
|
450
|
+
constructor(renderer, cdr, portalService, viewContainerRef, overlay) {
|
|
451
451
|
super();
|
|
452
452
|
this.renderer = renderer;
|
|
453
|
-
this.elementRef = elementRef;
|
|
454
453
|
this.cdr = cdr;
|
|
455
454
|
this.portalService = portalService;
|
|
456
455
|
this.viewContainerRef = viewContainerRef;
|
|
@@ -496,7 +495,7 @@ class XColorPickerComponent extends XColorPickerProperty {
|
|
|
496
495
|
this._unSubject.unsubscribe();
|
|
497
496
|
}
|
|
498
497
|
setSubject() {
|
|
499
|
-
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((
|
|
498
|
+
this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
|
|
500
499
|
this.closePortal();
|
|
501
500
|
});
|
|
502
501
|
}
|
|
@@ -506,10 +505,10 @@ class XColorPickerComponent extends XColorPickerProperty {
|
|
|
506
505
|
height: `${this.inputCom.inputRef.nativeElement.clientHeight}px`
|
|
507
506
|
};
|
|
508
507
|
if (this.direction === 'column') {
|
|
509
|
-
this.valueStyle
|
|
508
|
+
this.valueStyle['bottom'] = 0;
|
|
510
509
|
}
|
|
511
510
|
if (this.direction === 'row') {
|
|
512
|
-
this.valueStyle
|
|
511
|
+
this.valueStyle['bottom'] = 0;
|
|
513
512
|
}
|
|
514
513
|
}
|
|
515
514
|
menter() {
|
|
@@ -632,8 +631,8 @@ class XColorPickerComponent extends XColorPickerProperty {
|
|
|
632
631
|
this.cdr.detectChanges();
|
|
633
632
|
}
|
|
634
633
|
}
|
|
635
|
-
/** @nocollapse */ XColorPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XColorPickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.
|
|
636
|
-
/** @nocollapse */ XColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XColorPickerComponent, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-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 [inputStyle]=\"inputStyle\"\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-color-picker{display:inline-block}.x-color-picker{margin:0;padding:0;width:100%}\n"], components: [{ type: i4.XInputComponent, selector: "x-input" }], directives: [{ type: i4$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
634
|
+
/** @nocollapse */ XColorPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XColorPickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1$1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2$1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
|
635
|
+
/** @nocollapse */ XColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XColorPickerComponent, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-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 [inputStyle]=\"inputStyle\"\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-color-picker{display:inline-block}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"], components: [{ type: i4.XInputComponent, selector: "x-input" }], directives: [{ type: i4$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
637
636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XColorPickerComponent, decorators: [{
|
|
638
637
|
type: Component,
|
|
639
638
|
args: [{
|
|
@@ -644,7 +643,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
644
643
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
645
644
|
providers: [XValueAccessor(XColorPickerComponent)]
|
|
646
645
|
}]
|
|
647
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.
|
|
646
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1$1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2$1.Overlay }]; }, propDecorators: { colorPicker: [{
|
|
648
647
|
type: ViewChild,
|
|
649
648
|
args: ['colorPicker', { static: true }]
|
|
650
649
|
}], inputCom: [{
|