@taiga-ui/core 3.51.0 → 3.52.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/abstract/taiga-ui-core-abstract.d.ts +3 -0
- package/animations/taiga-ui-core-animations.d.ts +3 -0
- package/bundles/taiga-ui-core-abstract.umd.js +9 -0
- package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-core-animations.umd.js +4 -0
- package/bundles/taiga-ui-core-animations.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-alert.umd.js +16 -1
- package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-button.umd.js +7 -0
- package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-calendar.umd.js +4 -0
- package/bundles/taiga-ui-core-components-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-data-list.umd.js +10 -0
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +12 -0
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-error.umd.js +4 -0
- package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-expand.umd.js +5 -0
- package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-group.umd.js +4 -0
- package/bundles/taiga-ui-core-components-group.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hints-host.umd.js +8 -0
- package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +6 -0
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-label.umd.js +4 -0
- package/bundles/taiga-ui-core-components-label.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-link.umd.js +5 -0
- package/bundles/taiga-ui-core-components-link.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-loader.umd.js +10 -1
- package/bundles/taiga-ui-core-components-loader.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-notification.umd.js +7 -0
- package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +7 -0
- package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js +8 -0
- package/bundles/taiga-ui-core-components-primitive-checkbox.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js +4 -0
- package/bundles/taiga-ui-core-components-primitive-spin-button.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +33 -1
- package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js +4 -0
- package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.js +7 -1
- package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-scroll-controls.umd.js +5 -0
- package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-scrollbar.umd.js +8 -0
- package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-svg.umd.js +9 -0
- package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-theme-night.umd.js +4 -0
- package/bundles/taiga-ui-core-components-theme-night.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-tooltip.umd.js +4 -0
- package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components.umd.js +4 -0
- package/bundles/taiga-ui-core-components.umd.js.map +1 -1
- package/bundles/taiga-ui-core-constants.umd.js +27 -0
- package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js +34 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js +13 -0
- package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-mask-accessor.umd.js +7 -0
- package/bundles/taiga-ui-core-directives-mask-accessor.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-mode.umd.js +4 -0
- package/bundles/taiga-ui-core-directives-mode.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-number-format.umd.js +414 -0
- package/bundles/taiga-ui-core-directives-number-format.umd.js.map +1 -0
- package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js +9 -0
- package/bundles/taiga-ui-core-directives-scroll-into-view.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +11 -0
- package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-wrapper.umd.js +4 -0
- package/bundles/taiga-ui-core-directives-wrapper.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives.umd.js +14 -4
- package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-core-enums.umd.js +22 -0
- package/bundles/taiga-ui-core-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-core-interfaces.umd.js +3 -1
- package/bundles/taiga-ui-core-interfaces.umd.js.map +1 -1
- package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js +4 -0
- package/bundles/taiga-ui-core-internal-primitive-year-month-pagination.umd.js.map +1 -1
- package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js +5 -0
- package/bundles/taiga-ui-core-internal-svg-defs-host.umd.js.map +1 -1
- package/bundles/taiga-ui-core-internal.umd.js +4 -0
- package/bundles/taiga-ui-core-internal.umd.js.map +1 -1
- package/bundles/taiga-ui-core-mask.umd.js +3 -1
- package/bundles/taiga-ui-core-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-core-observables.umd.js +11 -0
- package/bundles/taiga-ui-core-observables.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js +11 -0
- package/bundles/taiga-ui-core-pipes-calendar-sheet.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-flag.umd.js +4 -0
- package/bundles/taiga-ui-core-pipes-flag.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-format-date.umd.js +4 -0
- package/bundles/taiga-ui-core-pipes-format-date.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-format-number.umd.js +10 -0
- package/bundles/taiga-ui-core-pipes-format-number.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-format-phone.umd.js +11 -0
- package/bundles/taiga-ui-core-pipes-format-phone.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-month.umd.js +4 -0
- package/bundles/taiga-ui-core-pipes-month.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes-order-week-days.umd.js +4 -0
- package/bundles/taiga-ui-core-pipes-order-week-days.umd.js.map +1 -1
- package/bundles/taiga-ui-core-pipes.umd.js +4 -0
- package/bundles/taiga-ui-core-pipes.umd.js.map +1 -1
- package/bundles/taiga-ui-core-providers.umd.js +7 -0
- package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.js +20 -2
- package/bundles/taiga-ui-core-services.umd.js.map +1 -1
- package/bundles/taiga-ui-core-tokens.umd.js +129 -0
- package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-core-types.umd.js +3 -1
- package/bundles/taiga-ui-core-types.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-dom.umd.js +50 -0
- package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-format.umd.js +51 -0
- package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js +40 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +17 -0
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mobile.umd.js +4 -0
- package/bundles/taiga-ui-core-utils-mobile.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils.umd.js +4 -0
- package/bundles/taiga-ui-core-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-core.umd.js +4 -0
- package/bundles/taiga-ui-core.umd.js.map +1 -1
- package/components/alert/taiga-ui-core-components-alert.d.ts +3 -0
- package/components/button/button.options.d.ts +3 -0
- package/components/button/taiga-ui-core-components-button.d.ts +3 -0
- package/components/calendar/taiga-ui-core-components-calendar.d.ts +3 -0
- package/components/data-list/option/option.component.d.ts +1 -0
- package/components/data-list/taiga-ui-core-components-data-list.d.ts +3 -0
- package/components/dialog/dialog.tokens.d.ts +6 -0
- package/components/dialog/taiga-ui-core-components-dialog.d.ts +3 -0
- package/components/error/taiga-ui-core-components-error.d.ts +3 -0
- package/components/expand/taiga-ui-core-components-expand.d.ts +3 -0
- package/components/group/taiga-ui-core-components-group.d.ts +3 -0
- package/components/hints-host/taiga-ui-core-components-hints-host.d.ts +3 -0
- package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -0
- package/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.d.ts +3 -0
- package/components/label/taiga-ui-core-components-label.d.ts +3 -0
- package/components/link/taiga-ui-core-components-link.d.ts +3 -0
- package/components/loader/loader.options.d.ts +4 -0
- package/components/loader/taiga-ui-core-components-loader.d.ts +3 -0
- package/components/notification/notification.component.d.ts +3 -0
- package/components/notification/taiga-ui-core-components-notification.d.ts +3 -0
- package/components/primitive-calendar/primitive-calendar.component.d.ts +3 -0
- package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.d.ts +3 -0
- package/components/primitive-checkbox/checkbox.options.d.ts +4 -0
- package/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.d.ts +3 -0
- package/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.d.ts +3 -0
- package/components/primitive-textfield/primitive-textfield-options.d.ts +16 -0
- package/components/primitive-textfield/primitive-textfield.component.d.ts +7 -0
- package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.d.ts +3 -0
- package/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.d.ts +3 -0
- package/components/root/taiga-ui-core-components-root.d.ts +3 -0
- package/components/scroll-controls/scroll-controls.module.d.ts +1 -0
- package/components/scroll-controls/taiga-ui-core-components-scroll-controls.d.ts +3 -0
- package/components/scrollbar/scroll-ref.directive.d.ts +2 -0
- package/components/scrollbar/taiga-ui-core-components-scrollbar.d.ts +3 -0
- package/components/svg/svg-options.d.ts +3 -0
- package/components/svg/taiga-ui-core-components-svg.d.ts +3 -0
- package/components/taiga-ui-core-components.d.ts +3 -0
- package/components/theme-night/taiga-ui-core-components-theme-night.d.ts +3 -0
- package/components/tooltip/taiga-ui-core-components-tooltip.d.ts +3 -0
- package/constants/cache-basting-payload.d.ts +1 -1
- package/constants/decimal-symbols.d.ts +4 -0
- package/constants/events.d.ts +14 -0
- package/constants/mask-caret-trap.d.ts +4 -0
- package/constants/taiga-ui-core-constants.d.ts +3 -0
- package/directives/dropdown/dropdown-hover.options.d.ts +4 -0
- package/directives/dropdown/dropdown-options.directive.d.ts +4 -0
- package/directives/dropdown/dropdown-selection.directive.d.ts +9 -0
- package/directives/dropdown/dropdown.component.d.ts +5 -0
- package/directives/dropdown/dropdown.providers.d.ts +3 -0
- package/directives/dropdown/taiga-ui-core-directives-dropdown.d.ts +3 -0
- package/directives/hint/hint-options.directive.d.ts +4 -0
- package/directives/hint/hint.providers.d.ts +3 -0
- package/directives/hint/taiga-ui-core-directives-hint.d.ts +3 -0
- package/directives/index.d.ts +1 -0
- package/directives/mask-accessor/mask-accessor.module.d.ts +3 -0
- package/directives/mask-accessor/taiga-ui-core-directives-mask-accessor.d.ts +3 -0
- package/directives/mode/taiga-ui-core-directives-mode.d.ts +3 -0
- package/directives/number-format/index.d.ts +2 -0
- package/directives/number-format/number-format.directive.d.ts +10 -0
- package/directives/number-format/number-format.module.d.ts +7 -0
- package/directives/number-format/package.json +10 -0
- package/directives/number-format/taiga-ui-core-directives-number-format.d.ts +5 -0
- package/directives/scroll-into-view/scroll-into-view.directive.d.ts +3 -0
- package/directives/scroll-into-view/taiga-ui-core-directives-scroll-into-view.d.ts +3 -0
- package/directives/taiga-ui-core-directives.d.ts +3 -0
- package/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.d.ts +3 -0
- package/directives/textfield-controller/textfield.options.d.ts +7 -0
- package/directives/wrapper/taiga-ui-core-directives-wrapper.d.ts +3 -0
- package/enums/dropdown-animation.d.ts +1 -0
- package/enums/interactive-state.d.ts +3 -0
- package/enums/notification.d.ts +3 -0
- package/enums/range-state.d.ts +3 -0
- package/enums/taiga-ui-core-enums.d.ts +3 -0
- package/esm2015/abstract/driver.js +2 -1
- package/esm2015/abstract/position-accessor.js +2 -1
- package/esm2015/abstract/rect-accessor.js +3 -1
- package/esm2015/abstract/taiga-ui-core-abstract.js +4 -1
- package/esm2015/abstract/vehicle.js +2 -1
- package/esm2015/animations/taiga-ui-core-animations.js +4 -1
- package/esm2015/components/alert/alert.component.js +13 -2
- package/esm2015/components/alert/taiga-ui-core-components-alert.js +4 -1
- package/esm2015/components/button/button.options.js +4 -1
- package/esm2015/components/button/taiga-ui-core-components-button.js +4 -1
- package/esm2015/components/calendar/taiga-ui-core-components-calendar.js +4 -1
- package/esm2015/components/data-list/data-list.component.js +3 -1
- package/esm2015/components/data-list/option/option.component.js +5 -1
- package/esm2015/components/data-list/taiga-ui-core-components-data-list.js +4 -1
- package/esm2015/components/dialog/dialog.component.js +3 -1
- package/esm2015/components/dialog/dialog.tokens.js +7 -1
- package/esm2015/components/dialog/taiga-ui-core-components-dialog.js +4 -1
- package/esm2015/components/error/taiga-ui-core-components-error.js +4 -1
- package/esm2015/components/expand/expand.component.js +2 -1
- package/esm2015/components/expand/taiga-ui-core-components-expand.js +4 -1
- package/esm2015/components/group/taiga-ui-core-components-group.js +4 -1
- package/esm2015/components/hints-host/hints-host.component.js +5 -1
- package/esm2015/components/hints-host/taiga-ui-core-components-hints-host.js +4 -1
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +3 -1
- package/esm2015/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.js +4 -1
- package/esm2015/components/label/taiga-ui-core-components-label.js +4 -1
- package/esm2015/components/link/link.component.js +2 -1
- package/esm2015/components/link/taiga-ui-core-components-link.js +4 -1
- package/esm2015/components/loader/loader.component.js +3 -2
- package/esm2015/components/loader/loader.options.js +5 -1
- package/esm2015/components/loader/taiga-ui-core-components-loader.js +4 -1
- package/esm2015/components/notification/notification.component.js +4 -1
- package/esm2015/components/notification/taiga-ui-core-components-notification.js +4 -1
- package/esm2015/components/primitive-calendar/primitive-calendar.component.js +4 -1
- package/esm2015/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.js +4 -1
- package/esm2015/components/primitive-checkbox/checkbox.options.js +5 -1
- package/esm2015/components/primitive-checkbox/taiga-ui-core-components-primitive-checkbox.js +4 -1
- package/esm2015/components/primitive-spin-button/taiga-ui-core-components-primitive-spin-button.js +4 -1
- package/esm2015/components/primitive-textfield/primitive-textfield-options.js +13 -1
- package/esm2015/components/primitive-textfield/primitive-textfield.component.js +9 -1
- package/esm2015/components/primitive-textfield/primitive-textfield.directive.js +6 -1
- package/esm2015/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.js +4 -1
- package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +3 -1
- package/esm2015/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.js +4 -1
- package/esm2015/components/root/root.component.js +4 -2
- package/esm2015/components/root/taiga-ui-core-components-root.js +4 -1
- package/esm2015/components/scroll-controls/scroll-controls.module.js +2 -1
- package/esm2015/components/scroll-controls/taiga-ui-core-components-scroll-controls.js +4 -1
- package/esm2015/components/scrollbar/scroll-ref.directive.js +3 -1
- package/esm2015/components/scrollbar/scrollbar.component.js +3 -1
- package/esm2015/components/scrollbar/taiga-ui-core-components-scrollbar.js +4 -1
- package/esm2015/components/svg/svg-options.js +4 -1
- package/esm2015/components/svg/svg.component.js +3 -1
- package/esm2015/components/svg/taiga-ui-core-components-svg.js +4 -1
- package/esm2015/components/taiga-ui-core-components.js +4 -1
- package/esm2015/components/theme-night/taiga-ui-core-components-theme-night.js +4 -1
- package/esm2015/components/tooltip/taiga-ui-core-components-tooltip.js +4 -1
- package/esm2015/constants/decimal-symbols.js +5 -1
- package/esm2015/constants/default-number-format.js +2 -1
- package/esm2015/constants/events.js +15 -1
- package/esm2015/constants/mask-caret-trap.js +5 -1
- package/esm2015/constants/taiga-ui-core-constants.js +4 -1
- package/esm2015/directives/dropdown/dropdown-driver.directive.js +2 -1
- package/esm2015/directives/dropdown/dropdown-hover.options.js +5 -1
- package/esm2015/directives/dropdown/dropdown-options.directive.js +5 -1
- package/esm2015/directives/dropdown/dropdown-position-sided.directive.js +2 -2
- package/esm2015/directives/dropdown/dropdown-selection.directive.js +10 -1
- package/esm2015/directives/dropdown/dropdown.component.js +8 -1
- package/esm2015/directives/dropdown/dropdown.directive.js +2 -1
- package/esm2015/directives/dropdown/dropdown.providers.js +4 -1
- package/esm2015/directives/dropdown/taiga-ui-core-directives-dropdown.js +4 -1
- package/esm2015/directives/hint/hint-driver.directive.js +2 -1
- package/esm2015/directives/hint/hint-hover.directive.js +2 -1
- package/esm2015/directives/hint/hint-options.directive.js +5 -1
- package/esm2015/directives/hint/hint-position.directive.js +2 -1
- package/esm2015/directives/hint/hint.directive.js +2 -1
- package/esm2015/directives/hint/hint.providers.js +5 -1
- package/esm2015/directives/hint/taiga-ui-core-directives-hint.js +4 -1
- package/esm2015/directives/index.js +2 -1
- package/esm2015/directives/mask-accessor/mask-accessor.module.js +4 -1
- package/esm2015/directives/mask-accessor/taiga-ui-core-directives-mask-accessor.js +4 -1
- package/esm2015/directives/mode/taiga-ui-core-directives-mode.js +4 -1
- package/esm2015/directives/number-format/index.js +3 -0
- package/esm2015/directives/number-format/number-format.directive.js +38 -0
- package/esm2015/directives/number-format/number-format.module.js +16 -0
- package/esm2015/directives/number-format/taiga-ui-core-directives-number-format.js +5 -0
- package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +6 -1
- package/esm2015/directives/scroll-into-view/taiga-ui-core-directives-scroll-into-view.js +4 -1
- package/esm2015/directives/taiga-ui-core-directives.js +4 -1
- package/esm2015/directives/textfield-controller/taiga-ui-core-directives-textfield-controller.js +4 -1
- package/esm2015/directives/textfield-controller/textfield-appearance.directive.js +4 -1
- package/esm2015/directives/textfield-controller/textfield.options.js +5 -1
- package/esm2015/directives/wrapper/taiga-ui-core-directives-wrapper.js +4 -1
- package/esm2015/enums/appearance.js +3 -1
- package/esm2015/enums/dropdown-animation.js +3 -1
- package/esm2015/enums/interactive-state.js +6 -1
- package/esm2015/enums/notification.js +5 -1
- package/esm2015/enums/range-state.js +6 -1
- package/esm2015/enums/taiga-ui-core-enums.js +4 -1
- package/esm2015/interfaces/number-format-settings.js +1 -1
- package/esm2015/interfaces/taiga-ui-core-interfaces.js +4 -1
- package/esm2015/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.js +4 -1
- package/esm2015/internal/svg-defs-host/svg-defs-host.component.js +2 -1
- package/esm2015/internal/svg-defs-host/taiga-ui-core-internal-svg-defs-host.js +4 -1
- package/esm2015/internal/taiga-ui-core-internal.js +4 -1
- package/esm2015/mask/taiga-ui-core-mask.js +4 -1
- package/esm2015/observables/taiga-ui-core-observables.js +4 -1
- package/esm2015/observables/zoneful-map.js +8 -1
- package/esm2015/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.js +4 -1
- package/esm2015/pipes/calendar-sheet/utils.js +8 -1
- package/esm2015/pipes/flag/taiga-ui-core-pipes-flag.js +4 -1
- package/esm2015/pipes/format-date/taiga-ui-core-pipes-format-date.js +4 -1
- package/esm2015/pipes/format-number/format-number.pipe.js +7 -1
- package/esm2015/pipes/format-number/taiga-ui-core-pipes-format-number.js +4 -1
- package/esm2015/pipes/format-phone/format-phone.pipe.js +8 -1
- package/esm2015/pipes/format-phone/taiga-ui-core-pipes-format-phone.js +4 -1
- package/esm2015/pipes/month/taiga-ui-core-pipes-month.js +4 -1
- package/esm2015/pipes/order-week-days/taiga-ui-core-pipes-order-week-days.js +4 -1
- package/esm2015/pipes/taiga-ui-core-pipes.js +4 -1
- package/esm2015/providers/is-mobile-resolution.provider.js +4 -1
- package/esm2015/providers/taiga-ui-core-providers.js +4 -1
- package/esm2015/services/breakpoint.service.js +4 -1
- package/esm2015/services/hint.service.js +4 -1
- package/esm2015/services/position.service.js +4 -2
- package/esm2015/services/router-link-active.service.js +4 -2
- package/esm2015/services/svg.service.js +4 -1
- package/esm2015/services/taiga-ui-core-services.js +4 -1
- package/esm2015/services/visual-viewport.service.js +2 -1
- package/esm2015/taiga-ui-core.js +4 -1
- package/esm2015/tokens/animation-options.js +4 -1
- package/esm2015/tokens/animations-duration.js +4 -1
- package/esm2015/tokens/assert-enabled.js +8 -1
- package/esm2015/tokens/data-list-accessor.js +4 -1
- package/esm2015/tokens/data-list-host.js +4 -1
- package/esm2015/tokens/day-type-handler.js +4 -1
- package/esm2015/tokens/element-ref.js +4 -1
- package/esm2015/tokens/first-day-of-week.js +4 -1
- package/esm2015/tokens/i18n.js +19 -1
- package/esm2015/tokens/icon-place.js +5 -1
- package/esm2015/tokens/icons-path.js +5 -1
- package/esm2015/tokens/icons.js +4 -1
- package/esm2015/tokens/index.js +2 -1
- package/esm2015/tokens/is-mobile-resolution.js +6 -1
- package/esm2015/tokens/legacy-mask.js +6 -1
- package/esm2015/tokens/media.js +4 -1
- package/esm2015/tokens/mode.js +4 -1
- package/esm2015/tokens/notification-options.js +6 -1
- package/esm2015/tokens/number-format-observable.js +8 -0
- package/esm2015/tokens/number-format.js +4 -1
- package/esm2015/tokens/option-content.js +4 -1
- package/esm2015/tokens/ordered-short-week-days.js +8 -1
- package/esm2015/tokens/sanitizer.js +4 -1
- package/esm2015/tokens/scroll-ref.js +4 -1
- package/esm2015/tokens/selection-stream.js +4 -1
- package/esm2015/tokens/svg-content-processor.js +5 -1
- package/esm2015/tokens/svg-src-processor.js +5 -1
- package/esm2015/tokens/taiga-ui-core-tokens.js +4 -1
- package/esm2015/tokens/textfield-appearance.js +6 -1
- package/esm2015/tokens/textfield-host.js +4 -1
- package/esm2015/tokens/value-accessor.js +4 -1
- package/esm2015/tokens/viewport.js +4 -1
- package/esm2015/types/size.js +12 -1
- package/esm2015/types/taiga-ui-core-types.js +4 -1
- package/esm2015/utils/dom/get-safe-area-size.js +6 -1
- package/esm2015/utils/dom/get-viewport-height.js +18 -1
- package/esm2015/utils/dom/get-viewport-width.js +18 -1
- package/esm2015/utils/dom/get-word-range.js +8 -1
- package/esm2015/utils/dom/taiga-ui-core-utils-dom.js +4 -1
- package/esm2015/utils/format/capitalize.js +8 -1
- package/esm2015/utils/format/format-number.js +9 -1
- package/esm2015/utils/format/format-phone.js +20 -1
- package/esm2015/utils/format/get-fractional-part-padded.js +8 -1
- package/esm2015/utils/format/number-to-string-without-exp.js +7 -1
- package/esm2015/utils/format/taiga-ui-core-utils-format.js +4 -1
- package/esm2015/utils/mask/create-auto-corrected-money-pipe.js +9 -1
- package/esm2015/utils/mask/create-correction-mask.js +5 -1
- package/esm2015/utils/mask/create-number-mask.js +10 -2
- package/esm2015/utils/mask/enable-auto-correct-decimal-symbol.js +5 -1
- package/esm2015/utils/mask/masked-money-value-is-empty.js +8 -1
- package/esm2015/utils/mask/masked-number-string-to-number.js +5 -1
- package/esm2015/utils/mask/taiga-ui-core-utils-mask.js +4 -1
- package/esm2015/utils/miscellaneous/is-editing-key.js +4 -1
- package/esm2015/utils/miscellaneous/is-obscured.js +4 -1
- package/esm2015/utils/miscellaneous/override-options.js +2 -1
- package/esm2015/utils/miscellaneous/size-bigger.js +7 -1
- package/esm2015/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.js +4 -1
- package/esm2015/utils/mobile/taiga-ui-core-utils-mobile.js +4 -1
- package/esm2015/utils/taiga-ui-core-utils.js +4 -1
- package/fesm2015/taiga-ui-core-abstract.js +9 -0
- package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-core-animations.js +4 -0
- package/fesm2015/taiga-ui-core-animations.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-alert.js +16 -1
- package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-button.js +7 -0
- package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-calendar.js +4 -0
- package/fesm2015/taiga-ui-core-components-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-data-list.js +10 -0
- package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +12 -0
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-error.js +4 -0
- package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-expand.js +5 -0
- package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-group.js +4 -0
- package/fesm2015/taiga-ui-core-components-group.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hints-host.js +8 -0
- package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +6 -0
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-label.js +4 -0
- package/fesm2015/taiga-ui-core-components-label.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-link.js +5 -0
- package/fesm2015/taiga-ui-core-components-link.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-loader.js +10 -1
- package/fesm2015/taiga-ui-core-components-loader.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-notification.js +7 -0
- package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js +7 -0
- package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-checkbox.js +8 -0
- package/fesm2015/taiga-ui-core-components-primitive-checkbox.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js +4 -0
- package/fesm2015/taiga-ui-core-components-primitive-spin-button.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js +31 -0
- package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js +4 -0
- package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +7 -1
- package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-scroll-controls.js +5 -0
- package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-scrollbar.js +8 -0
- package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-svg.js +9 -0
- package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-theme-night.js +4 -0
- package/fesm2015/taiga-ui-core-components-theme-night.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-tooltip.js +4 -0
- package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
- package/fesm2015/taiga-ui-core-components.js +4 -0
- package/fesm2015/taiga-ui-core-components.js.map +1 -1
- package/fesm2015/taiga-ui-core-constants.js +27 -0
- package/fesm2015/taiga-ui-core-constants.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-dropdown.js +34 -1
- package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js +14 -0
- package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-mask-accessor.js +7 -0
- package/fesm2015/taiga-ui-core-directives-mask-accessor.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-mode.js +4 -0
- package/fesm2015/taiga-ui-core-directives-mode.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-number-format.js +58 -0
- package/fesm2015/taiga-ui-core-directives-number-format.js.map +1 -0
- package/fesm2015/taiga-ui-core-directives-scroll-into-view.js +9 -0
- package/fesm2015/taiga-ui-core-directives-scroll-into-view.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-textfield-controller.js +11 -0
- package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-wrapper.js +4 -0
- package/fesm2015/taiga-ui-core-directives-wrapper.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives.js +5 -0
- package/fesm2015/taiga-ui-core-directives.js.map +1 -1
- package/fesm2015/taiga-ui-core-enums.js +22 -0
- package/fesm2015/taiga-ui-core-enums.js.map +1 -1
- package/fesm2015/taiga-ui-core-interfaces.js +3 -1
- package/fesm2015/taiga-ui-core-interfaces.js.map +1 -1
- package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js +4 -0
- package/fesm2015/taiga-ui-core-internal-primitive-year-month-pagination.js.map +1 -1
- package/fesm2015/taiga-ui-core-internal-svg-defs-host.js +5 -0
- package/fesm2015/taiga-ui-core-internal-svg-defs-host.js.map +1 -1
- package/fesm2015/taiga-ui-core-internal.js +4 -0
- package/fesm2015/taiga-ui-core-internal.js.map +1 -1
- package/fesm2015/taiga-ui-core-mask.js +3 -1
- package/fesm2015/taiga-ui-core-mask.js.map +1 -1
- package/fesm2015/taiga-ui-core-observables.js +11 -0
- package/fesm2015/taiga-ui-core-observables.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js +11 -0
- package/fesm2015/taiga-ui-core-pipes-calendar-sheet.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-flag.js +4 -0
- package/fesm2015/taiga-ui-core-pipes-flag.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-format-date.js +4 -0
- package/fesm2015/taiga-ui-core-pipes-format-date.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-format-number.js +10 -0
- package/fesm2015/taiga-ui-core-pipes-format-number.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-format-phone.js +11 -0
- package/fesm2015/taiga-ui-core-pipes-format-phone.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-month.js +4 -0
- package/fesm2015/taiga-ui-core-pipes-month.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes-order-week-days.js +4 -0
- package/fesm2015/taiga-ui-core-pipes-order-week-days.js.map +1 -1
- package/fesm2015/taiga-ui-core-pipes.js +4 -0
- package/fesm2015/taiga-ui-core-pipes.js.map +1 -1
- package/fesm2015/taiga-ui-core-providers.js +7 -0
- package/fesm2015/taiga-ui-core-providers.js.map +1 -1
- package/fesm2015/taiga-ui-core-services.js +20 -2
- package/fesm2015/taiga-ui-core-services.js.map +1 -1
- package/fesm2015/taiga-ui-core-tokens.js +133 -2
- package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-core-types.js +14 -0
- package/fesm2015/taiga-ui-core-types.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-dom.js +50 -0
- package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-format.js +51 -0
- package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js +40 -1
- package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js +17 -0
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mobile.js +4 -0
- package/fesm2015/taiga-ui-core-utils-mobile.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils.js +4 -0
- package/fesm2015/taiga-ui-core-utils.js.map +1 -1
- package/fesm2015/taiga-ui-core.js +4 -0
- package/fesm2015/taiga-ui-core.js.map +1 -1
- package/interfaces/alert-options.d.ts +2 -0
- package/interfaces/dialog-options.d.ts +11 -0
- package/interfaces/number-format-settings.d.ts +26 -1
- package/interfaces/taiga-ui-core-interfaces.d.ts +3 -0
- package/internal/primitive-year-month-pagination/taiga-ui-core-internal-primitive-year-month-pagination.d.ts +3 -0
- package/internal/svg-defs-host/taiga-ui-core-internal-svg-defs-host.d.ts +3 -0
- package/internal/taiga-ui-core-internal.d.ts +3 -0
- package/mask/taiga-ui-core-mask.d.ts +3 -0
- package/mask/text-mask-config.d.ts +5 -0
- package/mask/text-mask-correction-handler.d.ts +3 -0
- package/mask/text-mask-list-handler.d.ts +3 -0
- package/mask/text-mask-list.d.ts +4 -0
- package/mask/text-mask-options.d.ts +22 -0
- package/mask/text-mask-pipe-handler.d.ts +4 -0
- package/mask/text-mask-pipe-result.d.ts +4 -0
- package/observables/taiga-ui-core-observables.d.ts +3 -0
- package/observables/zoneful-map.d.ts +7 -0
- package/package.json +4 -4
- package/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.d.ts +3 -0
- package/pipes/calendar-sheet/utils.d.ts +13 -0
- package/pipes/flag/taiga-ui-core-pipes-flag.d.ts +3 -0
- package/pipes/format-date/taiga-ui-core-pipes-format-date.d.ts +3 -0
- package/pipes/format-number/format-number.pipe.d.ts +6 -0
- package/pipes/format-number/taiga-ui-core-pipes-format-number.d.ts +3 -0
- package/pipes/format-phone/format-phone.pipe.d.ts +7 -0
- package/pipes/format-phone/taiga-ui-core-pipes-format-phone.d.ts +3 -0
- package/pipes/month/taiga-ui-core-pipes-month.d.ts +3 -0
- package/pipes/order-week-days/taiga-ui-core-pipes-order-week-days.d.ts +3 -0
- package/pipes/taiga-ui-core-pipes.d.ts +3 -0
- package/providers/is-mobile-resolution.provider.d.ts +3 -0
- package/providers/taiga-ui-core-providers.d.ts +3 -0
- package/services/breakpoint.service.d.ts +3 -0
- package/services/hint.service.d.ts +3 -0
- package/services/svg.service.d.ts +3 -0
- package/services/taiga-ui-core-services.d.ts +3 -0
- package/styles/theme/variables.less +1 -0
- package/taiga-ui-core.d.ts +3 -0
- package/tokens/animation-options.d.ts +3 -0
- package/tokens/animations-duration.d.ts +3 -0
- package/tokens/assert-enabled.d.ts +7 -0
- package/tokens/data-list-accessor.d.ts +3 -0
- package/tokens/data-list-host.d.ts +3 -0
- package/tokens/day-type-handler.d.ts +3 -0
- package/tokens/element-ref.d.ts +3 -0
- package/tokens/first-day-of-week.d.ts +3 -0
- package/tokens/i18n.d.ts +18 -0
- package/tokens/icon-place.d.ts +4 -0
- package/tokens/icons-path.d.ts +4 -0
- package/tokens/icons.d.ts +3 -0
- package/tokens/index.d.ts +1 -0
- package/tokens/is-mobile-resolution.d.ts +5 -0
- package/tokens/legacy-mask.d.ts +5 -0
- package/tokens/media.d.ts +3 -0
- package/tokens/mode.d.ts +3 -0
- package/tokens/notification-options.d.ts +5 -0
- package/tokens/number-format-observable.d.ts +11 -0
- package/tokens/number-format.d.ts +3 -0
- package/tokens/option-content.d.ts +3 -0
- package/tokens/ordered-short-week-days.d.ts +7 -0
- package/tokens/sanitizer.d.ts +3 -0
- package/tokens/scroll-ref.d.ts +3 -0
- package/tokens/selection-stream.d.ts +3 -0
- package/tokens/svg-content-processor.d.ts +4 -0
- package/tokens/svg-src-processor.d.ts +4 -0
- package/tokens/taiga-ui-core-tokens.d.ts +3 -0
- package/tokens/textfield-appearance.d.ts +5 -0
- package/tokens/textfield-host.d.ts +3 -0
- package/tokens/value-accessor.d.ts +3 -0
- package/tokens/viewport.d.ts +3 -0
- package/types/size.d.ts +11 -0
- package/types/taiga-ui-core-types.d.ts +3 -0
- package/utils/dom/get-safe-area-size.d.ts +5 -0
- package/utils/dom/get-viewport-height.d.ts +17 -0
- package/utils/dom/get-viewport-width.d.ts +17 -0
- package/utils/dom/get-word-range.d.ts +6 -0
- package/utils/dom/taiga-ui-core-utils-dom.d.ts +3 -0
- package/utils/format/capitalize.d.ts +7 -0
- package/utils/format/format-number.d.ts +8 -0
- package/utils/format/format-phone.d.ts +19 -0
- package/utils/format/get-fractional-part-padded.d.ts +7 -0
- package/utils/format/number-to-string-without-exp.d.ts +6 -0
- package/utils/format/taiga-ui-core-utils-format.d.ts +3 -0
- package/utils/mask/create-auto-corrected-money-pipe.d.ts +5 -0
- package/utils/mask/create-correction-mask.d.ts +4 -0
- package/utils/mask/create-number-mask.d.ts +5 -0
- package/utils/mask/enable-auto-correct-decimal-symbol.d.ts +4 -0
- package/utils/mask/masked-money-value-is-empty.d.ts +7 -0
- package/utils/mask/masked-number-string-to-number.d.ts +4 -0
- package/utils/mask/taiga-ui-core-utils-mask.d.ts +3 -0
- package/utils/miscellaneous/is-editing-key.d.ts +3 -0
- package/utils/miscellaneous/is-obscured.d.ts +3 -0
- package/utils/miscellaneous/size-bigger.d.ts +6 -0
- package/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.d.ts +3 -0
- package/utils/mobile/taiga-ui-core-utils-mobile.d.ts +3 -0
- package/utils/taiga-ui-core-utils.d.ts +3 -0
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { tuiIsNumber, tuiRoundWith, CHAR_HYPHEN, CHAR_PLUS } from '@taiga-ui/cdk';
|
|
2
2
|
import { TUI_DEFAULT_NUMBER_FORMAT } from '@taiga-ui/core/constants';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Capitalizes a given string, replacing it with a lowercase string and making
|
|
6
|
+
* the first letter of each word uppercase.
|
|
7
|
+
*
|
|
8
|
+
* @param value the input string
|
|
9
|
+
* @return the capitalized string
|
|
10
|
+
*/
|
|
4
11
|
function tuiCapitalize(value) {
|
|
5
12
|
return value.toLowerCase().replace(/(?:^|\s)\S/g, char => char.toUpperCase());
|
|
6
13
|
}
|
|
@@ -9,6 +16,12 @@ function tuiCapitalizeFirstLetter(value) {
|
|
|
9
16
|
return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
|
|
10
17
|
}
|
|
11
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Convert number to string with replacing exponent part on decimals
|
|
21
|
+
*
|
|
22
|
+
* @param value the number
|
|
23
|
+
* @return string representation of a number
|
|
24
|
+
*/
|
|
12
25
|
function tuiNumberToStringWithoutExp(value) {
|
|
13
26
|
const valueAsString = String(value);
|
|
14
27
|
const [numberPart, expPart] = valueAsString.split(`e-`);
|
|
@@ -21,6 +34,13 @@ function tuiNumberToStringWithoutExp(value) {
|
|
|
21
34
|
return valueWithoutExp;
|
|
22
35
|
}
|
|
23
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Return fractional part of number
|
|
39
|
+
*
|
|
40
|
+
* @param value the number
|
|
41
|
+
* @param precision number of digits of decimal part, null to keep untouched
|
|
42
|
+
* @return the fractional part of number
|
|
43
|
+
*/
|
|
24
44
|
function tuiGetFractionPartPadded(value, precision) {
|
|
25
45
|
const [, fractionPartPadded = ``] = tuiNumberToStringWithoutExp(value).split(`.`);
|
|
26
46
|
return tuiIsNumber(precision)
|
|
@@ -28,6 +48,14 @@ function tuiGetFractionPartPadded(value, precision) {
|
|
|
28
48
|
: fractionPartPadded;
|
|
29
49
|
}
|
|
30
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Formats number adding a thousand separators and correct decimal separator
|
|
53
|
+
* padding decimal part with zeroes to given length
|
|
54
|
+
*
|
|
55
|
+
* @param value the input number
|
|
56
|
+
* @param settings See {@link TuiNumberFormatSettings}
|
|
57
|
+
* @return the formatted string
|
|
58
|
+
*/
|
|
31
59
|
function tuiFormatNumber(value, settings = {}) {
|
|
32
60
|
const { decimalLimit, decimalSeparator, thousandSeparator, zeroPadding, rounding } = Object.assign(Object.assign({}, TUI_DEFAULT_NUMBER_FORMAT), settings);
|
|
33
61
|
const rounded = Number.isFinite(decimalLimit)
|
|
@@ -57,6 +85,25 @@ function tuiFormatNumber(value, settings = {}) {
|
|
|
57
85
|
return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;
|
|
58
86
|
}
|
|
59
87
|
|
|
88
|
+
/**
|
|
89
|
+
* TODO: delete in v4.0
|
|
90
|
+
* @deprecated Use {@link https://maskito.dev/core-concepts/transformer maskitoTransform} instead<br/>
|
|
91
|
+
* @example
|
|
92
|
+
* import {maskitoTransform} from '@maskito/core';
|
|
93
|
+
*
|
|
94
|
+
* const mask = {
|
|
95
|
+
* mask: ['+', '1', ' ', /\d/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/],
|
|
96
|
+
* };
|
|
97
|
+
* maskitoTransform('12125552368', mask); // +1 (212) 555-2368
|
|
98
|
+
* ___
|
|
99
|
+
* Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,
|
|
100
|
+
* adding parentheses and hyphens.
|
|
101
|
+
*
|
|
102
|
+
* @param value the input string
|
|
103
|
+
* @param countryCode a country code
|
|
104
|
+
* @param phoneMask a phone number mask
|
|
105
|
+
* @return the formatted phone string of the form +7 XXX XXX-XX-XX
|
|
106
|
+
*/
|
|
60
107
|
function tuiFormatPhone(value, countryCode, phoneMask) {
|
|
61
108
|
if (!value) {
|
|
62
109
|
return ``;
|
|
@@ -91,5 +138,9 @@ function tuiOtherDecimalSymbol(symbol) {
|
|
|
91
138
|
return symbol === `.` ? `,` : `.`;
|
|
92
139
|
}
|
|
93
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Generated bundle index. Do not edit.
|
|
143
|
+
*/
|
|
144
|
+
|
|
94
145
|
export { tuiCapitalize, tuiCapitalizeFirstLetter, tuiFormatNumber, tuiFormatPhone, tuiGetFractionPartPadded, tuiNumberToStringWithoutExp, tuiOtherDecimalSymbol };
|
|
95
146
|
//# sourceMappingURL=taiga-ui-core-utils-format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-format.js","sources":["../../../projects/core/utils/format/capitalize.ts","../../../projects/core/utils/format/capitalize-first-letter.ts","../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/format-phone.ts","../../../projects/core/utils/format/other-decimal-symbol.ts"],"sourcesContent":["/**\n * Capitalizes a given string, replacing it with a lowercase string and making\n * the first letter of each word uppercase.\n *\n * @param value the input string\n * @return the capitalized string\n */\nexport function tuiCapitalize(value: string): string {\n return value.toLowerCase().replace(/(?:^|\\s)\\S/g, char => char.toUpperCase());\n}\n","export function tuiCapitalizeFirstLetter(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split(`e-`);\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart] = numberPart.split(`.`);\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ``] = tuiNumberToStringWithoutExp(value).split(`.`);\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN, tuiRoundWith} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_NUMBER_FORMAT} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {decimalLimit, decimalSeparator, thousandSeparator, zeroPadding, rounding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n ...settings,\n };\n\n const rounded = Number.isFinite(decimalLimit)\n ? tuiRoundWith({value, precision: decimalLimit, method: rounding})\n : value;\n const integerPartString = String(Math.floor(Math.abs(rounded)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(rounded, decimalLimit);\n\n if (Number.isFinite(decimalLimit)) {\n if (zeroPadding) {\n const zeroPaddingSize: number = Math.max(\n decimalLimit - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = `0`.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, ``);\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : ``;\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","import {CHAR_PLUS} from '@taiga-ui/cdk';\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/core-concepts/transformer maskitoTransform} instead<br/>\n * @example\n * import {maskitoTransform} from '@maskito/core';\n *\n * const mask = {\n * mask: ['+', '1', ' ', /\\d/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/],\n * };\n * maskitoTransform('12125552368', mask); // +1 (212) 555-2368\n * ___\n * Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,\n * adding parentheses and hyphens.\n *\n * @param value the input string\n * @param countryCode a country code\n * @param phoneMask a phone number mask\n * @return the formatted phone string of the form +7 XXX XXX-XX-XX\n */\nexport function tuiFormatPhone(\n value: string,\n countryCode: string,\n phoneMask: string,\n): string {\n if (!value) {\n return ``;\n }\n\n let result = countryCode;\n\n countryCode = countryCode.replace(/[()]/g, ``);\n\n if (!value.startsWith(countryCode)) {\n value = countryCode + value.replace(CHAR_PLUS, ``);\n }\n\n const splitPhoneMask = phoneMask.split(``);\n const splitValue = value.slice(countryCode.length).split(``);\n\n result += ` `;\n\n if (splitValue.length === 0) {\n return result;\n }\n\n for (const mask of splitPhoneMask) {\n if (splitValue.length === 0) {\n break;\n }\n\n if (mask === `#`) {\n result += splitValue[0] || ``;\n splitValue.splice(0, 1);\n } else {\n result += mask;\n }\n }\n\n return result;\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function tuiOtherDecimalSymbol(symbol: TuiDecimalSymbol): TuiDecimalSymbol {\n return symbol === `.` ? `,` : `.`;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-format.js","sources":["../../../projects/core/utils/format/capitalize.ts","../../../projects/core/utils/format/capitalize-first-letter.ts","../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/format-phone.ts","../../../projects/core/utils/format/other-decimal-symbol.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Capitalizes a given string, replacing it with a lowercase string and making\n * the first letter of each word uppercase.\n *\n * @param value the input string\n * @return the capitalized string\n */\nexport function tuiCapitalize(value: string): string {\n return value.toLowerCase().replace(/(?:^|\\s)\\S/g, char => char.toUpperCase());\n}\n","export function tuiCapitalizeFirstLetter(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split(`e-`);\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart] = numberPart.split(`.`);\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ``] = tuiNumberToStringWithoutExp(value).split(`.`);\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN, tuiRoundWith} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_NUMBER_FORMAT} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {decimalLimit, decimalSeparator, thousandSeparator, zeroPadding, rounding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n ...settings,\n };\n\n const rounded = Number.isFinite(decimalLimit)\n ? tuiRoundWith({value, precision: decimalLimit, method: rounding})\n : value;\n const integerPartString = String(Math.floor(Math.abs(rounded)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(rounded, decimalLimit);\n\n if (Number.isFinite(decimalLimit)) {\n if (zeroPadding) {\n const zeroPaddingSize: number = Math.max(\n decimalLimit - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = `0`.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, ``);\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : ``;\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","import {CHAR_PLUS} from '@taiga-ui/cdk';\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/core-concepts/transformer maskitoTransform} instead<br/>\n * @example\n * import {maskitoTransform} from '@maskito/core';\n *\n * const mask = {\n * mask: ['+', '1', ' ', /\\d/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/],\n * };\n * maskitoTransform('12125552368', mask); // +1 (212) 555-2368\n * ___\n * Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,\n * adding parentheses and hyphens.\n *\n * @param value the input string\n * @param countryCode a country code\n * @param phoneMask a phone number mask\n * @return the formatted phone string of the form +7 XXX XXX-XX-XX\n */\nexport function tuiFormatPhone(\n value: string,\n countryCode: string,\n phoneMask: string,\n): string {\n if (!value) {\n return ``;\n }\n\n let result = countryCode;\n\n countryCode = countryCode.replace(/[()]/g, ``);\n\n if (!value.startsWith(countryCode)) {\n value = countryCode + value.replace(CHAR_PLUS, ``);\n }\n\n const splitPhoneMask = phoneMask.split(``);\n const splitValue = value.slice(countryCode.length).split(``);\n\n result += ` `;\n\n if (splitValue.length === 0) {\n return result;\n }\n\n for (const mask of splitPhoneMask) {\n if (splitValue.length === 0) {\n break;\n }\n\n if (mask === `#`) {\n result += splitValue[0] || ``;\n splitValue.splice(0, 1);\n } else {\n result += mask;\n }\n }\n\n return result;\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function tuiOtherDecimalSymbol(symbol: TuiDecimalSymbol): TuiDecimalSymbol {\n return symbol === `.` ? `,` : `.`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,14 @@ import { tuiAssert, tuiIsSafari, CHAR_HYPHEN, tuiIsNativeFocused, tuiGetDocument
|
|
|
2
2
|
import { MASK_CARET_TRAP, TUI_DIGIT_REGEXP, TUI_NON_DIGITS_REGEXP, TUI_LEADING_ZEROES_REGEXP, TUI_DECIMAL_SYMBOLS } from '@taiga-ui/core/constants';
|
|
3
3
|
import { tuiOtherDecimalSymbol } from '@taiga-ui/core/utils/format';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* TODO: delete in v4.0
|
|
7
|
+
* @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead <br/>
|
|
8
|
+
* Used to finish a number with zeros to a given precision
|
|
9
|
+
*/
|
|
5
10
|
function tuiCreateAutoCorrectedNumberPipe(decimalLimit = 0, decimalSymbol = `,`, thousandSymbol = CHAR_NO_BREAK_SPACE, nativeInput, allowNegative, isIOS = false) {
|
|
6
11
|
ngDevMode && tuiAssert.assert(decimalLimit >= 0);
|
|
12
|
+
// Guess for which browser I need this :)
|
|
7
13
|
let previousCaret = -1;
|
|
8
14
|
const unlucky = (!!nativeInput && tuiIsSafari(nativeInput)) || isIOS;
|
|
9
15
|
if (nativeInput && unlucky) {
|
|
@@ -12,9 +18,11 @@ function tuiCreateAutoCorrectedNumberPipe(decimalLimit = 0, decimalSymbol = `,`,
|
|
|
12
18
|
});
|
|
13
19
|
}
|
|
14
20
|
return (conformedValue, config) => {
|
|
21
|
+
// Removing everything by selecting and pressing '-'
|
|
15
22
|
if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {
|
|
16
23
|
return CHAR_HYPHEN;
|
|
17
24
|
}
|
|
25
|
+
// remove these hacks after text mask library has changed
|
|
18
26
|
if (nativeInput && unlucky && tuiIsNativeFocused(nativeInput)) {
|
|
19
27
|
const caret = calculateSafariCaret(config.previousConformedValue, conformedValue, previousCaret);
|
|
20
28
|
setTimeout(() => {
|
|
@@ -86,6 +94,10 @@ function calculateCaretGap(previousValue = ``, current, thousandSymbol) {
|
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
const ASSERTION = `Correction function must return single char or null`;
|
|
97
|
+
/**
|
|
98
|
+
* TODO: delete in v4.0
|
|
99
|
+
* @deprecated Use {@link https://maskito.dev/core-concepts/processors processors} from {@link https://github.com/taiga-family/maskito Maskito}
|
|
100
|
+
*/
|
|
89
101
|
function tuiCreateCorrectionMask(allowed, correctionHandler) {
|
|
90
102
|
return rawValue => {
|
|
91
103
|
const mask = rawValue.split(``).reduce((result, char, index) => {
|
|
@@ -112,10 +124,16 @@ function tuiCreateCorrectionMask(allowed, correctionHandler) {
|
|
|
112
124
|
}
|
|
113
125
|
|
|
114
126
|
const NON_ZERO_DIGIT = /[1-9]/;
|
|
127
|
+
/**
|
|
128
|
+
* TODO: delete in v4.0
|
|
129
|
+
* @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead <br/>
|
|
130
|
+
* Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}
|
|
131
|
+
*/
|
|
115
132
|
function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = `,`, thousandSymbol = CHAR_NO_BREAK_SPACE, autoCorrectDecimalSymbol = true, decimalLimit = 2, requireDecimal = false, allowNegative = false, integerLimit = 0, } = {}) {
|
|
116
133
|
ngDevMode && tuiAssert.assert(decimalLimit >= 0);
|
|
117
134
|
ngDevMode && tuiAssert.assert(Number.isInteger(integerLimit));
|
|
118
135
|
ngDevMode && tuiAssert.assert(integerLimit >= 0);
|
|
136
|
+
// eslint-disable-next-line max-statements
|
|
119
137
|
return (rawValue, { previousConformedValue }) => {
|
|
120
138
|
if (previousConformedValue && requireDecimal) {
|
|
121
139
|
const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);
|
|
@@ -124,6 +142,7 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = `,`, thousa
|
|
|
124
142
|
.join(``)
|
|
125
143
|
.split(decimalSymbol)
|
|
126
144
|
.join(``);
|
|
145
|
+
// Forbid removal of decimal separator if decimal part is required
|
|
127
146
|
if (conformedWithoutSeparator ===
|
|
128
147
|
previousConformedValueWithoutDecimalSymbolAndSeparator) {
|
|
129
148
|
rawValue = previousConformedValue;
|
|
@@ -217,15 +236,27 @@ function convertToMask(strNumber) {
|
|
|
217
236
|
}
|
|
218
237
|
function addThousandsSeparator(strNumber, thousandSymbol) {
|
|
219
238
|
return strNumber.length > 3
|
|
220
|
-
?
|
|
239
|
+
? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.
|
|
240
|
+
// eslint-disable-next-line unicorn/no-unsafe-regex
|
|
221
241
|
strNumber.replace(/\B(?=(\d{3})+(?!\d))/g, thousandSymbol)
|
|
222
242
|
: strNumber;
|
|
223
243
|
}
|
|
224
244
|
|
|
245
|
+
/**
|
|
246
|
+
* TODO: delete in v4.0
|
|
247
|
+
* @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead
|
|
248
|
+
*/
|
|
225
249
|
function tuiEnableAutoCorrectDecimalSymbol({ thousandSeparator, }) {
|
|
226
250
|
return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);
|
|
227
251
|
}
|
|
228
252
|
|
|
253
|
+
/**
|
|
254
|
+
* TODO: delete in v4.0
|
|
255
|
+
* @deprecated use {@link https://maskito.dev/kit/number maskitoParseNumber} instead
|
|
256
|
+
* ```ts
|
|
257
|
+
* Number.isNaN(maskitoParseNumber(value, decimalSeparator))
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
229
260
|
function tuiMaskedMoneyValueIsEmpty(value) {
|
|
230
261
|
switch (value) {
|
|
231
262
|
case ``:
|
|
@@ -238,9 +269,17 @@ function tuiMaskedMoneyValueIsEmpty(value) {
|
|
|
238
269
|
}
|
|
239
270
|
}
|
|
240
271
|
|
|
272
|
+
/**
|
|
273
|
+
* TODO: delete in v4.0
|
|
274
|
+
* @deprecated use {@link https://maskito.dev/kit/number maskitoParseNumber} instead
|
|
275
|
+
*/
|
|
241
276
|
function tuiMaskedNumberStringToNumber(value, decimalsSymbol, thousandSymbol) {
|
|
242
277
|
return parseFloat(value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`));
|
|
243
278
|
}
|
|
244
279
|
|
|
280
|
+
/**
|
|
281
|
+
* Generated bundle index. Do not edit.
|
|
282
|
+
*/
|
|
283
|
+
|
|
245
284
|
export { tuiCreateAutoCorrectedNumberPipe, tuiCreateCorrectionMask, tuiCreateNumberMask, tuiEnableAutoCorrectDecimalSymbol, tuiMaskedMoneyValueIsEmpty, tuiMaskedNumberStringToNumber };
|
|
246
285
|
//# sourceMappingURL=taiga-ui-core-utils-mask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["../../../projects/core/utils/mask/create-auto-corrected-money-pipe.ts","../../../projects/core/utils/mask/create-correction-mask.ts","../../../projects/core/utils/mask/create-number-mask.ts","../../../projects/core/utils/mask/enable-auto-correct-decimal-symbol.ts","../../../projects/core/utils/mask/masked-money-value-is-empty.ts","../../../projects/core/utils/mask/masked-number-string-to-number.ts"],"sourcesContent":["import {\n CHAR_HYPHEN,\n CHAR_NO_BREAK_SPACE,\n tuiAssert,\n tuiGetDocumentOrShadowRoot,\n tuiIsNativeFocused,\n tuiIsSafari,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead <br/>\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = `,`,\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n isIOS = false,\n): TuiTextMaskPipeHandler {\n ngDevMode && tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n const unlucky = (!!nativeInput && tuiIsSafari(nativeInput)) || isIOS;\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener(`beforeinput`, () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {\n return CHAR_HYPHEN;\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && tuiIsNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== tuiGetDocumentOrShadowRoot(nativeInput) &&\n tuiIsNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === `` || !decimalLimit || !Number.isInteger(decimalLimit)) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + `0`.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = `,`,\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = ``,\n current: string,\n previousCaret: number,\n decimalSymbol: string = `,`,\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, ``);\n const currentWithoutTail = current.replace(tailRegex, ``);\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === `0` ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = ``,\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = `Correction function must return single char or null`;\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/core-concepts/processors processors} from {@link https://github.com/taiga-family/maskito Maskito}\n */\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split(``).reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n ngDevMode &&\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_HYPHEN, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {tuiOtherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead <br/>\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = `,`,\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n ngDevMode && tuiAssert.assert(decimalLimit >= 0);\n ngDevMode && tuiAssert.assert(Number.isInteger(integerLimit));\n ngDevMode && tuiAssert.assert(integerLimit >= 0);\n\n // eslint-disable-next-line max-statements\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join(``)\n .split(decimalSymbol)\n .join(``);\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue?.startsWith(CHAR_HYPHEN) || rawValue?.startsWith(CHAR_EN_DASH)) &&\n allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return [`0`, decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.slice(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, `g`)) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, ``);\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [``];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, ``)\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ``),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== tuiOtherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < Math.min(decimalLimit - fractionCapped.length, 20); i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === `0`;\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift(CHAR_HYPHEN);\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<RegExp | string>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<RegExp | string> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n }\n\n if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(tuiOtherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<RegExp | string> {\n return strNumber\n .split(``)\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead\n */\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: TuiNumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\n\n/**\n * TODO: delete in v4.0\n * @deprecated use {@link https://maskito.dev/kit/number maskitoParseNumber} instead\n * ```ts\n * Number.isNaN(maskitoParseNumber(value, decimalSeparator))\n * ```\n */\nexport function tuiMaskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case ``:\n case CHAR_HYPHEN:\n case `,`:\n case `${CHAR_HYPHEN},`:\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * TODO: delete in v4.0\n * @deprecated use {@link https://maskito.dev/kit/number maskitoParseNumber} instead\n */\nexport function tuiMaskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`),\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["../../../projects/core/utils/mask/create-auto-corrected-money-pipe.ts","../../../projects/core/utils/mask/create-correction-mask.ts","../../../projects/core/utils/mask/create-number-mask.ts","../../../projects/core/utils/mask/enable-auto-correct-decimal-symbol.ts","../../../projects/core/utils/mask/masked-money-value-is-empty.ts","../../../projects/core/utils/mask/masked-number-string-to-number.ts","../../../projects/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_HYPHEN,\n CHAR_NO_BREAK_SPACE,\n tuiAssert,\n tuiGetDocumentOrShadowRoot,\n tuiIsNativeFocused,\n tuiIsSafari,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead <br/>\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = `,`,\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n isIOS = false,\n): TuiTextMaskPipeHandler {\n ngDevMode && tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n const unlucky = (!!nativeInput && tuiIsSafari(nativeInput)) || isIOS;\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener(`beforeinput`, () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {\n return CHAR_HYPHEN;\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && tuiIsNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== tuiGetDocumentOrShadowRoot(nativeInput) &&\n tuiIsNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === `` || !decimalLimit || !Number.isInteger(decimalLimit)) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + `0`.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = `,`,\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = ``,\n current: string,\n previousCaret: number,\n decimalSymbol: string = `,`,\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, ``);\n const currentWithoutTail = current.replace(tailRegex, ``);\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === `0` ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = ``,\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = `Correction function must return single char or null`;\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/core-concepts/processors processors} from {@link https://github.com/taiga-family/maskito Maskito}\n */\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split(``).reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n ngDevMode &&\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_HYPHEN, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {tuiOtherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead <br/>\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = `,`,\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n ngDevMode && tuiAssert.assert(decimalLimit >= 0);\n ngDevMode && tuiAssert.assert(Number.isInteger(integerLimit));\n ngDevMode && tuiAssert.assert(integerLimit >= 0);\n\n // eslint-disable-next-line max-statements\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join(``)\n .split(decimalSymbol)\n .join(``);\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue?.startsWith(CHAR_HYPHEN) || rawValue?.startsWith(CHAR_EN_DASH)) &&\n allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return [`0`, decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.slice(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, `g`)) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, ``);\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [``];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, ``)\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ``),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== tuiOtherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < Math.min(decimalLimit - fractionCapped.length, 20); i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === `0`;\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift(CHAR_HYPHEN);\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<RegExp | string>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<RegExp | string> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n }\n\n if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(tuiOtherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<RegExp | string> {\n return strNumber\n .split(``)\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\n/**\n * TODO: delete in v4.0\n * @deprecated Use {@link https://maskito.dev/kit/number Number} from {@link https://github.com/taiga-family/maskito Maskito} instead\n */\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: TuiNumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\n\n/**\n * TODO: delete in v4.0\n * @deprecated use {@link https://maskito.dev/kit/number maskitoParseNumber} instead\n * ```ts\n * Number.isNaN(maskitoParseNumber(value, decimalSeparator))\n * ```\n */\nexport function tuiMaskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case ``:\n case CHAR_HYPHEN:\n case `,`:\n case `${CHAR_HYPHEN},`:\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * TODO: delete in v4.0\n * @deprecated use {@link https://maskito.dev/kit/number maskitoParseNumber} instead\n */\nexport function tuiMaskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -31,10 +31,16 @@ function tuiIconsPathFactory(staticPath) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Check if pressed key is interactive in terms of input field
|
|
36
|
+
*/
|
|
34
37
|
function tuiIsEditingKey(key) {
|
|
35
38
|
return key.length === 1 || tuiEditingKeys.includes(key);
|
|
36
39
|
}
|
|
37
40
|
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
38
44
|
function tuiIsObscured(el, exceptSelector = `tui-hints-host`) {
|
|
39
45
|
var _a;
|
|
40
46
|
return !!((_a = tuiGetElementObscures(el)) === null || _a === void 0 ? void 0 : _a.some(el => !el.closest(exceptSelector)));
|
|
@@ -49,6 +55,7 @@ function tuiOverrideOptions(override, fallback) {
|
|
|
49
55
|
return (directive, options) => {
|
|
50
56
|
const result = directive || Object.assign({}, (options || fallback));
|
|
51
57
|
Object.keys(override).forEach(key => {
|
|
58
|
+
// Update directive props with new defaults before inputs are processed
|
|
52
59
|
result[key] = override[key];
|
|
53
60
|
});
|
|
54
61
|
return result;
|
|
@@ -64,9 +71,19 @@ const SIZES = {
|
|
|
64
71
|
xl: 5,
|
|
65
72
|
xxl: 6,
|
|
66
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* Compares size constants to determine if first size is bigger than the second
|
|
76
|
+
*
|
|
77
|
+
* @param size size that we need to compare
|
|
78
|
+
* @param biggerThanSize size to compare with, 's' by default
|
|
79
|
+
*/
|
|
67
80
|
function tuiSizeBigger(size, biggerThanSize = `s`) {
|
|
68
81
|
return SIZES[size] > SIZES[biggerThanSize];
|
|
69
82
|
}
|
|
70
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Generated bundle index. Do not edit.
|
|
86
|
+
*/
|
|
87
|
+
|
|
71
88
|
export { tuiGetBorder, tuiIconsPathFactory, tuiIsEditingKey, tuiIsObscured, tuiIsPresumedHTMLString, tuiOverrideOptions, tuiSizeBigger };
|
|
72
89
|
//# sourceMappingURL=taiga-ui-core-utils-miscellaneous.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-miscellaneous.js","sources":["../../../projects/core/utils/miscellaneous/get-border.ts","../../../projects/core/utils/miscellaneous/icons-path-factory.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/is-presumed-html-string.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts"],"sourcesContent":["import {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nconst ITEM_SIZE = 1.5;\nconst CONTENT_SIZE = 2.5;\n\nexport function tuiGetBorder(\n hasIcon: boolean,\n hasCleaner: boolean = false,\n hasTooltip: boolean = false,\n hasContent: boolean = false,\n size: TuiSizeL | TuiSizeS = `m`,\n): number {\n const offset = size === `s` ? 0 : 0.25;\n let border = 0;\n\n if (hasIcon) {\n border += ITEM_SIZE + offset;\n }\n\n if (hasCleaner) {\n border += ITEM_SIZE + offset;\n }\n\n if (hasTooltip) {\n border += ITEM_SIZE + offset;\n }\n\n if (hasContent) {\n border += CONTENT_SIZE + offset;\n }\n\n return border;\n}\n","import {TuiStringHandler} from '@taiga-ui/cdk';\nimport {DEFAULT_ICONS_PATH, TUI_CACHE_BUSTING_PAYLOAD} from '@taiga-ui/core/constants';\n\nexport function tuiIconsPathFactory(staticPath: string): TuiStringHandler<string> {\n const base = staticPath.endsWith(`/`) ? staticPath : `${staticPath}/`;\n\n return name => {\n if (name.startsWith(`tuiIcon`)) {\n return `${base}${name}.svg${TUI_CACHE_BUSTING_PAYLOAD}#${name}`;\n }\n\n return DEFAULT_ICONS_PATH(name);\n };\n}\n","import {tuiEditingKeys} from '@taiga-ui/core/constants';\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key: string): boolean {\n return key.length === 1 || tuiEditingKeys.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(\n el: HTMLElement,\n exceptSelector = `tui-hints-host`,\n): boolean {\n return !!tuiGetElementObscures(el)?.some(el => !el.closest(exceptSelector));\n}\n","export function tuiIsPresumedHTMLString(candidate: string): boolean {\n const trimmed = candidate.trim();\n\n return trimmed.startsWith(`<`) && trimmed.endsWith(`>`);\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result = directive || {...(options || fallback)};\n\n Object.keys(override).forEach(key => {\n // Update directive props with new defaults before inputs are processed\n (result as any)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = `s`,\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,GAAG,CAAC;AAET,SAAA,YAAY,CACxB,OAAgB,EAChB,UAAsB,GAAA,KAAK,EAC3B,UAAA,GAAsB,KAAK,EAC3B,UAAA,GAAsB,KAAK,EAC3B,OAA4B,CAAG,CAAA,CAAA,EAAA;AAE/B,IAAA,MAAM,MAAM,GAAG,IAAI,KAAK,CAAG,CAAA,CAAA,GAAG,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,IAAA,IAAI,OAAO,EAAE;AACT,QAAA,MAAM,IAAI,SAAS,GAAG,MAAM,CAAC;AAChC,KAAA;AAED,IAAA,IAAI,UAAU,EAAE;AACZ,QAAA,MAAM,IAAI,SAAS,GAAG,MAAM,CAAC;AAChC,KAAA;AAED,IAAA,IAAI,UAAU,EAAE;AACZ,QAAA,MAAM,IAAI,SAAS,GAAG,MAAM,CAAC;AAChC,KAAA;AAED,IAAA,IAAI,UAAU,EAAE;AACZ,QAAA,MAAM,IAAI,YAAY,GAAG,MAAM,CAAC;AACnC,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAClB;;AC7BM,SAAU,mBAAmB,CAAC,UAAkB,EAAA;AAClD,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAG,EAAA,UAAU,GAAG,CAAC;IAEtE,OAAO,IAAI,IAAG;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA,OAAA,CAAS,CAAC,EAAE;YAC5B,OAAO,CAAA,EAAG,IAAI,CAAG,EAAA,IAAI,OAAO,yBAAyB,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;AACnE,SAAA;AAED,QAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACpC,KAAC,CAAC;AACN;;
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-miscellaneous.js","sources":["../../../projects/core/utils/miscellaneous/get-border.ts","../../../projects/core/utils/miscellaneous/icons-path-factory.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/is-presumed-html-string.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts","../../../projects/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["import {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\n\nconst ITEM_SIZE = 1.5;\nconst CONTENT_SIZE = 2.5;\n\nexport function tuiGetBorder(\n hasIcon: boolean,\n hasCleaner: boolean = false,\n hasTooltip: boolean = false,\n hasContent: boolean = false,\n size: TuiSizeL | TuiSizeS = `m`,\n): number {\n const offset = size === `s` ? 0 : 0.25;\n let border = 0;\n\n if (hasIcon) {\n border += ITEM_SIZE + offset;\n }\n\n if (hasCleaner) {\n border += ITEM_SIZE + offset;\n }\n\n if (hasTooltip) {\n border += ITEM_SIZE + offset;\n }\n\n if (hasContent) {\n border += CONTENT_SIZE + offset;\n }\n\n return border;\n}\n","import {TuiStringHandler} from '@taiga-ui/cdk';\nimport {DEFAULT_ICONS_PATH, TUI_CACHE_BUSTING_PAYLOAD} from '@taiga-ui/core/constants';\n\nexport function tuiIconsPathFactory(staticPath: string): TuiStringHandler<string> {\n const base = staticPath.endsWith(`/`) ? staticPath : `${staticPath}/`;\n\n return name => {\n if (name.startsWith(`tuiIcon`)) {\n return `${base}${name}.svg${TUI_CACHE_BUSTING_PAYLOAD}#${name}`;\n }\n\n return DEFAULT_ICONS_PATH(name);\n };\n}\n","import {tuiEditingKeys} from '@taiga-ui/core/constants';\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key: string): boolean {\n return key.length === 1 || tuiEditingKeys.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(\n el: HTMLElement,\n exceptSelector = `tui-hints-host`,\n): boolean {\n return !!tuiGetElementObscures(el)?.some(el => !el.closest(exceptSelector));\n}\n","export function tuiIsPresumedHTMLString(candidate: string): boolean {\n const trimmed = candidate.trim();\n\n return trimmed.startsWith(`<`) && trimmed.endsWith(`>`);\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result = directive || {...(options || fallback)};\n\n Object.keys(override).forEach(key => {\n // Update directive props with new defaults before inputs are processed\n (result as any)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {TuiSizeXXL, TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = `s`,\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-mobile.js","sources":["../../../projects/core/utils/mobile/is-mobile.ts"],"sourcesContent":["import {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {tuiGetViewportWidth} from '@taiga-ui/core/utils/dom';\n\nexport function tuiIsMobile(win: Window, {mobile}: TuiMedia): boolean {\n return tuiGetViewportWidth(win) < mobile;\n}\n"],"names":[],"mappings":";;SAGgB,WAAW,CAAC,GAAW,EAAE,EAAC,MAAM,EAAW,EAAA;AACvD,IAAA,OAAO,mBAAmB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7C;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-mobile.js","sources":["../../../projects/core/utils/mobile/is-mobile.ts","../../../projects/core/utils/mobile/taiga-ui-core-utils-mobile.ts"],"sourcesContent":["import {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {tuiGetViewportWidth} from '@taiga-ui/core/utils/dom';\n\nexport function tuiIsMobile(win: Window, {mobile}: TuiMedia): boolean {\n return tuiGetViewportWidth(win) < mobile;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;SAGgB,WAAW,CAAC,GAAW,EAAE,EAAC,MAAM,EAAW,EAAA;AACvD,IAAA,OAAO,mBAAmB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7C;;ACLA;;AAEG;;;;"}
|
|
@@ -3,4 +3,8 @@ export * from '@taiga-ui/core/utils/format';
|
|
|
3
3
|
export * from '@taiga-ui/core/utils/mask';
|
|
4
4
|
export * from '@taiga-ui/core/utils/miscellaneous';
|
|
5
5
|
export * from '@taiga-ui/core/utils/mobile';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Generated bundle index. Do not edit.
|
|
9
|
+
*/
|
|
6
10
|
//# sourceMappingURL=taiga-ui-core-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils.js","sources":["../../../projects/core/utils/taiga-ui-core-utils.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;AAEG"}
|
|
@@ -14,4 +14,8 @@ export * from '@taiga-ui/core/services';
|
|
|
14
14
|
export * from '@taiga-ui/core/tokens';
|
|
15
15
|
export * from '@taiga-ui/core/types';
|
|
16
16
|
export * from '@taiga-ui/core/utils';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Generated bundle index. Do not edit.
|
|
20
|
+
*/
|
|
17
21
|
//# sourceMappingURL=taiga-ui-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-core.js","sources":["../../../projects/core/taiga-ui-core.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEG"}
|
|
@@ -6,8 +6,10 @@ export declare type TuiAlertAutoClose = TuiHandler<TuiNotification | TuiNotifica
|
|
|
6
6
|
export interface TuiAlertOptions<I> {
|
|
7
7
|
readonly autoClose: TuiAlertAutoClose;
|
|
8
8
|
readonly data: I;
|
|
9
|
+
/** @deprecated use autoClose instead **/
|
|
9
10
|
readonly defaultAutoCloseTime: number;
|
|
10
11
|
readonly hasCloseButton: boolean;
|
|
12
|
+
/** @deprecated use icon instead **/
|
|
11
13
|
readonly hasIcon: boolean;
|
|
12
14
|
readonly icon: PolymorpheusContent<TuiContextWithImplicit<TuiNotificationT>>;
|
|
13
15
|
readonly label: PolymorpheusContent<TuiAlertOptions<I>>;
|
|
@@ -2,6 +2,17 @@ import { TuiDialog } from '@taiga-ui/cdk';
|
|
|
2
2
|
import { TuiDialogSize } from '@taiga-ui/core/types';
|
|
3
3
|
import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
|
+
/**
|
|
6
|
+
* Options for a dialog
|
|
7
|
+
*
|
|
8
|
+
* size - size of the dialog ('m' by default)
|
|
9
|
+
* required - closing dialog throws (false by default)
|
|
10
|
+
* closeable - show close button (true by default)
|
|
11
|
+
* dismissible - close dialog by Esc button or click on overlay (true by default)
|
|
12
|
+
* label - string title for the dialog ('' by default)
|
|
13
|
+
* header - content above title ('' by default)
|
|
14
|
+
* data - arbitrary data for dialog (undefined by default)
|
|
15
|
+
*/
|
|
5
16
|
export interface TuiDialogOptions<I> {
|
|
6
17
|
readonly appearance?: string;
|
|
7
18
|
readonly closeable: Observable<boolean> | boolean;
|
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import { TuiRounding } from '@taiga-ui/cdk';
|
|
2
|
-
import { TuiDecimalSymbol } from '@taiga-ui/core/types';
|
|
2
|
+
import { TuiDecimal, TuiDecimalSymbol } from '@taiga-ui/core/types';
|
|
3
|
+
/**
|
|
4
|
+
* Formatting configuration for displayed numbers
|
|
5
|
+
*/
|
|
3
6
|
export interface TuiNumberFormatSettings {
|
|
7
|
+
/**
|
|
8
|
+
* Number of digits of decimal part.
|
|
9
|
+
* @note Use `Infinity` to keep untouched.
|
|
10
|
+
*/
|
|
4
11
|
readonly decimalLimit: number;
|
|
12
|
+
/**
|
|
13
|
+
* Separator between the integer and the decimal part.
|
|
14
|
+
* @example 0,42 (',' by default)
|
|
15
|
+
*/
|
|
5
16
|
readonly decimalSeparator: TuiDecimalSymbol;
|
|
17
|
+
/**
|
|
18
|
+
* Rounding method.
|
|
19
|
+
*/
|
|
6
20
|
readonly rounding: TuiRounding;
|
|
21
|
+
/**
|
|
22
|
+
* Separator between thousands.
|
|
23
|
+
* @example 360 000 (' ' by default)
|
|
24
|
+
*/
|
|
7
25
|
readonly thousandSeparator: string;
|
|
26
|
+
/**
|
|
27
|
+
* Enable zeros at the end of decimal part.
|
|
28
|
+
*/
|
|
8
29
|
readonly zeroPadding: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Decimal part display mode. ('not-zero' by default)
|
|
32
|
+
*/
|
|
33
|
+
readonly decimal?: TuiDecimal;
|
|
9
34
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Use {@link https://github.com/taiga-family/maskito Maskito}
|
|
3
|
+
* Link lies about config object having all the same configurations so separate interface is required
|
|
4
|
+
* {@link https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#pipe}
|
|
5
|
+
*/
|
|
1
6
|
export interface TuiTextMaskConfig {
|
|
2
7
|
readonly currentCaretPosition?: number;
|
|
3
8
|
readonly previousConformedValue?: string;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { TuiTextMaskConfig } from './text-mask-config';
|
|
2
2
|
import { TuiTextMaskList } from './text-mask-list';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use {@link https://github.com/taiga-family/maskito Maskito}
|
|
5
|
+
*/
|
|
3
6
|
export declare type TuiTextMaskListHandler = (rawValue: string, config: TuiTextMaskConfig) => TuiTextMaskList | false;
|