@taiga-ui/core 2.26.0 → 2.29.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 +4 -5
- package/abstract/abstract-dropdown.d.ts +1 -1
- package/abstract/taiga-ui-core-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-core-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.js +20 -20
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.min.js +1 -1
- 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.min.js +2 -2
- package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-error.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.js +4 -4
- 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 +6 -6
- 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 +9 -9
- 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-link.umd.js +1 -1
- package/bundles/taiga-ui-core-components-link.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +2 -2
- 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-checkbox.umd.js +2 -15
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +3 -3
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +17 -14
- 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 +3 -3
- 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-root.umd.js +12 -7
- package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.min.js +2 -2
- package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.js +2 -2
- package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.js +11 -6
- package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-svg.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.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +1 -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-hint.umd.js +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.min.js +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.js +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js +1 -1
- package/bundles/taiga-ui-core-directives-pointer-hint.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-enums.umd.js +1 -0
- package/bundles/taiga-ui-core-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-core-enums.umd.min.js +1 -1
- package/bundles/taiga-ui-core-enums.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-modules-notifications.umd.js +1 -1
- 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-providers.umd.js +19 -4
- package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
- package/bundles/taiga-ui-core-providers.umd.min.js +1 -1
- package/bundles/taiga-ui-core-providers.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.js +1 -1
- package/bundles/taiga-ui-core-services.umd.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.min.js +1 -1
- package/bundles/taiga-ui-core-services.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.js +12 -4
- package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.min.js +2 -2
- package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js +5 -1
- 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/data-list/data-list.component.d.ts +4 -4
- 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/dropdown-box.component.d.ts +2 -2
- 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/expand.component.d.ts +2 -2
- package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
- package/components/hints-host/hint-box/hint-box.component.d.ts +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 +3 -3
- package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.metadata.json +1 -1
- package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
- package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
- package/components/primitive-calendar/primitive-calendar.component.d.ts +3 -3
- package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
- package/components/primitive-checkbox/primitive-checkbox.component.d.ts +1 -3
- package/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.metadata.json +1 -1
- package/components/primitive-spin-button/primitive-spin-button.component.d.ts +1 -1
- package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.metadata.json +1 -1
- package/components/primitive-textfield/primitive-textfield.component.d.ts +2 -3
- package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
- package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +2 -1
- package/components/primitive-year-picker/primitive-year-picker.component.d.ts +3 -3
- package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.metadata.json +1 -1
- package/components/root/root.component.d.ts +2 -1
- package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
- package/components/scrollbar/scrollbar.component.d.ts +2 -2
- package/components/scrollbar/taiga-ui-core-components-scrollbar.metadata.json +1 -1
- package/components/svg/svg.component.d.ts +6 -4
- package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
- package/components/tooltip/taiga-ui-core-components-tooltip.metadata.json +1 -1
- package/components/tooltip/tooltip.component.d.ts +1 -1
- package/constants/taiga-ui-core-constants.metadata.json +1 -1
- package/constants/version.d.ts +1 -1
- package/directives/hint/hint.directive.d.ts +1 -1
- package/directives/hint/taiga-ui-core-directives-hint.metadata.json +1 -1
- package/directives/pointer-hint/pointer-hint.directive.d.ts +1 -1
- package/directives/pointer-hint/taiga-ui-core-directives-pointer-hint.metadata.json +1 -1
- package/enums/appearance.d.ts +1 -0
- package/enums/taiga-ui-core-enums.metadata.json +1 -1
- package/esm2015/abstract/abstract-dropdown.js +1 -1
- package/esm2015/components/data-list/data-list.component.js +17 -17
- package/esm2015/components/dialog/dialog.component.js +1 -1
- 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 +5 -5
- package/esm2015/components/hints-host/hint-box/hint-box.component.js +7 -7
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +10 -10
- package/esm2015/components/link/link.component.js +1 -1
- package/esm2015/components/notification/notification.component.js +1 -1
- package/esm2015/components/primitive-calendar/primitive-calendar.component.js +3 -3
- package/esm2015/components/primitive-checkbox/primitive-checkbox.component.js +4 -13
- package/esm2015/components/primitive-spin-button/primitive-spin-button.component.js +4 -4
- package/esm2015/components/primitive-textfield/primitive-textfield.component.js +7 -10
- package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +9 -3
- package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +4 -4
- package/esm2015/components/root/root.component.js +12 -6
- package/esm2015/components/scrollbar/scrollbar.component.js +3 -3
- package/esm2015/components/svg/svg.component.js +13 -8
- package/esm2015/components/tooltip/tooltip.component.js +2 -2
- package/esm2015/constants/version.js +2 -2
- package/esm2015/directives/hint/hint.directive.js +2 -2
- package/esm2015/directives/pointer-hint/pointer-hint.directive.js +2 -2
- package/esm2015/enums/appearance.js +2 -1
- package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +1 -1
- package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +1 -1
- package/esm2015/modules/notifications/notifications.service.js +1 -1
- package/esm2015/providers/index.js +2 -1
- package/esm2015/providers/is-mobile-resolution.provider.js +17 -0
- package/esm2015/services/hint.service.js +1 -1
- package/esm2015/services/svg.service.js +2 -2
- package/esm2015/tokens/index.js +3 -1
- package/esm2015/tokens/is-mobile-resolution.js +3 -0
- package/esm2015/tokens/svg-src-processor.js +6 -0
- package/esm2015/utils/mask/create-auto-corrected-money-pipe.js +6 -2
- package/esm5/abstract/abstract-dropdown.js +1 -1
- package/esm5/components/data-list/data-list.component.js +21 -21
- package/esm5/components/dialog/dialog.component.js +1 -1
- 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 +5 -5
- package/esm5/components/hints-host/hint-box/hint-box.component.js +7 -7
- package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +10 -10
- package/esm5/components/link/link.component.js +1 -1
- package/esm5/components/notification/notification.component.js +1 -1
- package/esm5/components/primitive-calendar/primitive-calendar.component.js +3 -3
- package/esm5/components/primitive-checkbox/primitive-checkbox.component.js +4 -17
- package/esm5/components/primitive-spin-button/primitive-spin-button.component.js +4 -4
- package/esm5/components/primitive-textfield/primitive-textfield.component.js +7 -14
- package/esm5/components/primitive-textfield/value-decoration/value-decoration.component.js +13 -3
- package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +4 -4
- package/esm5/components/root/root.component.js +12 -6
- package/esm5/components/scrollbar/scrollbar.component.js +3 -3
- package/esm5/components/svg/svg.component.js +13 -8
- package/esm5/components/tooltip/tooltip.component.js +2 -2
- package/esm5/constants/version.js +2 -2
- package/esm5/directives/hint/hint.directive.js +2 -2
- package/esm5/directives/pointer-hint/pointer-hint.directive.js +2 -2
- package/esm5/enums/appearance.js +2 -1
- package/esm5/modules/notifications/notification-alert/notification-alert.component.js +1 -1
- package/esm5/modules/notifications/notifications-host/notifications-host.component.js +1 -1
- package/esm5/modules/notifications/notifications.service.js +1 -1
- package/esm5/providers/index.js +2 -1
- package/esm5/providers/is-mobile-resolution.provider.js +19 -0
- package/esm5/services/hint.service.js +1 -1
- package/esm5/services/svg.service.js +2 -2
- package/esm5/tokens/index.js +3 -1
- package/esm5/tokens/is-mobile-resolution.js +3 -0
- package/esm5/tokens/svg-src-processor.js +6 -0
- package/esm5/utils/mask/create-auto-corrected-money-pipe.js +6 -2
- package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-data-list.js +17 -17
- 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-dropdown-box.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-expand.js +5 -5
- package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hints-host.js +7 -7
- package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +10 -10
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-link.js +1 -1
- package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js +3 -3
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-checkbox.js +3 -12
- package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +4 -4
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +14 -11
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +3 -3
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +11 -5
- package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-scrollbar.js +2 -2
- package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-svg.js +12 -7
- package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm2015/taiga-ui-core-constants.js +1 -1
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-pointer-hint.js +1 -1
- package/fesm2015/taiga-ui-core-directives-pointer-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-enums.js +1 -0
- package/fesm2015/taiga-ui-core-enums.js.map +1 -1
- package/fesm2015/taiga-ui-core-modules-notifications.js +1 -1
- package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
- package/fesm2015/taiga-ui-core-providers.js +18 -6
- package/fesm2015/taiga-ui-core-providers.js.map +1 -1
- package/fesm2015/taiga-ui-core-services.js +1 -1
- package/fesm2015/taiga-ui-core-services.js.map +1 -1
- package/fesm2015/taiga-ui-core-tokens.js +8 -1
- package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js +5 -1
- package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm5/taiga-ui-core-abstract.js.map +1 -1
- package/fesm5/taiga-ui-core-components-data-list.js +21 -21
- 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-dropdown-box.js.map +1 -1
- package/fesm5/taiga-ui-core-components-error.js.map +1 -1
- package/fesm5/taiga-ui-core-components-expand.js +5 -5
- package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hints-host.js +7 -7
- package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js +10 -10
- package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm5/taiga-ui-core-components-link.js +1 -1
- package/fesm5/taiga-ui-core-components-notification.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-calendar.js +3 -3
- package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-checkbox.js +3 -16
- package/fesm5/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-spin-button.js +4 -4
- package/fesm5/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-textfield.js +18 -15
- package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js +3 -3
- package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm5/taiga-ui-core-components-root.js +11 -5
- package/fesm5/taiga-ui-core-components-root.js.map +1 -1
- package/fesm5/taiga-ui-core-components-scrollbar.js +2 -2
- package/fesm5/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm5/taiga-ui-core-components-svg.js +12 -7
- package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js +1 -1
- package/fesm5/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm5/taiga-ui-core-constants.js +1 -1
- package/fesm5/taiga-ui-core-constants.js.map +1 -1
- package/fesm5/taiga-ui-core-directives-hint.js +1 -1
- package/fesm5/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm5/taiga-ui-core-directives-pointer-hint.js +1 -1
- package/fesm5/taiga-ui-core-directives-pointer-hint.js.map +1 -1
- package/fesm5/taiga-ui-core-enums.js +1 -0
- package/fesm5/taiga-ui-core-enums.js.map +1 -1
- package/fesm5/taiga-ui-core-modules-notifications.js +1 -1
- package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
- package/fesm5/taiga-ui-core-providers.js +20 -6
- package/fesm5/taiga-ui-core-providers.js.map +1 -1
- package/fesm5/taiga-ui-core-services.js +1 -1
- package/fesm5/taiga-ui-core-services.js.map +1 -1
- package/fesm5/taiga-ui-core-tokens.js +8 -1
- package/fesm5/taiga-ui-core-tokens.js.map +1 -1
- package/fesm5/taiga-ui-core-utils-mask.js +5 -1
- package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
- package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
- package/package.json +5 -5
- package/providers/index.d.ts +1 -0
- package/providers/is-mobile-resolution.provider.d.ts +5 -0
- package/providers/taiga-ui-core-providers.metadata.json +1 -1
- package/services/hint.service.d.ts +3 -3
- package/services/svg.service.d.ts +1 -1
- package/styles/theme/variables.less +1 -1
- package/styles/theme/wrapper/accent.less +31 -0
- package/styles/theme/wrapper/icon.less +1 -0
- package/styles/theme/wrapper/outline.less +1 -0
- package/styles/theme/wrapper/primary.less +1 -0
- package/styles/theme/wrapper/secondary.less +1 -0
- package/styles/theme/wrapper/whiteblock.less +2 -0
- package/styles/theme/wrapper.less +1 -0
- package/tokens/index.d.ts +2 -0
- package/tokens/is-mobile-resolution.d.ts +3 -0
- package/tokens/svg-src-processor.d.ts +3 -0
- package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
- package/utils/mask/create-auto-corrected-money-pipe.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-primitive-spin-button.js","sources":["ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.component.ts","ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.module.ts","ng://@taiga-ui/core/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {AbstractTuiInteractive, isNativeFocused, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-spin-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './primitive-spin-button.template.html',\n styleUrls: ['./primitive-spin-button.style.less'],\n})\nexport class TuiPrimitiveSpinButtonComponent extends AbstractTuiInteractive {\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n mode: TuiAppearance = TuiAppearance.Flat;\n\n @Input()\n @tuiDefaultProp()\n leftDisabled = false;\n\n @Input()\n @tuiDefaultProp()\n rightDisabled = false;\n\n @Output()\n readonly leftClick = new EventEmitter<void>();\n\n @Output()\n readonly rightClick = new EventEmitter<void>();\n\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-primitive-spin-button.js","sources":["ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.component.ts","ng://@taiga-ui/core/components/primitive-spin-button/primitive-spin-button.module.ts","ng://@taiga-ui/core/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {AbstractTuiInteractive, isNativeFocused, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_SPIN_TEXTS} from '@taiga-ui/core/tokens';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-spin-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './primitive-spin-button.template.html',\n styleUrls: ['./primitive-spin-button.style.less'],\n})\nexport class TuiPrimitiveSpinButtonComponent extends AbstractTuiInteractive {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n mode: TuiAppearance = TuiAppearance.Flat;\n\n @Input()\n @tuiDefaultProp()\n leftDisabled = false;\n\n @Input()\n @tuiDefaultProp()\n rightDisabled = false;\n\n @Output()\n readonly leftClick = new EventEmitter<void>();\n\n @Output()\n readonly rightClick = new EventEmitter<void>();\n\n constructor(\n @Inject(TUI_SPIN_TEXTS) readonly spinTexts$: Observable<[string, string]>,\n ) {\n super();\n }\n\n get focused(): boolean {\n return !!this.wrapper && isNativeFocused(this.wrapper.nativeElement);\n }\n\n get leftComputedDisabled(): boolean {\n return this.computedDisabled || this.leftDisabled;\n }\n\n get rightComputedDisabled(): boolean {\n return this.computedDisabled || this.rightDisabled;\n }\n\n onLeftClick() {\n if (!this.leftComputedDisabled) {\n this.leftClick.emit();\n }\n }\n\n onRightClick() {\n if (!this.rightComputedDisabled) {\n this.rightClick.emit();\n }\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onFocusVisible(focusVisible: boolean) {\n this.updateFocusVisible(focusVisible);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiFocusableModule,\n TuiFocusedModule,\n TuiFocusVisibleModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiButtonModule} from '@taiga-ui/core/components/button';\n\nimport {TuiPrimitiveSpinButtonComponent} from './primitive-spin-button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiFocusVisibleModule,\n TuiFocusedModule,\n TuiFocusableModule,\n TuiPreventDefaultModule,\n TuiButtonModule,\n ],\n declarations: [TuiPrimitiveSpinButtonComponent],\n exports: [TuiPrimitiveSpinButtonComponent],\n})\nexport class TuiPrimitiveSpinButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAeA;IAOa,+BAA+B,GAA5C,MAAa,+BAAgC,SAAQ,sBAAsB;IA0BvE,YACqC,UAAwC;QAEzE,KAAK,EAAE,CAAC;QAFyB,eAAU,GAAV,UAAU,CAA8B;QArB7E,aAAQ,GAAG,KAAK,CAAC;QAIjB,SAAI,qBAAqC;QAIzC,iBAAY,GAAG,KAAK,CAAC;QAIrB,kBAAa,GAAG,KAAK,CAAC;QAGb,cAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;QAGrC,eAAU,GAAG,IAAI,YAAY,EAAQ,CAAC;KAM9C;IAED,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACxE;IAED,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC;KACrD;IAED,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC;KACtD;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzB;KACJ;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B;KACJ;IAED,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,cAAc,CAAC,YAAqB;QAChC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;EACJ;;YApCoD,UAAU,uBAAtD,MAAM,SAAC,cAAc;;AAzB1B;IADC,SAAS,CAAC,SAAS,CAAC;gEAC8B;AAInD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;iEACA;AAIjB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;6DACwB;AAIzC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qEACI;AAIrB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sEACK;AAGtB;IADC,MAAM,EAAE;kEACqC;AAG9C;IADC,MAAM,EAAE;mEACsC;AAxBtC,+BAA+B;IAN3C,SAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,4uCAAoD;;KAEvD,CAAC;IA4BO,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;GA3BlB,+BAA+B,CA+D3C;;IC7DY,4BAA4B,GAAzC,MAAa,4BAA4B;EAAG;AAA/B,4BAA4B;IAZxC,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,qBAAqB;YACrB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,eAAe;SAClB;QACD,YAAY,EAAE,CAAC,+BAA+B,CAAC;QAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;KAC7C,CAAC;GACW,4BAA4B,CAAG;;ACxB5C;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { forwardRef, EventEmitter, Inject, Input, HostBinding, Output,
|
|
2
|
+
import { forwardRef, EventEmitter, Inject, ViewChild, Input, HostBinding, Output, ContentChildren, Component, ChangeDetectionStrategy, ElementRef, NgModule } from '@angular/core';
|
|
3
3
|
import { TUI_FOCUSABLE_ITEM_ACCESSOR, AbstractTuiInteractive, isNativeFocused, setNativeFocused, tuiDefaultProp, tuiPure, TuiFocusableModule, TuiFocusedModule, TuiHoveredModule, TuiInputModeModule, TuiAutofilledModule, TuiPreventDefaultModule } from '@taiga-ui/cdk';
|
|
4
4
|
import { HINT_CONTROLLER_PROVIDER, TuiHintControllerDirective, TUI_HINT_WATCHED_CONTROLLER } from '@taiga-ui/core/directives/hint-controller';
|
|
5
5
|
import { TEXTFIELD_CONTROLLER_PROVIDER, TuiTextfieldController, TUI_TEXTFIELD_WATCHED_CONTROLLER } from '@taiga-ui/core/directives/textfield-controller';
|
|
@@ -39,6 +39,7 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
|
|
|
39
39
|
this.appearance = appearance;
|
|
40
40
|
this.controller = controller;
|
|
41
41
|
this.hintController = hintController;
|
|
42
|
+
this.autofilled = false;
|
|
42
43
|
this.editable = true;
|
|
43
44
|
this.filler = '';
|
|
44
45
|
this.iconAlign = 'right';
|
|
@@ -52,7 +53,6 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
|
|
|
52
53
|
this.value = '';
|
|
53
54
|
this.valueChange = new EventEmitter();
|
|
54
55
|
this.autofilledChange = new EventEmitter();
|
|
55
|
-
this.autofilled = false;
|
|
56
56
|
}
|
|
57
57
|
get nativeFocusableElement() {
|
|
58
58
|
return this.computedDisabled || !this.focusableElement
|
|
@@ -75,9 +75,6 @@ let TuiPrimitiveTextfieldComponent = class TuiPrimitiveTextfieldComponent extend
|
|
|
75
75
|
var _a;
|
|
76
76
|
return !!((_a = this.content) === null || _a === void 0 ? void 0 : _a.length);
|
|
77
77
|
}
|
|
78
|
-
get isContextTable() {
|
|
79
|
-
return this.appearance === "table" /* Table */;
|
|
80
|
-
}
|
|
81
78
|
get hasValue() {
|
|
82
79
|
return !!this.value;
|
|
83
80
|
}
|
|
@@ -175,6 +172,9 @@ TuiPrimitiveTextfieldComponent.ctorParameters = () => [
|
|
|
175
172
|
{ type: TuiTextfieldController, decorators: [{ type: Inject, args: [TUI_TEXTFIELD_WATCHED_CONTROLLER,] }] },
|
|
176
173
|
{ type: TuiHintControllerDirective, decorators: [{ type: Inject, args: [TUI_HINT_WATCHED_CONTROLLER,] }] }
|
|
177
174
|
];
|
|
175
|
+
__decorate([
|
|
176
|
+
ViewChild('focusableElement')
|
|
177
|
+
], TuiPrimitiveTextfieldComponent.prototype, "focusableElement", void 0);
|
|
178
178
|
__decorate([
|
|
179
179
|
Input(),
|
|
180
180
|
tuiDefaultProp()
|
|
@@ -222,9 +222,6 @@ __decorate([
|
|
|
222
222
|
__decorate([
|
|
223
223
|
Output()
|
|
224
224
|
], TuiPrimitiveTextfieldComponent.prototype, "autofilledChange", void 0);
|
|
225
|
-
__decorate([
|
|
226
|
-
ViewChild('focusableElement')
|
|
227
|
-
], TuiPrimitiveTextfieldComponent.prototype, "focusableElement", void 0);
|
|
228
225
|
__decorate([
|
|
229
226
|
ContentChildren(PolymorpheusOutletComponent)
|
|
230
227
|
], TuiPrimitiveTextfieldComponent.prototype, "content", void 0);
|
|
@@ -243,13 +240,13 @@ __decorate([
|
|
|
243
240
|
TuiPrimitiveTextfieldComponent = __decorate([
|
|
244
241
|
Component({
|
|
245
242
|
selector: 'tui-primitive-textfield',
|
|
246
|
-
template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiPreventDefault=\"click\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"input\"\n [class.input_hidden]=\"inputHidden\"\n [style.textIndent.px]=\"decor.pre$ | async\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"input input_template\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <
|
|
243
|
+
template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiPreventDefault=\"click\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"input\"\n [class.input_hidden]=\"inputHidden\"\n [style.textIndent.px]=\"decor.pre$ | async\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n (tuiFocusedChange)=\"onFocused($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"input input_template\"\n [tuiBorderStart]=\"borderLeft\"\n [tuiBorderEnd]=\"borderRight\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"icon icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"placeholder\"\n [class.placeholder_raised]=\"placeholderRaised\"\n [for]=\"id\"\n >\n <ng-content></ng-content>\n </label>\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg class=\"custom-icon\" [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <tui-svg\n *ngIf=\"hasCleaner\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n src=\"tuiIconCloseLarge\"\n class=\"cleaner\"\n (click.stop)=\"clear()\"\n ></tui-svg>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"id\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
|
|
247
244
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
248
245
|
providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
|
|
249
246
|
host: {
|
|
250
247
|
'($.data-mode.attr)': 'mode$',
|
|
251
248
|
},
|
|
252
|
-
styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-tui-host-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-tui-host-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-tui-host-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}:host[data-tui-host-size='s'] .input{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .input{padding:0 var(--tui-padding-l)}:host._disabled .input{pointer-events:none}:host._right-aligned .input{text-align:right}:host[data-tui-host-size='l']:not(._label-outside) .input{padding-top:1.25rem}:host[data-tui-host-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-tui-host-size='m']:not(._label-outside) .input{padding-top:1.125rem}:host[data-tui-host-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-tui-host-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-tui-host-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;padding-right:.25rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-tui-host-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-tui-host-size='l']._focused._label-outside .placeholder,:host[data-tui-host-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-tui-host-size='l'] .placeholder{font-size:.9375rem}:host[data-tui-host-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-tui-host-size='l']._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-tui-host-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-tui-host-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;align-items:center;justify-content:center;color:var(--tui-text-03)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-tui-host-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}.
|
|
249
|
+
styles: [":host{font:var(--tui-font-text-s);color:var(--tui-text-01);position:relative;display:block;border-radius:var(--tui-radius-m);text-align:left}:host[data-tui-host-size='s']{height:var(--tui-height-s);min-height:var(--tui-height-s);max-height:var(--tui-height-s)}:host[data-tui-host-size='m']{height:var(--tui-height-m);min-height:var(--tui-height-m);max-height:var(--tui-height-m)}:host[data-tui-host-size='l']{height:var(--tui-height-l);min-height:var(--tui-height-l);max-height:var(--tui-height-l);font-size:.9375rem}.input{font:var(--tui-font-text-s);color:var(--tui-text-01);padding:0;border:0 solid transparent;border-radius:inherit;background:0 0;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;width:100%;height:100%;padding:0 var(--tui-padding-m);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit}.input:-webkit-autofill,.input:-webkit-autofill:focus,.input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01)!important;border-color:var(--tui-autofill);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill) inset!important}:host[data-mode=onDark] .input:-webkit-autofill,:host[data-mode=onDark] .input:-webkit-autofill:focus,:host[data-mode=onDark] .input:-webkit-autofill:hover{border-radius:inherit;color:inherit!important;background-color:transparent!important;-webkit-text-fill-color:var(--tui-text-01-night)!important;border-color:var(--tui-autofill-night);-webkit-box-shadow:0 0 0 1000px var(--tui-autofill-night) inset!important}:host[data-tui-host-size='s'] .input{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .input{padding:0 var(--tui-padding-l)}:host._disabled .input{pointer-events:none}:host._right-aligned .input{text-align:right}:host[data-tui-host-size='l']:not(._label-outside) .input{padding-top:1.25rem}:host[data-tui-host-size='l']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-tui-host-size='m']:not(._label-outside) .input{padding-top:1.125rem}:host[data-tui-host-size='m']:not(._label-outside) .input:-webkit-autofill+.content .placeholder{font-size:.69rem;transform:translateY(-.5rem)}.filler{vertical-align:middle}.content{display:flex;height:100%;width:100%;padding:0 var(--tui-padding-m);box-sizing:border-box;align-items:center;overflow:hidden}:host[data-tui-host-size='s'] .content{padding:0 var(--tui-padding-s)}:host[data-tui-host-size='l'] .content{padding:0 var(--tui-padding-l)}.content:after{content:'';margin-right:-.25rem}:host[data-tui-host-size='m'] .content:after{display:none}.wrapper{flex:1;min-width:0;padding-right:.25rem;-webkit-padding-end:.25rem;padding-inline-end:.25rem;-webkit-padding-start:0;padding-inline-start:0}.placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;font:var(--tui-font-text-s);color:var(--tui-text-01);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--tui-text-02);pointer-events:none}.placeholder_raised{transform:translateY(-.625rem)}:host[data-tui-host-size='m'] .placeholder_raised{font-size:.69rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .placeholder_raised,:host._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill)}:host[data-mode=onDark]._invalid:not(._focused) .placeholder_raised,:host[data-mode=onDark]._invalid:not(._focused)._hovered .placeholder_raised{color:var(--tui-error-fill-night)}:host._focused .placeholder,:host[data-tui-host-size='l']._focused._label-outside .placeholder,:host[data-tui-host-size='m']._focused._label-outside .placeholder{color:var(--tui-text-03)}:host[data-tui-host-size='l'] .placeholder{font-size:.9375rem}:host[data-tui-host-size='l'] .placeholder_raised{font-size:.8156rem}:host[data-tui-host-size='l']._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m']._focused:not(._label-outside) .placeholder{color:var(--tui-text-01)}:host[data-mode=onDark] .placeholder{color:var(--tui-text-02-night)}:host[data-tui-host-size='l'][data-mode=onDark]._focused:not(._label-outside) .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused:not(._label-outside) .placeholder{color:var(--tui-text-01-night)}:host[data-mode=onDark]._focused .placeholder,:host[data-tui-host-size='l'][data-mode=onDark]._focused._label-outside .placeholder,:host[data-tui-host-size='m'][data-mode=onDark]._focused._label-outside .placeholder{color:var(--tui-text-02-night)}.cleaner{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.cleaner:hover{color:var(--tui-text-02)}:host._disabled .cleaner,:host._readonly .cleaner{pointer-events:none}:host[data-mode=onDark] .cleaner{color:var(--tui-text-03-night)}:host[data-mode=onDark] .cleaner:hover{color:var(--tui-text-01-night)}.icon{display:flex;align-items:center;justify-content:center;color:var(--tui-text-03)}.icon_left{margin:0 .5rem 0 -.25rem;-webkit-margin-start:-.25rem;margin-inline-start:-.25rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}:host[data-tui-host-size='s'] .icon_left{margin-right:.25rem;-webkit-margin-end:.25rem;margin-inline-end:.25rem}.value_visible{display:block}.custom-content{position:relative;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-right:.25rem;pointer-events:none}.custom-icon{width:100%;height:100%}.icon{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);box-sizing:border-box;cursor:pointer;transition-property:color,transform;position:relative;pointer-events:none}.icon:hover{color:var(--tui-text-02)}:host._disabled .icon,:host._readonly .icon{pointer-events:none}:host[data-mode=onDark] .icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .icon:hover{color:var(--tui-text-01-night)}:host._hovered:not(._readonly) .icon{color:var(--tui-text-02)}:host[data-mode=onDark]._hovered:not(._readonly) .icon{color:var(--tui-text-01-night)}:host[data-mode=onLight]._hovered:not(._readonly) .icon{color:var(--tui-text-01)}.input_hidden{opacity:0;text-indent:-10em;-webkit-user-select:none}:host[data-tui-host-size] .input_template{display:flex;width:100%;max-width:100%;align-items:center;pointer-events:none}.input::-webkit-caps-lock-indicator{margin-right:.375rem;align-self:center}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-caps-lock-indicator{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button,.input::-webkit-credentials-auto-fill-button,.input::-webkit-credit-card-auto-fill-button{background-color:var(--tui-text-03)}:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-contacts-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credentials-auto-fill-button,:host[data-tui-host-size='l']:not(._label-outside) .input::-webkit-credit-card-auto-fill-button{margin-top:-1.25rem}.input::-webkit-contacts-auto-fill-button:hover,.input::-webkit-credentials-auto-fill-button:hover,.input::-webkit-credit-card-auto-fill-button:hover{background-color:var(--tui-text-02)}.text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]
|
|
253
250
|
}),
|
|
254
251
|
__param(0, Inject(TUI_MODE)),
|
|
255
252
|
__param(1, Inject(TUI_TEXTFIELD_APPEARANCE)),
|
|
@@ -263,6 +260,9 @@ let TuiValueDecorationComponent = class TuiValueDecorationComponent {
|
|
|
263
260
|
this.controller = controller;
|
|
264
261
|
this.pre$ = defer(() => { var _a, _b; return (_b = (_a = this.directive) === null || _a === void 0 ? void 0 : _a.waMutationObserver) !== null && _b !== void 0 ? _b : EMPTY; }).pipe(map(() => { var _a, _b; return (_b = (_a = this.pre) === null || _a === void 0 ? void 0 : _a.nativeElement.offsetWidth) !== null && _b !== void 0 ? _b : 0; }), startWith(0), distinctUntilChanged());
|
|
265
262
|
}
|
|
263
|
+
get isContextTable() {
|
|
264
|
+
return this.textfield.appearance === "table" /* Table */;
|
|
265
|
+
}
|
|
266
266
|
get value() {
|
|
267
267
|
return this.textfield.value;
|
|
268
268
|
}
|
|
@@ -302,13 +302,16 @@ __decorate([
|
|
|
302
302
|
__decorate([
|
|
303
303
|
ViewChild(MutationObserverDirective, { static: true })
|
|
304
304
|
], TuiValueDecorationComponent.prototype, "directive", void 0);
|
|
305
|
+
__decorate([
|
|
306
|
+
HostBinding('class._table')
|
|
307
|
+
], TuiValueDecorationComponent.prototype, "isContextTable", null);
|
|
305
308
|
TuiValueDecorationComponent = __decorate([
|
|
306
309
|
Component({
|
|
307
310
|
selector: 'tui-value-decoration',
|
|
308
311
|
template: "<span #pre subtree characterData waMutationObserver>{{ prefix }}</span>\n<span class=\"t-ghost\">{{ value }}</span>\n<span class=\"t-filler\">{{ filler }}</span>\n{{ postfix }}\n",
|
|
309
312
|
// It follows Change Detection of PrimitiveTextfield
|
|
310
313
|
changeDetection: ChangeDetectionStrategy.Default,
|
|
311
|
-
styles: [":host{display:block;height:1.25rem;margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-01);white-space:nowrap;overflow:hidden}:host-context(tui-textfield[data-mode=onDark]) :host{color:var(--tui-text-01-night)}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip}.t-filler{color:var(--tui-text-03)}:host-context(tui-textfield[data-mode=onDark]) .t-filler{color:var(--tui-text-03-night)}"]
|
|
314
|
+
styles: [":host{position:absolute;display:block;height:1.25rem;max-width:calc(100% - 2rem);margin:-1.25rem 0;padding:.625rem 0;box-sizing:content-box;color:var(--tui-text-01);white-space:nowrap;overflow:hidden;pointer-events:none}:host._table{position:static}:host-context(tui-textfield[data-mode=onDark]) :host{color:var(--tui-text-01-night)}.t-ghost{visibility:hidden;white-space:pre;text-overflow:clip}.t-filler{color:var(--tui-text-03)}:host-context(tui-textfield[data-mode=onDark]) .t-filler{color:var(--tui-text-03-night)}"]
|
|
312
315
|
}),
|
|
313
316
|
__param(0, Inject(TuiPrimitiveTextfieldComponent)),
|
|
314
317
|
__param(1, Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER$1))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-primitive-textfield.js","sources":["ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.providers.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/value-decoration/value-decoration.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.module.ts","ng://@taiga-ui/core/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {HINT_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/hint-controller';\nimport {TEXTFIELD_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/textfield-controller';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\nexport const TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n setNativeFocused,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n} from '@taiga-ui/core/directives/hint-controller';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives/textfield-controller';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {TUI_MODE, TUI_TEXTFIELD_APPEARANCE} from '@taiga-ui/core/tokens';\nimport {\n TuiBrightness,\n TuiHorizontalDirection,\n TuiSizeL,\n TuiSizeS,\n} from '@taiga-ui/core/types';\nimport {getBorder} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_PRIMITIVE_TEXTFIELD_PROVIDERS} from './primitive-textfield.providers';\n\nconst ICON_PADDING = 1.75;\nconst ICON_PADDING_S = 1.5;\n\n@Component({\n selector: 'tui-primitive-textfield',\n templateUrl: './primitive-textfield.template.html',\n styleUrls: ['./primitive-textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiPrimitiveTextfieldComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n filler = '';\n\n @Input()\n @tuiDefaultProp()\n iconAlign: TuiHorizontalDirection = 'right';\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n iconContent: PolymorpheusContent | null = null;\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Output()\n readonly valueChange = new EventEmitter<string>();\n\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @ContentChildren(PolymorpheusOutletComponent)\n readonly content?: QueryList<unknown>;\n\n private autofilled = false;\n\n constructor(\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n ) {\n super();\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeS | TuiSizeL {\n return this.controller.size;\n }\n\n @HostBinding('class._label-outside')\n get labelOutside(): boolean {\n return this.controller.labelOutside;\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return !this.readOnly && !this.disabled && this.invalid;\n }\n\n get inputHidden(): boolean {\n return !!this.content?.length;\n }\n\n get isContextTable(): boolean {\n return this.appearance === TuiAppearance.Table;\n }\n\n get hasValue(): boolean {\n return !!this.value;\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n get hasTooltip(): boolean {\n return !!this.hintController?.content && !this.disabled;\n }\n\n get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n get hasPlaceholder(): boolean {\n const hasDecor = this.controller.exampleText || this.prefix || this.postfix;\n const showDecor = hasDecor && !this.readOnly && this.computedFocused;\n const placeholderVisible = !this.hasValue && !showDecor;\n\n return this.placeholderRaisable || placeholderVisible;\n }\n\n get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled)\n );\n }\n\n get borderLeft(): number {\n return this.iconAlignLeft ? this.iconPaddingLeft : 0;\n }\n\n get borderRight(): number {\n return getBorder(\n this.iconAlignRight,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n );\n }\n\n get iconAlignLeft(): boolean {\n return this.hasIcon && this.iconAlign === 'left';\n }\n\n get iconAlignRight(): boolean {\n return this.hasIcon && this.iconAlign === 'right';\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.controller.autocomplete === TuiCreditCardAutofillName.CcExp\n ? 'ccexpiryyear'\n : null;\n }\n\n @tuiPure\n getIndent$(element: HTMLElement): Observable<number> {\n return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));\n }\n\n clear() {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = '';\n }\n\n this.updateValue('');\n }\n\n onMouseDown(event: MouseEvent) {\n if (\n !this.focusableElement ||\n event.target === this.focusableElement.nativeElement\n ) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(this.focusableElement.nativeElement);\n }\n\n onModelChange(value: string) {\n this.updateValue(value);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onAutofilled(autofilled: boolean) {\n this.updateAutofilled(autofilled);\n }\n\n private get iconPaddingLeft(): number {\n return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.labelOutside;\n }\n\n private get hasIcon(): boolean {\n return !!this.iconContent;\n }\n\n private updateAutofilled(autofilled: boolean) {\n if (this.autofilled === autofilled) {\n return;\n }\n\n this.autofilled = autofilled;\n this.autofilledChange.emit(autofilled);\n }\n\n private updateValue(value: string) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n ViewChild,\n} from '@angular/core';\nimport {MutationObserverDirective} from '@ng-web-apis/mutation-observer';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {defer, EMPTY} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiPrimitiveTextfieldComponent} from '../primitive-textfield.component';\n\n@Component({\n selector: 'tui-value-decoration',\n templateUrl: 'value-decoration.template.html',\n styleUrls: ['value-decoration.style.less'],\n // It follows Change Detection of PrimitiveTextfield\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiValueDecorationComponent {\n readonly pre$ = defer(() => this.directive?.waMutationObserver ?? EMPTY).pipe(\n map(() => this.pre?.nativeElement.offsetWidth ?? 0),\n startWith(0),\n distinctUntilChanged(),\n );\n\n @ViewChild('pre', {read: ElementRef, static: true})\n private readonly pre?: ElementRef<HTMLElement>;\n\n @ViewChild(MutationObserverDirective, {static: true})\n private readonly directive?: MutationObserverDirective;\n\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n private readonly controller: TuiTextfieldController,\n ) {}\n\n get value(): string {\n return this.textfield.value;\n }\n\n get filler(): string {\n return this.focused\n ? this.exampleText || this.textfield.filler.slice(this.value.length)\n : '';\n }\n\n get prefix(): string {\n return this.decorationsVisible ? this.textfield.prefix : '';\n }\n\n get postfix(): string {\n return this.decorationsVisible ? this.computedPostfix : '';\n }\n\n private get exampleText(): string {\n return !this.value && this.focused ? this.controller.exampleText : '';\n }\n\n private get decorationsVisible(): boolean {\n return !!this.value || this.focused;\n }\n\n private get focused(): boolean {\n return this.textfield.computedFocused && !this.textfield.readOnly;\n }\n\n private get computedPostfix(): string {\n return this.textfield.postfix && (this.filler || this.value)\n ? ` ${this.textfield.postfix}`\n : this.textfield.postfix;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MutationObserverModule} from '@ng-web-apis/mutation-observer';\nimport {\n TuiAutofilledModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiTooltipModule} from '@taiga-ui/core/components/tooltip';\nimport {TuiWrapperModule} from '@taiga-ui/core/components/wrapper';\nimport {TuiBorderModule} from '@taiga-ui/core/directives/border';\nimport {TuiDescribedByModule} from '@taiga-ui/core/directives/described-by';\nimport {TuiMaskAccessorModule} from '@taiga-ui/core/directives/mask-accessor';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\nimport {TuiValueDecorationComponent} from './value-decoration/value-decoration.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiMaskAccessorModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiAutofilledModule,\n TuiDescribedByModule,\n TuiPreventDefaultModule,\n TuiBorderModule,\n MutationObserverModule,\n ],\n declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],\n exports: [TuiPrimitiveTextfieldComponent],\n})\nexport class TuiPrimitiveTextfieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TuiTextfieldController","TUI_TEXTFIELD_WATCHED_CONTROLLER"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-primitive-textfield.js","sources":["ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.providers.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/value-decoration/value-decoration.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.module.ts","ng://@taiga-ui/core/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {HINT_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/hint-controller';\nimport {TEXTFIELD_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/textfield-controller';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\nexport const TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocused,\n setNativeFocused,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n} from '@taiga-ui/core/directives/hint-controller';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives/textfield-controller';\nimport {TUI_MODE, TUI_TEXTFIELD_APPEARANCE} from '@taiga-ui/core/tokens';\nimport {\n TuiBrightness,\n TuiHorizontalDirection,\n TuiSizeL,\n TuiSizeS,\n} from '@taiga-ui/core/types';\nimport {getBorder} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_PRIMITIVE_TEXTFIELD_PROVIDERS} from './primitive-textfield.providers';\n\nconst ICON_PADDING = 1.75;\nconst ICON_PADDING_S = 1.5;\n\n@Component({\n selector: 'tui-primitive-textfield',\n templateUrl: './primitive-textfield.template.html',\n styleUrls: ['./primitive-textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiPrimitiveTextfieldComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n private autofilled = false;\n\n @Input()\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n filler = '';\n\n @Input()\n @tuiDefaultProp()\n iconAlign: TuiHorizontalDirection = 'right';\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n iconContent: PolymorpheusContent | null = null;\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Output()\n readonly valueChange = new EventEmitter<string>();\n\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @ContentChildren(PolymorpheusOutletComponent)\n readonly content?: QueryList<unknown>;\n\n constructor(\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n ) {\n super();\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled || !this.focusableElement\n ? null\n : this.focusableElement.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n @HostBinding('attr.data-tui-host-size')\n get size(): TuiSizeS | TuiSizeL {\n return this.controller.size;\n }\n\n @HostBinding('class._label-outside')\n get labelOutside(): boolean {\n return this.controller.labelOutside;\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return !this.readOnly && !this.disabled && this.invalid;\n }\n\n get inputHidden(): boolean {\n return !!this.content?.length;\n }\n\n get hasValue(): boolean {\n return !!this.value;\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n get hasTooltip(): boolean {\n return !!this.hintController?.content && !this.disabled;\n }\n\n get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n get hasPlaceholder(): boolean {\n const hasDecor = this.controller.exampleText || this.prefix || this.postfix;\n const showDecor = hasDecor && !this.readOnly && this.computedFocused;\n const placeholderVisible = !this.hasValue && !showDecor;\n\n return this.placeholderRaisable || placeholderVisible;\n }\n\n get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled)\n );\n }\n\n get borderLeft(): number {\n return this.iconAlignLeft ? this.iconPaddingLeft : 0;\n }\n\n get borderRight(): number {\n return getBorder(\n this.iconAlignRight,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n );\n }\n\n get iconAlignLeft(): boolean {\n return this.hasIcon && this.iconAlign === 'left';\n }\n\n get iconAlignRight(): boolean {\n return this.hasIcon && this.iconAlign === 'right';\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.controller.autocomplete === TuiCreditCardAutofillName.CcExp\n ? 'ccexpiryyear'\n : null;\n }\n\n @tuiPure\n getIndent$(element: HTMLElement): Observable<number> {\n return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));\n }\n\n clear() {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = '';\n }\n\n this.updateValue('');\n }\n\n onMouseDown(event: MouseEvent) {\n if (\n !this.focusableElement ||\n event.target === this.focusableElement.nativeElement\n ) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(this.focusableElement.nativeElement);\n }\n\n onModelChange(value: string) {\n this.updateValue(value);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n onAutofilled(autofilled: boolean) {\n this.updateAutofilled(autofilled);\n }\n\n private get iconPaddingLeft(): number {\n return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.labelOutside;\n }\n\n private get hasIcon(): boolean {\n return !!this.iconContent;\n }\n\n private updateAutofilled(autofilled: boolean) {\n if (this.autofilled === autofilled) {\n return;\n }\n\n this.autofilled = autofilled;\n this.autofilledChange.emit(autofilled);\n }\n\n private updateValue(value: string) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n ViewChild,\n} from '@angular/core';\nimport {MutationObserverDirective} from '@ng-web-apis/mutation-observer';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {defer, EMPTY} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiPrimitiveTextfieldComponent} from '../primitive-textfield.component';\n\n@Component({\n selector: 'tui-value-decoration',\n templateUrl: 'value-decoration.template.html',\n styleUrls: ['value-decoration.style.less'],\n // It follows Change Detection of PrimitiveTextfield\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiValueDecorationComponent {\n @ViewChild('pre', {read: ElementRef, static: true})\n private readonly pre?: ElementRef<HTMLElement>;\n\n @ViewChild(MutationObserverDirective, {static: true})\n private readonly directive?: MutationObserverDirective;\n\n readonly pre$ = defer(() => this.directive?.waMutationObserver ?? EMPTY).pipe(\n map(() => this.pre?.nativeElement.offsetWidth ?? 0),\n startWith(0),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n private readonly controller: TuiTextfieldController,\n ) {}\n\n @HostBinding('class._table')\n get isContextTable(): boolean {\n return this.textfield.appearance === TuiAppearance.Table;\n }\n\n get value(): string {\n return this.textfield.value;\n }\n\n get filler(): string {\n return this.focused\n ? this.exampleText || this.textfield.filler.slice(this.value.length)\n : '';\n }\n\n get prefix(): string {\n return this.decorationsVisible ? this.textfield.prefix : '';\n }\n\n get postfix(): string {\n return this.decorationsVisible ? this.computedPostfix : '';\n }\n\n private get exampleText(): string {\n return !this.value && this.focused ? this.controller.exampleText : '';\n }\n\n private get decorationsVisible(): boolean {\n return !!this.value || this.focused;\n }\n\n private get focused(): boolean {\n return this.textfield.computedFocused && !this.textfield.readOnly;\n }\n\n private get computedPostfix(): string {\n return this.textfield.postfix && (this.filler || this.value)\n ? ` ${this.textfield.postfix}`\n : this.textfield.postfix;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MutationObserverModule} from '@ng-web-apis/mutation-observer';\nimport {\n TuiAutofilledModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n TuiPreventDefaultModule,\n} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiTooltipModule} from '@taiga-ui/core/components/tooltip';\nimport {TuiWrapperModule} from '@taiga-ui/core/components/wrapper';\nimport {TuiBorderModule} from '@taiga-ui/core/directives/border';\nimport {TuiDescribedByModule} from '@taiga-ui/core/directives/described-by';\nimport {TuiMaskAccessorModule} from '@taiga-ui/core/directives/mask-accessor';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\nimport {TuiValueDecorationComponent} from './value-decoration/value-decoration.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiMaskAccessorModule,\n TuiFocusableModule,\n TuiFocusedModule,\n TuiHoveredModule,\n TuiInputModeModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiAutofilledModule,\n TuiDescribedByModule,\n TuiPreventDefaultModule,\n TuiBorderModule,\n MutationObserverModule,\n ],\n declarations: [TuiPrimitiveTextfieldComponent, TuiValueDecorationComponent],\n exports: [TuiPrimitiveTextfieldComponent],\n})\nexport class TuiPrimitiveTextfieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TuiTextfieldController","TUI_TEXTFIELD_WATCHED_CONTROLLER"],"mappings":"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"}
|
|
@@ -7,15 +7,15 @@ const LIMIT = 100;
|
|
|
7
7
|
const ITEMS_IN_ROW = 4;
|
|
8
8
|
let TuiPrimitiveYearPickerComponent = class TuiPrimitiveYearPickerComponent {
|
|
9
9
|
constructor() {
|
|
10
|
+
this.hoveredItem = null;
|
|
11
|
+
this.pressedItem = null;
|
|
12
|
+
this.currentYear = TuiMonth.currentLocal().year;
|
|
10
13
|
this.value = null;
|
|
11
14
|
this.initialItem = TuiMonth.currentLocal();
|
|
12
15
|
this.min = TUI_FIRST_DAY;
|
|
13
16
|
this.max = TUI_LAST_DAY;
|
|
14
17
|
this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
|
|
15
18
|
this.yearClick = new EventEmitter();
|
|
16
|
-
this.hoveredItem = null;
|
|
17
|
-
this.pressedItem = null;
|
|
18
|
-
this.currentYear = TuiMonth.currentLocal().year;
|
|
19
19
|
}
|
|
20
20
|
get isSingle() {
|
|
21
21
|
const { value } = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-primitive-year-picker.js","sources":["ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.component.ts","ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.module.ts","ng://@taiga-ui/core/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n inRange,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n selector: 'tui-primitive-year-picker',\n templateUrl: './primitive-year-picker.template.html',\n styleUrls: ['./primitive-year-picker.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveYearPickerComponent {\n @Input()\n @tuiDefaultProp()\n value: TuiYear | TuiDayRange | null = null;\n\n @Input()\n @tuiDefaultProp()\n initialItem = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiYear = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiYear = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<number> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear | TuiDayRange>();\n\n private hoveredItem: number | null = null;\n\n private pressedItem: number | null = null;\n\n private currentYear = TuiMonth.currentLocal().year;\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n const {value} = this;\n\n return !!value && this.isRange(value) && value.from.yearSame(value.to);\n }\n\n get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n get calculatedMin(): number {\n const initial = this.initialItem.year - LIMIT;\n\n return this.min.year > initial ? this.min.year : initial;\n }\n\n get calculatedMax(): number {\n const initial = this.initialItem.year + LIMIT;\n\n return this.max.year < initial ? this.max.year + 1 : initial;\n }\n\n isRange(item: TuiMonthRange | TuiYear): item is TuiMonthRange {\n return item instanceof TuiMonthRange;\n }\n\n scrollItemIntoView(item: number): boolean {\n return this.initialItem.year === item;\n }\n\n getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n getItemState(item: number): TuiInteractiveState | null {\n const {disabledItemHandler, max, pressedItem, hoveredItem} = this;\n\n if (\n max.year < item ||\n (disabledItemHandler !== ALWAYS_FALSE_HANDLER && disabledItemHandler(item))\n ) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem === item) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem === item) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: number): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiYear) {\n return value.year === item ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem > value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem < value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem < value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem > value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.End;\n }\n\n return value.from.yearSame(value.to) && value.from.year === item\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n itemIsInterval(item: number): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || !this.isRange(value)) {\n return false;\n }\n\n if (!value.from.yearSame(value.to)) {\n return value.from.year <= item && value.to.year > item;\n }\n\n if (hoveredItem === null || value.from.year === hoveredItem) {\n return false;\n }\n\n return inRange(\n item,\n Math.min(value.from.year, hoveredItem),\n Math.max(value.from.year, hoveredItem),\n );\n }\n\n onItemHovered(hovered: boolean, item: number) {\n this.updateHoveredItem(hovered, item);\n }\n\n onItemPressed(pressed: boolean, item: number) {\n this.updatePressedItem(pressed, item);\n }\n\n onItemClick(item: number) {\n this.yearClick.emit(new TuiYear(item));\n }\n\n private updateHoveredItem(hovered: boolean, item: number) {\n this.hoveredItem = hovered ? item : null;\n }\n\n private updatePressedItem(pressed: boolean, item: number) {\n this.pressedItem = pressed ? item : null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiScrollIntoViewModule} from '@taiga-ui/core/directives/scroll-into-view';\n\nimport {TuiPrimitiveYearPickerComponent} from './primitive-year-picker.component';\n\n@NgModule({\n imports: [\n TuiHoveredModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n TuiLetModule,\n TuiScrollIntoViewModule,\n ],\n declarations: [TuiPrimitiveYearPickerComponent],\n exports: [TuiPrimitiveYearPickerComponent],\n})\nexport class TuiPrimitiveYearPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAsBA,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,YAAY,GAAG,CAAC,CAAC;IAQV,+BAA+B,GAA5C,MAAa,+BAA+B;IAA5C;QAGI,UAAK,GAAiC,IAAI,CAAC;QAI3C,gBAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAItC,QAAG,GAAY,aAAa,CAAC;QAI7B,QAAG,GAAY,YAAY,CAAC;QAI5B,wBAAmB,GAA8B,oBAAoB,CAAC;QAG7D,cAAS,GAAG,IAAI,YAAY,EAAyB,CAAC;QAEvD,gBAAW,GAAkB,IAAI,CAAC;QAElC,gBAAW,GAAkB,IAAI,CAAC;QAElC,gBAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC;KAmJtD;IAhJG,IAAI,QAAQ;QACR,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC;QAErB,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC1E;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,CAAC;KAC9E;IAED,IAAI,aAAa;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;QAE9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;KAC5D;IAED,IAAI,aAAa;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;QAE9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;KAChE;IAED,OAAO,CAAC,IAA6B;QACjC,OAAO,IAAI,YAAY,aAAa,CAAC;KACxC;IAED,kBAAkB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC;KACzC;IAED,OAAO,CAAC,QAAgB,EAAE,QAAgB;QACtC,OAAO,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;KAClE;IAED,YAAY,CAAC,IAAY;QACrB,MAAM,EAAC,mBAAmB,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;QAElE,IACI,GAAG,CAAC,IAAI,GAAG,IAAI;aACd,mBAAmB,KAAK,oBAAoB,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAC7E;YACE,iCAAoC;SACvC;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;YACtB,+BAAmC;SACtC;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;YACtB,+BAAmC;SACtC;QAED,OAAO,IAAI,CAAC;KACf;IAED,YAAY,CAAC,IAAY;QACrB,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;QAElC,IAAI,KAAK,KAAK,IAAI,EAAE;YAChB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,KAAK,YAAY,OAAO,EAAE;YAC1B,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,2BAA0B,IAAI,CAAC;SAC5D;QAED,IACI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;aAC1D,WAAW,KAAK,IAAI;gBACjB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;gBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;gBACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACjC,WAAW,KAAK,IAAI;gBACjB,WAAW,KAAK,IAAI;gBACpB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;gBAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EACpC;YACE,2BAA2B;SAC9B;QAED,IACI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;aACxD,WAAW,KAAK,IAAI;gBACjB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;gBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;gBACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACjC,WAAW,KAAK,IAAI;gBACjB,WAAW,KAAK,IAAI;gBACpB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;gBAC7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EACpC;YACE,uBAAyB;SAC5B;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;;cAE1D,IAAI,CAAC;KACd;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;KACpC;IAED,cAAc,CAAC,IAAY;QACvB,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;QAElC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;YAChC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;SAC1D;QAED,IAAI,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YACzD,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,OAAO,CACV,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CACzC,CAAC;KACL;IAED,aAAa,CAAC,OAAgB,EAAE,IAAY;QACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,aAAa,CAAC,OAAgB,EAAE,IAAY;QACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,WAAW,CAAC,IAAY;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1C;IAEO,iBAAiB,CAAC,OAAgB,EAAE,IAAY;QACpD,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;KAC5C;IAEO,iBAAiB,CAAC,OAAgB,EAAE,IAAY;QACpD,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;KAC5C;EACJ;AA5KG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;8DAC0B;AAI3C;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oEACqB;AAItC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;4DACY;AAI7B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;4DACW;AAI5B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;4EACqD;AAGtE;IADC,MAAM,EAAE;kEACsD;AAS/D;IADC,WAAW,CAAC,eAAe,CAAC;+DAK5B;AAnCQ,+BAA+B;IAN3C,SAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,+7BAAoD;QAEpD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;GACW,+BAA+B,CA+K3C;;ICxLY,4BAA4B,GAAzC,MAAa,4BAA4B;EAAG;AAA/B,4BAA4B;IAXxC,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,gBAAgB;YAChB,gBAAgB;YAChB,oBAAoB;YACpB,YAAY;YACZ,uBAAuB;SAC1B;QACD,YAAY,EAAE,CAAC,+BAA+B,CAAC;QAC/C,OAAO,EAAE,CAAC,+BAA+B,CAAC;KAC7C,CAAC;GACW,4BAA4B,CAAG;;ACtB5C;;;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-primitive-year-picker.js","sources":["ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.component.ts","ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.module.ts","ng://@taiga-ui/core/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n inRange,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n selector: 'tui-primitive-year-picker',\n templateUrl: './primitive-year-picker.template.html',\n styleUrls: ['./primitive-year-picker.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveYearPickerComponent {\n private hoveredItem: number | null = null;\n private pressedItem: number | null = null;\n private readonly currentYear = TuiMonth.currentLocal().year;\n\n @Input()\n @tuiDefaultProp()\n value: TuiYear | TuiDayRange | null = null;\n\n @Input()\n @tuiDefaultProp()\n initialItem = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiYear = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiYear = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<number> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear | TuiDayRange>();\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n const {value} = this;\n\n return !!value && this.isRange(value) && value.from.yearSame(value.to);\n }\n\n get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n get calculatedMin(): number {\n const initial = this.initialItem.year - LIMIT;\n\n return this.min.year > initial ? this.min.year : initial;\n }\n\n get calculatedMax(): number {\n const initial = this.initialItem.year + LIMIT;\n\n return this.max.year < initial ? this.max.year + 1 : initial;\n }\n\n isRange(item: TuiMonthRange | TuiYear): item is TuiMonthRange {\n return item instanceof TuiMonthRange;\n }\n\n scrollItemIntoView(item: number): boolean {\n return this.initialItem.year === item;\n }\n\n getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n getItemState(item: number): TuiInteractiveState | null {\n const {disabledItemHandler, max, pressedItem, hoveredItem} = this;\n\n if (\n max.year < item ||\n (disabledItemHandler !== ALWAYS_FALSE_HANDLER && disabledItemHandler(item))\n ) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem === item) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem === item) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: number): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiYear) {\n return value.year === item ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem > value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem < value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem < value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem > value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.End;\n }\n\n return value.from.yearSame(value.to) && value.from.year === item\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n itemIsInterval(item: number): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || !this.isRange(value)) {\n return false;\n }\n\n if (!value.from.yearSame(value.to)) {\n return value.from.year <= item && value.to.year > item;\n }\n\n if (hoveredItem === null || value.from.year === hoveredItem) {\n return false;\n }\n\n return inRange(\n item,\n Math.min(value.from.year, hoveredItem),\n Math.max(value.from.year, hoveredItem),\n );\n }\n\n onItemHovered(hovered: boolean, item: number) {\n this.updateHoveredItem(hovered, item);\n }\n\n onItemPressed(pressed: boolean, item: number) {\n this.updatePressedItem(pressed, item);\n }\n\n onItemClick(item: number) {\n this.yearClick.emit(new TuiYear(item));\n }\n\n private updateHoveredItem(hovered: boolean, item: number) {\n this.hoveredItem = hovered ? item : null;\n }\n\n private updatePressedItem(pressed: boolean, item: number) {\n this.pressedItem = pressed ? item : null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiScrollIntoViewModule} from '@taiga-ui/core/directives/scroll-into-view';\n\nimport {TuiPrimitiveYearPickerComponent} from './primitive-year-picker.component';\n\n@NgModule({\n imports: [\n TuiHoveredModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n TuiLetModule,\n TuiScrollIntoViewModule,\n ],\n declarations: [TuiPrimitiveYearPickerComponent],\n exports: [TuiPrimitiveYearPickerComponent],\n})\nexport class TuiPrimitiveYearPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import { Inject, ElementRef, Optional, Component, ChangeDetectionStrategy, NgMod
|
|
|
3
3
|
import { tuiAssert, TUI_DIALOGS, TUI_IS_MOBILE, TuiDragModule, TuiPortalHostModule, TuiDialogHostModule } from '@taiga-ui/cdk';
|
|
4
4
|
import { VERSION } from '@taiga-ui/core/constants';
|
|
5
5
|
import { TuiNotificationsHostComponent } from '@taiga-ui/core/modules/notifications';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { TUI_IS_MOBILE_RES_PROVIDER } from '@taiga-ui/core/providers';
|
|
7
|
+
import { TUI_ANIMATIONS_DURATION, TUI_ASSERT_ENABLED, TUI_IS_MOBILE_RES } from '@taiga-ui/core/tokens';
|
|
8
|
+
import { merge, of, Observable } from 'rxjs';
|
|
8
9
|
import { map } from 'rxjs/operators';
|
|
9
10
|
import { CommonModule } from '@angular/common';
|
|
10
11
|
import { TuiHintsHostModule } from '@taiga-ui/core/components/hints-host';
|
|
@@ -14,12 +15,13 @@ import { EventPluginsModule } from '@tinkoff/ng-event-plugins';
|
|
|
14
15
|
|
|
15
16
|
// @dynamic
|
|
16
17
|
let TuiRootComponent = class TuiRootComponent {
|
|
17
|
-
constructor(duration, elementRef, dialogs, notificationsHost, isMobile, enabled) {
|
|
18
|
+
constructor(duration, elementRef, dialogs, notificationsHost, isMobile, enabled, isMobileRes$) {
|
|
18
19
|
this.duration = duration;
|
|
19
20
|
this.elementRef = elementRef;
|
|
20
21
|
this.dialogs = dialogs;
|
|
21
22
|
this.notificationsHost = notificationsHost;
|
|
22
23
|
this.isMobile = isMobile;
|
|
24
|
+
this.isMobileRes$ = isMobileRes$;
|
|
23
25
|
this.scrollbars$ = this.dialogs && !this.isMobile
|
|
24
26
|
? merge(...this.dialogs).pipe(map(({ length }) => !length))
|
|
25
27
|
: of(!this.isMobile);
|
|
@@ -32,16 +34,19 @@ TuiRootComponent.ctorParameters = () => [
|
|
|
32
34
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TUI_DIALOGS,] }] },
|
|
33
35
|
{ type: TuiNotificationsHostComponent, decorators: [{ type: Optional }, { type: Inject, args: [TuiNotificationsHostComponent,] }] },
|
|
34
36
|
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_MOBILE,] }] },
|
|
35
|
-
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_ASSERT_ENABLED,] }] }
|
|
37
|
+
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_ASSERT_ENABLED,] }] },
|
|
38
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TUI_IS_MOBILE_RES,] }] }
|
|
36
39
|
];
|
|
37
40
|
TuiRootComponent = __decorate([
|
|
38
41
|
Component({
|
|
39
42
|
selector: 'tui-root',
|
|
40
43
|
template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-portal-host>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host *ngIf=\"dialogs && dialogs.length\"></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <ng-container\n *ngIf=\"notificationsHost\"\n [ngComponentOutlet]=\"notificationsHost\"\n ></ng-container>\n <ng-content select=\"tuiOverNotifications\"></ng-content>\n</tui-portal-host>\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n",
|
|
41
44
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
45
|
+
providers: [TUI_IS_MOBILE_RES_PROVIDER],
|
|
42
46
|
host: {
|
|
43
47
|
'data-tui-version': VERSION,
|
|
44
48
|
'[style.--tui-duration]': 'duration + "ms"',
|
|
49
|
+
'($.class._mobile)': 'isMobileRes$',
|
|
45
50
|
},
|
|
46
51
|
styles: [":host{position:relative;display:block;flex:1}.scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.content{position:relative;z-index:0;height:100%}"]
|
|
47
52
|
}),
|
|
@@ -52,7 +57,8 @@ TuiRootComponent = __decorate([
|
|
|
52
57
|
__param(3, Optional()),
|
|
53
58
|
__param(3, Inject(TuiNotificationsHostComponent)),
|
|
54
59
|
__param(4, Inject(TUI_IS_MOBILE)),
|
|
55
|
-
__param(5, Inject(TUI_ASSERT_ENABLED))
|
|
60
|
+
__param(5, Inject(TUI_ASSERT_ENABLED)),
|
|
61
|
+
__param(6, Inject(TUI_IS_MOBILE_RES))
|
|
56
62
|
], TuiRootComponent);
|
|
57
63
|
|
|
58
64
|
let TuiRootModule = class TuiRootModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-root.js","sources":["ng://@taiga-ui/core/components/root/root.component.ts","ng://@taiga-ui/core/components/root/root.module.ts","ng://@taiga-ui/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, tuiAssert} from '@taiga-ui/cdk';\nimport {VERSION} from '@taiga-ui/core/constants';\nimport {TuiNotificationsHostComponent} from '@taiga-ui/core/modules/notifications';\nimport {TUI_ANIMATIONS_DURATION
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-root.js","sources":["ng://@taiga-ui/core/components/root/root.component.ts","ng://@taiga-ui/core/components/root/root.module.ts","ng://@taiga-ui/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, tuiAssert} from '@taiga-ui/cdk';\nimport {VERSION} from '@taiga-ui/core/constants';\nimport {TuiNotificationsHostComponent} from '@taiga-ui/core/modules/notifications';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_ASSERT_ENABLED,\n TUI_IS_MOBILE_RES,\n} from '@taiga-ui/core/tokens';\nimport {merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-root',\n templateUrl: 'root.template.html',\n styleUrls: ['./root.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n host: {\n 'data-tui-version': VERSION,\n '[style.--tui-duration]': 'duration + \"ms\"',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$ =\n this.dialogs && !this.isMobile\n ? merge(...this.dialogs).pipe(map(({length}) => !length))\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DIALOGS)\n readonly dialogs: readonly Observable<readonly unknown[]>[] | null,\n @Optional()\n @Inject(TuiNotificationsHostComponent)\n readonly notificationsHost: TuiNotificationsHostComponent,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_ASSERT_ENABLED) enabled: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n ) {\n tuiAssert.enabled = enabled;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiDialogHostModule, TuiDragModule, TuiPortalHostModule} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiPortalHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBA;IAaa,gBAAgB,GAA7B,MAAa,gBAAgB;IAMzB,YAC8C,QAAgB,EAC7B,UAAmC,EAGvD,OAAyD,EAGzD,iBAAgD,EACjB,QAAiB,EAC7B,OAAgB,EACR,YAAiC;QAV3B,aAAQ,GAAR,QAAQ,CAAQ;QAC7B,eAAU,GAAV,UAAU,CAAyB;QAGvD,YAAO,GAAP,OAAO,CAAkD;QAGzD,sBAAiB,GAAjB,iBAAiB,CAA+B;QACjB,aAAQ,GAAR,QAAQ,CAAS;QAErB,iBAAY,GAAZ,YAAY,CAAqB;QAhBhE,gBAAW,GAChB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;cACxB,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;cACvD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAezB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/B;EACJ;;yCAdQ,MAAM,SAAC,uBAAuB;YACU,UAAU,uBAAlD,MAAM,SAAC,UAAU;4CACjB,QAAQ,YACR,MAAM,SAAC,WAAW;YAIS,6BAA6B,uBAFxD,QAAQ,YACR,MAAM,SAAC,6BAA6B;0CAEpC,MAAM,SAAC,aAAa;0CACpB,MAAM,SAAC,kBAAkB;YACwB,UAAU,uBAA3D,MAAM,SAAC,iBAAiB;;AAjBpB,gBAAgB;IAZ5B,SAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,6xBAAiC;QAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,CAAC,0BAA0B,CAAC;QACvC,IAAI,EAAE;YACF,kBAAkB,EAAE,OAAO;YAC3B,wBAAwB,EAAE,iBAAiB;YAC3C,mBAAmB,EAAE,cAAc;SACtC;;KACJ,CAAC;IAQO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAC/B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnB,WAAA,QAAQ,EAAE,CAAA;IACV,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;IAErC,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;IACrB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAjBrB,gBAAgB,CAqB5B;;IC7BY,aAAa,GAA1B,MAAa,aAAa;EAAG;AAAhB,aAAa;IAdzB,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,kBAAkB;YAClB,mBAAmB;YACnB,uBAAuB;SAC1B;QACD,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC;GACW,aAAa,CAAG;;ACxB7B;;;;;;"}
|
|
@@ -58,11 +58,11 @@ let TuiScrollbarComponent = TuiScrollbarComponent_1 = class TuiScrollbarComponen
|
|
|
58
58
|
this.elementRef = elementRef;
|
|
59
59
|
this.userAgent = userAgent;
|
|
60
60
|
this.isIos = isIos;
|
|
61
|
-
this.hidden = false;
|
|
62
|
-
this.browserScrollRef = new ElementRef(this.elementRef.nativeElement);
|
|
63
61
|
this.delegated = false;
|
|
64
62
|
this.isLegacy = !this.cssRef.supports('position', 'sticky') ||
|
|
65
63
|
(isFirefox(this.userAgent) && !this.cssRef.supports('scrollbar-width', 'none'));
|
|
64
|
+
this.hidden = false;
|
|
65
|
+
this.browserScrollRef = new ElementRef(this.elementRef.nativeElement);
|
|
66
66
|
}
|
|
67
67
|
get showScrollbars() {
|
|
68
68
|
return !this.hidden && !this.isIos && (!this.isLegacy || this.delegated);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-scrollbar.js","sources":["ng://@taiga-ui/core/components/scrollbar/scroll-ref.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollable.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.component.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.module.ts","ng://@taiga-ui/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n selector: SCROLL_REF_SELECTOR,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollRefDirective {}\n","import {Directive, ElementRef, Inject, OnInit} from '@angular/core';\nimport {TUI_SCROLLABLE} from '@taiga-ui/core/constants';\n\n@Directive({\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollableDirective implements OnInit {\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n ngOnInit() {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {\n bubbles: true,\n detail: this.elementRef.nativeElement,\n }),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {CSS, USER_AGENT} from '@ng-web-apis/common';\nimport {getElementOffset, isFirefox, TUI_IS_IOS, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_INTO_VIEW, TUI_SCROLLABLE} from '@taiga-ui/core/constants';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport function scrollRefFactory({\n browserScrollRef,\n}: TuiScrollbarComponent): ElementRef<HTMLElement> {\n return browserScrollRef;\n}\n\n// @dynamic\n@Component({\n selector: 'tui-scrollbar',\n templateUrl: './scrollbar.template.html',\n styleUrls: ['./scrollbar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n deps: [TuiScrollbarComponent],\n useFactory: scrollRefFactory,\n },\n ],\n})\nexport class TuiScrollbarComponent {\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-scrollbar.js","sources":["ng://@taiga-ui/core/components/scrollbar/scroll-ref.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollable.directive.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.component.ts","ng://@taiga-ui/core/components/scrollbar/scrollbar.module.ts","ng://@taiga-ui/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n selector: SCROLL_REF_SELECTOR,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollRefDirective {}\n","import {Directive, ElementRef, Inject, OnInit} from '@angular/core';\nimport {TUI_SCROLLABLE} from '@taiga-ui/core/constants';\n\n@Directive({\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollableDirective implements OnInit {\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n ngOnInit() {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {\n bubbles: true,\n detail: this.elementRef.nativeElement,\n }),\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {CSS, USER_AGENT} from '@ng-web-apis/common';\nimport {getElementOffset, isFirefox, TUI_IS_IOS, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_INTO_VIEW, TUI_SCROLLABLE} from '@taiga-ui/core/constants';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport function scrollRefFactory({\n browserScrollRef,\n}: TuiScrollbarComponent): ElementRef<HTMLElement> {\n return browserScrollRef;\n}\n\n// @dynamic\n@Component({\n selector: 'tui-scrollbar',\n templateUrl: './scrollbar.template.html',\n styleUrls: ['./scrollbar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n deps: [TuiScrollbarComponent],\n useFactory: scrollRefFactory,\n },\n ],\n})\nexport class TuiScrollbarComponent {\n private delegated = false;\n\n private readonly isLegacy: boolean =\n !this.cssRef.supports('position', 'sticky') ||\n (isFirefox(this.userAgent) && !this.cssRef.supports('scrollbar-width', 'none'));\n\n @Input()\n @tuiDefaultProp()\n hidden = false;\n\n readonly browserScrollRef = new ElementRef(this.elementRef.nativeElement);\n\n constructor(\n /**\n * TODO: remove \"any\" in new TS version; https://github.com/ng-web-apis/common/pull/6\n */\n @Inject(CSS) private readonly cssRef: any,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n ) {}\n\n get showScrollbars(): boolean {\n return !this.hidden && !this.isIos && (!this.isLegacy || this.delegated);\n }\n\n @HostBinding('class._legacy')\n get showNative(): boolean {\n return this.isLegacy && !this.hidden && !this.delegated;\n }\n\n @HostListener(`${TUI_SCROLLABLE}.stop`, ['$event.detail'])\n onScrollable(element: HTMLElement) {\n this.delegated = true;\n this.browserScrollRef.nativeElement = element;\n }\n\n @HostListener(`${TUI_SCROLL_INTO_VIEW}.stop`, ['$event.detail'])\n scrollIntoView(detail: HTMLElement) {\n if (this.delegated) {\n return;\n }\n\n const {nativeElement} = this.browserScrollRef;\n const {offsetTop, offsetLeft} = getElementOffset(nativeElement, detail);\n\n nativeElement.scrollTop =\n offsetTop + detail.offsetHeight / 2 - nativeElement.clientHeight / 2;\n nativeElement.scrollLeft =\n offsetLeft + detail.offsetWidth / 2 - nativeElement.clientWidth / 2;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\n\nimport {TuiScrollRefDirective} from './scroll-ref.directive';\nimport {TuiScrollableDirective} from './scrollable.directive';\nimport {TuiScrollbarComponent} from './scrollbar.component';\n\n@NgModule({\n imports: [CommonModule, TuiScrollControlsModule],\n declarations: [TuiScrollbarComponent, TuiScrollRefDirective, TuiScrollableDirective],\n exports: [TuiScrollbarComponent, TuiScrollRefDirective, TuiScrollableDirective],\n})\nexport class TuiScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { WINDOW, USER_AGENT } from '@ng-web-apis/common';
|
|
|
6
6
|
import { isIE, getDocumentOrShadowRoot, tuiCustomEvent, tuiAssert, TuiStaticRequestService, tuiRequiredSetter, tuiPure, TuiLetModule } from '@taiga-ui/cdk';
|
|
7
7
|
import { TUI_ICON_ERROR } from '@taiga-ui/core/constants';
|
|
8
8
|
import { TuiSvgService } from '@taiga-ui/core/services';
|
|
9
|
-
import { TUI_ICONS_PATH, TUI_SANITIZER } from '@taiga-ui/core/tokens';
|
|
9
|
+
import { TUI_ICONS_PATH, TUI_SANITIZER, TUI_SVG_SRC_PROCESSOR } from '@taiga-ui/core/tokens';
|
|
10
10
|
import { isPresumedHTMLString } from '@taiga-ui/core/utils/miscellaneous';
|
|
11
11
|
import { ReplaySubject, of } from 'rxjs';
|
|
12
12
|
import { switchMap, startWith, catchError, map } from 'rxjs/operators';
|
|
@@ -17,7 +17,7 @@ const FAILED_EXTERNAL_ICON = 'Failed to load external SVG';
|
|
|
17
17
|
// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent
|
|
18
18
|
// @dynamic
|
|
19
19
|
let TuiSvgComponent = class TuiSvgComponent {
|
|
20
|
-
constructor(documentRef, windowRef, iconsPath, tuiSanitizer, svgService, staticRequestService, sanitizer, elementRef, userAgent) {
|
|
20
|
+
constructor(documentRef, windowRef, iconsPath, tuiSanitizer, svgService, staticRequestService, sanitizer, elementRef, userAgent, processor) {
|
|
21
21
|
this.documentRef = documentRef;
|
|
22
22
|
this.windowRef = windowRef;
|
|
23
23
|
this.iconsPath = iconsPath;
|
|
@@ -27,17 +27,21 @@ let TuiSvgComponent = class TuiSvgComponent {
|
|
|
27
27
|
this.sanitizer = sanitizer;
|
|
28
28
|
this.elementRef = elementRef;
|
|
29
29
|
this.userAgent = userAgent;
|
|
30
|
-
this.
|
|
30
|
+
this.processor = processor;
|
|
31
31
|
this.src$ = new ReplaySubject(1);
|
|
32
32
|
this.isIE = isIE(this.userAgent);
|
|
33
|
+
this.icon = '';
|
|
33
34
|
this.innerHTML$ = this.src$.pipe(switchMap(() => this.isExternal
|
|
34
35
|
? this.getExternalIcon(this.icon)
|
|
35
36
|
: of(this.getSafeHtml(this.icon))), startWith(''));
|
|
36
37
|
}
|
|
37
38
|
set src(src) {
|
|
38
|
-
this.icon = src;
|
|
39
|
+
this.icon = this.processor(src);
|
|
39
40
|
this.src$.next();
|
|
40
41
|
}
|
|
42
|
+
get src() {
|
|
43
|
+
return this.icon;
|
|
44
|
+
}
|
|
41
45
|
get use() {
|
|
42
46
|
return this.icon.includes('.svg#')
|
|
43
47
|
? this.icon
|
|
@@ -102,7 +106,6 @@ let TuiSvgComponent = class TuiSvgComponent {
|
|
|
102
106
|
? this.sanitizer.bypassSecurityTrustHtml(this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '')
|
|
103
107
|
: src;
|
|
104
108
|
}
|
|
105
|
-
// @bad TODO: Create a simple XMLHttpRequest to Observable service
|
|
106
109
|
getExternalIcon(src) {
|
|
107
110
|
const url = src.includes('.svg') ? src : this.use;
|
|
108
111
|
return this.staticRequestService.request(url).pipe(catchError(() => {
|
|
@@ -120,7 +123,8 @@ TuiSvgComponent.ctorParameters = () => [
|
|
|
120
123
|
{ type: TuiStaticRequestService, decorators: [{ type: Inject, args: [TuiStaticRequestService,] }] },
|
|
121
124
|
{ type: DomSanitizer, decorators: [{ type: Inject, args: [DomSanitizer,] }] },
|
|
122
125
|
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
123
|
-
{ type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] }
|
|
126
|
+
{ type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] },
|
|
127
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TUI_SVG_SRC_PROCESSOR,] }] }
|
|
124
128
|
];
|
|
125
129
|
__decorate([
|
|
126
130
|
Input(),
|
|
@@ -145,7 +149,8 @@ TuiSvgComponent = __decorate([
|
|
|
145
149
|
__param(5, Inject(TuiStaticRequestService)),
|
|
146
150
|
__param(6, Inject(DomSanitizer)),
|
|
147
151
|
__param(7, Inject(ElementRef)),
|
|
148
|
-
__param(8, Inject(USER_AGENT))
|
|
152
|
+
__param(8, Inject(USER_AGENT)),
|
|
153
|
+
__param(9, Inject(TUI_SVG_SRC_PROCESSOR))
|
|
149
154
|
], TuiSvgComponent);
|
|
150
155
|
|
|
151
156
|
let TuiSvgModule = class TuiSvgModule {
|