@taiga-ui/core 2.23.0 → 2.24.0
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/README.md +7 -3
- package/bundles/taiga-ui-core-components-button.umd.js +21 -7
- package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-button.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-calendar.umd.js +1 -1
- package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-calendar.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-calendar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.js +4 -3
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-error.umd.js +1 -1
- package/bundles/taiga-ui-core-components-error.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.js +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.js +2 -2
- package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +1 -14
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-label.umd.js +1 -1
- package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-label.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-label.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.js +2 -2
- package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.js +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +3 -3
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-scroll-controls.umd.js +1 -1
- package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.js +34 -24
- package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +9 -1
- package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
- package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +9 -3
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +1 -1
- package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
- package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js +1 -1
- package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.js +2 -2
- package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js +27 -8
- package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
- package/components/button/button-options.d.ts +10 -0
- package/components/button/button.component.d.ts +8 -7
- package/components/button/index.d.ts +1 -0
- package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
- package/components/calendar/taiga-ui-core-components-calendar.metadata.json +1 -1
- package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
- package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
- package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
- package/components/error/taiga-ui-core-components-error.metadata.json +1 -1
- package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
- package/components/hints-host/taiga-ui-core-components-hints-host.metadata.json +1 -1
- package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -3
- package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
- package/components/label/taiga-ui-core-components-label.metadata.json +1 -1
- package/components/loader/taiga-ui-core-components-loader.metadata.json +1 -1
- package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
- package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
- package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
- package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
- package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
- package/components/scroll-controls/taiga-ui-core-components-scroll-controls.metadata.json +1 -1
- package/components/scrollbar/scrollable.directive.d.ts +5 -1
- package/components/scrollbar/scrollbar.component.d.ts +4 -3
- package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
- package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
- package/constants/events.d.ts +5 -0
- package/constants/regexp.d.ts +1 -0
- package/constants/taiga-ui-core-constants.metadata.json +1 -1
- package/constants/version.d.ts +1 -1
- package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.metadata.json +1 -1
- package/esm2015/components/button/button-options.js +10 -0
- package/esm2015/components/button/button.component.js +12 -8
- package/esm2015/components/button/index.js +2 -1
- package/esm2015/components/calendar/calendar.component.js +2 -2
- package/esm2015/components/data-list/data-list.component.js +3 -2
- package/esm2015/components/data-list/option/option.component.js +3 -3
- package/esm2015/components/dialog/dialog.component.js +2 -2
- package/esm2015/components/dropdown-box/dropdown-box.component.js +1 -1
- package/esm2015/components/error/error.component.js +1 -1
- package/esm2015/components/expand/expand.component.js +2 -2
- package/esm2015/components/hints-host/hint-box/hint-box.component.js +1 -1
- package/esm2015/components/hints-host/hints-host.component.js +2 -2
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +3 -12
- package/esm2015/components/label/label.component.js +2 -2
- package/esm2015/components/loader/loader.component.js +3 -3
- package/esm2015/components/notification/notification.component.js +1 -1
- package/esm2015/components/primitive-calendar/primitive-calendar.component.js +2 -2
- package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +1 -1
- package/esm2015/components/primitive-textfield/primitive-textfield.component.js +3 -3
- package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +2 -2
- package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +2 -2
- package/esm2015/components/scroll-controls/scroll-controls.component.js +1 -1
- package/esm2015/components/scrollbar/scrollable.directive.js +18 -4
- package/esm2015/components/scrollbar/scrollbar.component.js +20 -18
- package/esm2015/components/tooltip/tooltip.component.js +1 -1
- package/esm2015/constants/events.js +6 -1
- package/esm2015/constants/regexp.js +2 -1
- package/esm2015/constants/version.js +2 -2
- package/esm2015/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
- package/esm2015/directives/textfield-controller/textfield-size.directive.js +4 -2
- package/esm2015/directives/textfield-controller/textfield-type.directive.js +4 -2
- package/esm2015/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
- package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +2 -2
- package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +1 -1
- package/esm2015/utils/mask/create-number-mask.js +27 -10
- package/esm5/components/button/button-options.js +10 -0
- package/esm5/components/button/button.component.js +12 -8
- package/esm5/components/button/index.js +2 -1
- package/esm5/components/calendar/calendar.component.js +2 -2
- package/esm5/components/data-list/data-list.component.js +3 -2
- package/esm5/components/data-list/option/option.component.js +3 -3
- package/esm5/components/dialog/dialog.component.js +2 -2
- package/esm5/components/dropdown-box/dropdown-box.component.js +1 -1
- package/esm5/components/error/error.component.js +1 -1
- package/esm5/components/expand/expand.component.js +2 -2
- package/esm5/components/hints-host/hint-box/hint-box.component.js +1 -1
- package/esm5/components/hints-host/hints-host.component.js +2 -2
- package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +3 -16
- package/esm5/components/label/label.component.js +2 -2
- package/esm5/components/loader/loader.component.js +3 -3
- package/esm5/components/notification/notification.component.js +1 -1
- package/esm5/components/primitive-calendar/primitive-calendar.component.js +2 -2
- package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +1 -1
- package/esm5/components/primitive-textfield/primitive-textfield.component.js +3 -3
- package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +2 -2
- package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +2 -2
- package/esm5/components/scroll-controls/scroll-controls.component.js +1 -1
- package/esm5/components/scrollbar/scrollable.directive.js +17 -5
- package/esm5/components/scrollbar/scrollbar.component.js +20 -22
- package/esm5/components/tooltip/tooltip.component.js +1 -1
- package/esm5/constants/events.js +6 -1
- package/esm5/constants/regexp.js +2 -1
- package/esm5/constants/version.js +2 -2
- package/esm5/directives/textfield-controller/textfield-cleaner.directive.js +4 -2
- package/esm5/directives/textfield-controller/textfield-size.directive.js +4 -2
- package/esm5/directives/textfield-controller/textfield-type.directive.js +4 -2
- package/esm5/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.js +2 -2
- package/esm5/modules/notifications/notification-alert/notification-alert.component.js +2 -2
- package/esm5/modules/notifications/notifications-host/notifications-host.component.js +1 -1
- package/esm5/utils/mask/create-number-mask.js +29 -10
- package/fesm2015/taiga-ui-core-components-button.js +21 -9
- package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-calendar.js +1 -1
- package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-data-list.js +4 -3
- package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dropdown-box.js +1 -1
- package/fesm2015/taiga-ui-core-components-error.js +1 -1
- package/fesm2015/taiga-ui-core-components-expand.js +1 -1
- package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hints-host.js +2 -2
- package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +2 -11
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-label.js +1 -1
- package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-loader.js +2 -2
- package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-notification.js +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +3 -3
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-scroll-controls.js +1 -1
- package/fesm2015/taiga-ui-core-components-scrollbar.js +33 -17
- package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm2015/taiga-ui-core-constants.js +8 -2
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-textfield-controller.js +9 -3
- package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
- package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
- package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
- package/fesm2015/taiga-ui-core-modules-notifications.js +2 -2
- package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js +26 -9
- package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm5/taiga-ui-core-components-button.js +21 -9
- package/fesm5/taiga-ui-core-components-button.js.map +1 -1
- package/fesm5/taiga-ui-core-components-calendar.js +1 -1
- package/fesm5/taiga-ui-core-components-calendar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-data-list.js +4 -3
- package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dialog.js +1 -1
- package/fesm5/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm5/taiga-ui-core-components-dropdown-box.js +1 -1
- package/fesm5/taiga-ui-core-components-error.js +1 -1
- package/fesm5/taiga-ui-core-components-expand.js +1 -1
- package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hints-host.js +2 -2
- package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js +2 -15
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm5/taiga-ui-core-components-label.js +1 -1
- package/fesm5/taiga-ui-core-components-label.js.map +1 -1
- package/fesm5/taiga-ui-core-components-loader.js +2 -2
- package/fesm5/taiga-ui-core-components-loader.js.map +1 -1
- package/fesm5/taiga-ui-core-components-notification.js +1 -1
- package/fesm5/taiga-ui-core-components-primitive-calendar.js +1 -1
- package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-spin-button.js +1 -1
- package/fesm5/taiga-ui-core-components-primitive-textfield.js +3 -3
- package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js +1 -1
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm5/taiga-ui-core-components-scroll-controls.js +1 -1
- package/fesm5/taiga-ui-core-components-scrollbar.js +32 -22
- package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm5/taiga-ui-core-constants.js +8 -2
- package/fesm5/taiga-ui-core-constants.js.map +1 -1
- package/fesm5/taiga-ui-core-directives-textfield-controller.js +9 -3
- package/fesm5/taiga-ui-core-directives-textfield-controller.js.map +1 -1
- package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js +1 -1
- package/fesm5/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
- package/fesm5/taiga-ui-core-modules-notifications.js +2 -2
- package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-mask.js +29 -10
- package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
- package/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.metadata.json +1 -1
- package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
- package/package.json +4 -4
- package/styles/mixins/textfield.less +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-directives-textfield-controller.js","sources":["ng://@taiga-ui/core/directives/textfield-controller/textfield.controller.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-autocomplete.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-cleaner.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-custom-content.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-example-text.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-input-mode.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-label-outside.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-max-length.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-size.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-type.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-controller.module.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-controller.provider.ts","ng://@taiga-ui/core/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.ts"],"sourcesContent":["import {TuiAutofillFieldName, TuiInputModeT, TuiInputTypeT} from '@taiga-ui/cdk';\nimport {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {TuiTextfieldAutocompleteDirective} from './textfield-autocomplete.directive';\nimport {TuiTextfieldCleanerDirective} from './textfield-cleaner.directive';\nimport {TuiTextfieldCustomContentDirective} from './textfield-custom-content.directive';\nimport {TuiTextfieldExampleTextDirective} from './textfield-example-text.directive';\nimport {TuiTextfieldInputModeDirective} from './textfield-input-mode.directive';\nimport {TuiTextfieldLabelOutsideDirective} from './textfield-label-outside.directive';\nimport {TuiTextfieldMaxLengthDirective} from './textfield-max-length.directive';\nimport {TuiTextfieldSizeDirective} from './textfield-size.directive';\nimport {TuiTextfieldTypeDirective} from './textfield-type.directive';\n\nexport class TuiTextfieldController {\n constructor(\n readonly change$: Observable<void>,\n private readonly autocompleteDirective: TuiTextfieldAutocompleteDirective,\n private readonly cleanerDirective: TuiTextfieldCleanerDirective,\n private readonly customContentDirective: TuiTextfieldCustomContentDirective,\n private readonly exampleTextDirective: TuiTextfieldExampleTextDirective,\n private readonly inputModeDirective: TuiTextfieldInputModeDirective,\n private readonly labelOutsideDirective: TuiTextfieldLabelOutsideDirective,\n private readonly maxLengthDirective: TuiTextfieldMaxLengthDirective,\n private readonly sizeDirective: TuiTextfieldSizeDirective,\n private readonly typeDirective: TuiTextfieldTypeDirective,\n ) {}\n\n get autocomplete(): TuiAutofillFieldName | '' {\n return this.autocompleteDirective.autocomplete;\n }\n\n get cleaner(): boolean {\n return this.cleanerDirective.cleaner;\n }\n\n get customContent(): PolymorpheusContent {\n return this.customContentDirective.customContent || '';\n }\n\n get exampleText(): string {\n return this.exampleTextDirective.exampleText;\n }\n\n get inputMode(): TuiInputModeT {\n return this.inputModeDirective.inputMode;\n }\n\n get labelOutside(): boolean {\n return this.labelOutsideDirective.labelOutside;\n }\n\n get maxLength(): number | null {\n return this.maxLengthDirective.maxLength;\n }\n\n get size(): TuiSizeS | TuiSizeL {\n return this.sizeDirective.size;\n }\n\n get type(): TuiInputTypeT {\n return this.typeDirective.type;\n }\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiAutofillFieldName, TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_AUTOCOMPLETE =\n new InjectionToken<TuiTextfieldAutocompleteDirective>('tuiTextfieldAutocomplete', {\n factory: autocompleteDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldAutocomplete]',\n providers: [\n {\n provide: TUI_TEXTFIELD_AUTOCOMPLETE,\n useExisting: forwardRef(() => TuiTextfieldAutocompleteDirective),\n },\n ],\n})\nexport class TuiTextfieldAutocompleteDirective extends TuiController {\n @Input('tuiTextfieldAutocomplete')\n autocomplete: TuiAutofillFieldName | '' = '';\n}\n\nexport function autocompleteDirectiveFactory(): TuiTextfieldAutocompleteDirective {\n return new TuiTextfieldAutocompleteDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_CLEANER = new InjectionToken<TuiTextfieldCleanerDirective>(\n 'tuiTextfieldCleaner',\n {factory: cleanerDirectiveFactory},\n);\n\n@Directive({\n selector: '[tuiTextfieldCleaner]',\n providers: [\n {\n provide: TUI_TEXTFIELD_CLEANER,\n useExisting: forwardRef(() => TuiTextfieldCleanerDirective),\n },\n ],\n})\nexport class TuiTextfieldCleanerDirective extends TuiController {\n @Input('tuiTextfieldCleaner')\n cleaner = false;\n}\n\nexport function cleanerDirectiveFactory(): TuiTextfieldCleanerDirective {\n return new TuiTextfieldCleanerDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_TEXTFIELD_CUSTOM_CONTENT =\n new InjectionToken<TuiTextfieldCustomContentDirective>('tuiTextfieldCustomContent', {\n factory: customContentDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldCustomContent]',\n providers: [\n {\n provide: TUI_TEXTFIELD_CUSTOM_CONTENT,\n useExisting: forwardRef(() => TuiTextfieldCustomContentDirective),\n },\n ],\n})\nexport class TuiTextfieldCustomContentDirective extends TuiController {\n // TODO: Remove null in 3.0\n @Input('tuiTextfieldCustomContent')\n customContent: PolymorpheusContent | null = null;\n}\n\nexport function customContentDirectiveFactory(): TuiTextfieldCustomContentDirective {\n return new TuiTextfieldCustomContentDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_EXAMPLE_TEXT =\n new InjectionToken<TuiTextfieldExampleTextDirective>('tuiTextfieldExampleText', {\n factory: exampleTextDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldExampleText]',\n providers: [\n {\n provide: TUI_TEXTFIELD_EXAMPLE_TEXT,\n useExisting: forwardRef(() => TuiTextfieldExampleTextDirective),\n },\n ],\n})\nexport class TuiTextfieldExampleTextDirective extends TuiController {\n @Input('tuiTextfieldExampleText')\n exampleText = '';\n}\n\nexport function exampleTextDirectiveFactory(): TuiTextfieldExampleTextDirective {\n return new TuiTextfieldExampleTextDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController, TuiInputModeT} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_INPUT_MODE =\n new InjectionToken<TuiTextfieldInputModeDirective>('tuiTextfieldInputMode', {\n factory: inputModeDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldInputMode]',\n providers: [\n {\n provide: TUI_TEXTFIELD_INPUT_MODE,\n useExisting: forwardRef(() => TuiTextfieldInputModeDirective),\n },\n ],\n})\nexport class TuiTextfieldInputModeDirective extends TuiController {\n @Input('tuiTextfieldInputMode')\n inputMode: TuiInputModeT = 'text';\n}\n\nexport function inputModeDirectiveFactory(): TuiTextfieldInputModeDirective {\n return new TuiTextfieldInputModeDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_LABEL_OUTSIDE =\n new InjectionToken<TuiTextfieldLabelOutsideDirective>('tuiTextfieldLabelOutside', {\n factory: labelOutsideDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldLabelOutside]',\n providers: [\n {\n provide: TUI_TEXTFIELD_LABEL_OUTSIDE,\n useExisting: forwardRef(() => TuiTextfieldLabelOutsideDirective),\n },\n ],\n})\nexport class TuiTextfieldLabelOutsideDirective extends TuiController {\n @Input('tuiTextfieldLabelOutside')\n labelOutside = false;\n}\n\nexport function labelOutsideDirectiveFactory(): TuiTextfieldLabelOutsideDirective {\n return new TuiTextfieldLabelOutsideDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_MAX_LENGTH =\n new InjectionToken<TuiTextfieldMaxLengthDirective>('tuiTextfieldMaxLength', {\n factory: maxLengthDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldMaxLength]',\n providers: [\n {\n provide: TUI_TEXTFIELD_MAX_LENGTH,\n useExisting: forwardRef(() => TuiTextfieldMaxLengthDirective),\n },\n ],\n})\nexport class TuiTextfieldMaxLengthDirective extends TuiController {\n @Input('tuiTextfieldMaxLength')\n maxLength: number | null = null;\n}\n\nexport function maxLengthDirectiveFactory(): TuiTextfieldMaxLengthDirective {\n return new TuiTextfieldMaxLengthDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\nimport {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nexport const TUI_TEXTFIELD_SIZE = new InjectionToken<TuiTextfieldSizeDirective>(\n 'tuiTextfieldSize',\n {factory: sizeDirectiveFactory},\n);\n\n@Directive({\n selector: '[tuiTextfieldSize]',\n providers: [\n {\n provide: TUI_TEXTFIELD_SIZE,\n useExisting: forwardRef(() => TuiTextfieldSizeDirective),\n },\n ],\n})\nexport class TuiTextfieldSizeDirective extends TuiController {\n @Input('tuiTextfieldSize')\n size: TuiSizeS | TuiSizeL = 'l';\n}\n\nexport function sizeDirectiveFactory(): TuiTextfieldSizeDirective {\n return new TuiTextfieldSizeDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController, TuiInputTypeT} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_TYPE = new InjectionToken<TuiTextfieldTypeDirective>(\n 'tuiTextfieldType',\n {factory: typeDirectiveFactory},\n);\n\n@Directive({\n selector: '[tuiTextfieldType]',\n providers: [\n {\n provide: TUI_TEXTFIELD_TYPE,\n useExisting: forwardRef(() => TuiTextfieldTypeDirective),\n },\n ],\n})\nexport class TuiTextfieldTypeDirective extends TuiController {\n @Input('tuiTextfieldType')\n type: TuiInputTypeT = 'text';\n}\n\nexport function typeDirectiveFactory(): TuiTextfieldTypeDirective {\n return new TuiTextfieldTypeDirective();\n}\n","import {NgModule} from '@angular/core';\nimport {TuiTextfieldAutocompleteDirective} from './textfield-autocomplete.directive';\nimport {TuiTextfieldCleanerDirective} from './textfield-cleaner.directive';\nimport {TuiTextfieldCustomContentDirective} from './textfield-custom-content.directive';\nimport {TuiTextfieldExampleTextDirective} from './textfield-example-text.directive';\nimport {TuiTextfieldInputModeDirective} from './textfield-input-mode.directive';\nimport {TuiTextfieldLabelOutsideDirective} from './textfield-label-outside.directive';\nimport {TuiTextfieldMaxLengthDirective} from './textfield-max-length.directive';\nimport {TuiTextfieldSizeDirective} from './textfield-size.directive';\nimport {TuiTextfieldTypeDirective} from './textfield-type.directive';\n\n@NgModule({\n declarations: [\n TuiTextfieldAutocompleteDirective,\n TuiTextfieldCleanerDirective,\n TuiTextfieldCustomContentDirective,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldInputModeDirective,\n TuiTextfieldLabelOutsideDirective,\n TuiTextfieldMaxLengthDirective,\n TuiTextfieldSizeDirective,\n TuiTextfieldTypeDirective,\n ],\n exports: [\n TuiTextfieldAutocompleteDirective,\n TuiTextfieldCleanerDirective,\n TuiTextfieldCustomContentDirective,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldInputModeDirective,\n TuiTextfieldLabelOutsideDirective,\n TuiTextfieldMaxLengthDirective,\n TuiTextfieldSizeDirective,\n TuiTextfieldTypeDirective,\n ],\n})\nexport class TuiTextfieldControllerModule {}\n","import {ChangeDetectorRef, InjectionToken, Provider} from '@angular/core';\nimport {TuiDestroyService, watch} from '@taiga-ui/cdk';\nimport {merge, NEVER, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {\n TUI_TEXTFIELD_AUTOCOMPLETE,\n TuiTextfieldAutocompleteDirective,\n} from './textfield-autocomplete.directive';\nimport {\n TUI_TEXTFIELD_CLEANER,\n TuiTextfieldCleanerDirective,\n} from './textfield-cleaner.directive';\nimport {\n TUI_TEXTFIELD_CUSTOM_CONTENT,\n TuiTextfieldCustomContentDirective,\n} from './textfield-custom-content.directive';\nimport {\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TuiTextfieldExampleTextDirective,\n} from './textfield-example-text.directive';\nimport {\n TUI_TEXTFIELD_INPUT_MODE,\n TuiTextfieldInputModeDirective,\n} from './textfield-input-mode.directive';\nimport {\n TUI_TEXTFIELD_LABEL_OUTSIDE,\n TuiTextfieldLabelOutsideDirective,\n} from './textfield-label-outside.directive';\nimport {\n TUI_TEXTFIELD_MAX_LENGTH,\n TuiTextfieldMaxLengthDirective,\n} from './textfield-max-length.directive';\nimport {TUI_TEXTFIELD_SIZE, TuiTextfieldSizeDirective} from './textfield-size.directive';\nimport {TUI_TEXTFIELD_TYPE, TuiTextfieldTypeDirective} from './textfield-type.directive';\nimport {TuiTextfieldController} from './textfield.controller';\n\nexport const TUI_TEXTFIELD_WATCHED_CONTROLLER =\n new InjectionToken<TuiTextfieldController>('watched textfield controller');\n\nexport function textfieldWatchedControllerFactory(\n changeDetectorRef: ChangeDetectorRef,\n destroy$: Observable<void>,\n ...controllers: [\n TuiTextfieldAutocompleteDirective,\n TuiTextfieldCleanerDirective,\n TuiTextfieldCustomContentDirective,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldInputModeDirective,\n TuiTextfieldLabelOutsideDirective,\n TuiTextfieldMaxLengthDirective,\n TuiTextfieldSizeDirective,\n // @ts-ignore remove after TS update\n TuiTextfieldTypeDirective,\n ]\n): TuiTextfieldController {\n const change$ = merge(...controllers.map(({change$}) => change$ || NEVER)).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n\n change$.subscribe();\n\n return new TuiTextfieldController(change$, ...controllers);\n}\n\nexport const TEXTFIELD_CONTROLLER_PROVIDER: Provider = [\n TuiDestroyService,\n {\n provide: TUI_TEXTFIELD_WATCHED_CONTROLLER,\n deps: [\n ChangeDetectorRef,\n TuiDestroyService,\n TUI_TEXTFIELD_AUTOCOMPLETE,\n TUI_TEXTFIELD_CLEANER,\n TUI_TEXTFIELD_CUSTOM_CONTENT,\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TUI_TEXTFIELD_INPUT_MODE,\n TUI_TEXTFIELD_LABEL_OUTSIDE,\n TUI_TEXTFIELD_MAX_LENGTH,\n TUI_TEXTFIELD_SIZE,\n TUI_TEXTFIELD_TYPE,\n ],\n useFactory: textfieldWatchedControllerFactory,\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-directives-textfield-controller.js","sources":["ng://@taiga-ui/core/directives/textfield-controller/textfield.controller.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-autocomplete.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-cleaner.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-custom-content.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-example-text.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-input-mode.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-label-outside.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-max-length.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-size.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-type.directive.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-controller.module.ts","ng://@taiga-ui/core/directives/textfield-controller/textfield-controller.provider.ts","ng://@taiga-ui/core/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.ts"],"sourcesContent":["import {TuiAutofillFieldName, TuiInputModeT, TuiInputTypeT} from '@taiga-ui/cdk';\nimport {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {TuiTextfieldAutocompleteDirective} from './textfield-autocomplete.directive';\nimport {TuiTextfieldCleanerDirective} from './textfield-cleaner.directive';\nimport {TuiTextfieldCustomContentDirective} from './textfield-custom-content.directive';\nimport {TuiTextfieldExampleTextDirective} from './textfield-example-text.directive';\nimport {TuiTextfieldInputModeDirective} from './textfield-input-mode.directive';\nimport {TuiTextfieldLabelOutsideDirective} from './textfield-label-outside.directive';\nimport {TuiTextfieldMaxLengthDirective} from './textfield-max-length.directive';\nimport {TuiTextfieldSizeDirective} from './textfield-size.directive';\nimport {TuiTextfieldTypeDirective} from './textfield-type.directive';\n\nexport class TuiTextfieldController {\n constructor(\n readonly change$: Observable<void>,\n private readonly autocompleteDirective: TuiTextfieldAutocompleteDirective,\n private readonly cleanerDirective: TuiTextfieldCleanerDirective,\n private readonly customContentDirective: TuiTextfieldCustomContentDirective,\n private readonly exampleTextDirective: TuiTextfieldExampleTextDirective,\n private readonly inputModeDirective: TuiTextfieldInputModeDirective,\n private readonly labelOutsideDirective: TuiTextfieldLabelOutsideDirective,\n private readonly maxLengthDirective: TuiTextfieldMaxLengthDirective,\n private readonly sizeDirective: TuiTextfieldSizeDirective,\n private readonly typeDirective: TuiTextfieldTypeDirective,\n ) {}\n\n get autocomplete(): TuiAutofillFieldName | '' {\n return this.autocompleteDirective.autocomplete;\n }\n\n get cleaner(): boolean {\n return this.cleanerDirective.cleaner;\n }\n\n get customContent(): PolymorpheusContent {\n return this.customContentDirective.customContent || '';\n }\n\n get exampleText(): string {\n return this.exampleTextDirective.exampleText;\n }\n\n get inputMode(): TuiInputModeT {\n return this.inputModeDirective.inputMode;\n }\n\n get labelOutside(): boolean {\n return this.labelOutsideDirective.labelOutside;\n }\n\n get maxLength(): number | null {\n return this.maxLengthDirective.maxLength;\n }\n\n get size(): TuiSizeS | TuiSizeL {\n return this.sizeDirective.size;\n }\n\n get type(): TuiInputTypeT {\n return this.typeDirective.type;\n }\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiAutofillFieldName, TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_AUTOCOMPLETE =\n new InjectionToken<TuiTextfieldAutocompleteDirective>('tuiTextfieldAutocomplete', {\n factory: autocompleteDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldAutocomplete]',\n providers: [\n {\n provide: TUI_TEXTFIELD_AUTOCOMPLETE,\n useExisting: forwardRef(() => TuiTextfieldAutocompleteDirective),\n },\n ],\n})\nexport class TuiTextfieldAutocompleteDirective extends TuiController {\n @Input('tuiTextfieldAutocomplete')\n autocomplete: TuiAutofillFieldName | '' = '';\n}\n\nexport function autocompleteDirectiveFactory(): TuiTextfieldAutocompleteDirective {\n return new TuiTextfieldAutocompleteDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_CLEANER = new InjectionToken<TuiTextfieldCleanerDirective>(\n 'tuiTextfieldCleaner',\n {\n factory: cleanerDirectiveFactory,\n },\n);\n\n@Directive({\n selector: '[tuiTextfieldCleaner]',\n providers: [\n {\n provide: TUI_TEXTFIELD_CLEANER,\n useExisting: forwardRef(() => TuiTextfieldCleanerDirective),\n },\n ],\n})\nexport class TuiTextfieldCleanerDirective extends TuiController {\n @Input('tuiTextfieldCleaner')\n cleaner = false;\n}\n\nexport function cleanerDirectiveFactory(): TuiTextfieldCleanerDirective {\n return new TuiTextfieldCleanerDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_TEXTFIELD_CUSTOM_CONTENT =\n new InjectionToken<TuiTextfieldCustomContentDirective>('tuiTextfieldCustomContent', {\n factory: customContentDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldCustomContent]',\n providers: [\n {\n provide: TUI_TEXTFIELD_CUSTOM_CONTENT,\n useExisting: forwardRef(() => TuiTextfieldCustomContentDirective),\n },\n ],\n})\nexport class TuiTextfieldCustomContentDirective extends TuiController {\n // TODO: Remove null in 3.0\n @Input('tuiTextfieldCustomContent')\n customContent: PolymorpheusContent | null = null;\n}\n\nexport function customContentDirectiveFactory(): TuiTextfieldCustomContentDirective {\n return new TuiTextfieldCustomContentDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_EXAMPLE_TEXT =\n new InjectionToken<TuiTextfieldExampleTextDirective>('tuiTextfieldExampleText', {\n factory: exampleTextDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldExampleText]',\n providers: [\n {\n provide: TUI_TEXTFIELD_EXAMPLE_TEXT,\n useExisting: forwardRef(() => TuiTextfieldExampleTextDirective),\n },\n ],\n})\nexport class TuiTextfieldExampleTextDirective extends TuiController {\n @Input('tuiTextfieldExampleText')\n exampleText = '';\n}\n\nexport function exampleTextDirectiveFactory(): TuiTextfieldExampleTextDirective {\n return new TuiTextfieldExampleTextDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController, TuiInputModeT} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_INPUT_MODE =\n new InjectionToken<TuiTextfieldInputModeDirective>('tuiTextfieldInputMode', {\n factory: inputModeDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldInputMode]',\n providers: [\n {\n provide: TUI_TEXTFIELD_INPUT_MODE,\n useExisting: forwardRef(() => TuiTextfieldInputModeDirective),\n },\n ],\n})\nexport class TuiTextfieldInputModeDirective extends TuiController {\n @Input('tuiTextfieldInputMode')\n inputMode: TuiInputModeT = 'text';\n}\n\nexport function inputModeDirectiveFactory(): TuiTextfieldInputModeDirective {\n return new TuiTextfieldInputModeDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_LABEL_OUTSIDE =\n new InjectionToken<TuiTextfieldLabelOutsideDirective>('tuiTextfieldLabelOutside', {\n factory: labelOutsideDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldLabelOutside]',\n providers: [\n {\n provide: TUI_TEXTFIELD_LABEL_OUTSIDE,\n useExisting: forwardRef(() => TuiTextfieldLabelOutsideDirective),\n },\n ],\n})\nexport class TuiTextfieldLabelOutsideDirective extends TuiController {\n @Input('tuiTextfieldLabelOutside')\n labelOutside = false;\n}\n\nexport function labelOutsideDirectiveFactory(): TuiTextfieldLabelOutsideDirective {\n return new TuiTextfieldLabelOutsideDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_MAX_LENGTH =\n new InjectionToken<TuiTextfieldMaxLengthDirective>('tuiTextfieldMaxLength', {\n factory: maxLengthDirectiveFactory,\n });\n\n@Directive({\n selector: '[tuiTextfieldMaxLength]',\n providers: [\n {\n provide: TUI_TEXTFIELD_MAX_LENGTH,\n useExisting: forwardRef(() => TuiTextfieldMaxLengthDirective),\n },\n ],\n})\nexport class TuiTextfieldMaxLengthDirective extends TuiController {\n @Input('tuiTextfieldMaxLength')\n maxLength: number | null = null;\n}\n\nexport function maxLengthDirectiveFactory(): TuiTextfieldMaxLengthDirective {\n return new TuiTextfieldMaxLengthDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController} from '@taiga-ui/cdk';\nimport {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nexport const TUI_TEXTFIELD_SIZE = new InjectionToken<TuiTextfieldSizeDirective>(\n 'tuiTextfieldSize',\n {\n factory: sizeDirectiveFactory,\n },\n);\n\n@Directive({\n selector: '[tuiTextfieldSize]',\n providers: [\n {\n provide: TUI_TEXTFIELD_SIZE,\n useExisting: forwardRef(() => TuiTextfieldSizeDirective),\n },\n ],\n})\nexport class TuiTextfieldSizeDirective extends TuiController {\n @Input('tuiTextfieldSize')\n size: TuiSizeS | TuiSizeL = 'l';\n}\n\nexport function sizeDirectiveFactory(): TuiTextfieldSizeDirective {\n return new TuiTextfieldSizeDirective();\n}\n","import {Directive, forwardRef, InjectionToken, Input} from '@angular/core';\nimport {TuiController, TuiInputTypeT} from '@taiga-ui/cdk';\n\nexport const TUI_TEXTFIELD_TYPE = new InjectionToken<TuiTextfieldTypeDirective>(\n 'tuiTextfieldType',\n {\n factory: typeDirectiveFactory,\n },\n);\n\n@Directive({\n selector: '[tuiTextfieldType]',\n providers: [\n {\n provide: TUI_TEXTFIELD_TYPE,\n useExisting: forwardRef(() => TuiTextfieldTypeDirective),\n },\n ],\n})\nexport class TuiTextfieldTypeDirective extends TuiController {\n @Input('tuiTextfieldType')\n type: TuiInputTypeT = 'text';\n}\n\nexport function typeDirectiveFactory(): TuiTextfieldTypeDirective {\n return new TuiTextfieldTypeDirective();\n}\n","import {NgModule} from '@angular/core';\nimport {TuiTextfieldAutocompleteDirective} from './textfield-autocomplete.directive';\nimport {TuiTextfieldCleanerDirective} from './textfield-cleaner.directive';\nimport {TuiTextfieldCustomContentDirective} from './textfield-custom-content.directive';\nimport {TuiTextfieldExampleTextDirective} from './textfield-example-text.directive';\nimport {TuiTextfieldInputModeDirective} from './textfield-input-mode.directive';\nimport {TuiTextfieldLabelOutsideDirective} from './textfield-label-outside.directive';\nimport {TuiTextfieldMaxLengthDirective} from './textfield-max-length.directive';\nimport {TuiTextfieldSizeDirective} from './textfield-size.directive';\nimport {TuiTextfieldTypeDirective} from './textfield-type.directive';\n\n@NgModule({\n declarations: [\n TuiTextfieldAutocompleteDirective,\n TuiTextfieldCleanerDirective,\n TuiTextfieldCustomContentDirective,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldInputModeDirective,\n TuiTextfieldLabelOutsideDirective,\n TuiTextfieldMaxLengthDirective,\n TuiTextfieldSizeDirective,\n TuiTextfieldTypeDirective,\n ],\n exports: [\n TuiTextfieldAutocompleteDirective,\n TuiTextfieldCleanerDirective,\n TuiTextfieldCustomContentDirective,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldInputModeDirective,\n TuiTextfieldLabelOutsideDirective,\n TuiTextfieldMaxLengthDirective,\n TuiTextfieldSizeDirective,\n TuiTextfieldTypeDirective,\n ],\n})\nexport class TuiTextfieldControllerModule {}\n","import {ChangeDetectorRef, InjectionToken, Provider} from '@angular/core';\nimport {TuiDestroyService, watch} from '@taiga-ui/cdk';\nimport {merge, NEVER, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {\n TUI_TEXTFIELD_AUTOCOMPLETE,\n TuiTextfieldAutocompleteDirective,\n} from './textfield-autocomplete.directive';\nimport {\n TUI_TEXTFIELD_CLEANER,\n TuiTextfieldCleanerDirective,\n} from './textfield-cleaner.directive';\nimport {\n TUI_TEXTFIELD_CUSTOM_CONTENT,\n TuiTextfieldCustomContentDirective,\n} from './textfield-custom-content.directive';\nimport {\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TuiTextfieldExampleTextDirective,\n} from './textfield-example-text.directive';\nimport {\n TUI_TEXTFIELD_INPUT_MODE,\n TuiTextfieldInputModeDirective,\n} from './textfield-input-mode.directive';\nimport {\n TUI_TEXTFIELD_LABEL_OUTSIDE,\n TuiTextfieldLabelOutsideDirective,\n} from './textfield-label-outside.directive';\nimport {\n TUI_TEXTFIELD_MAX_LENGTH,\n TuiTextfieldMaxLengthDirective,\n} from './textfield-max-length.directive';\nimport {TUI_TEXTFIELD_SIZE, TuiTextfieldSizeDirective} from './textfield-size.directive';\nimport {TUI_TEXTFIELD_TYPE, TuiTextfieldTypeDirective} from './textfield-type.directive';\nimport {TuiTextfieldController} from './textfield.controller';\n\nexport const TUI_TEXTFIELD_WATCHED_CONTROLLER =\n new InjectionToken<TuiTextfieldController>('watched textfield controller');\n\nexport function textfieldWatchedControllerFactory(\n changeDetectorRef: ChangeDetectorRef,\n destroy$: Observable<void>,\n ...controllers: [\n TuiTextfieldAutocompleteDirective,\n TuiTextfieldCleanerDirective,\n TuiTextfieldCustomContentDirective,\n TuiTextfieldExampleTextDirective,\n TuiTextfieldInputModeDirective,\n TuiTextfieldLabelOutsideDirective,\n TuiTextfieldMaxLengthDirective,\n TuiTextfieldSizeDirective,\n // @ts-ignore remove after TS update\n TuiTextfieldTypeDirective,\n ]\n): TuiTextfieldController {\n const change$ = merge(...controllers.map(({change$}) => change$ || NEVER)).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n\n change$.subscribe();\n\n return new TuiTextfieldController(change$, ...controllers);\n}\n\nexport const TEXTFIELD_CONTROLLER_PROVIDER: Provider = [\n TuiDestroyService,\n {\n provide: TUI_TEXTFIELD_WATCHED_CONTROLLER,\n deps: [\n ChangeDetectorRef,\n TuiDestroyService,\n TUI_TEXTFIELD_AUTOCOMPLETE,\n TUI_TEXTFIELD_CLEANER,\n TUI_TEXTFIELD_CUSTOM_CONTENT,\n TUI_TEXTFIELD_EXAMPLE_TEXT,\n TUI_TEXTFIELD_INPUT_MODE,\n TUI_TEXTFIELD_LABEL_OUTSIDE,\n TUI_TEXTFIELD_MAX_LENGTH,\n TUI_TEXTFIELD_SIZE,\n TUI_TEXTFIELD_TYPE,\n ],\n useFactory: textfieldWatchedControllerFactory,\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ __decorate([
|
|
|
73
73
|
TuiPrimitiveYearMonthPaginationComponent = __decorate([
|
|
74
74
|
Component({
|
|
75
75
|
selector: 'tui-primitive-year-month-pagination',
|
|
76
|
-
template: "<tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"prevMonthDisabled\"\n [rightDisabled]=\"nextMonthDisabled\"\n (leftClick)=\"onPrevMonthClick()\"\n (rightClick)=\"onNextMonthClick()\"\n>\n {{value | tuiMonth | async}}\n <ng-container *ngIf=\"oneYear; else button\">\n {{value.formattedYear}}\n </ng-container>\n <ng-template #button>\n <button\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tuiLink\n type=\"button\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{value.formattedYear}}\n </button>\n </ng-template>\n</tui-primitive-spin-button>\n",
|
|
76
|
+
template: "<tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"prevMonthDisabled\"\n [rightDisabled]=\"nextMonthDisabled\"\n (leftClick)=\"onPrevMonthClick()\"\n (rightClick)=\"onNextMonthClick()\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"oneYear; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tuiLink\n type=\"button\"\n [tuiFocusable]=\"false\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-primitive-spin-button>\n",
|
|
77
77
|
styles: [":host{display:block}"]
|
|
78
78
|
})
|
|
79
79
|
], TuiPrimitiveYearMonthPaginationComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-internal-primitive-year-month-pagination.js","sources":["ng://@taiga-ui/core/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.ts","ng://@taiga-ui/core/internal/primitive-year-month-pagination/primitive-year-month-pagination.module.ts","ng://@taiga-ui/core/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.ts"],"sourcesContent":["import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthLike,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiWithOptionalMinMax} from '@taiga-ui/core/interfaces';\n\n@Component({\n selector: 'tui-primitive-year-month-pagination',\n templateUrl: './primitive-year-month-pagination.template.html',\n styleUrls: ['./primitive-year-month-pagination.style.less'],\n})\nexport class TuiPrimitiveYearMonthPaginationComponent\n implements TuiWithOptionalMinMax<TuiMonth>\n{\n @Input()\n @tuiDefaultProp()\n value = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly valueChange = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear>();\n\n get prevMonthDisabled(): boolean {\n return this.value.monthSameOrBefore(this.min);\n }\n\n get nextMonthDisabled(): boolean {\n return this.value.monthSameOrAfter(this.max);\n }\n\n get oneYear(): boolean {\n return this.min.year === this.max.year;\n }\n\n onYearClick() {\n this.yearClick.next(this.value);\n }\n\n onPrevMonthClick() {\n this.appendValueWithLimit({month: -1});\n }\n\n onNextMonthClick() {\n this.appendValueWithLimit({month: 1});\n }\n\n private appendValueWithLimit(date: TuiMonthLike) {\n const newMonth: TuiMonth = this.value.append(date);\n\n if (this.min.monthSameOrAfter(newMonth)) {\n this.updateValue(this.min);\n\n return;\n }\n\n if (this.max.monthSameOrBefore(newMonth)) {\n this.updateValue(this.max);\n\n return;\n }\n\n this.updateValue(newMonth);\n }\n\n private updateValue(value: TuiMonth) {\n if (this.value.monthSame(value)) {\n return;\n }\n\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule} from '@taiga-ui/cdk';\nimport {TuiLinkModule} from '@taiga-ui/core/components/link';\nimport {TuiPrimitiveSpinButtonModule} from '@taiga-ui/core/components/primitive-spin-button';\nimport {TuiMonthPipeModule} from '@taiga-ui/core/pipes';\n\nimport {TuiPrimitiveYearMonthPaginationComponent} from './primitive-year-month-pagination.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusableModule,\n TuiPrimitiveSpinButtonModule,\n TuiLinkModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiPrimitiveYearMonthPaginationComponent],\n exports: [TuiPrimitiveYearMonthPaginationComponent],\n})\nexport class TuiPrimitiveYearMonthPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;IAgBa,wCAAwC,GAArD,MAAa,wCAAwC;IAArD;QAKI,UAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAIhC,QAAG,GAAa,aAAa,CAAC;QAI9B,QAAG,GAAa,YAAY,CAAC;QAGpB,gBAAW,GAAG,IAAI,YAAY,EAAY,CAAC;QAG3C,cAAS,GAAG,IAAI,YAAY,EAAW,CAAC;KAoDpD;IAlDG,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjD;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAChD;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;KAC1C;IAED,WAAW;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,gBAAgB;QACZ,IAAI,CAAC,oBAAoB,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;KAC1C;IAED,gBAAgB;QACZ,IAAI,CAAC,oBAAoB,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;KACzC;IAEO,oBAAoB,CAAC,IAAkB;QAC3C,MAAM,QAAQ,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,OAAO;SACV;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAEO,WAAW,CAAC,KAAe;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO;SACV;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;EACJ;AAlEG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;uEACe;AAIhC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qEACa;AAI9B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qEACY;AAG7B;IADC,MAAM,EAAE;6EAC2C;AAGpD;IADC,MAAM,EAAE;2EACwC;AAnBxC,wCAAwC;IALpD,SAAS,CAAC;QACP,QAAQ,EAAE,qCAAqC;QAC/C,
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-internal-primitive-year-month-pagination.js","sources":["ng://@taiga-ui/core/internal/primitive-year-month-pagination/primitive-year-month-pagination.component.ts","ng://@taiga-ui/core/internal/primitive-year-month-pagination/primitive-year-month-pagination.module.ts","ng://@taiga-ui/core/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.ts"],"sourcesContent":["import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthLike,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiWithOptionalMinMax} from '@taiga-ui/core/interfaces';\n\n@Component({\n selector: 'tui-primitive-year-month-pagination',\n templateUrl: './primitive-year-month-pagination.template.html',\n styleUrls: ['./primitive-year-month-pagination.style.less'],\n})\nexport class TuiPrimitiveYearMonthPaginationComponent\n implements TuiWithOptionalMinMax<TuiMonth>\n{\n @Input()\n @tuiDefaultProp()\n value = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n readonly valueChange = new EventEmitter<TuiMonth>();\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear>();\n\n get prevMonthDisabled(): boolean {\n return this.value.monthSameOrBefore(this.min);\n }\n\n get nextMonthDisabled(): boolean {\n return this.value.monthSameOrAfter(this.max);\n }\n\n get oneYear(): boolean {\n return this.min.year === this.max.year;\n }\n\n onYearClick() {\n this.yearClick.next(this.value);\n }\n\n onPrevMonthClick() {\n this.appendValueWithLimit({month: -1});\n }\n\n onNextMonthClick() {\n this.appendValueWithLimit({month: 1});\n }\n\n private appendValueWithLimit(date: TuiMonthLike) {\n const newMonth: TuiMonth = this.value.append(date);\n\n if (this.min.monthSameOrAfter(newMonth)) {\n this.updateValue(this.min);\n\n return;\n }\n\n if (this.max.monthSameOrBefore(newMonth)) {\n this.updateValue(this.max);\n\n return;\n }\n\n this.updateValue(newMonth);\n }\n\n private updateValue(value: TuiMonth) {\n if (this.value.monthSame(value)) {\n return;\n }\n\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule} from '@taiga-ui/cdk';\nimport {TuiLinkModule} from '@taiga-ui/core/components/link';\nimport {TuiPrimitiveSpinButtonModule} from '@taiga-ui/core/components/primitive-spin-button';\nimport {TuiMonthPipeModule} from '@taiga-ui/core/pipes';\n\nimport {TuiPrimitiveYearMonthPaginationComponent} from './primitive-year-month-pagination.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusableModule,\n TuiPrimitiveSpinButtonModule,\n TuiLinkModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiPrimitiveYearMonthPaginationComponent],\n exports: [TuiPrimitiveYearMonthPaginationComponent],\n})\nexport class TuiPrimitiveYearMonthPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;IAgBa,wCAAwC,GAArD,MAAa,wCAAwC;IAArD;QAKI,UAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAIhC,QAAG,GAAa,aAAa,CAAC;QAI9B,QAAG,GAAa,YAAY,CAAC;QAGpB,gBAAW,GAAG,IAAI,YAAY,EAAY,CAAC;QAG3C,cAAS,GAAG,IAAI,YAAY,EAAW,CAAC;KAoDpD;IAlDG,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjD;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAChD;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;KAC1C;IAED,WAAW;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,gBAAgB;QACZ,IAAI,CAAC,oBAAoB,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;KAC1C;IAED,gBAAgB;QACZ,IAAI,CAAC,oBAAoB,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;KACzC;IAEO,oBAAoB,CAAC,IAAkB;QAC3C,MAAM,QAAQ,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,OAAO;SACV;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,OAAO;SACV;QAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAEO,WAAW,CAAC,KAAe;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO;SACV;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;EACJ;AAlEG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;uEACe;AAIhC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qEACa;AAI9B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qEACY;AAG7B;IADC,MAAM,EAAE;6EAC2C;AAGpD;IADC,MAAM,EAAE;2EACwC;AAnBxC,wCAAwC;IALpD,SAAS,CAAC;QACP,QAAQ,EAAE,qCAAqC;QAC/C,6uBAA8D;;KAEjE,CAAC;GACW,wCAAwC,CAuEpD;;ICnEY,qCAAqC,GAAlD,MAAa,qCAAqC;EAAG;AAAxC,qCAAqC;IAXjD,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,kBAAkB;YAClB,4BAA4B;YAC5B,aAAa;YACb,kBAAkB;SACrB;QACD,YAAY,EAAE,CAAC,wCAAwC,CAAC;QACxD,OAAO,EAAE,CAAC,wCAAwC,CAAC;KACtD,CAAC;GACW,qCAAqC,CAAG;;ACpBrD;;;;;;"}
|
|
@@ -68,7 +68,7 @@ TuiNotificationAlertComponent = __decorate([
|
|
|
68
68
|
Component({
|
|
69
69
|
selector: 'tui-notification-alert',
|
|
70
70
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
71
|
-
template: "<tui-notification\n *ngIf=\"item.hasCloseButton else noClose\"\n [status]=\"item.status\"\n [hasIcon]=\"item.hasIcon\"\n (close)=\"closeNotification()\"\n>\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n
|
|
71
|
+
template: "<tui-notification\n *ngIf=\"item.hasCloseButton; else noClose\"\n [status]=\"item.status\"\n [hasIcon]=\"item.hasIcon\"\n (close)=\"closeNotification()\"\n>\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n ></label>\n <div\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__content\"\n class=\"content\"\n [content]=\"item.content\"\n [context]=\"context\"\n ></div>\n</tui-notification>\n<ng-template #noClose>\n <tui-notification [status]=\"item.status\" [hasIcon]=\"item.hasIcon\">\n <label\n *ngIf=\"item.label\"\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__heading\"\n class=\"heading\"\n [content]=\"item.label\"\n [context]=\"context\"\n ></label>\n <div\n polymorpheus-outlet\n automation-id=\"tui-notification-alert__content\"\n class=\"content\"\n [content]=\"item.content\"\n [context]=\"context\"\n ></div>\n </tui-notification>\n</ng-template>\n",
|
|
72
72
|
providers: [TuiDestroyService],
|
|
73
73
|
styles: [":host{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);display:block;border-radius:var(--tui-radius-m)}.heading{font:var(--tui-font-text-m);line-height:1.25rem;font-weight:700;margin:0}.content{color:var(--tui-text-01);word-wrap:break-word}.content:empty{display:none}"]
|
|
74
74
|
}),
|
|
@@ -158,7 +158,7 @@ TuiNotificationsHostComponent = __decorate([
|
|
|
158
158
|
Component({
|
|
159
159
|
selector: 'tui-notifications-host',
|
|
160
160
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
161
|
-
template: "<ng-container *tuiLet=\"service.items$ | async as items\">\n <div\n *ngIf=\"items.length\"\n class=\"wrapper\"\n [@tuiFadeInList]=\"getAnimation(items.length)\"\n [@tuiHeightCollapseList]=\"getAnimation(items.length)\"\n [@tuiSlideInRightList]=\"getAnimation(items.length)\"\n >\n <tui-notification-alert\n *ngFor=\"let item of items\"\n
|
|
161
|
+
template: "<ng-container *tuiLet=\"service.items$ | async as items\">\n <div\n *ngIf=\"items.length\"\n class=\"wrapper\"\n [@tuiFadeInList]=\"getAnimation(items.length)\"\n [@tuiHeightCollapseList]=\"getAnimation(items.length)\"\n [@tuiSlideInRightList]=\"getAnimation(items.length)\"\n >\n <tui-notification-alert\n *ngFor=\"let item of items\"\n role=\"alert\"\n class=\"alert\"\n [item]=\"item\"\n ></tui-notification-alert>\n </div>\n</ng-container>\n",
|
|
162
162
|
animations: [tuiFadeInList, tuiSlideInRightList, tuiHeightCollapseList],
|
|
163
163
|
styles: [":host{position:fixed;top:0;left:0;width:100%;height:0}.wrapper{width:18rem;margin-left:auto;padding:2rem 3rem 0 0;pointer-events:none}@media screen and (max-width:47.9375em){.wrapper{padding:1rem 1rem 0 0}}@media screen and (min-width:80em){.wrapper{width:23rem}}.alert{pointer-events:auto}.alert:not(:first-child){margin-top:.75rem}"]
|
|
164
164
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-modules-notifications.js","sources":["ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.component.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.module.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/Notification-alert.ts","ng://@taiga-ui/core/modules/notifications/notifications.service.ts","ng://@taiga-ui/core/modules/notifications/notifications-host/notifications-host.component.ts","ng://@taiga-ui/core/modules/notifications/notifications.module.ts","ng://@taiga-ui/core/modules/notifications/taiga-ui-core-modules-notifications.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport {isNumber, TuiDestroyService, tuiPure} from '@taiga-ui/cdk';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {fromEvent, timer} from 'rxjs';\nimport {repeatWhen, takeUntil} from 'rxjs/operators';\nimport {TuiNotificationContentContext} from '../notification-content-context';\nimport {NotificationAlert} from './Notification-alert';\n\nexport const DEFAULT_ALERT_AUTOCLOSE_TIMEOUT = 3000;\n\n@Component({\n selector: 'tui-notification-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notification-alert.template.html',\n styleUrls: ['./notification-alert.style.less'],\n providers: [TuiDestroyService],\n})\nexport class TuiNotificationAlertComponent<O, I> implements OnInit {\n @Input()\n item!: NotificationAlert<O, I>;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(TUI_NOTIFICATION_OPTIONS)\n public readonly options: NotificationTokenOptions,\n ) {}\n\n ngOnInit() {\n this.initAutoClose();\n }\n\n get context(): TuiNotificationContentContext<O, I> {\n return this.calculateContext(this.item);\n }\n\n closeNotification() {\n this.item.observer.complete();\n }\n\n @tuiPure\n private calculateContext({\n status,\n data,\n label,\n observer,\n }: NotificationAlert<O, I>): TuiNotificationContentContext<O, I> {\n return {\n $implicit: status,\n data: data,\n label: label,\n closeHook: () => {\n observer.complete();\n },\n emitHook: (data: O) => {\n observer.next(data);\n },\n emitAndCloseHook: (data: O) => {\n observer.next(data);\n observer.complete();\n },\n };\n }\n\n private initAutoClose() {\n if (!this.item.autoClose) {\n return;\n }\n\n timer(\n isNumber(this.item.autoClose)\n ? this.item.autoClose\n : DEFAULT_ALERT_AUTOCLOSE_TIMEOUT,\n )\n .pipe(\n takeUntil(fromEvent(this.elementRef.nativeElement, 'mouseenter')),\n repeatWhen(() => fromEvent(this.elementRef.nativeElement, 'mouseleave')),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.closeNotification());\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiNotificationModule} from '@taiga-ui/core/components/notification';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiNotificationAlertComponent} from './notification-alert.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiNotificationModule],\n declarations: [TuiNotificationAlertComponent],\n exports: [TuiNotificationAlertComponent],\n})\nexport class TuiNotificationAlertModule {}\n","import {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiNotification} from '@taiga-ui/core/enums';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observer} from 'rxjs';\nimport {TuiNotificationContentContext} from '../notification-content-context';\n\nexport class NotificationAlert<O, I> {\n readonly status = this.options.status;\n\n readonly hasIcon = this.options.hasIcon;\n\n readonly autoClose: boolean | number;\n\n readonly hasCloseButton = this.options.hasCloseButton;\n\n readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>> =\n this.options.label;\n\n readonly data!: I;\n\n constructor(\n readonly observer: Observer<O>,\n readonly content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n private readonly options: Required<\n TuiNotificationOptions | TuiNotificationOptionsWithData<I>\n >,\n ) {\n this.autoClose =\n typeof this.options.autoClose === 'function'\n ? this.options.autoClose(this.options.status)\n : this.options.autoClose;\n\n if (options && this.withData(options)) {\n this.data = options.data;\n }\n }\n\n private withData(\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I>,\n ): options is TuiNotificationOptionsWithData<I> {\n return 'data' in options;\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable, Observer} from 'rxjs';\nimport {NotificationAlert} from './notification-alert/Notification-alert';\nimport {TuiNotificationContentContext} from './notification-content-context';\n\nconst NO_HOST =\n 'Notifications are disabled, enable support by adding TuiNotificationsModule to your main app module';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiNotificationsService {\n /** @internal */\n readonly items$ = new BehaviorSubject<ReadonlyArray<NotificationAlert<any, any>>>([]);\n\n constructor(\n @Inject(TUI_NOTIFICATION_OPTIONS)\n public readonly options: NotificationTokenOptions,\n ) {}\n\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n ): Observable<O>;\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n options: TuiNotificationOptions,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptionsWithData<I>,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I> = {},\n ): Observable<O> {\n return new Observable((observer: Observer<O>) => {\n tuiAssert.assert(!!this.items$.observers.length, NO_HOST);\n\n const notification = new NotificationAlert(observer, content, {\n ...this.options,\n ...options,\n });\n\n this.items$.next([...this.items$.value, notification]);\n\n return () => {\n this.items$.next(this.items$.value.filter(item => item !== notification));\n };\n });\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk';\nimport {\n tuiFadeInList,\n tuiHeightCollapseList,\n tuiSlideInRightList,\n} from '@taiga-ui/core/animations';\nimport {TuiAnimationOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {TuiNotificationsService} from '../notifications.service';\n\n@Component({\n selector: 'tui-notifications-host',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notifications-host.template.html',\n styleUrls: ['./notifications-host.style.less'],\n animations: [tuiFadeInList, tuiSlideInRightList, tuiHeightCollapseList],\n})\nexport class TuiNotificationsHostComponent {\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TuiNotificationsService) readonly service: TuiNotificationsService,\n ) {}\n\n @tuiPure\n getAnimation(value: number): TuiAnimationOptions {\n return {\n value: String(value),\n ...this.options,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiNotificationAlertModule} from './notification-alert/notification-alert.module';\nimport {TuiNotificationsHostComponent} from './notifications-host/notifications-host.component';\n\n// TODO: remove in ivy compilation\nexport const NOTIFICATIONS_HOST = TuiNotificationsHostComponent;\n\n@NgModule({\n imports: [CommonModule, TuiNotificationAlertModule, TuiLetModule],\n declarations: [TuiNotificationsHostComponent],\n exports: [TuiNotificationsHostComponent],\n entryComponents: [TuiNotificationsHostComponent],\n providers: [\n {\n provide: TuiNotificationsHostComponent,\n useValue: NOTIFICATIONS_HOST,\n },\n ],\n})\nexport class TuiNotificationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-modules-notifications.js","sources":["ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.component.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.module.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/Notification-alert.ts","ng://@taiga-ui/core/modules/notifications/notifications.service.ts","ng://@taiga-ui/core/modules/notifications/notifications-host/notifications-host.component.ts","ng://@taiga-ui/core/modules/notifications/notifications.module.ts","ng://@taiga-ui/core/modules/notifications/taiga-ui-core-modules-notifications.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport {isNumber, TuiDestroyService, tuiPure} from '@taiga-ui/cdk';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {fromEvent, timer} from 'rxjs';\nimport {repeatWhen, takeUntil} from 'rxjs/operators';\nimport {TuiNotificationContentContext} from '../notification-content-context';\nimport {NotificationAlert} from './Notification-alert';\n\nexport const DEFAULT_ALERT_AUTOCLOSE_TIMEOUT = 3000;\n\n@Component({\n selector: 'tui-notification-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notification-alert.template.html',\n styleUrls: ['./notification-alert.style.less'],\n providers: [TuiDestroyService],\n})\nexport class TuiNotificationAlertComponent<O, I> implements OnInit {\n @Input()\n item!: NotificationAlert<O, I>;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(TUI_NOTIFICATION_OPTIONS)\n public readonly options: NotificationTokenOptions,\n ) {}\n\n ngOnInit() {\n this.initAutoClose();\n }\n\n get context(): TuiNotificationContentContext<O, I> {\n return this.calculateContext(this.item);\n }\n\n closeNotification() {\n this.item.observer.complete();\n }\n\n @tuiPure\n private calculateContext({\n status,\n data,\n label,\n observer,\n }: NotificationAlert<O, I>): TuiNotificationContentContext<O, I> {\n return {\n $implicit: status,\n data: data,\n label: label,\n closeHook: () => {\n observer.complete();\n },\n emitHook: (data: O) => {\n observer.next(data);\n },\n emitAndCloseHook: (data: O) => {\n observer.next(data);\n observer.complete();\n },\n };\n }\n\n private initAutoClose() {\n if (!this.item.autoClose) {\n return;\n }\n\n timer(\n isNumber(this.item.autoClose)\n ? this.item.autoClose\n : DEFAULT_ALERT_AUTOCLOSE_TIMEOUT,\n )\n .pipe(\n takeUntil(fromEvent(this.elementRef.nativeElement, 'mouseenter')),\n repeatWhen(() => fromEvent(this.elementRef.nativeElement, 'mouseleave')),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.closeNotification());\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiNotificationModule} from '@taiga-ui/core/components/notification';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiNotificationAlertComponent} from './notification-alert.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiNotificationModule],\n declarations: [TuiNotificationAlertComponent],\n exports: [TuiNotificationAlertComponent],\n})\nexport class TuiNotificationAlertModule {}\n","import {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiNotification} from '@taiga-ui/core/enums';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observer} from 'rxjs';\nimport {TuiNotificationContentContext} from '../notification-content-context';\n\nexport class NotificationAlert<O, I> {\n readonly status = this.options.status;\n\n readonly hasIcon = this.options.hasIcon;\n\n readonly autoClose: boolean | number;\n\n readonly hasCloseButton = this.options.hasCloseButton;\n\n readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>> =\n this.options.label;\n\n readonly data!: I;\n\n constructor(\n readonly observer: Observer<O>,\n readonly content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n private readonly options: Required<\n TuiNotificationOptions | TuiNotificationOptionsWithData<I>\n >,\n ) {\n this.autoClose =\n typeof this.options.autoClose === 'function'\n ? this.options.autoClose(this.options.status)\n : this.options.autoClose;\n\n if (options && this.withData(options)) {\n this.data = options.data;\n }\n }\n\n private withData(\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I>,\n ): options is TuiNotificationOptionsWithData<I> {\n return 'data' in options;\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable, Observer} from 'rxjs';\nimport {NotificationAlert} from './notification-alert/Notification-alert';\nimport {TuiNotificationContentContext} from './notification-content-context';\n\nconst NO_HOST =\n 'Notifications are disabled, enable support by adding TuiNotificationsModule to your main app module';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiNotificationsService {\n /** @internal */\n readonly items$ = new BehaviorSubject<ReadonlyArray<NotificationAlert<any, any>>>([]);\n\n constructor(\n @Inject(TUI_NOTIFICATION_OPTIONS)\n public readonly options: NotificationTokenOptions,\n ) {}\n\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n ): Observable<O>;\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n options: TuiNotificationOptions,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptionsWithData<I>,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I> = {},\n ): Observable<O> {\n return new Observable((observer: Observer<O>) => {\n tuiAssert.assert(!!this.items$.observers.length, NO_HOST);\n\n const notification = new NotificationAlert(observer, content, {\n ...this.options,\n ...options,\n });\n\n this.items$.next([...this.items$.value, notification]);\n\n return () => {\n this.items$.next(this.items$.value.filter(item => item !== notification));\n };\n });\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk';\nimport {\n tuiFadeInList,\n tuiHeightCollapseList,\n tuiSlideInRightList,\n} from '@taiga-ui/core/animations';\nimport {TuiAnimationOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {TuiNotificationsService} from '../notifications.service';\n\n@Component({\n selector: 'tui-notifications-host',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notifications-host.template.html',\n styleUrls: ['./notifications-host.style.less'],\n animations: [tuiFadeInList, tuiSlideInRightList, tuiHeightCollapseList],\n})\nexport class TuiNotificationsHostComponent {\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TuiNotificationsService) readonly service: TuiNotificationsService,\n ) {}\n\n @tuiPure\n getAnimation(value: number): TuiAnimationOptions {\n return {\n value: String(value),\n ...this.options,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiNotificationAlertModule} from './notification-alert/notification-alert.module';\nimport {TuiNotificationsHostComponent} from './notifications-host/notifications-host.component';\n\n// TODO: remove in ivy compilation\nexport const NOTIFICATIONS_HOST = TuiNotificationsHostComponent;\n\n@NgModule({\n imports: [CommonModule, TuiNotificationAlertModule, TuiLetModule],\n declarations: [TuiNotificationsHostComponent],\n exports: [TuiNotificationsHostComponent],\n entryComponents: [TuiNotificationsHostComponent],\n providers: [\n {\n provide: TuiNotificationsHostComponent,\n useValue: NOTIFICATIONS_HOST,\n },\n ],\n})\nexport class TuiNotificationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CHAR_NO_BREAK_SPACE, tuiAssert, isSafari, isNativeFocused, getDocumentOrShadowRoot, CHAR_EN_DASH } from '@taiga-ui/cdk';
|
|
2
|
-
import { MASK_CARET_TRAP, TUI_DIGIT_REGEXP, TUI_NON_DIGITS_REGEXP } from '@taiga-ui/core/constants';
|
|
2
|
+
import { MASK_CARET_TRAP, TUI_DIGIT_REGEXP, TUI_NON_DIGITS_REGEXP, TUI_LEADING_ZEROES_REGEXP } from '@taiga-ui/core/constants';
|
|
3
3
|
import { otherDecimalSymbol } from '@taiga-ui/core/utils/format';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -152,10 +152,13 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = ',', thousa
|
|
|
152
152
|
const integerCapped = integerLimit
|
|
153
153
|
? integer.slice(0, integerLimit + thousandSeparators.length)
|
|
154
154
|
: integer;
|
|
155
|
-
const integerCappedClean = integerCapped
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const
|
|
155
|
+
const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, '');
|
|
156
|
+
const [leadingZerosMatch] = integerCappedClean.match(TUI_LEADING_ZEROES_REGEXP) || [''];
|
|
157
|
+
const leadingZerosAmount = leadingZerosMatch.length;
|
|
158
|
+
const integerCappedZerosClean = integerCappedClean
|
|
159
|
+
.replace(/^0+(?!\.|$)/, '')
|
|
160
|
+
.trim();
|
|
161
|
+
const withSeparator = addThousandsSeparator(integerCappedZerosClean, thousandSymbol);
|
|
159
162
|
const mask = convertToMask(withSeparator);
|
|
160
163
|
if ((hasDecimal && allowDecimal) || requireDecimal) {
|
|
161
164
|
const fraction = hasDecimal
|
|
@@ -172,20 +175,34 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = ',', thousa
|
|
|
172
175
|
mask.push(TUI_DIGIT_REGEXP);
|
|
173
176
|
}
|
|
174
177
|
}
|
|
178
|
+
const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === '0';
|
|
175
179
|
if (isNegative) {
|
|
176
180
|
if (mask.length === 0) {
|
|
177
181
|
mask.push(TUI_DIGIT_REGEXP);
|
|
178
182
|
}
|
|
179
183
|
mask.unshift('-');
|
|
180
184
|
}
|
|
181
|
-
return preventLeadingZeroes(mask);
|
|
185
|
+
return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);
|
|
182
186
|
};
|
|
183
187
|
}
|
|
184
|
-
function preventLeadingZeroes(mask) {
|
|
188
|
+
function preventLeadingZeroes(mask, isOnlyZeroDigit = false, leadingZerosAmount = 0) {
|
|
189
|
+
if (isOnlyZeroDigit || leadingZerosAmount === 0) {
|
|
190
|
+
return mask;
|
|
191
|
+
}
|
|
185
192
|
const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);
|
|
186
|
-
if (firstDigitIndex
|
|
187
|
-
mask
|
|
193
|
+
if (firstDigitIndex === -1) {
|
|
194
|
+
return mask;
|
|
195
|
+
}
|
|
196
|
+
const secondMaskDigit = mask[firstDigitIndex + 1];
|
|
197
|
+
const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;
|
|
198
|
+
if (isCaretTrap && leadingZerosAmount === 1) {
|
|
199
|
+
return mask;
|
|
200
|
+
}
|
|
201
|
+
else if (isCaretTrap) {
|
|
202
|
+
mask.unshift(NON_ZERO_DIGIT);
|
|
203
|
+
return mask;
|
|
188
204
|
}
|
|
205
|
+
mask[firstDigitIndex] = NON_ZERO_DIGIT;
|
|
189
206
|
return mask;
|
|
190
207
|
}
|
|
191
208
|
function getDecimalSymbolIndex(str, decimalSymbol, autoCorrectDecimalSymbol) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["ng://@taiga-ui/core/utils/mask/create-auto-corrected-money-pipe.ts","ng://@taiga-ui/core/utils/mask/create-correction-mask.ts","ng://@taiga-ui/core/utils/mask/create-number-mask.ts","ng://@taiga-ui/core/utils/mask/masked-money-value-is-empty.ts","ng://@taiga-ui/core/utils/mask/masked-number-string-to-number.ts","ng://@taiga-ui/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_NO_BREAK_SPACE,\n getDocumentOrShadowRoot,\n isNativeFocused,\n isSafari,\n tuiAssert,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = ',',\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n\n const unlucky = !!nativeInput && isSafari(nativeInput);\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener('beforeinput', () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && isNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== getDocumentOrShadowRoot(nativeInput) &&\n isNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === '' || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + '0'.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = ',',\n): string {\n return value.indexOf(decimalSymbol) === -1 ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = '',\n current: string,\n previousCaret: number,\n decimalSymbol: string = ',',\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, '');\n const currentWithoutTail = current.replace(tailRegex, '');\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === '0' ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = '',\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = 'Correction function must return single char or null';\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split('').reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {otherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n * @todo TODO: autocCorrectDecimalSymbol is no longer needed. Remove it in 3.0\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = ',',\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit > 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join('');\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join('')\n .split(decimalSymbol)\n .join('');\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === '-' || rawValue[0] === CHAR_EN_DASH) && allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return ['0', decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.substr(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, 'g')) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped\n .replace(TUI_NON_DIGITS_REGEXP, '')\n .replace(/^0+(?!\\.|$)/, '0');\n const withSeparator = addThousandsSeparator(integerCappedClean, thousandSymbol);\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ''),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== otherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift('-');\n }\n\n return preventLeadingZeroes(mask);\n };\n}\n\nfunction preventLeadingZeroes(mask: Array<string | RegExp>): Array<string | RegExp> {\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex !== -1 && mask[firstDigitIndex + 1] === TUI_DIGIT_REGEXP) {\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n }\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(otherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<string | RegExp> {\n return strNumber\n .split('')\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","export function maskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case '':\n case '-':\n case ',':\n case '-,':\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function maskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join('').split(decimalsSymbol).join('.'),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["ng://@taiga-ui/core/utils/mask/create-auto-corrected-money-pipe.ts","ng://@taiga-ui/core/utils/mask/create-correction-mask.ts","ng://@taiga-ui/core/utils/mask/create-number-mask.ts","ng://@taiga-ui/core/utils/mask/masked-money-value-is-empty.ts","ng://@taiga-ui/core/utils/mask/masked-number-string-to-number.ts","ng://@taiga-ui/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_NO_BREAK_SPACE,\n getDocumentOrShadowRoot,\n isNativeFocused,\n isSafari,\n tuiAssert,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = ',',\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n\n const unlucky = !!nativeInput && isSafari(nativeInput);\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener('beforeinput', () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && isNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== getDocumentOrShadowRoot(nativeInput) &&\n isNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === '' || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + '0'.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = ',',\n): string {\n return value.indexOf(decimalSymbol) === -1 ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = '',\n current: string,\n previousCaret: number,\n decimalSymbol: string = ',',\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, '');\n const currentWithoutTail = current.replace(tailRegex, '');\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === '0' ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = '',\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = 'Correction function must return single char or null';\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split('').reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {otherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n * @todo TODO: autocCorrectDecimalSymbol is no longer needed. Remove it in 3.0\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = ',',\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit > 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join('');\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join('')\n .split(decimalSymbol)\n .join('');\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === '-' || rawValue[0] === CHAR_EN_DASH) && allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return ['0', decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.substr(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, 'g')) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, '');\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [''];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, '')\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ''),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== otherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === '0';\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift('-');\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<string | RegExp>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<string | RegExp> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n } else if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(otherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<string | RegExp> {\n return strNumber\n .split('')\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","export function maskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case '':\n case '-':\n case ',':\n case '-,':\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function maskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join('').split(decimalsSymbol).join('.'),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends, __decorate, __param } from 'tslib';
|
|
2
|
-
import { ElementRef, Inject, ChangeDetectorRef, Input, HostBinding, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, ElementRef, Inject, ChangeDetectorRef, Input, HostBinding, HostListener, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
|
|
3
3
|
import { watch, pressedObservable, isNativeFocused, TuiFocusVisibleService, TuiHoveredService, TuiDestroyService, TUI_TAKE_ONLY_TRUSTED_EVENTS, tuiDefaultProp, TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiInteractive } from '@taiga-ui/cdk';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import { takeUntil } from 'rxjs/operators';
|
|
@@ -9,19 +9,29 @@ import { TuiSvgModule } from '@taiga-ui/core/components/svg';
|
|
|
9
9
|
import { TuiWrapperModule } from '@taiga-ui/core/components/wrapper';
|
|
10
10
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
11
11
|
|
|
12
|
+
var TUI_BUTTON_DEFAULT_OPTIONS = {
|
|
13
|
+
size: 'l',
|
|
14
|
+
shape: null,
|
|
15
|
+
appearance: "primary" /* Primary */,
|
|
16
|
+
};
|
|
17
|
+
var TUI_BUTTON_OPTIONS = new InjectionToken('Default parameters for button component', {
|
|
18
|
+
factory: function () { return TUI_BUTTON_DEFAULT_OPTIONS; },
|
|
19
|
+
});
|
|
20
|
+
|
|
12
21
|
var TuiButtonComponent = /** @class */ (function (_super) {
|
|
13
22
|
__extends(TuiButtonComponent, _super);
|
|
14
|
-
function TuiButtonComponent(elementRef, focusVisible$, hoveredService, destroy$, changeDetectorRef, takeOnlyTrustedEvents) {
|
|
23
|
+
function TuiButtonComponent(elementRef, focusVisible$, hoveredService, destroy$, changeDetectorRef, takeOnlyTrustedEvents, options) {
|
|
15
24
|
var _this = _super.call(this) || this;
|
|
16
25
|
_this.elementRef = elementRef;
|
|
17
26
|
_this.takeOnlyTrustedEvents = takeOnlyTrustedEvents;
|
|
18
|
-
_this.
|
|
27
|
+
_this.options = options;
|
|
28
|
+
_this.appearance = _this.options.appearance;
|
|
19
29
|
_this.disabled = false;
|
|
20
30
|
_this.icon = '';
|
|
21
31
|
_this.iconRight = '';
|
|
22
|
-
_this.shape =
|
|
32
|
+
_this.shape = _this.options.shape;
|
|
23
33
|
_this.showLoader = false;
|
|
24
|
-
_this.size =
|
|
34
|
+
_this.size = _this.options.size;
|
|
25
35
|
hoveredService
|
|
26
36
|
.createHovered$(elementRef.nativeElement)
|
|
27
37
|
.pipe(watch(changeDetectorRef), takeUntil(destroy$))
|
|
@@ -86,7 +96,8 @@ var TuiButtonComponent = /** @class */ (function (_super) {
|
|
|
86
96
|
{ type: TuiHoveredService, decorators: [{ type: Inject, args: [TuiHoveredService,] }] },
|
|
87
97
|
{ type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
|
|
88
98
|
{ type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
|
|
89
|
-
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_TAKE_ONLY_TRUSTED_EVENTS,] }] }
|
|
99
|
+
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_TAKE_ONLY_TRUSTED_EVENTS,] }] },
|
|
100
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TUI_BUTTON_OPTIONS,] }] }
|
|
90
101
|
]; };
|
|
91
102
|
__decorate([
|
|
92
103
|
Input(),
|
|
@@ -133,7 +144,7 @@ var TuiButtonComponent = /** @class */ (function (_super) {
|
|
|
133
144
|
TuiButtonComponent = TuiButtonComponent_1 = __decorate([
|
|
134
145
|
Component({
|
|
135
146
|
selector: 'button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]',
|
|
136
|
-
template: "<tui-wrapper\n class=\"wrapper\"\n [appearance]=\"appearance\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [disabled]=\"computedDisabled\"\n [focused]=\"computedFocusVisible\"\n>\n <span class=\"content\">\n <span *ngIf=\"icon\" class=\"left\"
|
|
147
|
+
template: "<tui-wrapper\n class=\"wrapper\"\n [appearance]=\"appearance\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [disabled]=\"computedDisabled\"\n [focused]=\"computedFocusVisible\"\n>\n <span class=\"content\">\n <span *ngIf=\"icon\" polymorpheus-outlet class=\"left\" [content]=\"icon\">\n <ng-template let-icon>\n <tui-svg class=\"icon\" [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <ng-content></ng-content>\n <span\n *ngIf=\"iconRight\"\n polymorpheus-outlet\n class=\"right\"\n [content]=\"iconRight\"\n >\n <ng-template let-icon>\n <tui-svg class=\"icon\" [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n </span>\n <tui-loader\n *ngIf=\"showLoader\"\n class=\"loader\"\n [size]=\"loaderSize\"\n [inheritColor]=\"true\"\n ></tui-loader>\n</tui-wrapper>\n",
|
|
137
148
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
138
149
|
providers: [
|
|
139
150
|
{
|
|
@@ -150,7 +161,8 @@ var TuiButtonComponent = /** @class */ (function (_super) {
|
|
|
150
161
|
__param(2, Inject(TuiHoveredService)),
|
|
151
162
|
__param(3, Inject(TuiDestroyService)),
|
|
152
163
|
__param(4, Inject(ChangeDetectorRef)),
|
|
153
|
-
__param(5, Inject(TUI_TAKE_ONLY_TRUSTED_EVENTS))
|
|
164
|
+
__param(5, Inject(TUI_TAKE_ONLY_TRUSTED_EVENTS)),
|
|
165
|
+
__param(6, Inject(TUI_BUTTON_OPTIONS))
|
|
154
166
|
], TuiButtonComponent);
|
|
155
167
|
return TuiButtonComponent;
|
|
156
168
|
}(AbstractTuiInteractive));
|
|
@@ -178,5 +190,5 @@ var TuiButtonModule = /** @class */ (function () {
|
|
|
178
190
|
* Generated bundle index. Do not edit.
|
|
179
191
|
*/
|
|
180
192
|
|
|
181
|
-
export { TuiButtonComponent, TuiButtonModule };
|
|
193
|
+
export { TUI_BUTTON_DEFAULT_OPTIONS, TUI_BUTTON_OPTIONS, TuiButtonComponent, TuiButtonModule };
|
|
182
194
|
//# sourceMappingURL=taiga-ui-core-components-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-button.js","sources":["ng://@taiga-ui/core/components/button/button.component.ts","ng://@taiga-ui/core/components/button/button.module.ts","ng://@taiga-ui/core/components/button/taiga-ui-core-components-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n pressedObservable,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_TAKE_ONLY_TRUSTED_EVENTS,\n tuiDefaultProp,\n TuiDestroyService,\n TuiFocusableElementAccessor,\n TuiFocusVisibleService,\n TuiHoveredService,\n watch,\n} from '@taiga-ui/cdk';\nimport {
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-button.js","sources":["ng://@taiga-ui/core/components/button/button-options.ts","ng://@taiga-ui/core/components/button/button.component.ts","ng://@taiga-ui/core/components/button/button.module.ts","ng://@taiga-ui/core/components/button/taiga-ui-core-components-button.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TuiSizeXL, TuiSizeXS} from '@taiga-ui/core/types';\n\nexport interface ButtonOptions {\n readonly size: TuiSizeXS | TuiSizeXL;\n readonly appearance: TuiAppearance | string;\n readonly shape: 'square' | 'rounded' | null;\n}\n\nexport const TUI_BUTTON_DEFAULT_OPTIONS: ButtonOptions = {\n size: 'l',\n shape: null,\n appearance: TuiAppearance.Primary,\n};\n\nexport const TUI_BUTTON_OPTIONS = new InjectionToken<ButtonOptions>(\n 'Default parameters for button component',\n {\n factory: () => TUI_BUTTON_DEFAULT_OPTIONS,\n },\n);\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n pressedObservable,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TUI_TAKE_ONLY_TRUSTED_EVENTS,\n tuiDefaultProp,\n TuiDestroyService,\n TuiFocusableElementAccessor,\n TuiFocusVisibleService,\n TuiHoveredService,\n watch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {ButtonOptions, TUI_BUTTON_OPTIONS} from './button-options';\n\n@Component({\n selector: 'button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]',\n templateUrl: './button.template.html',\n styleUrls: ['./button.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiButtonComponent),\n },\n TuiDestroyService,\n TuiFocusVisibleService,\n ],\n})\nexport class TuiButtonComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor, ButtonOptions\n{\n @Input()\n @HostBinding('attr.data-appearance')\n @tuiDefaultProp()\n appearance = this.options.appearance;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n icon: PolymorpheusContent = '';\n\n @Input()\n @tuiDefaultProp()\n iconRight: PolymorpheusContent = '';\n\n @Input()\n @HostBinding('attr.data-tui-host-shape')\n @tuiDefaultProp()\n shape = this.options.shape;\n\n @Input()\n @HostBinding('class._loading')\n @tuiDefaultProp()\n showLoader = false;\n\n @Input()\n @HostBinding('attr.data-tui-host-size')\n @tuiDefaultProp()\n size = this.options.size;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiFocusVisibleService) focusVisible$: TuiFocusVisibleService,\n @Inject(TuiHoveredService) hoveredService: TuiHoveredService,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_TAKE_ONLY_TRUSTED_EVENTS)\n private readonly takeOnlyTrustedEvents: boolean,\n @Inject(TUI_BUTTON_OPTIONS) private readonly options: ButtonOptions,\n ) {\n super();\n\n hoveredService\n .createHovered$(elementRef.nativeElement)\n .pipe(watch(changeDetectorRef), takeUntil(destroy$))\n .subscribe(hovered => {\n this.updateHovered(hovered);\n });\n pressedObservable(elementRef.nativeElement, {\n onlyTrusted: this.takeOnlyTrustedEvents,\n })\n .pipe(watch(changeDetectorRef), takeUntil(destroy$))\n .subscribe(pressed => {\n this.updatePressed(pressed);\n });\n focusVisible$.subscribe(focusVisible => {\n this.updateFocusVisible(focusVisible);\n });\n }\n\n get nativeFocusableElement(): HTMLElement | null {\n return this.nativeDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return !this.showLoader && isNativeFocused(this.elementRef.nativeElement);\n }\n\n get loaderSize(): TuiSizeS {\n return this.size === 'l' || this.size === 'xl' ? 'm' : 's';\n }\n\n @HostBinding('attr.disabled')\n get nativeDisabled(): '' | null {\n return this.computedDisabled || this.showLoader ? '' : null;\n }\n\n @HostBinding('tabIndex')\n get tabIndex(): number {\n return this.focusable ? 0 : -1;\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLoaderModule} from '@taiga-ui/core/components/loader';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiWrapperModule} from '@taiga-ui/core/components/wrapper';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiButtonComponent} from './button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiLoaderModule,\n ],\n declarations: [TuiButtonComponent],\n exports: [TuiButtonComponent],\n})\nexport class TuiButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -130,7 +130,7 @@ var TuiCalendarComponent = /** @class */ (function () {
|
|
|
130
130
|
TuiCalendarComponent = __decorate([
|
|
131
131
|
Component({
|
|
132
132
|
selector: 'tui-calendar',
|
|
133
|
-
template: "<tui-scrollbar\n *ngIf=\"year; else calendar\"\n
|
|
133
|
+
template: "<tui-scrollbar\n *ngIf=\"year; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"scrollbar\"\n>\n <tui-primitive-year-picker\n automation-id=\"tui-calendar__year\"\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-primitive-year-month-pagination\n automation-id=\"tui-calendar__pagination\"\n class=\"pagination\"\n [min]=\"computedMinViewedMonth\"\n [max]=\"computedMaxViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick($event)\"\n ></tui-primitive-year-month-pagination>\n <tui-primitive-calendar\n automation-id=\"tui-calendar__calendar\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n [month]=\"month\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper:min:max\"\n [markerHandler]=\"markerHandler\"\n [hoveredItem]=\"hoveredItem\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar>\n</ng-template>\n",
|
|
134
134
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
135
135
|
styles: [":host{display:block;height:18.25rem;width:15.75rem;padding:1rem 1.125rem;box-sizing:content-box}.scrollbar{height:18.25rem;width:16.875rem}.pagination{margin-bottom:1rem}"]
|
|
136
136
|
})
|