@ng-nest/ui 17.0.0 → 17.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/affix/affix.component.d.ts +1 -2
- package/affix/affix.module.d.ts +1 -3
- package/alert/alert.component.d.ts +4 -5
- package/alert/alert.module.d.ts +1 -8
- package/anchor/anchor-inner.component.d.ts +1 -1
- package/anchor/anchor.component.d.ts +6 -7
- package/anchor/anchor.module.d.ts +2 -6
- package/api/api.component.d.ts +4 -4
- package/api/api.module.d.ts +1 -2
- package/auto-complete/auto-complete-portal.component.d.ts +3 -5
- package/auto-complete/auto-complete.component.d.ts +12 -13
- package/auto-complete/auto-complete.module.d.ts +1 -9
- package/avatar/avatar-group.component.d.ts +1 -2
- package/avatar/avatar.component.d.ts +6 -7
- package/avatar/avatar.module.d.ts +2 -6
- package/back-top/back-top.component.d.ts +7 -12
- package/back-top/back-top.module.d.ts +1 -5
- package/badge/badge.component.d.ts +3 -8
- package/badge/badge.module.d.ts +1 -3
- package/base-form/base-form.component.d.ts +1 -1
- package/base-form/base-form.module.d.ts +1 -2
- package/border/border.component.d.ts +4 -4
- package/border/border.module.d.ts +1 -1
- package/button/button.component.d.ts +8 -10
- package/button/button.module.d.ts +1 -5
- package/button/buttons.component.d.ts +4 -5
- package/calendar/calendar.component.d.ts +9 -13
- package/calendar/calendar.module.d.ts +1 -10
- package/card/card.component.d.ts +2 -6
- package/card/card.module.d.ts +1 -5
- package/carousel/carousel-panel.component.d.ts +10 -13
- package/carousel/carousel.component.d.ts +4 -7
- package/carousel/carousel.module.d.ts +1 -5
- package/cascade/cascade-portal.component.d.ts +4 -5
- package/cascade/cascade.component.d.ts +14 -13
- package/cascade/cascade.module.d.ts +1 -9
- package/checkbox/checkbox.component.d.ts +6 -8
- package/checkbox/checkbox.module.d.ts +1 -8
- package/collapse/collapse-panel.component.d.ts +5 -8
- package/collapse/collapse.component.d.ts +3 -7
- package/collapse/collapse.module.d.ts +1 -5
- package/color/color.component.d.ts +4 -5
- package/color/color.module.d.ts +1 -3
- package/color-picker/color-picker-portal.component.d.ts +7 -11
- package/color-picker/color-picker.component.d.ts +11 -12
- package/color-picker/color-picker.module.d.ts +1 -11
- package/comment/comment-reply.component.d.ts +4 -9
- package/comment/comment.component.d.ts +5 -9
- package/comment/comment.module.d.ts +1 -11
- package/container/aside.component.d.ts +5 -5
- package/container/container.component.d.ts +2 -3
- package/container/container.module.d.ts +1 -3
- package/container/footer.component.d.ts +5 -7
- package/container/header.component.d.ts +5 -7
- package/container/main.component.d.ts +4 -4
- package/crumb/crumb.component.d.ts +4 -5
- package/crumb/crumb.module.d.ts +1 -5
- package/date-picker/date-picker-portal.component.d.ts +5 -9
- package/date-picker/date-picker.component.d.ts +14 -16
- package/date-picker/date-picker.module.d.ts +2 -21
- package/date-picker/date-quarter.pipe.d.ts +1 -1
- package/date-picker/date-range-portal.component.d.ts +1 -1
- package/date-picker/date-range.component.d.ts +16 -18
- package/date-picker/picker-date.component.d.ts +8 -11
- package/date-picker/picker-month.component.d.ts +8 -11
- package/date-picker/picker-quarter.component.d.ts +9 -14
- package/date-picker/picker-year.component.d.ts +5 -8
- package/description/description-item.component.d.ts +1 -2
- package/description/description.component.d.ts +4 -5
- package/description/description.module.d.ts +2 -5
- package/dialog/dialog-container.component.d.ts +1 -2
- package/dialog/dialog-portal.component.d.ts +1 -1
- package/dialog/dialog-portal.directives.d.ts +13 -17
- package/dialog/dialog.component.d.ts +15 -17
- package/dialog/dialog.module.d.ts +1 -14
- package/dialog/dialog.service.d.ts +8 -10
- package/doc/doc.component.d.ts +6 -6
- package/doc/doc.module.d.ts +1 -2
- package/drag/drag.directive.d.ts +5 -6
- package/drag/drag.module.d.ts +1 -2
- package/drawer/drawer-container.component.d.ts +1 -2
- package/drawer/drawer-portal.component.d.ts +1 -2
- package/drawer/drawer-portal.directives.d.ts +5 -6
- package/drawer/drawer.component.d.ts +10 -15
- package/drawer/drawer.module.d.ts +2 -8
- package/drawer/drawer.service.d.ts +5 -7
- package/dropdown/dropdown-portal.component.d.ts +1 -1
- package/dropdown/dropdown.component.d.ts +10 -13
- package/dropdown/dropdown.module.d.ts +1 -7
- package/empty/empty.component.d.ts +4 -7
- package/empty/empty.module.d.ts +1 -6
- package/esm2022/affix/affix.component.mjs +10 -10
- package/esm2022/affix/affix.module.mjs +4 -7
- package/esm2022/alert/alert.component.mjs +26 -18
- package/esm2022/alert/alert.module.mjs +4 -12
- package/esm2022/alert/alert.property.mjs +1 -1
- package/esm2022/anchor/anchor-inner.component.mjs +3 -2
- package/esm2022/anchor/anchor.component.mjs +21 -21
- package/esm2022/anchor/anchor.module.mjs +4 -9
- package/esm2022/anchor/anchor.property.mjs +1 -1
- package/esm2022/api/api.component.mjs +13 -11
- package/esm2022/api/api.module.mjs +4 -6
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +14 -15
- package/esm2022/auto-complete/auto-complete.component.mjs +43 -30
- package/esm2022/auto-complete/auto-complete.module.mjs +5 -14
- package/esm2022/avatar/avatar-group.component.mjs +6 -6
- package/esm2022/avatar/avatar.component.mjs +17 -18
- package/esm2022/avatar/avatar.module.mjs +4 -9
- package/esm2022/avatar/avatar.property.mjs +1 -1
- package/esm2022/back-top/back-top.component.mjs +25 -29
- package/esm2022/back-top/back-top.module.mjs +4 -9
- package/esm2022/badge/badge.component.mjs +18 -22
- package/esm2022/badge/badge.module.mjs +4 -7
- package/esm2022/base-form/base-form.component.mjs +9 -4
- package/esm2022/base-form/base-form.module.mjs +4 -5
- package/esm2022/base-form/base-form.property.mjs +1 -1
- package/esm2022/border/border.component.mjs +13 -11
- package/esm2022/border/border.module.mjs +3 -3
- package/esm2022/button/button.component.mjs +19 -23
- package/esm2022/button/button.module.mjs +4 -9
- package/esm2022/button/button.property.mjs +1 -1
- package/esm2022/button/buttons.component.mjs +15 -14
- package/esm2022/calendar/calendar.component.mjs +35 -25
- package/esm2022/calendar/calendar.module.mjs +4 -14
- package/esm2022/card/card.component.mjs +14 -16
- package/esm2022/card/card.module.mjs +4 -9
- package/esm2022/carousel/carousel-panel.component.mjs +37 -33
- package/esm2022/carousel/carousel.component.mjs +19 -22
- package/esm2022/carousel/carousel.module.mjs +5 -10
- package/esm2022/carousel/carousel.property.mjs +1 -1
- package/esm2022/cascade/cascade-portal.component.mjs +19 -17
- package/esm2022/cascade/cascade.component.mjs +37 -30
- package/esm2022/cascade/cascade.module.mjs +5 -14
- package/esm2022/checkbox/checkbox.component.mjs +31 -23
- package/esm2022/checkbox/checkbox.module.mjs +4 -12
- package/esm2022/collapse/collapse-panel.component.mjs +19 -20
- package/esm2022/collapse/collapse.component.mjs +11 -14
- package/esm2022/collapse/collapse.module.mjs +4 -9
- package/esm2022/color/color.component.mjs +15 -16
- package/esm2022/color/color.module.mjs +4 -7
- package/esm2022/color-picker/color-picker-portal.component.mjs +53 -35
- package/esm2022/color-picker/color-picker.component.mjs +36 -35
- package/esm2022/color-picker/color-picker.module.mjs +5 -42
- package/esm2022/comment/comment-reply.component.mjs +18 -18
- package/esm2022/comment/comment.component.mjs +32 -24
- package/esm2022/comment/comment.module.mjs +4 -41
- package/esm2022/comment/comment.property.mjs +1 -1
- package/esm2022/container/aside.component.mjs +15 -12
- package/esm2022/container/container.component.mjs +14 -13
- package/esm2022/container/container.module.mjs +5 -35
- package/esm2022/container/footer.component.mjs +17 -20
- package/esm2022/container/header.component.mjs +17 -20
- package/esm2022/container/main.component.mjs +14 -11
- package/esm2022/core/config/config.service.mjs +8 -3
- package/esm2022/core/services/preloading-strategy.service.mjs +4 -3
- package/esm2022/crumb/crumb.component.mjs +15 -15
- package/esm2022/crumb/crumb.module.mjs +4 -9
- package/esm2022/date-picker/date-picker-portal.component.mjs +36 -27
- package/esm2022/date-picker/date-picker.component.mjs +51 -46
- package/esm2022/date-picker/date-picker.module.mjs +5 -106
- package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
- package/esm2022/date-picker/date-range-portal.component.mjs +22 -11
- package/esm2022/date-picker/date-range.component.mjs +53 -51
- package/esm2022/date-picker/picker-date.component.mjs +44 -38
- package/esm2022/date-picker/picker-month.component.mjs +30 -28
- package/esm2022/date-picker/picker-quarter.component.mjs +30 -30
- package/esm2022/date-picker/picker-year.component.mjs +25 -23
- package/esm2022/description/description-item.component.mjs +7 -9
- package/esm2022/description/description.component.mjs +13 -13
- package/esm2022/description/description.module.mjs +4 -8
- package/esm2022/dialog/dialog-container.component.mjs +8 -7
- package/esm2022/dialog/dialog-portal.component.mjs +27 -11
- package/esm2022/dialog/dialog-portal.directives.mjs +39 -39
- package/esm2022/dialog/dialog-ref.mjs +1 -1
- package/esm2022/dialog/dialog.component.mjs +40 -47
- package/esm2022/dialog/dialog.module.mjs +11 -69
- package/esm2022/dialog/dialog.service.mjs +15 -16
- package/esm2022/doc/doc.component.mjs +12 -9
- package/esm2022/doc/doc.module.mjs +4 -6
- package/esm2022/drag/drag.directive.mjs +10 -10
- package/esm2022/drag/drag.module.mjs +4 -6
- package/esm2022/drawer/drawer-container.component.mjs +8 -7
- package/esm2022/drawer/drawer-portal.component.mjs +12 -11
- package/esm2022/drawer/drawer-portal.directives.mjs +17 -16
- package/esm2022/drawer/drawer.component.mjs +23 -32
- package/esm2022/drawer/drawer.module.mjs +9 -25
- package/esm2022/drawer/drawer.service.mjs +14 -14
- package/esm2022/dropdown/dropdown-portal.component.mjs +7 -5
- package/esm2022/dropdown/dropdown.component.mjs +31 -24
- package/esm2022/dropdown/dropdown.module.mjs +5 -12
- package/esm2022/empty/empty.component.mjs +21 -17
- package/esm2022/empty/empty.module.mjs +4 -10
- package/esm2022/examples/examples.component.mjs +12 -9
- package/esm2022/examples/examples.module.mjs +4 -6
- package/esm2022/find/find.component.mjs +48 -29
- package/esm2022/find/find.module.mjs +4 -52
- package/esm2022/form/control.component.mjs +69 -39
- package/esm2022/form/form.component.mjs +27 -18
- package/esm2022/form/form.module.mjs +4 -69
- package/esm2022/highlight/highlight.component.mjs +26 -23
- package/esm2022/highlight/highlight.module.mjs +4 -8
- package/esm2022/i18n/i18n.directive.mjs +13 -10
- package/esm2022/i18n/i18n.module.mjs +3 -3
- package/esm2022/i18n/i18n.pipe.mjs +4 -3
- package/esm2022/i18n/i18n.service.mjs +7 -11
- package/esm2022/icon/icon.component.mjs +20 -21
- package/esm2022/icon/icon.module.mjs +4 -9
- package/esm2022/icon/icon.property.mjs +1 -1
- package/esm2022/icon/icon.service.mjs +35 -34
- package/esm2022/image/image-group.component.mjs +4 -3
- package/esm2022/image/image-preview.component.mjs +26 -31
- package/esm2022/image/image.component.mjs +30 -29
- package/esm2022/image/image.module.mjs +4 -13
- package/esm2022/inner/inner.component.mjs +14 -13
- package/esm2022/inner/inner.module.mjs +4 -7
- package/esm2022/input/input-group.component.mjs +12 -13
- package/esm2022/input/input.component.mjs +33 -34
- package/esm2022/input/input.module.mjs +4 -11
- package/esm2022/input-number/input-number.component.mjs +23 -26
- package/esm2022/input-number/input-number.module.mjs +4 -11
- package/esm2022/keyword/keyword.directive.mjs +13 -13
- package/esm2022/keyword/keyword.module.mjs +4 -7
- package/esm2022/keyword/keyword.property.mjs +3 -3
- package/esm2022/layout/col.component.mjs +14 -18
- package/esm2022/layout/layout.module.mjs +4 -7
- package/esm2022/layout/layout.property.mjs +1 -1
- package/esm2022/layout/row.component.mjs +12 -12
- package/esm2022/link/link.component.mjs +17 -18
- package/esm2022/link/link.module.mjs +4 -10
- package/esm2022/list/list-drop-group.directive.mjs +3 -2
- package/esm2022/list/list-option.component.mjs +16 -16
- package/esm2022/list/list.component.mjs +38 -32
- package/esm2022/list/list.module.mjs +4 -52
- package/esm2022/loading/loading.component.mjs +19 -21
- package/esm2022/loading/loading.module.mjs +4 -10
- package/esm2022/menu/menu-node.component.mjs +17 -17
- package/esm2022/menu/menu.component.mjs +21 -23
- package/esm2022/menu/menu.module.mjs +4 -11
- package/esm2022/message/message.component.mjs +10 -11
- package/esm2022/message/message.module.mjs +5 -12
- package/esm2022/message/message.service.mjs +12 -12
- package/esm2022/message-box/message-box.component.mjs +20 -8
- package/esm2022/message-box/message-box.module.mjs +5 -47
- package/esm2022/message-box/message-box.service.mjs +12 -11
- package/esm2022/notification/notification.component.mjs +10 -11
- package/esm2022/notification/notification.module.mjs +5 -12
- package/esm2022/notification/notification.service.mjs +14 -10
- package/esm2022/outlet/outlet.directive.mjs +9 -9
- package/esm2022/outlet/outlet.module.mjs +4 -6
- package/esm2022/page-header/page-header.component.mjs +19 -18
- package/esm2022/page-header/page-header.module.mjs +4 -8
- package/esm2022/pagination/pagination.component.mjs +39 -29
- package/esm2022/pagination/pagination.module.mjs +4 -13
- package/esm2022/pattern/pattern.component.mjs +12 -9
- package/esm2022/pattern/pattern.module.mjs +4 -6
- package/esm2022/popconfirm/popconfirm.component.mjs +24 -25
- package/esm2022/popconfirm/popconfirm.module.mjs +4 -11
- package/esm2022/popover/popover-portal.component.mjs +15 -14
- package/esm2022/popover/popover.directive.mjs +16 -18
- package/esm2022/popover/popover.module.mjs +5 -11
- package/esm2022/portal/portal.module.mjs +6 -9
- package/esm2022/portal/portal.service.mjs +12 -11
- package/esm2022/progress/progress.component.mjs +16 -18
- package/esm2022/progress/progress.module.mjs +4 -9
- package/esm2022/radio/radio.component.mjs +21 -21
- package/esm2022/radio/radio.module.mjs +4 -12
- package/esm2022/rate/rate.component.mjs +22 -21
- package/esm2022/rate/rate.module.mjs +4 -11
- package/esm2022/resizable/resizable.directive.mjs +56 -45
- package/esm2022/resizable/resizable.module.mjs +5 -7
- package/esm2022/resizable/resizable.property.mjs +3 -3
- package/esm2022/result/result.component.mjs +15 -18
- package/esm2022/result/result.module.mjs +4 -9
- package/esm2022/ripple/ripple.directive.mjs +11 -10
- package/esm2022/ripple/ripple.module.mjs +5 -8
- package/esm2022/select/select-portal.component.mjs +6 -4
- package/esm2022/select/select.component.mjs +52 -50
- package/esm2022/select/select.module.mjs +5 -46
- package/esm2022/skeleton/skeleton.component.mjs +14 -16
- package/esm2022/skeleton/skeleton.module.mjs +4 -8
- package/esm2022/slider/slider.component.mjs +38 -35
- package/esm2022/slider/slider.module.mjs +5 -11
- package/esm2022/slider-select/slider-select.component.mjs +45 -37
- package/esm2022/slider-select/slider-select.module.mjs +4 -36
- package/esm2022/statistic/countdown.component.mjs +14 -15
- package/esm2022/statistic/statistic.component.mjs +13 -13
- package/esm2022/statistic/statistic.module.mjs +4 -9
- package/esm2022/steps/steps.component.mjs +17 -18
- package/esm2022/steps/steps.module.mjs +4 -9
- package/esm2022/switch/switch.component.mjs +18 -17
- package/esm2022/switch/switch.module.mjs +4 -11
- package/esm2022/table/table-body.component.mjs +19 -9
- package/esm2022/table/table-foot.component.mjs +12 -15
- package/esm2022/table/table-head.component.mjs +33 -27
- package/esm2022/table/table.component.mjs +20 -10
- package/esm2022/table/table.module.mjs +4 -69
- package/esm2022/tabs/tab-content.component.mjs +12 -9
- package/esm2022/tabs/tab-link.directive.mjs +7 -5
- package/esm2022/tabs/tab.component.mjs +11 -10
- package/esm2022/tabs/tabs.component.mjs +28 -26
- package/esm2022/tabs/tabs.module.mjs +5 -26
- package/esm2022/tag/tag.component.mjs +16 -19
- package/esm2022/tag/tag.module.mjs +4 -9
- package/esm2022/text-retract/text-retract.component.mjs +17 -18
- package/esm2022/text-retract/text-retract.module.mjs +4 -10
- package/esm2022/textarea/textarea.component.mjs +24 -24
- package/esm2022/textarea/textarea.module.mjs +4 -10
- package/esm2022/theme/theme.component.mjs +44 -30
- package/esm2022/theme/theme.module.mjs +4 -40
- package/esm2022/time-ago/time-ago.module.mjs +4 -6
- package/esm2022/time-ago/time-ago.pipe.mjs +20 -20
- package/esm2022/time-picker/time-picker-frame.component.mjs +31 -29
- package/esm2022/time-picker/time-picker-portal.component.mjs +19 -19
- package/esm2022/time-picker/time-picker.component.mjs +39 -40
- package/esm2022/time-picker/time-picker.module.mjs +5 -46
- package/esm2022/time-range/time-range.module.mjs +4 -4
- package/esm2022/time-range/time-range.pipe.mjs +3 -3
- package/esm2022/timeline/timeline.component.mjs +17 -19
- package/esm2022/timeline/timeline.module.mjs +4 -11
- package/esm2022/tooltip/tooltip-portal.component.mjs +15 -14
- package/esm2022/tooltip/tooltip.directive.mjs +15 -18
- package/esm2022/tooltip/tooltip.module.mjs +5 -11
- package/esm2022/transfer/transfer.component.mjs +68 -54
- package/esm2022/transfer/transfer.module.mjs +4 -57
- package/esm2022/tree/tree-node.component.mjs +36 -29
- package/esm2022/tree/tree.component.mjs +10 -12
- package/esm2022/tree/tree.module.mjs +4 -41
- package/esm2022/tree/tree.service.mjs +4 -3
- package/esm2022/tree-file/tree-file.component.mjs +34 -30
- package/esm2022/tree-file/tree-file.module.mjs +4 -13
- package/esm2022/tree-select/tree-select-portal.component.mjs +25 -25
- package/esm2022/tree-select/tree-select.component.mjs +53 -51
- package/esm2022/tree-select/tree-select.module.mjs +6 -54
- package/esm2022/typography/typography.component.mjs +11 -11
- package/esm2022/typography/typography.module.mjs +4 -7
- package/esm2022/upload/upload-portal.component.mjs +11 -12
- package/esm2022/upload/upload.component.mjs +42 -39
- package/esm2022/upload/upload.module.mjs +4 -53
- package/examples/examples.component.d.ts +6 -6
- package/examples/examples.module.d.ts +1 -2
- package/fesm2022/ng-nest-ui-affix.mjs +12 -15
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +26 -25
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +24 -26
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +15 -15
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +58 -50
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +23 -27
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +26 -33
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +20 -26
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +11 -6
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-border.mjs +14 -12
- package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +30 -38
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +35 -33
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +15 -21
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +52 -54
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +54 -51
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +32 -30
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +27 -36
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +84 -98
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +16 -18
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +43 -72
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +61 -94
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +10 -4
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +16 -20
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +247 -293
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +19 -25
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +180 -223
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +13 -12
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +13 -14
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +114 -133
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +39 -33
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +21 -24
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +13 -12
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +49 -76
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +88 -112
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +28 -27
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +21 -21
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +55 -57
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +50 -61
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +15 -17
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +25 -31
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +41 -49
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +17 -19
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +25 -31
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +18 -24
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +51 -86
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +20 -27
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +33 -41
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +33 -58
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +22 -28
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +24 -26
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +11 -13
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +20 -23
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +39 -37
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +13 -12
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +25 -33
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +31 -35
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +25 -25
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +16 -22
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +22 -28
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +23 -27
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +62 -52
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +16 -23
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +14 -15
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +59 -92
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +15 -20
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +46 -66
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +40 -42
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +25 -30
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +18 -23
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +19 -23
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +86 -128
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +52 -63
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +17 -24
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +17 -23
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +25 -29
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +45 -64
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +21 -23
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +82 -119
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +5 -5
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +18 -26
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +30 -35
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +68 -104
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +35 -39
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +77 -119
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +48 -76
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +13 -15
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +51 -95
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.component.d.ts +6 -7
- package/find/find.module.d.ts +1 -13
- package/form/control.component.d.ts +6 -7
- package/form/form.component.d.ts +4 -6
- package/form/form.module.d.ts +1 -24
- package/highlight/highlight.component.d.ts +12 -10
- package/highlight/highlight.module.d.ts +1 -4
- package/i18n/i18n.directive.d.ts +6 -7
- package/i18n/i18n.module.d.ts +1 -1
- package/i18n/i18n.pipe.d.ts +1 -1
- package/i18n/i18n.service.d.ts +3 -2
- package/icon/icon.component.d.ts +7 -9
- package/icon/icon.module.d.ts +1 -3
- package/icon/icon.property.d.ts +1 -1
- package/icon/icon.service.d.ts +6 -7
- package/image/image-group.component.d.ts +1 -1
- package/image/image-preview.component.d.ts +5 -10
- package/image/image.component.d.ts +9 -14
- package/image/image.module.d.ts +3 -11
- package/inner/inner.component.d.ts +2 -3
- package/inner/inner.module.d.ts +1 -3
- package/input/input-group.component.d.ts +3 -6
- package/input/input.component.d.ts +8 -10
- package/input/input.module.d.ts +2 -8
- package/input-number/input-number.component.d.ts +5 -6
- package/input-number/input-number.module.d.ts +1 -7
- package/keyword/keyword.directive.d.ts +3 -4
- package/keyword/keyword.module.d.ts +1 -3
- package/keyword/keyword.property.d.ts +1 -1
- package/layout/col.component.d.ts +5 -7
- package/layout/layout.module.d.ts +1 -3
- package/layout/row.component.d.ts +3 -4
- package/link/link.component.d.ts +5 -7
- package/link/link.module.d.ts +1 -6
- package/list/list-drop-group.directive.d.ts +1 -1
- package/list/list-option.component.d.ts +6 -7
- package/list/list.component.d.ts +9 -12
- package/list/list.module.d.ts +1 -13
- package/loading/loading.component.d.ts +7 -10
- package/loading/loading.module.d.ts +1 -6
- package/menu/menu-node.component.d.ts +6 -7
- package/menu/menu.component.d.ts +4 -7
- package/menu/menu.module.d.ts +1 -7
- package/message/message.component.d.ts +3 -6
- package/message/message.module.d.ts +1 -5
- package/message/message.service.d.ts +4 -5
- package/message-box/message-box.component.d.ts +1 -1
- package/message-box/message-box.module.d.ts +1 -11
- package/message-box/message-box.service.d.ts +2 -5
- package/notification/notification.component.d.ts +3 -6
- package/notification/notification.module.d.ts +1 -5
- package/notification/notification.service.d.ts +1 -3
- package/outlet/outlet.directive.d.ts +4 -5
- package/outlet/outlet.module.d.ts +1 -2
- package/package.json +72 -72
- package/page-header/page-header.component.d.ts +5 -7
- package/page-header/page-header.module.d.ts +1 -4
- package/pagination/pagination.component.d.ts +8 -10
- package/pagination/pagination.module.d.ts +1 -9
- package/pattern/pattern.component.d.ts +4 -4
- package/pattern/pattern.module.d.ts +1 -2
- package/popconfirm/popconfirm.component.d.ts +6 -9
- package/popconfirm/popconfirm.module.d.ts +1 -7
- package/popover/popover-portal.component.d.ts +4 -5
- package/popover/popover.directive.d.ts +9 -10
- package/popover/popover.module.d.ts +1 -6
- package/portal/portal.module.d.ts +1 -3
- package/portal/portal.service.d.ts +3 -4
- package/progress/progress.component.d.ts +3 -7
- package/progress/progress.module.d.ts +1 -5
- package/radio/radio.component.d.ts +6 -8
- package/radio/radio.module.d.ts +1 -8
- package/rate/rate.component.d.ts +6 -8
- package/rate/rate.module.d.ts +1 -7
- package/resizable/resizable.directive.d.ts +5 -7
- package/resizable/resizable.module.d.ts +1 -2
- package/resizable/resizable.property.d.ts +1 -1
- package/result/result.component.d.ts +3 -7
- package/result/result.module.d.ts +1 -5
- package/ripple/ripple.directive.d.ts +4 -5
- package/ripple/ripple.module.d.ts +1 -3
- package/select/select-portal.component.d.ts +1 -1
- package/select/select.component.d.ts +14 -15
- package/select/select.module.d.ts +1 -12
- package/skeleton/skeleton.component.d.ts +3 -6
- package/skeleton/skeleton.module.d.ts +1 -4
- package/slider/slider.component.d.ts +5 -7
- package/slider/slider.module.d.ts +1 -7
- package/slider-select/slider-select.component.d.ts +6 -7
- package/slider-select/slider-select.module.d.ts +1 -9
- package/statistic/countdown.component.d.ts +6 -7
- package/statistic/statistic.component.d.ts +2 -3
- package/statistic/statistic.module.d.ts +1 -5
- package/steps/steps.component.d.ts +4 -7
- package/steps/steps.module.d.ts +1 -5
- package/style/core/base.scss +0 -7
- package/style/core/index.css +1 -8
- package/style/core/index.css.map +1 -1
- package/style/params/colors.scss +1 -1
- package/switch/switch.component.d.ts +6 -7
- package/switch/switch.module.d.ts +1 -7
- package/table/table-body.component.d.ts +1 -1
- package/table/table-foot.component.d.ts +3 -6
- package/table/table-head.component.d.ts +5 -7
- package/table/table.component.d.ts +1 -1
- package/table/table.module.d.ts +4 -17
- package/tabs/tab-content.component.d.ts +6 -6
- package/tabs/tab-link.directive.d.ts +2 -2
- package/tabs/tab.component.d.ts +2 -3
- package/tabs/tabs.component.d.ts +8 -9
- package/tabs/tabs.module.d.ts +3 -9
- package/tag/tag.component.d.ts +4 -8
- package/tag/tag.module.d.ts +1 -5
- package/text-retract/text-retract.component.d.ts +6 -10
- package/text-retract/text-retract.module.d.ts +1 -6
- package/textarea/textarea.component.d.ts +5 -7
- package/textarea/textarea.module.d.ts +1 -6
- package/theme/theme.component.d.ts +8 -9
- package/theme/theme.module.d.ts +1 -10
- package/time-ago/time-ago.module.d.ts +1 -1
- package/time-ago/time-ago.pipe.d.ts +6 -9
- package/time-picker/time-picker-frame.component.d.ts +5 -6
- package/time-picker/time-picker-portal.component.d.ts +5 -7
- package/time-picker/time-picker.component.d.ts +14 -16
- package/time-picker/time-picker.module.d.ts +2 -13
- package/time-range/time-range.module.d.ts +1 -1
- package/time-range/time-range.pipe.d.ts +1 -1
- package/timeline/timeline.component.d.ts +5 -8
- package/timeline/timeline.module.d.ts +1 -7
- package/tooltip/tooltip-portal.component.d.ts +4 -5
- package/tooltip/tooltip.directive.d.ts +8 -9
- package/tooltip/tooltip.module.d.ts +1 -6
- package/transfer/transfer.component.d.ts +6 -9
- package/transfer/transfer.module.d.ts +1 -15
- package/tree/tree-node.component.d.ts +6 -10
- package/tree/tree.component.d.ts +1 -1
- package/tree/tree.module.d.ts +1 -11
- package/tree-file/tree-file.component.d.ts +5 -10
- package/tree-file/tree-file.module.d.ts +1 -9
- package/tree-select/tree-select-portal.component.d.ts +5 -7
- package/tree-select/tree-select.component.d.ts +14 -15
- package/tree-select/tree-select.module.d.ts +1 -14
- package/typography/typography.component.d.ts +3 -4
- package/typography/typography.module.d.ts +1 -3
- package/upload/upload-portal.component.d.ts +5 -7
- package/upload/upload.component.d.ts +12 -15
- package/upload/upload.module.d.ts +1 -14
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, Renderer2, inject, ChangeDetectorRef, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import * as i2 from '@angular/common';
|
|
4
|
+
import { XWithConfig, XInputBoolean, XInputNumber, XConfigService, XIsEmpty, XIsChange, XClearClass } from '@ng-nest/ui/core';
|
|
5
|
+
import { XControlValueAccessor, XValueAccessor } from '@ng-nest/ui/base-form';
|
|
6
|
+
import * as i1 from '@angular/common';
|
|
8
7
|
import { CommonModule } from '@angular/common';
|
|
9
|
-
import * as
|
|
8
|
+
import * as i2 from '@angular/forms';
|
|
10
9
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
|
-
import
|
|
12
|
-
import { XIconModule } from '@ng-nest/ui/icon';
|
|
10
|
+
import { XIconComponent } from '@ng-nest/ui/icon';
|
|
13
11
|
|
|
14
12
|
/**
|
|
15
13
|
* Textarea
|
|
@@ -81,6 +79,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
81
79
|
}] } });
|
|
82
80
|
|
|
83
81
|
class XTextareaComponent extends XTextareaProperty {
|
|
82
|
+
constructor() {
|
|
83
|
+
super(...arguments);
|
|
84
|
+
this._required = false;
|
|
85
|
+
this.valueLength = 0;
|
|
86
|
+
this.lengthTotal = '';
|
|
87
|
+
this.paddingLeft = 0.4;
|
|
88
|
+
this.paddingRight = 0.4;
|
|
89
|
+
this.clearShow = false;
|
|
90
|
+
this.renderer = inject(Renderer2);
|
|
91
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
92
|
+
this.configService = inject(XConfigService);
|
|
93
|
+
}
|
|
84
94
|
writeValue(value) {
|
|
85
95
|
this.value = value;
|
|
86
96
|
this.change(value);
|
|
@@ -95,19 +105,6 @@ class XTextareaComponent extends XTextareaProperty {
|
|
|
95
105
|
get getIconLayoutRight() {
|
|
96
106
|
return !XIsEmpty(this.icon) && this.iconLayout === 'right';
|
|
97
107
|
}
|
|
98
|
-
constructor(renderer, elementRef, cdr, configService) {
|
|
99
|
-
super();
|
|
100
|
-
this.renderer = renderer;
|
|
101
|
-
this.elementRef = elementRef;
|
|
102
|
-
this.cdr = cdr;
|
|
103
|
-
this.configService = configService;
|
|
104
|
-
this._required = false;
|
|
105
|
-
this.valueLength = 0;
|
|
106
|
-
this.lengthTotal = '';
|
|
107
|
-
this.paddingLeft = 0.4;
|
|
108
|
-
this.paddingRight = 0.4;
|
|
109
|
-
this.clearShow = false;
|
|
110
|
-
}
|
|
111
108
|
ngOnInit() {
|
|
112
109
|
this.setPadding();
|
|
113
110
|
this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
@@ -160,13 +157,13 @@ class XTextareaComponent extends XTextareaProperty {
|
|
|
160
157
|
this.ngOnInit();
|
|
161
158
|
this.cdr.detectChanges();
|
|
162
159
|
}
|
|
163
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaComponent, deps:
|
|
164
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XTextareaComponent, selector: "x-textarea", providers: [XValueAccessor(XTextareaComponent)], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, static: true }, { propertyName: "textareaRef", first: true, predicate: ["textareaRef"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-textarea-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (input)=\"formControlValidator()\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-textarea{display:inline-block;width:12rem}.x-textarea{width:100%;margin:0;padding:0}.x-textarea.x-flex{display:flex}.x-textarea.x-justify-start{justify-content:flex-start}.x-textarea.x-justify-center{justify-content:center}.x-textarea.x-justify-end{justify-content:flex-end}.x-textarea.x-justify-space-between{justify-content:space-between}.x-textarea.x-justify-space-around{justify-content:space-around}.x-textarea.x-align-start{align-items:flex-start}.x-textarea.x-align-center{align-items:center}.x-textarea.x-align-end{align-items:flex-end}.x-textarea.x-direction-column{flex-direction:column}.x-textarea.x-direction-column-reverse{flex-direction:column-reverse}.x-textarea.x-direction-row{flex-direction:row}.x-textarea.x-direction-row-reverse{flex-direction:row-reverse}.x-textarea>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-textarea>label.x-text-align-start{text-align:start}.x-textarea>label.x-text-align-center{text-align:center}.x-textarea>label.x-text-align-end{text-align:end}.x-textarea>.x-textarea-row{flex:1;display:flex;align-items:center;position:relative}.x-textarea>.x-textarea-row>textarea{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow);line-height:calc(var(--x-font-size) + .325rem);padding:.4rem}.x-textarea>.x-textarea-row>textarea::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-textarea>.x-textarea-row>textarea:-ms-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea::-webkit-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea:hover{border-color:var(--x-primary-300)}.x-textarea>.x-textarea-row>textarea:focus{border-color:var(--x-primary);outline:0}.x-textarea>.x-textarea-row>textarea[disabled]{color:var(--x-text-500)}.x-textarea>.x-textarea-row>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base)}.x-textarea-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-textarea-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-textarea.x-invalid>label,.x-textarea.x-required>label{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row>x-icon,.x-textarea.x-required>.x-textarea-row>x-icon{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error,.x-textarea.x-required>.x-textarea-row .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-disabled>.x-textarea-row>x-icon{color:var(--x-text-400)}.x-textarea.x-disabled>.x-textarea-row>textarea{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;top:0;right:0;left:inherit;opacity:0;cursor:pointer}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear:hover{color:var(--x-text-300)}.x-textarea.x-clearable>.x-textarea-row>textarea:hover+.x-textarea-clear,.x-textarea.x-clearable>.x-textarea-row>textarea:focus+.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>textarea{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-textarea-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:.25rem;bottom:.25rem}.x-textarea.x-direction-row>label{padding:0 .5rem 0 0}.x-textarea.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-textarea.x-direction-column,.x-textarea.x-direction-column-reverse{align-items:inherit}.x-textarea-icon>.x-textarea-row>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-textarea-icon-left>.x-textarea-row>textarea{padding-left:var(--x-font-size-medium).8rem}.x-textarea-icon-left>.x-textarea-row>x-icon{left:0;top:0}.x-textarea-icon-right>.x-textarea-row>textarea{padding-right:var(--x-font-size-medium).8rem}.x-textarea-icon-right>.x-textarea-row>x-icon{right:0;top:0}.x-textarea-icon-right>.x-textarea-row>.x-textarea-max-length{right:inherit;left:0;bottom:0}\n"], dependencies: [{ kind: "directive", type:
|
|
160
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
161
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XTextareaComponent, isStandalone: true, selector: "x-textarea", providers: [XValueAccessor(XTextareaComponent)], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, static: true }, { propertyName: "textareaRef", first: true, predicate: ["textareaRef"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-textarea-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (input)=\"formControlValidator()\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-textarea{display:inline-block;width:12rem}.x-textarea{width:100%;margin:0;padding:0}.x-textarea.x-flex{display:flex}.x-textarea.x-justify-start{justify-content:flex-start}.x-textarea.x-justify-center{justify-content:center}.x-textarea.x-justify-end{justify-content:flex-end}.x-textarea.x-justify-space-between{justify-content:space-between}.x-textarea.x-justify-space-around{justify-content:space-around}.x-textarea.x-align-start{align-items:flex-start}.x-textarea.x-align-center{align-items:center}.x-textarea.x-align-end{align-items:flex-end}.x-textarea.x-direction-column{flex-direction:column}.x-textarea.x-direction-column-reverse{flex-direction:column-reverse}.x-textarea.x-direction-row{flex-direction:row}.x-textarea.x-direction-row-reverse{flex-direction:row-reverse}.x-textarea>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-textarea>label.x-text-align-start{text-align:start}.x-textarea>label.x-text-align-center{text-align:center}.x-textarea>label.x-text-align-end{text-align:end}.x-textarea>.x-textarea-row{flex:1;display:flex;align-items:center;position:relative}.x-textarea>.x-textarea-row>textarea{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow);line-height:calc(var(--x-font-size) + .325rem);padding:.4rem}.x-textarea>.x-textarea-row>textarea::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-textarea>.x-textarea-row>textarea:-ms-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea::-webkit-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea:hover{border-color:var(--x-primary-300)}.x-textarea>.x-textarea-row>textarea:focus{border-color:var(--x-primary);outline:0}.x-textarea>.x-textarea-row>textarea[disabled]{color:var(--x-text-500)}.x-textarea>.x-textarea-row>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base)}.x-textarea-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-textarea-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-textarea.x-invalid>label,.x-textarea.x-required>label{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row>x-icon,.x-textarea.x-required>.x-textarea-row>x-icon{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error,.x-textarea.x-required>.x-textarea-row .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-disabled>.x-textarea-row>x-icon{color:var(--x-text-400)}.x-textarea.x-disabled>.x-textarea-row>textarea{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;top:0;right:0;left:inherit;opacity:0;cursor:pointer}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear:hover{color:var(--x-text-300)}.x-textarea.x-clearable>.x-textarea-row>textarea:hover+.x-textarea-clear,.x-textarea.x-clearable>.x-textarea-row>textarea:focus+.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>textarea{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-textarea-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:.25rem;bottom:.25rem}.x-textarea.x-direction-row>label{padding:0 .5rem 0 0}.x-textarea.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-textarea.x-direction-column,.x-textarea.x-direction-column-reverse{align-items:inherit}.x-textarea-icon>.x-textarea-row>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-textarea-icon-left>.x-textarea-row>textarea{padding-left:var(--x-font-size-medium).8rem}.x-textarea-icon-left>.x-textarea-row>x-icon{left:0;top:0}.x-textarea-icon-right>.x-textarea-row>textarea{padding-right:var(--x-font-size-medium).8rem}.x-textarea-icon-right>.x-textarea-row>x-icon{right:0;top:0}.x-textarea-icon-right>.x-textarea-row>.x-textarea-max-length{right:inherit;left:0;bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
165
162
|
}
|
|
166
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaComponent, decorators: [{
|
|
167
164
|
type: Component,
|
|
168
|
-
args: [{ selector: `${XTextareaPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTextareaComponent)], template: "<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-textarea-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (input)=\"formControlValidator()\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-textarea{display:inline-block;width:12rem}.x-textarea{width:100%;margin:0;padding:0}.x-textarea.x-flex{display:flex}.x-textarea.x-justify-start{justify-content:flex-start}.x-textarea.x-justify-center{justify-content:center}.x-textarea.x-justify-end{justify-content:flex-end}.x-textarea.x-justify-space-between{justify-content:space-between}.x-textarea.x-justify-space-around{justify-content:space-around}.x-textarea.x-align-start{align-items:flex-start}.x-textarea.x-align-center{align-items:center}.x-textarea.x-align-end{align-items:flex-end}.x-textarea.x-direction-column{flex-direction:column}.x-textarea.x-direction-column-reverse{flex-direction:column-reverse}.x-textarea.x-direction-row{flex-direction:row}.x-textarea.x-direction-row-reverse{flex-direction:row-reverse}.x-textarea>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-textarea>label.x-text-align-start{text-align:start}.x-textarea>label.x-text-align-center{text-align:center}.x-textarea>label.x-text-align-end{text-align:end}.x-textarea>.x-textarea-row{flex:1;display:flex;align-items:center;position:relative}.x-textarea>.x-textarea-row>textarea{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow);line-height:calc(var(--x-font-size) + .325rem);padding:.4rem}.x-textarea>.x-textarea-row>textarea::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-textarea>.x-textarea-row>textarea:-ms-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea::-webkit-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea:hover{border-color:var(--x-primary-300)}.x-textarea>.x-textarea-row>textarea:focus{border-color:var(--x-primary);outline:0}.x-textarea>.x-textarea-row>textarea[disabled]{color:var(--x-text-500)}.x-textarea>.x-textarea-row>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base)}.x-textarea-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-textarea-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-textarea.x-invalid>label,.x-textarea.x-required>label{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row>x-icon,.x-textarea.x-required>.x-textarea-row>x-icon{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error,.x-textarea.x-required>.x-textarea-row .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-disabled>.x-textarea-row>x-icon{color:var(--x-text-400)}.x-textarea.x-disabled>.x-textarea-row>textarea{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;top:0;right:0;left:inherit;opacity:0;cursor:pointer}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear:hover{color:var(--x-text-300)}.x-textarea.x-clearable>.x-textarea-row>textarea:hover+.x-textarea-clear,.x-textarea.x-clearable>.x-textarea-row>textarea:focus+.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>textarea{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-textarea-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:.25rem;bottom:.25rem}.x-textarea.x-direction-row>label{padding:0 .5rem 0 0}.x-textarea.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-textarea.x-direction-column,.x-textarea.x-direction-column-reverse{align-items:inherit}.x-textarea-icon>.x-textarea-row>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-textarea-icon-left>.x-textarea-row>textarea{padding-left:var(--x-font-size-medium).8rem}.x-textarea-icon-left>.x-textarea-row>x-icon{left:0;top:0}.x-textarea-icon-right>.x-textarea-row>textarea{padding-right:var(--x-font-size-medium).8rem}.x-textarea-icon-right>.x-textarea-row>x-icon{right:0;top:0}.x-textarea-icon-right>.x-textarea-row>.x-textarea-max-length{right:inherit;left:0;bottom:0}\n"] }]
|
|
169
|
-
}],
|
|
165
|
+
args: [{ selector: `${XTextareaPrefix}`, standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XTextareaComponent)], template: "<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-textarea-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (input)=\"formControlValidator()\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-textarea{display:inline-block;width:12rem}.x-textarea{width:100%;margin:0;padding:0}.x-textarea.x-flex{display:flex}.x-textarea.x-justify-start{justify-content:flex-start}.x-textarea.x-justify-center{justify-content:center}.x-textarea.x-justify-end{justify-content:flex-end}.x-textarea.x-justify-space-between{justify-content:space-between}.x-textarea.x-justify-space-around{justify-content:space-around}.x-textarea.x-align-start{align-items:flex-start}.x-textarea.x-align-center{align-items:center}.x-textarea.x-align-end{align-items:flex-end}.x-textarea.x-direction-column{flex-direction:column}.x-textarea.x-direction-column-reverse{flex-direction:column-reverse}.x-textarea.x-direction-row{flex-direction:row}.x-textarea.x-direction-row-reverse{flex-direction:row-reverse}.x-textarea>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-textarea>label.x-text-align-start{text-align:start}.x-textarea>label.x-text-align-center{text-align:center}.x-textarea>label.x-text-align-end{text-align:end}.x-textarea>.x-textarea-row{flex:1;display:flex;align-items:center;position:relative}.x-textarea>.x-textarea-row>textarea{flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow);line-height:calc(var(--x-font-size) + .325rem);padding:.4rem}.x-textarea>.x-textarea-row>textarea::-moz-placeholder{color:var(--x-text-700);opacity:1}.x-textarea>.x-textarea-row>textarea:-ms-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea::-webkit-input-placeholder{color:var(--x-text-700)}.x-textarea>.x-textarea-row>textarea:hover{border-color:var(--x-primary-300)}.x-textarea>.x-textarea-row>textarea:focus{border-color:var(--x-primary);outline:0}.x-textarea>.x-textarea-row>textarea[disabled]{color:var(--x-text-500)}.x-textarea>.x-textarea-row>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base)}.x-textarea-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-textarea-error-message{position:absolute;bottom:0;left:0;font-size:var(--x-font-size)-.125rem;color:var(--x-danger);margin-bottom:calc((var(--x-font-size) + .45rem) * -1);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-textarea.x-invalid>label,.x-textarea.x-required>label{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row>x-icon,.x-textarea.x-required>.x-textarea-row>x-icon{color:var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error,.x-textarea.x-required>.x-textarea-row .x-border-error{position:absolute;height:.5rem;width:.5rem;z-index:10}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-top-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-left,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-invalid>.x-textarea-row .x-border-error.x-bottom-right,.x-textarea.x-required>.x-textarea-row .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-textarea.x-disabled>.x-textarea-row>x-icon{color:var(--x-text-400)}.x-textarea.x-disabled>.x-textarea-row>textarea{color:var(--x-text-400);cursor:not-allowed;border-color:var(--x-border-100);background-color:var(--x-background-a100)}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear{position:absolute;color:var(--x-text-400);font-size:var(--x-font-size-medium);padding:.4rem;top:0;right:0;left:inherit;opacity:0;cursor:pointer}.x-textarea.x-clearable>.x-textarea-row>.x-textarea-clear:hover{color:var(--x-text-300)}.x-textarea.x-clearable>.x-textarea-row>textarea:hover+.x-textarea-clear,.x-textarea.x-clearable>.x-textarea-row>textarea:focus+.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>.x-textarea-clear{opacity:1}.x-textarea.x-clearable.x-clear-show>.x-textarea-row>textarea{padding-right:calc(var(--x-font-size-medium) + .4rem * 2)!important}.x-textarea-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-400);padding:0 .4rem;right:.25rem;bottom:.25rem}.x-textarea.x-direction-row>label{padding:0 .5rem 0 0}.x-textarea.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-textarea.x-direction-column,.x-textarea.x-direction-column-reverse{align-items:inherit}.x-textarea-icon>.x-textarea-row>x-icon{position:absolute;font-size:var(--x-font-size-medium);padding:.4rem}.x-textarea-icon-left>.x-textarea-row>textarea{padding-left:var(--x-font-size-medium).8rem}.x-textarea-icon-left>.x-textarea-row>x-icon{left:0;top:0}.x-textarea-icon-right>.x-textarea-row>textarea{padding-right:var(--x-font-size-medium).8rem}.x-textarea-icon-right>.x-textarea-row>x-icon{right:0;top:0}.x-textarea-icon-right>.x-textarea-row>.x-textarea-max-length{right:inherit;left:0;bottom:0}\n"] }]
|
|
166
|
+
}], propDecorators: { textarea: [{
|
|
170
167
|
type: ViewChild,
|
|
171
168
|
args: ['textarea', { static: true }]
|
|
172
169
|
}], textareaRef: [{
|
|
@@ -176,15 +173,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
176
173
|
|
|
177
174
|
class XTextareaModule {
|
|
178
175
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
179
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XTextareaModule,
|
|
180
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaModule, imports: [
|
|
176
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XTextareaModule, imports: [XTextareaComponent], exports: [XTextareaComponent] }); }
|
|
177
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaModule, imports: [XTextareaComponent] }); }
|
|
181
178
|
}
|
|
182
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XTextareaModule, decorators: [{
|
|
183
180
|
type: NgModule,
|
|
184
181
|
args: [{
|
|
185
|
-
declarations: [XTextareaComponent, XTextareaProperty],
|
|
186
182
|
exports: [XTextareaComponent],
|
|
187
|
-
imports: [
|
|
183
|
+
imports: [XTextareaComponent]
|
|
188
184
|
}]
|
|
189
185
|
}] });
|
|
190
186
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-textarea.mjs","sources":["../../../../lib/ng-nest/ui/textarea/textarea.property.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.html","../../../../lib/ng-nest/ui/textarea/textarea.module.ts","../../../../lib/ng-nest/ui/textarea/ng-nest-ui-textarea.ts"],"sourcesContent":["import { XInputBoolean, XInputNumber, XSize, XNumber, XBoolean, XWithConfig, XPositionLeftRight } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Textarea\r\n * @selector x-textarea\r\n * @decorator component\r\n */\r\nexport const XTextareaPrefix = 'x-textarea';\r\nconst X_CONFIG_NAME = 'textarea';\r\n\r\n/**\r\n * Textarea Property\r\n */\r\n@Component({ selector: `${XTextareaPrefix}-property`, template: '' })\r\nexport class XTextareaProperty extends XControlValueAccessor<any> implements XTextareaOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n @Input() @XWithConfig<XTextareaIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XTextareaIconLayoutType = 'right';\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n @Input() @XInputBoolean() iconSpin: XBoolean = false;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n @Input() @XInputNumber() maxlength!: XNumber;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n @Input() height: string = '4rem';\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n @Output() clearEmit = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Textarea Option\r\n * @undocument true\r\n */\r\nexport interface XTextareaOption extends XFormOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n readonly?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n iconLayout?: XTextareaIconLayoutType;\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n iconSpin?: XBoolean;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n maxlength?: XNumber;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n clearClick?: (value: any) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标布局方式,指在输入框中的位置\r\n * @en_US Icon layout, refers to the position in the input box\r\n * @value \"left\" 靠左\r\n * @value \"right\" 靠右\r\n */\r\nexport type XTextareaIconLayoutType = XPositionLeftRight;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextareaPrefix, XTextareaProperty } from './textarea.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTextareaPrefix}`,\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTextareaComponent)]\r\n})\r\nexport class XTextareaComponent extends XTextareaProperty implements OnInit, OnChanges {\r\n @ViewChild('textarea', { static: true }) textarea!: ElementRef<HTMLElement>;\r\n @ViewChild('textareaRef', { static: true }) textareaRef!: ElementRef<HTMLElement>;\r\n\r\n override writeValue(value: any) {\r\n this.value = value;\r\n this.change(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _required: boolean = false;\r\n valueLength: number = 0;\r\n lengthTotal: string = '';\r\n paddingLeft: number = 0.4;\r\n paddingRight: number = 0.4;\r\n clearShow: boolean = false;\r\n\r\n get getIcon() {\r\n return !XIsEmpty(this.icon);\r\n }\r\n\r\n get getIconLayoutLeft() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'left';\r\n }\r\n\r\n get getIconLayoutRight() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'right';\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public override cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { clearable } = changes;\r\n XIsChange(clearable) && this.setClearable();\r\n }\r\n\r\n change(value: any) {\r\n if (this._required && !this.disabled) {\r\n this.required = XIsEmpty(value);\r\n }\r\n this.setClearable();\r\n if (this.maxlength) {\r\n this.valueLength = XIsEmpty(value) ? 0 : `${value}`.length;\r\n this.lengthTotal = `${this.valueLength}/${this.maxlength}`;\r\n }\r\n this.setPadding();\r\n if (this.onChange) this.onChange(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClear() {\r\n const clearValue = this.value;\r\n this.value = '';\r\n this.change(this.value);\r\n this.clearEmit.emit(clearValue);\r\n this.textareaRef.nativeElement.focus();\r\n }\r\n\r\n setClearable() {\r\n if (this.clearable && !this.disabled) {\r\n this.clearShow = !XIsEmpty(this.value);\r\n } else {\r\n this.clearShow = false;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft = this.icon && this.iconLayout === 'left' ? 1.8 : 0.4;\r\n this.paddingRight = this.icon && this.iconLayout === 'right' ? 1.8 : 0.4;\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XTextareaPrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.change(this.value);\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-textarea-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (input)=\"formControlValidator()\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XTextareaComponent } from './textarea.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTextareaProperty } from './textarea.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTextareaComponent, XTextareaProperty],\r\n exports: [XTextareaComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule]\r\n})\r\nexport class XTextareaModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-textarea.mjs","sources":["../../../../lib/ng-nest/ui/textarea/textarea.property.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.html","../../../../lib/ng-nest/ui/textarea/textarea.module.ts","../../../../lib/ng-nest/ui/textarea/ng-nest-ui-textarea.ts"],"sourcesContent":["import { XInputBoolean, XInputNumber, XSize, XNumber, XBoolean, XWithConfig, XPositionLeftRight } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Textarea\r\n * @selector x-textarea\r\n * @decorator component\r\n */\r\nexport const XTextareaPrefix = 'x-textarea';\r\nconst X_CONFIG_NAME = 'textarea';\r\n\r\n/**\r\n * Textarea Property\r\n */\r\n@Component({ selector: `${XTextareaPrefix}-property`, template: '' })\r\nexport class XTextareaProperty extends XControlValueAccessor<any> implements XTextareaOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n @Input() @XWithConfig<XTextareaIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XTextareaIconLayoutType = 'right';\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n @Input() @XInputBoolean() iconSpin: XBoolean = false;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n @Input() @XInputNumber() maxlength!: XNumber;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n @Input() height: string = '4rem';\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n @Output() clearEmit = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Textarea Option\r\n * @undocument true\r\n */\r\nexport interface XTextareaOption extends XFormOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n readonly?: XBoolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n iconLayout?: XTextareaIconLayoutType;\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n iconSpin?: XBoolean;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n maxlength?: XNumber;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n clearClick?: (value: any) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标布局方式,指在输入框中的位置\r\n * @en_US Icon layout, refers to the position in the input box\r\n * @value \"left\" 靠左\r\n * @value \"right\" 靠右\r\n */\r\nexport type XTextareaIconLayoutType = XPositionLeftRight;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XTextareaPrefix, XTextareaProperty } from './textarea.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\n\r\n@Component({\r\n selector: `${XTextareaPrefix}`,\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconComponent],\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTextareaComponent)]\r\n})\r\nexport class XTextareaComponent extends XTextareaProperty implements OnInit, OnChanges {\r\n @ViewChild('textarea', { static: true }) textarea!: ElementRef<HTMLElement>;\r\n @ViewChild('textareaRef', { static: true }) textareaRef!: ElementRef<HTMLElement>;\r\n\r\n override writeValue(value: any) {\r\n this.value = value;\r\n this.change(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _required: boolean = false;\r\n valueLength: number = 0;\r\n lengthTotal: string = '';\r\n paddingLeft: number = 0.4;\r\n paddingRight: number = 0.4;\r\n clearShow: boolean = false;\r\n\r\n get getIcon() {\r\n return !XIsEmpty(this.icon);\r\n }\r\n\r\n get getIconLayoutLeft() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'left';\r\n }\r\n\r\n get getIconLayoutRight() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'right';\r\n }\r\n\r\n private renderer = inject(Renderer2);\r\n override cdr = inject(ChangeDetectorRef);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { clearable } = changes;\r\n XIsChange(clearable) && this.setClearable();\r\n }\r\n\r\n change(value: any) {\r\n if (this._required && !this.disabled) {\r\n this.required = XIsEmpty(value);\r\n }\r\n this.setClearable();\r\n if (this.maxlength) {\r\n this.valueLength = XIsEmpty(value) ? 0 : `${value}`.length;\r\n this.lengthTotal = `${this.valueLength}/${this.maxlength}`;\r\n }\r\n this.setPadding();\r\n if (this.onChange) this.onChange(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClear() {\r\n const clearValue = this.value;\r\n this.value = '';\r\n this.change(this.value);\r\n this.clearEmit.emit(clearValue);\r\n this.textareaRef.nativeElement.focus();\r\n }\r\n\r\n setClearable() {\r\n if (this.clearable && !this.disabled) {\r\n this.clearShow = !XIsEmpty(this.value);\r\n } else {\r\n this.clearShow = false;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft = this.icon && this.iconLayout === 'left' ? 1.8 : 0.4;\r\n this.paddingRight = this.icon && this.iconLayout === 'right' ? 1.8 : 0.4;\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XTextareaPrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.change(this.value);\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div\r\n #textarea\r\n class=\"x-textarea\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-textarea-icon]=\"getIcon\"\r\n [class.x-textarea-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-textarea-icon-right]=\"getIconLayoutRight\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-textarea-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-textarea-row\">\r\n <textarea\r\n #textareaRef\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.height]=\"height\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (input)=\"formControlValidator()\"\r\n ></textarea>\r\n <x-icon *ngIf=\"clearShow\" class=\"x-textarea-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-textarea-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-textarea-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n exports: [XTextareaComponent],\r\n imports: [XTextareaComponent]\r\n})\r\nexport class XTextareaModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, ChangeDetectorRef, inject, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import * as i4 from '@angular/forms';
|
|
4
|
+
import { XWithConfig, XInputBoolean, XConfigService, X_THEME_COLORS, X_THEME_COLOR_KEYS, X_THEME_DARK_COLORS } from '@ng-nest/ui/core';
|
|
5
|
+
import { XControlValueAccessor, XValueAccessor } from '@ng-nest/ui/base-form';
|
|
6
|
+
import * as i2 from '@angular/forms';
|
|
8
7
|
import { UntypedFormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { XFormComponent } from '@ng-nest/ui/form';
|
|
9
9
|
import { map, takeUntil, debounceTime } from 'rxjs/operators';
|
|
10
10
|
import { Subject } from 'rxjs';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import * as i3 from '@angular/common';
|
|
11
|
+
import { XI18nService, XI18nDirective } from '@ng-nest/ui/i18n';
|
|
12
|
+
import * as i1 from '@angular/common';
|
|
14
13
|
import { CommonModule } from '@angular/common';
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import { XButtonModule } from '@ng-nest/ui/button';
|
|
19
|
-
import * as i7 from '@ng-nest/ui/layout';
|
|
20
|
-
import { XLayoutModule } from '@ng-nest/ui/layout';
|
|
21
|
-
import * as i8 from '@ng-nest/ui/form';
|
|
22
|
-
import { XFormModule } from '@ng-nest/ui/form';
|
|
14
|
+
import { XSwitchComponent } from '@ng-nest/ui/switch';
|
|
15
|
+
import { XButtonComponent } from '@ng-nest/ui/button';
|
|
16
|
+
import { XRowComponent, XColComponent } from '@ng-nest/ui/layout';
|
|
23
17
|
|
|
24
18
|
/**
|
|
25
19
|
* Theme
|
|
@@ -91,19 +85,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
91
85
|
}] } });
|
|
92
86
|
|
|
93
87
|
class XThemeComponent extends XThemeProperty {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (this.value && Object.keys(this.value).length > 0) {
|
|
97
|
-
this.theme = { colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark) };
|
|
98
|
-
this.formGroup.patchValue(this.theme.colors);
|
|
99
|
-
}
|
|
100
|
-
this.cdr.detectChanges();
|
|
101
|
-
}
|
|
102
|
-
constructor(configService, i18n, cdr) {
|
|
103
|
-
super();
|
|
104
|
-
this.configService = configService;
|
|
105
|
-
this.i18n = i18n;
|
|
106
|
-
this.cdr = cdr;
|
|
88
|
+
constructor() {
|
|
89
|
+
super(...arguments);
|
|
107
90
|
this.formGroup = new UntypedFormGroup({});
|
|
108
91
|
this.theme = {
|
|
109
92
|
colors: {}
|
|
@@ -125,8 +108,21 @@ class XThemeComponent extends XThemeProperty {
|
|
|
125
108
|
this.value = {};
|
|
126
109
|
this.locale = {};
|
|
127
110
|
this._unSubject = new Subject();
|
|
111
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
112
|
+
this.i18n = inject(XI18nService);
|
|
113
|
+
this.configService = inject(XConfigService);
|
|
128
114
|
this.themeService = this.configService.themeService;
|
|
129
115
|
}
|
|
116
|
+
writeValue(value) {
|
|
117
|
+
this.value = value;
|
|
118
|
+
if (this.value && Object.keys(this.value).length > 0) {
|
|
119
|
+
this.theme = {
|
|
120
|
+
colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark)
|
|
121
|
+
};
|
|
122
|
+
this.formGroup.patchValue(this.theme.colors);
|
|
123
|
+
}
|
|
124
|
+
this.cdr.detectChanges();
|
|
125
|
+
}
|
|
130
126
|
ngOnInit() {
|
|
131
127
|
this.theme = this.configService.getTheme(true);
|
|
132
128
|
this.setControls();
|
|
@@ -148,7 +144,9 @@ class XThemeComponent extends XThemeProperty {
|
|
|
148
144
|
let changes = this.getChanges(x);
|
|
149
145
|
if (this.isOneAndInColorKeys(changes)) {
|
|
150
146
|
let [key, value] = Object.entries(changes)[0];
|
|
151
|
-
let colors = !this.dark
|
|
147
|
+
let colors = !this.dark
|
|
148
|
+
? this.themeService.setRoot(key, value, '')
|
|
149
|
+
: this.themeService.setDarkRoot(key, value, '');
|
|
152
150
|
Object.assign(x, colors);
|
|
153
151
|
this.currentColors = x;
|
|
154
152
|
this.formGroup.patchValue(x);
|
|
@@ -229,51 +227,34 @@ class XThemeComponent extends XThemeProperty {
|
|
|
229
227
|
this.formGroup.patchValue(colors);
|
|
230
228
|
this.darkChange.emit(this.dark);
|
|
231
229
|
}
|
|
232
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeComponent, deps:
|
|
233
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XThemeComponent, selector: "x-theme", providers: [XValueAccessor(XThemeComponent)], usesInheritance: true, ngImport: i0, template: "<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n", styles: [".x-theme{margin:0;padding:0;display:inline-block}.x-theme x-color-picker:not(:first-child){margin-left:.125rem}.x-theme-darken,.x-theme-default,.x-theme-gradual{display:flex}.x-theme-default x-color-picker{width:9.25rem}\n"], dependencies: [{ kind: "directive", type:
|
|
230
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
231
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XThemeComponent, isStandalone: true, selector: "x-theme", providers: [XValueAccessor(XThemeComponent)], usesInheritance: true, ngImport: i0, template: "<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n", styles: [".x-theme{margin:0;padding:0;display:inline-block}.x-theme x-color-picker:not(:first-child){margin-left:.125rem}.x-theme-darken,.x-theme-default,.x-theme-gradual{display:flex}.x-theme-default x-color-picker{width:9.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: XSwitchComponent, selector: "x-switch" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XRowComponent, selector: "x-row" }, { kind: "component", type: XColComponent, selector: "x-col" }, { kind: "component", type: XFormComponent, selector: "x-form" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
234
232
|
}
|
|
235
233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeComponent, decorators: [{
|
|
236
234
|
type: Component,
|
|
237
|
-
args: [{ selector: 'x-theme',
|
|
238
|
-
|
|
235
|
+
args: [{ selector: 'x-theme', standalone: true, imports: [
|
|
236
|
+
CommonModule,
|
|
237
|
+
FormsModule,
|
|
238
|
+
ReactiveFormsModule,
|
|
239
|
+
XSwitchComponent,
|
|
240
|
+
XButtonComponent,
|
|
241
|
+
XRowComponent,
|
|
242
|
+
XColComponent,
|
|
243
|
+
XFormComponent,
|
|
244
|
+
XI18nDirective
|
|
245
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XThemeComponent)], template: "<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n", styles: [".x-theme{margin:0;padding:0;display:inline-block}.x-theme x-color-picker:not(:first-child){margin-left:.125rem}.x-theme-darken,.x-theme-default,.x-theme-gradual{display:flex}.x-theme-default x-color-picker{width:9.25rem}\n"] }]
|
|
246
|
+
}] });
|
|
239
247
|
|
|
240
248
|
class XThemeModule {
|
|
241
249
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
242
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XThemeModule,
|
|
243
|
-
|
|
244
|
-
ReactiveFormsModule,
|
|
245
|
-
XSwitchModule,
|
|
246
|
-
XButtonModule,
|
|
247
|
-
XLayoutModule,
|
|
248
|
-
XFormModule,
|
|
249
|
-
XI18nModule,
|
|
250
|
-
XBaseFormModule], exports: [XThemeComponent] }); }
|
|
251
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeModule, imports: [CommonModule,
|
|
252
|
-
FormsModule,
|
|
253
|
-
ReactiveFormsModule,
|
|
254
|
-
XSwitchModule,
|
|
255
|
-
XButtonModule,
|
|
256
|
-
XLayoutModule,
|
|
257
|
-
XFormModule,
|
|
258
|
-
XI18nModule,
|
|
259
|
-
XBaseFormModule] }); }
|
|
250
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XThemeModule, imports: [XThemeComponent], exports: [XThemeComponent] }); }
|
|
251
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeModule, imports: [XThemeComponent] }); }
|
|
260
252
|
}
|
|
261
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XThemeModule, decorators: [{
|
|
262
254
|
type: NgModule,
|
|
263
255
|
args: [{
|
|
264
|
-
declarations: [XThemeComponent, XThemeProperty],
|
|
265
256
|
exports: [XThemeComponent],
|
|
266
|
-
imports: [
|
|
267
|
-
CommonModule,
|
|
268
|
-
FormsModule,
|
|
269
|
-
ReactiveFormsModule,
|
|
270
|
-
XSwitchModule,
|
|
271
|
-
XButtonModule,
|
|
272
|
-
XLayoutModule,
|
|
273
|
-
XFormModule,
|
|
274
|
-
XI18nModule,
|
|
275
|
-
XBaseFormModule
|
|
276
|
-
]
|
|
257
|
+
imports: [XThemeComponent]
|
|
277
258
|
}]
|
|
278
259
|
}] });
|
|
279
260
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-theme.mjs","sources":["../../../../lib/ng-nest/ui/theme/theme.property.ts","../../../../lib/ng-nest/ui/theme/theme.component.ts","../../../../lib/ng-nest/ui/theme/theme.component.html","../../../../lib/ng-nest/ui/theme/theme.module.ts","../../../../lib/ng-nest/ui/theme/ng-nest-ui-theme.ts"],"sourcesContent":["import { XWithConfig, XNumber, XColorsTheme, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Theme\r\n * @selector x-theme\r\n * @decorator component\r\n */\r\nexport const XThemePrefix = 'x-theme';\r\n\r\nconst X_CONFIG_NAME = 'theme';\r\n\r\nexport const XThemeAmounts = [-0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\n/**\r\n * Theme Property\r\n */\r\n@Component({ selector: `${XThemePrefix}-property`, template: '' })\r\nexport class XThemeProperty extends XControlValueAccessor<XColorsTheme> {\r\n /**\r\n * @zh_CN 参数前缀\r\n * @en_US Parameter prefix\r\n */\r\n @Input() prefix: string = '--x-';\r\n /**\r\n * @zh_CN 混合的颜色占比\r\n * @en_US Proportion of mixed colors\r\n */\r\n @Input() @XWithConfig<XNumber[]>(X_CONFIG_NAME, XThemeAmounts) amounts!: XNumber[];\r\n /**\r\n * @zh_CN 显示暗黑模式的设置\r\n * @en_US Show dark mode settings\r\n */\r\n @Input() @XInputBoolean() showDark?: XBoolean;\r\n /**\r\n * @zh_CN 详细设置\r\n * @en_US Detailed settings\r\n */\r\n @Input() @XInputBoolean() showDetail?: XBoolean;\r\n /**\r\n * @zh_CN 暗黑模式\r\n * @en_US Dark mode\r\n */\r\n @Input() @XInputBoolean() dark: XBoolean = false;\r\n /**\r\n * @zh_CN 初始化默认值事件\r\n * @en_US Initialize default value event\r\n */\r\n @Output() defaultClick = new EventEmitter<XColorsTheme>();\r\n /**\r\n * @zh_CN 暗黑模式改变事件\r\n * @en_US Dark mode change event\r\n */\r\n @Output() darkChange = new EventEmitter<XBoolean>();\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { XThemeProperty } from './theme.property';\r\nimport {\r\n XConfigService,\r\n XThemeService,\r\n XColorsTheme,\r\n XTheme,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_COLORS,\r\n X_THEME_DARK_COLORS\r\n} from '@ng-nest/ui/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { XControl } from '@ng-nest/ui/form';\r\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nTheme } from '@ng-nest/ui/i18n';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-theme',\r\n templateUrl: './theme.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XThemeComponent)]\r\n})\r\nexport class XThemeComponent extends XThemeProperty implements OnInit, OnDestroy {\r\n formGroup = new UntypedFormGroup({});\r\n\r\n theme: XTheme = {\r\n colors: {}\r\n };\r\n width = '45rem';\r\n beforeColors: XColorsTheme = {};\r\n currentColors: XColorsTheme = {};\r\n darkBeforeColors: XColorsTheme = {};\r\n controls: XControl[] = [\r\n { control: 'color-picker', id: 'primary', label: '主色', span: 5 },\r\n { control: 'color-picker', id: 'success', label: '成功', span: 5 },\r\n { control: 'color-picker', id: 'warning', label: '警告', span: 5 },\r\n { control: 'color-picker', id: 'danger', label: '危险', span: 5 },\r\n { control: 'color-picker', id: 'info', label: '信息', span: 5 },\r\n { control: 'color-picker', id: 'background', label: '背景', span: 5 },\r\n { control: 'color-picker', id: 'border', label: '边框', span: 5 },\r\n { control: 'color-picker', id: 'text', label: '文字', span: 5 }\r\n ];\r\n\r\n override value: XColorsTheme = {};\r\n\r\n themeService: XThemeService;\r\n\r\n locale: XI18nTheme = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n override writeValue(value: XColorsTheme) {\r\n this.value = value;\r\n if (this.value && Object.keys(this.value).length > 0) {\r\n this.theme = { colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark as boolean) };\r\n this.formGroup.patchValue(this.theme.colors as XColorsTheme);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(public configService: XConfigService, public i18n: XI18nService, public override cdr: ChangeDetectorRef) {\r\n super();\r\n this.themeService = this.configService.themeService;\r\n }\r\n\r\n ngOnInit() {\r\n this.theme = this.configService.getTheme(true);\r\n this.setControls();\r\n this.setDefaultColors();\r\n this.controls.map((x: XControl) => {\r\n x.value = (this.theme.colors as XColorsTheme)[x.id];\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.theme as XI18nTheme),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.setControlsLabel();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this._unSubject)).subscribe((x: XColorsTheme) => {\r\n this.beforeColors = this.currentColors;\r\n let changes = this.getChanges(x);\r\n if (this.isOneAndInColorKeys(changes)) {\r\n let [key, value] = Object.entries(changes)[0];\r\n let colors = !this.dark ? this.themeService.setRoot(key, value, '') : this.themeService.setDarkRoot(key, value, '');\r\n Object.assign(x, colors);\r\n this.currentColors = x;\r\n this.formGroup.patchValue(x);\r\n } else {\r\n this.currentColors = x;\r\n this.value = x;\r\n this.configService.setTheme({ colors: x });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setControlsLabel() {\r\n Object.keys(this.locale).forEach((x) => {\r\n let control = this.controls.find((y) => y.id === x);\r\n if (control) {\r\n control.label = (this.locale as any)[x];\r\n control.change && control.change();\r\n }\r\n });\r\n }\r\n\r\n setDefaultColors() {\r\n this.beforeColors = this.theme.colors as XColorsTheme;\r\n this.currentColors = this.beforeColors;\r\n this.darkBeforeColors = this.beforeColors;\r\n }\r\n\r\n setControls() {\r\n [...this.controls].forEach((control, index) => {\r\n let addControls: XControl[] = [];\r\n control.span = !this.showDetail ? 6 : 5;\r\n this.width = !this.showDetail ? '36rem' : '45rem';\r\n for (let amount of this.amounts) {\r\n addControls.push({\r\n control: 'color-picker',\r\n id: `${control.id}${this.themeService.getSuffix(amount as number)}`,\r\n label: '',\r\n hidden: !this.showDetail\r\n });\r\n }\r\n this.controls.splice(index * this.amounts.length + index + 1, 0, ...addControls);\r\n });\r\n }\r\n\r\n default() {\r\n this.dark = false;\r\n let colors = this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS), '', this.dark);\r\n this.beforeColors = colors;\r\n this.currentColors = colors;\r\n this.formGroup.patchValue(colors);\r\n this.defaultClick.emit(colors);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n isOneAndInColorKeys(colors: XColorsTheme) {\r\n const keys = Object.keys(colors);\r\n if (keys.length === 1 && X_THEME_COLOR_KEYS.includes(keys[0])) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getChanges(colors: XColorsTheme) {\r\n let result: XColorsTheme = {};\r\n for (let color in colors) {\r\n if (colors[color] !== this.beforeColors[color]) {\r\n result[color] = colors[color];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n darkChanges() {\r\n let colors = this.darkBeforeColors as XColorsTheme;\r\n if (this.dark) {\r\n this.beforeColors = this.formGroup.value;\r\n this.darkBeforeColors = this.formGroup.value;\r\n colors = this.themeService.getDefineColors(\r\n Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), X_THEME_DARK_COLORS),\r\n '',\r\n this.dark as boolean\r\n );\r\n }\r\n this.formGroup.patchValue(colors);\r\n this.darkChange.emit(this.dark);\r\n }\r\n}\r\n","<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XThemeComponent } from './theme.component';\r\nimport { XThemeProperty } from './theme.property';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XFormModule } from '@ng-nest/ui/form';\r\nimport { XSwitchModule } from '@ng-nest/ui/switch';\r\nimport { XLayoutModule } from '@ng-nest/ui/layout';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XThemeComponent, XThemeProperty],\r\n exports: [XThemeComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XSwitchModule,\r\n XButtonModule,\r\n XLayoutModule,\r\n XFormModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XThemeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-theme.mjs","sources":["../../../../lib/ng-nest/ui/theme/theme.property.ts","../../../../lib/ng-nest/ui/theme/theme.component.ts","../../../../lib/ng-nest/ui/theme/theme.component.html","../../../../lib/ng-nest/ui/theme/theme.module.ts","../../../../lib/ng-nest/ui/theme/ng-nest-ui-theme.ts"],"sourcesContent":["import { XWithConfig, XNumber, XColorsTheme, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Theme\r\n * @selector x-theme\r\n * @decorator component\r\n */\r\nexport const XThemePrefix = 'x-theme';\r\n\r\nconst X_CONFIG_NAME = 'theme';\r\n\r\nexport const XThemeAmounts = [-0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\n/**\r\n * Theme Property\r\n */\r\n@Component({ selector: `${XThemePrefix}-property`, template: '' })\r\nexport class XThemeProperty extends XControlValueAccessor<XColorsTheme> {\r\n /**\r\n * @zh_CN 参数前缀\r\n * @en_US Parameter prefix\r\n */\r\n @Input() prefix: string = '--x-';\r\n /**\r\n * @zh_CN 混合的颜色占比\r\n * @en_US Proportion of mixed colors\r\n */\r\n @Input() @XWithConfig<XNumber[]>(X_CONFIG_NAME, XThemeAmounts) amounts!: XNumber[];\r\n /**\r\n * @zh_CN 显示暗黑模式的设置\r\n * @en_US Show dark mode settings\r\n */\r\n @Input() @XInputBoolean() showDark?: XBoolean;\r\n /**\r\n * @zh_CN 详细设置\r\n * @en_US Detailed settings\r\n */\r\n @Input() @XInputBoolean() showDetail?: XBoolean;\r\n /**\r\n * @zh_CN 暗黑模式\r\n * @en_US Dark mode\r\n */\r\n @Input() @XInputBoolean() dark: XBoolean = false;\r\n /**\r\n * @zh_CN 初始化默认值事件\r\n * @en_US Initialize default value event\r\n */\r\n @Output() defaultClick = new EventEmitter<XColorsTheme>();\r\n /**\r\n * @zh_CN 暗黑模式改变事件\r\n * @en_US Dark mode change event\r\n */\r\n @Output() darkChange = new EventEmitter<XBoolean>();\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n inject,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { XThemeProperty } from './theme.property';\r\nimport {\r\n XConfigService,\r\n XColorsTheme,\r\n XTheme,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_COLORS,\r\n X_THEME_DARK_COLORS\r\n} from '@ng-nest/ui/core';\r\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { XControl, XFormComponent } from '@ng-nest/ui/form';\r\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nDirective, XI18nService, XI18nTheme } from '@ng-nest/ui/i18n';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XSwitchComponent } from '@ng-nest/ui/switch';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XColComponent, XRowComponent } from '@ng-nest/ui/layout';\r\n\r\n@Component({\r\n selector: 'x-theme',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XSwitchComponent,\r\n XButtonComponent,\r\n XRowComponent,\r\n XColComponent,\r\n XFormComponent,\r\n XI18nDirective\r\n ],\r\n templateUrl: './theme.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XThemeComponent)]\r\n})\r\nexport class XThemeComponent extends XThemeProperty implements OnInit, AfterViewInit, OnDestroy {\r\n formGroup = new UntypedFormGroup({});\r\n\r\n theme: XTheme = {\r\n colors: {}\r\n };\r\n width = '45rem';\r\n beforeColors: XColorsTheme = {};\r\n currentColors: XColorsTheme = {};\r\n darkBeforeColors: XColorsTheme = {};\r\n controls: XControl[] = [\r\n { control: 'color-picker', id: 'primary', label: '主色', span: 5 },\r\n { control: 'color-picker', id: 'success', label: '成功', span: 5 },\r\n { control: 'color-picker', id: 'warning', label: '警告', span: 5 },\r\n { control: 'color-picker', id: 'danger', label: '危险', span: 5 },\r\n { control: 'color-picker', id: 'info', label: '信息', span: 5 },\r\n { control: 'color-picker', id: 'background', label: '背景', span: 5 },\r\n { control: 'color-picker', id: 'border', label: '边框', span: 5 },\r\n { control: 'color-picker', id: 'text', label: '文字', span: 5 }\r\n ];\r\n\r\n override value: XColorsTheme = {};\r\n\r\n locale: XI18nTheme = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n override writeValue(value: XColorsTheme) {\r\n this.value = value;\r\n if (this.value && Object.keys(this.value).length > 0) {\r\n this.theme = {\r\n colors: this.themeService.getDefineColors(\r\n Object.assign({}, X_THEME_COLORS, this.value),\r\n '',\r\n this.dark as boolean\r\n )\r\n };\r\n this.formGroup.patchValue(this.theme.colors as XColorsTheme);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n override cdr = inject(ChangeDetectorRef);\r\n public i18n = inject(XI18nService);\r\n configService = inject(XConfigService);\r\n themeService = this.configService.themeService;\r\n\r\n ngOnInit() {\r\n this.theme = this.configService.getTheme(true);\r\n this.setControls();\r\n this.setDefaultColors();\r\n this.controls.map((x: XControl) => {\r\n x.value = (this.theme.colors as XColorsTheme)[x.id];\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.theme as XI18nTheme),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.setControlsLabel();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this._unSubject)).subscribe((x: XColorsTheme) => {\r\n this.beforeColors = this.currentColors;\r\n let changes = this.getChanges(x);\r\n if (this.isOneAndInColorKeys(changes)) {\r\n let [key, value] = Object.entries(changes)[0];\r\n let colors = !this.dark\r\n ? this.themeService.setRoot(key, value, '')\r\n : this.themeService.setDarkRoot(key, value, '');\r\n Object.assign(x, colors);\r\n this.currentColors = x;\r\n this.formGroup.patchValue(x);\r\n } else {\r\n this.currentColors = x;\r\n this.value = x;\r\n this.configService.setTheme({ colors: x });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setControlsLabel() {\r\n Object.keys(this.locale).forEach((x) => {\r\n let control = this.controls.find((y) => y.id === x);\r\n if (control) {\r\n control.label = (this.locale as any)[x];\r\n control.change && control.change();\r\n }\r\n });\r\n }\r\n\r\n setDefaultColors() {\r\n this.beforeColors = this.theme.colors as XColorsTheme;\r\n this.currentColors = this.beforeColors;\r\n this.darkBeforeColors = this.beforeColors;\r\n }\r\n\r\n setControls() {\r\n [...this.controls].forEach((control, index) => {\r\n let addControls: XControl[] = [];\r\n control.span = !this.showDetail ? 6 : 5;\r\n this.width = !this.showDetail ? '36rem' : '45rem';\r\n for (let amount of this.amounts) {\r\n addControls.push({\r\n control: 'color-picker',\r\n id: `${control.id}${this.themeService.getSuffix(amount as number)}`,\r\n label: '',\r\n hidden: !this.showDetail\r\n });\r\n }\r\n this.controls.splice(index * this.amounts.length + index + 1, 0, ...addControls);\r\n });\r\n }\r\n\r\n default() {\r\n this.dark = false;\r\n let colors = this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS), '', this.dark);\r\n this.beforeColors = colors;\r\n this.currentColors = colors;\r\n this.formGroup.patchValue(colors);\r\n this.defaultClick.emit(colors);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n isOneAndInColorKeys(colors: XColorsTheme) {\r\n const keys = Object.keys(colors);\r\n if (keys.length === 1 && X_THEME_COLOR_KEYS.includes(keys[0])) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getChanges(colors: XColorsTheme) {\r\n let result: XColorsTheme = {};\r\n for (let color in colors) {\r\n if (colors[color] !== this.beforeColors[color]) {\r\n result[color] = colors[color];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n darkChanges() {\r\n let colors = this.darkBeforeColors as XColorsTheme;\r\n if (this.dark) {\r\n this.beforeColors = this.formGroup.value;\r\n this.darkBeforeColors = this.formGroup.value;\r\n colors = this.themeService.getDefineColors(\r\n Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), X_THEME_DARK_COLORS),\r\n '',\r\n this.dark as boolean\r\n );\r\n }\r\n this.formGroup.patchValue(colors);\r\n this.darkChange.emit(this.dark);\r\n }\r\n}\r\n","<div class=\"x-theme\">\r\n <x-row>\r\n <x-col [style.width.rem]=\"8\" *ngIf=\"showDark\">\r\n <x-switch direction=\"row\" [label]=\"locale.darkMode\" [(ngModel)]=\"dark\" (ngModelChange)=\"darkChanges()\"></x-switch>\r\n </x-col>\r\n <x-col [style.width.rem]=\"8\">\r\n <x-button (click)=\"default()\">{{ locale.initDefault }}</x-button>\r\n </x-col>\r\n </x-row>\r\n <x-form [formGroup]=\"formGroup\" [controls]=\"controls\" [width]=\"width\" span=\"2\" space=\"1\"></x-form>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XThemeComponent } from './theme.component';\r\n\r\n@NgModule({\r\n exports: [XThemeComponent],\r\n imports: [XThemeComponent]\r\n})\r\nexport class XThemeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|