@taiga-ui/legacy 4.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +22 -0
- package/classes/abstract-native-select.d.ts +17 -0
- package/classes/abstract-textfield-host.d.ts +19 -0
- package/classes/control.d.ts +58 -0
- package/classes/index.d.ts +8 -0
- package/classes/interactive.d.ts +35 -0
- package/classes/multiple-control.d.ts +8 -0
- package/classes/named-day.d.ts +8 -0
- package/classes/nullable-control.d.ts +7 -0
- package/classes/stringifiable-item.d.ts +10 -0
- package/components/arrow/arrow.component.d.ts +16 -0
- package/components/arrow/arrow.options.d.ts +13 -0
- package/components/arrow/arrow.providers.d.ts +14 -0
- package/components/arrow/index.d.ts +3 -0
- package/components/combo-box/combo-box-strict.directive.d.ts +8 -0
- package/components/combo-box/combo-box.component.d.ts +47 -0
- package/components/combo-box/combo-box.directive.d.ts +9 -0
- package/components/combo-box/combo-box.module.d.ts +16 -0
- package/components/combo-box/index.d.ts +4 -0
- package/components/index.d.ts +31 -0
- package/components/input/index.d.ts +3 -0
- package/components/input/input.component.d.ts +27 -0
- package/components/input/input.directive.d.ts +8 -0
- package/components/input/input.module.d.ts +11 -0
- package/components/input-copy/index.d.ts +4 -0
- package/components/input-copy/input-copy.component.d.ts +30 -0
- package/components/input-copy/input-copy.directive.d.ts +8 -0
- package/components/input-copy/input-copy.module.d.ts +15 -0
- package/components/input-copy/input-copy.options.d.ts +14 -0
- package/components/input-date/index.d.ts +3 -0
- package/components/input-date/input-date.component.d.ts +61 -0
- package/components/input-date/input-date.directive.d.ts +15 -0
- package/components/input-date/input-date.module.d.ts +20 -0
- package/components/input-date/native-date/native-date.component.d.ts +11 -0
- package/components/input-date-multi/index.d.ts +2 -0
- package/components/input-date-multi/input-date-multi.component.d.ts +66 -0
- package/components/input-date-multi/input-date-multi.module.d.ts +20 -0
- package/components/input-date-range/index.d.ts +3 -0
- package/components/input-date-range/input-date-range.component.d.ts +63 -0
- package/components/input-date-range/input-date-range.directive.d.ts +12 -0
- package/components/input-date-range/input-date-range.module.d.ts +18 -0
- package/components/input-date-time/index.d.ts +3 -0
- package/components/input-date-time/input-date-time.component.d.ts +77 -0
- package/components/input-date-time/input-date-time.directive.d.ts +13 -0
- package/components/input-date-time/input-date-time.module.d.ts +19 -0
- package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +9 -0
- package/components/input-month/index.d.ts +3 -0
- package/components/input-month/input-month.component.d.ts +41 -0
- package/components/input-month/input-month.directive.d.ts +15 -0
- package/components/input-month/input-month.module.d.ts +15 -0
- package/components/input-month-range/index.d.ts +3 -0
- package/components/input-month-range/input-month-range.component.d.ts +35 -0
- package/components/input-month-range/input-month-range.directive.d.ts +15 -0
- package/components/input-month-range/input-month-range.module.d.ts +14 -0
- package/components/input-number/index.d.ts +4 -0
- package/components/input-number/input-number.component.d.ts +56 -0
- package/components/input-number/input-number.directive.d.ts +12 -0
- package/components/input-number/input-number.module.d.ts +14 -0
- package/components/input-number/input-number.options.d.ts +17 -0
- package/components/input-password/index.d.ts +4 -0
- package/components/input-password/input-password.component.d.ts +30 -0
- package/components/input-password/input-password.directive.d.ts +12 -0
- package/components/input-password/input-password.module.d.ts +16 -0
- package/components/input-password/input-password.options.d.ts +13 -0
- package/components/input-phone/index.d.ts +4 -0
- package/components/input-phone/input-phone.component.d.ts +48 -0
- package/components/input-phone/input-phone.directive.d.ts +13 -0
- package/components/input-phone/input-phone.module.d.ts +12 -0
- package/components/input-phone/input-phone.options.d.ts +12 -0
- package/components/input-phone/utils/complete-phone-insertion-preprocessor.d.ts +9 -0
- package/components/input-phone/utils/create-phone-mask-expression.d.ts +7 -0
- package/components/input-phone/utils/index.d.ts +2 -0
- package/components/input-phone-international/index.d.ts +3 -0
- package/components/input-phone-international/input-phone-international.component.d.ts +38 -0
- package/components/input-phone-international/input-phone-international.options.d.ts +12 -0
- package/components/input-phone-international/utils/extract-value-from-event.d.ts +1 -0
- package/components/input-range/index.d.ts +2 -0
- package/components/input-range/input-range.component.d.ts +52 -0
- package/components/input-range/input-range.module.d.ts +15 -0
- package/components/input-slider/index.d.ts +2 -0
- package/components/input-slider/input-slider.component.d.ts +38 -0
- package/components/input-slider/input-slider.module.d.ts +14 -0
- package/components/input-tag/index.d.ts +3 -0
- package/components/input-tag/input-tag.component.d.ts +94 -0
- package/components/input-tag/input-tag.module.d.ts +18 -0
- package/components/input-tag/input-tag.options.d.ts +13 -0
- package/components/input-time/index.d.ts +4 -0
- package/components/input-time/input-time.component.d.ts +60 -0
- package/components/input-time/input-time.directive.d.ts +13 -0
- package/components/input-time/input-time.module.d.ts +19 -0
- package/components/input-time/input-time.options.d.ts +20 -0
- package/components/input-time/native-time/native-time.component.d.ts +12 -0
- package/components/input-year/index.d.ts +3 -0
- package/components/input-year/input-year.component.d.ts +32 -0
- package/components/input-year/input-year.directive.d.ts +10 -0
- package/components/input-year/input-year.module.d.ts +14 -0
- package/components/island/index.d.ts +1 -0
- package/components/island/island.directive.d.ts +16 -0
- package/components/multi-select/hide-selected.pipe.d.ts +11 -0
- package/components/multi-select/index.d.ts +10 -0
- package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +23 -0
- package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +8 -0
- package/components/multi-select/multi-select.component.d.ts +65 -0
- package/components/multi-select/multi-select.directive.d.ts +14 -0
- package/components/multi-select/multi-select.module.d.ts +27 -0
- package/components/multi-select/multi-select.options.d.ts +13 -0
- package/components/multi-select/native-multi-select/native-multi-select-group.component.d.ts +9 -0
- package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +8 -0
- package/components/multi-select/native-multi-select/native-multi-select.d.ts +11 -0
- package/components/multi-select-option/index.d.ts +2 -0
- package/components/multi-select-option/multi-select-option.component.d.ts +9 -0
- package/components/multi-select-option/multi-select-option.module.d.ts +9 -0
- package/components/primitive-textfield/index.d.ts +7 -0
- package/components/primitive-textfield/primitive-textfield-options.d.ts +22 -0
- package/components/primitive-textfield/primitive-textfield-types.d.ts +11 -0
- package/components/primitive-textfield/primitive-textfield.component.d.ts +68 -0
- package/components/primitive-textfield/primitive-textfield.directive.d.ts +10 -0
- package/components/primitive-textfield/primitive-textfield.module.d.ts +17 -0
- package/components/primitive-textfield/textfield/textfield.component.d.ts +13 -0
- package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +22 -0
- package/components/select/index.d.ts +6 -0
- package/components/select/native-select/native-select-group.component.d.ts +13 -0
- package/components/select/native-select/native-select.component.d.ts +12 -0
- package/components/select/select.component.d.ts +40 -0
- package/components/select/select.directive.d.ts +12 -0
- package/components/select/select.module.d.ts +20 -0
- package/components/select/select.options.d.ts +12 -0
- package/components/select-option/index.d.ts +2 -0
- package/components/select-option/select-option.component.d.ts +27 -0
- package/components/select-option/select-option.module.d.ts +10 -0
- package/components/sheet/components/sheet/sheet.component.d.ts +31 -0
- package/components/sheet/components/sheet/sheet.providers.d.ts +2 -0
- package/components/sheet/components/sheet-bar/sheet-bar.component.d.ts +10 -0
- package/components/sheet/components/sheet-heading/sheet-heading.component.d.ts +14 -0
- package/components/sheet/components/sheets-host/sheets-host.component.d.ts +15 -0
- package/components/sheet/directives/sheet-close/sheet-close.directive.d.ts +14 -0
- package/components/sheet/directives/sheet-stop/sheet-stop.directive.d.ts +6 -0
- package/components/sheet/directives/sheet-top/sheet-top.directive.d.ts +14 -0
- package/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.d.ts +17 -0
- package/components/sheet/index.d.ts +14 -0
- package/components/sheet/sheet-options.d.ts +24 -0
- package/components/sheet/sheet-tokens.d.ts +15 -0
- package/components/sheet/sheet.d.ts +19 -0
- package/components/sheet/sheet.directive.d.ts +16 -0
- package/components/sheet/sheet.module.d.ts +23 -0
- package/components/sheet/sheet.service.d.ts +16 -0
- package/components/svg/content-processor.d.ts +16 -0
- package/components/svg/deprecated-icons.d.ts +1 -0
- package/components/svg/index.d.ts +5 -0
- package/components/svg/svg-options.d.ts +22 -0
- package/components/svg/svg.component.d.ts +43 -0
- package/components/svg/svg.service.d.ts +21 -0
- package/components/table-bar/index.d.ts +5 -0
- package/components/table-bar/table-bar.component.d.ts +13 -0
- package/components/table-bar/table-bar.directive.d.ts +7 -0
- package/components/table-bar/table-bar.options.d.ts +14 -0
- package/components/table-bar/table-bars-host.component.d.ts +6 -0
- package/components/table-bar/table-bars.service.d.ts +10 -0
- package/components/tag/index.d.ts +3 -0
- package/components/tag/tag.component.d.ts +40 -0
- package/components/tag/tag.module.d.ts +12 -0
- package/components/tag/tag.options.d.ts +15 -0
- package/components/textarea/index.d.ts +3 -0
- package/components/textarea/textarea.component.d.ts +50 -0
- package/components/textarea/textarea.directive.d.ts +8 -0
- package/components/textarea/textarea.module.d.ts +17 -0
- package/components/tooltip/index.d.ts +2 -0
- package/components/tooltip/tooltip.component.d.ts +12 -0
- package/components/tooltip/tooltip.module.d.ts +12 -0
- package/directives/index.d.ts +5 -0
- package/directives/legacy-dropdown-open-monitor/index.d.ts +1 -0
- package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +9 -0
- package/directives/textfield-controller/index.d.ts +14 -0
- package/directives/textfield-controller/textfield-appearance.directive.d.ts +8 -0
- package/directives/textfield-controller/textfield-cleaner.directive.d.ts +8 -0
- package/directives/textfield-controller/textfield-controller.module.d.ts +17 -0
- package/directives/textfield-controller/textfield-controller.provider.d.ts +5 -0
- package/directives/textfield-controller/textfield-custom-content.directive.d.ts +9 -0
- package/directives/textfield-controller/textfield-filler.directive.d.ts +8 -0
- package/directives/textfield-controller/textfield-icon-left.directive.d.ts +11 -0
- package/directives/textfield-controller/textfield-icon.directive.d.ts +11 -0
- package/directives/textfield-controller/textfield-label-outside.directive.d.ts +8 -0
- package/directives/textfield-controller/textfield-postfix.directive.d.ts +8 -0
- package/directives/textfield-controller/textfield-prefix.directive.d.ts +8 -0
- package/directives/textfield-controller/textfield-size.directive.d.ts +9 -0
- package/directives/textfield-controller/textfield.controller.d.ts +41 -0
- package/directives/textfield-controller/textfield.options.d.ts +15 -0
- package/directives/unfinished-validator/index.d.ts +2 -0
- package/directives/unfinished-validator/unfinished-validator.directive.d.ts +8 -0
- package/directives/unfinished-validator/unfinished.validator.d.ts +4 -0
- package/directives/value-accessor/index.d.ts +3 -0
- package/directives/value-accessor/value-accessor.directive.d.ts +5 -0
- package/directives/value-accessor/value-accessor.module.d.ts +7 -0
- package/directives/value-accessor/value-accessor.provider.d.ts +2 -0
- package/directives/wrapper/README.md +19 -0
- package/directives/wrapper/index.d.ts +2 -0
- package/directives/wrapper/wrapper.directive.d.ts +21 -0
- package/directives/wrapper/wrapper.module.d.ts +10 -0
- package/esm2022/classes/abstract-native-select.mjs +37 -0
- package/esm2022/classes/abstract-textfield-host.mjs +37 -0
- package/esm2022/classes/control.mjs +175 -0
- package/esm2022/classes/index.mjs +9 -0
- package/esm2022/classes/interactive.mjs +85 -0
- package/esm2022/classes/multiple-control.mjs +18 -0
- package/esm2022/classes/named-day.mjs +11 -0
- package/esm2022/classes/nullable-control.mjs +15 -0
- package/esm2022/classes/stringifiable-item.mjs +13 -0
- package/esm2022/classes/taiga-ui-legacy-classes.mjs +5 -0
- package/esm2022/components/arrow/arrow.component.mjs +42 -0
- package/esm2022/components/arrow/arrow.options.mjs +14 -0
- package/esm2022/components/arrow/arrow.providers.mjs +14 -0
- package/esm2022/components/arrow/index.mjs +4 -0
- package/esm2022/components/arrow/taiga-ui-legacy-components-arrow.mjs +5 -0
- package/esm2022/components/combo-box/combo-box-strict.directive.mjs +29 -0
- package/esm2022/components/combo-box/combo-box.component.mjs +176 -0
- package/esm2022/components/combo-box/combo-box.directive.mjs +23 -0
- package/esm2022/components/combo-box/combo-box.module.mjs +67 -0
- package/esm2022/components/combo-box/index.mjs +5 -0
- package/esm2022/components/combo-box/taiga-ui-legacy-components-combo-box.mjs +5 -0
- package/esm2022/components/index.mjs +32 -0
- package/esm2022/components/input/index.mjs +4 -0
- package/esm2022/components/input/input.component.mjs +89 -0
- package/esm2022/components/input/input.directive.mjs +20 -0
- package/esm2022/components/input/input.module.mjs +30 -0
- package/esm2022/components/input/taiga-ui-legacy-components-input.mjs +5 -0
- package/esm2022/components/input-copy/index.mjs +5 -0
- package/esm2022/components/input-copy/input-copy.component.mjs +103 -0
- package/esm2022/components/input-copy/input-copy.directive.mjs +20 -0
- package/esm2022/components/input-copy/input-copy.module.mjs +52 -0
- package/esm2022/components/input-copy/input-copy.options.mjs +12 -0
- package/esm2022/components/input-copy/taiga-ui-legacy-components-input-copy.mjs +5 -0
- package/esm2022/components/input-date/index.mjs +4 -0
- package/esm2022/components/input-date/input-date.component.mjs +217 -0
- package/esm2022/components/input-date/input-date.directive.mjs +38 -0
- package/esm2022/components/input-date/input-date.module.mjs +71 -0
- package/esm2022/components/input-date/native-date/native-date.component.mjs +48 -0
- package/esm2022/components/input-date/taiga-ui-legacy-components-input-date.mjs +5 -0
- package/esm2022/components/input-date-multi/index.mjs +3 -0
- package/esm2022/components/input-date-multi/input-date-multi.component.mjs +212 -0
- package/esm2022/components/input-date-multi/input-date-multi.module.mjs +67 -0
- package/esm2022/components/input-date-multi/taiga-ui-legacy-components-input-date-multi.mjs +5 -0
- package/esm2022/components/input-date-range/index.mjs +4 -0
- package/esm2022/components/input-date-range/input-date-range.component.mjs +243 -0
- package/esm2022/components/input-date-range/input-date-range.directive.mjs +31 -0
- package/esm2022/components/input-date-range/input-date-range.module.mjs +67 -0
- package/esm2022/components/input-date-range/taiga-ui-legacy-components-input-date-range.mjs +5 -0
- package/esm2022/components/input-date-time/index.mjs +4 -0
- package/esm2022/components/input-date-time/input-date-time.component.mjs +302 -0
- package/esm2022/components/input-date-time/input-date-time.directive.mjs +32 -0
- package/esm2022/components/input-date-time/input-date-time.module.mjs +74 -0
- package/esm2022/components/input-date-time/native-date-time/native-date-time.directive.mjs +44 -0
- package/esm2022/components/input-date-time/taiga-ui-legacy-components-input-date-time.mjs +5 -0
- package/esm2022/components/input-month/index.mjs +4 -0
- package/esm2022/components/input-month/input-month.component.mjs +132 -0
- package/esm2022/components/input-month/input-month.directive.mjs +41 -0
- package/esm2022/components/input-month/input-month.module.mjs +53 -0
- package/esm2022/components/input-month/taiga-ui-legacy-components-input-month.mjs +5 -0
- package/esm2022/components/input-month-range/index.mjs +4 -0
- package/esm2022/components/input-month-range/input-month-range.component.mjs +120 -0
- package/esm2022/components/input-month-range/input-month-range.directive.mjs +47 -0
- package/esm2022/components/input-month-range/input-month-range.module.mjs +49 -0
- package/esm2022/components/input-month-range/taiga-ui-legacy-components-input-month-range.mjs +5 -0
- package/esm2022/components/input-number/index.mjs +5 -0
- package/esm2022/components/input-number/input-number.component.mjs +257 -0
- package/esm2022/components/input-number/input-number.directive.mjs +33 -0
- package/esm2022/components/input-number/input-number.module.mjs +44 -0
- package/esm2022/components/input-number/input-number.options.mjs +19 -0
- package/esm2022/components/input-number/taiga-ui-legacy-components-input-number.mjs +5 -0
- package/esm2022/components/input-password/index.mjs +5 -0
- package/esm2022/components/input-password/input-password.component.mjs +78 -0
- package/esm2022/components/input-password/input-password.directive.mjs +30 -0
- package/esm2022/components/input-password/input-password.module.mjs +56 -0
- package/esm2022/components/input-password/input-password.options.mjs +12 -0
- package/esm2022/components/input-password/taiga-ui-legacy-components-input-password.mjs +5 -0
- package/esm2022/components/input-phone/index.mjs +5 -0
- package/esm2022/components/input-phone/input-phone.component.mjs +217 -0
- package/esm2022/components/input-phone/input-phone.directive.mjs +33 -0
- package/esm2022/components/input-phone/input-phone.module.mjs +44 -0
- package/esm2022/components/input-phone/input-phone.options.mjs +14 -0
- package/esm2022/components/input-phone/taiga-ui-legacy-components-input-phone.mjs +5 -0
- package/esm2022/components/input-phone/utils/complete-phone-insertion-preprocessor.mjs +41 -0
- package/esm2022/components/input-phone/utils/create-phone-mask-expression.mjs +17 -0
- package/esm2022/components/input-phone/utils/index.mjs +3 -0
- package/esm2022/components/input-phone-international/index.mjs +4 -0
- package/esm2022/components/input-phone-international/input-phone-international.component.mjs +181 -0
- package/esm2022/components/input-phone-international/input-phone-international.options.mjs +13 -0
- package/esm2022/components/input-phone-international/taiga-ui-legacy-components-input-phone-international.mjs +5 -0
- package/esm2022/components/input-phone-international/utils/extract-value-from-event.mjs +7 -0
- package/esm2022/components/input-range/index.mjs +3 -0
- package/esm2022/components/input-range/input-range.component.mjs +203 -0
- package/esm2022/components/input-range/input-range.module.mjs +51 -0
- package/esm2022/components/input-range/taiga-ui-legacy-components-input-range.mjs +5 -0
- package/esm2022/components/input-slider/index.mjs +3 -0
- package/esm2022/components/input-slider/input-slider.component.mjs +150 -0
- package/esm2022/components/input-slider/input-slider.module.mjs +44 -0
- package/esm2022/components/input-slider/taiga-ui-legacy-components-input-slider.mjs +5 -0
- package/esm2022/components/input-tag/index.mjs +4 -0
- package/esm2022/components/input-tag/input-tag.component.mjs +415 -0
- package/esm2022/components/input-tag/input-tag.module.mjs +63 -0
- package/esm2022/components/input-tag/input-tag.options.mjs +14 -0
- package/esm2022/components/input-tag/taiga-ui-legacy-components-input-tag.mjs +5 -0
- package/esm2022/components/input-time/index.mjs +5 -0
- package/esm2022/components/input-time/input-time.component.mjs +275 -0
- package/esm2022/components/input-time/input-time.directive.mjs +35 -0
- package/esm2022/components/input-time/input-time.module.mjs +67 -0
- package/esm2022/components/input-time/input-time.options.mjs +22 -0
- package/esm2022/components/input-time/native-time/native-time.component.mjs +67 -0
- package/esm2022/components/input-time/taiga-ui-legacy-components-input-time.mjs +5 -0
- package/esm2022/components/input-year/index.mjs +4 -0
- package/esm2022/components/input-year/input-year.component.mjs +107 -0
- package/esm2022/components/input-year/input-year.directive.mjs +27 -0
- package/esm2022/components/input-year/input-year.module.mjs +49 -0
- package/esm2022/components/input-year/taiga-ui-legacy-components-input-year.mjs +5 -0
- package/esm2022/components/island/index.mjs +2 -0
- package/esm2022/components/island/island.directive.mjs +74 -0
- package/esm2022/components/island/taiga-ui-legacy-components-island.mjs +5 -0
- package/esm2022/components/multi-select/hide-selected.pipe.mjs +43 -0
- package/esm2022/components/multi-select/index.mjs +11 -0
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +99 -0
- package/esm2022/components/multi-select/multi-select-group/multi-select-group.directive.mjs +65 -0
- package/esm2022/components/multi-select/multi-select.component.mjs +204 -0
- package/esm2022/components/multi-select/multi-select.directive.mjs +31 -0
- package/esm2022/components/multi-select/multi-select.module.mjs +111 -0
- package/esm2022/components/multi-select/multi-select.options.mjs +13 -0
- package/esm2022/components/multi-select/native-multi-select/native-multi-select-group.component.mjs +60 -0
- package/esm2022/components/multi-select/native-multi-select/native-multi-select.component.mjs +56 -0
- package/esm2022/components/multi-select/native-multi-select/native-multi-select.mjs +19 -0
- package/esm2022/components/multi-select/taiga-ui-legacy-components-multi-select.mjs +5 -0
- package/esm2022/components/multi-select-option/index.mjs +3 -0
- package/esm2022/components/multi-select-option/multi-select-option.component.mjs +25 -0
- package/esm2022/components/multi-select-option/multi-select-option.module.mjs +20 -0
- package/esm2022/components/multi-select-option/taiga-ui-legacy-components-multi-select-option.mjs +5 -0
- package/esm2022/components/primitive-textfield/index.mjs +8 -0
- package/esm2022/components/primitive-textfield/primitive-textfield-options.mjs +17 -0
- package/esm2022/components/primitive-textfield/primitive-textfield-types.mjs +2 -0
- package/esm2022/components/primitive-textfield/primitive-textfield.component.mjs +247 -0
- package/esm2022/components/primitive-textfield/primitive-textfield.directive.mjs +28 -0
- package/esm2022/components/primitive-textfield/primitive-textfield.module.mjs +62 -0
- package/esm2022/components/primitive-textfield/taiga-ui-legacy-components-primitive-textfield.mjs +5 -0
- package/esm2022/components/primitive-textfield/textfield/textfield.component.mjs +39 -0
- package/esm2022/components/primitive-textfield/value-decoration/value-decoration.component.mjs +71 -0
- package/esm2022/components/select/index.mjs +7 -0
- package/esm2022/components/select/native-select/native-select-group.component.mjs +60 -0
- package/esm2022/components/select/native-select/native-select.component.mjs +56 -0
- package/esm2022/components/select/select.component.mjs +116 -0
- package/esm2022/components/select/select.directive.mjs +29 -0
- package/esm2022/components/select/select.module.mjs +83 -0
- package/esm2022/components/select/select.options.mjs +12 -0
- package/esm2022/components/select/taiga-ui-legacy-components-select.mjs +5 -0
- package/esm2022/components/select-option/index.mjs +3 -0
- package/esm2022/components/select-option/select-option.component.mjs +65 -0
- package/esm2022/components/select-option/select-option.module.mjs +21 -0
- package/esm2022/components/select-option/taiga-ui-legacy-components-select-option.mjs +5 -0
- package/esm2022/components/sheet/components/sheet/sheet.component.mjs +118 -0
- package/esm2022/components/sheet/components/sheet/sheet.providers.mjs +42 -0
- package/esm2022/components/sheet/components/sheet-bar/sheet-bar.component.mjs +27 -0
- package/esm2022/components/sheet/components/sheet-heading/sheet-heading.component.mjs +31 -0
- package/esm2022/components/sheet/components/sheets-host/sheets-host.component.mjs +46 -0
- package/esm2022/components/sheet/directives/sheet-close/sheet-close.directive.mjs +38 -0
- package/esm2022/components/sheet/directives/sheet-stop/sheet-stop.directive.mjs +37 -0
- package/esm2022/components/sheet/directives/sheet-top/sheet-top.directive.mjs +51 -0
- package/esm2022/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.mjs +76 -0
- package/esm2022/components/sheet/index.mjs +15 -0
- package/esm2022/components/sheet/sheet-options.mjs +21 -0
- package/esm2022/components/sheet/sheet-tokens.mjs +14 -0
- package/esm2022/components/sheet/sheet.directive.mjs +38 -0
- package/esm2022/components/sheet/sheet.mjs +2 -0
- package/esm2022/components/sheet/sheet.module.mjs +74 -0
- package/esm2022/components/sheet/sheet.service.mjs +51 -0
- package/esm2022/components/sheet/taiga-ui-legacy-components-sheet.mjs +5 -0
- package/esm2022/components/svg/content-processor.mjs +38 -0
- package/esm2022/components/svg/deprecated-icons.mjs +59 -0
- package/esm2022/components/svg/index.mjs +6 -0
- package/esm2022/components/svg/svg-options.mjs +60 -0
- package/esm2022/components/svg/svg.component.mjs +147 -0
- package/esm2022/components/svg/svg.service.mjs +64 -0
- package/esm2022/components/svg/taiga-ui-legacy-components-svg.mjs +5 -0
- package/esm2022/components/table-bar/index.mjs +6 -0
- package/esm2022/components/table-bar/table-bar.component.mjs +33 -0
- package/esm2022/components/table-bar/table-bar.directive.mjs +21 -0
- package/esm2022/components/table-bar/table-bar.options.mjs +16 -0
- package/esm2022/components/table-bar/table-bars-host.component.mjs +35 -0
- package/esm2022/components/table-bar/table-bars.service.mjs +21 -0
- package/esm2022/components/table-bar/taiga-ui-legacy-components-table-bar.mjs +5 -0
- package/esm2022/components/tag/index.mjs +4 -0
- package/esm2022/components/tag/tag.component.mjs +171 -0
- package/esm2022/components/tag/tag.module.mjs +38 -0
- package/esm2022/components/tag/tag.options.mjs +15 -0
- package/esm2022/components/tag/taiga-ui-legacy-components-tag.mjs +5 -0
- package/esm2022/components/taiga-ui-legacy-components.mjs +5 -0
- package/esm2022/components/textarea/index.mjs +4 -0
- package/esm2022/components/textarea/taiga-ui-legacy-components-textarea.mjs +5 -0
- package/esm2022/components/textarea/textarea.component.mjs +189 -0
- package/esm2022/components/textarea/textarea.directive.mjs +20 -0
- package/esm2022/components/textarea/textarea.module.mjs +64 -0
- package/esm2022/components/tooltip/index.mjs +3 -0
- package/esm2022/components/tooltip/taiga-ui-legacy-components-tooltip.mjs +5 -0
- package/esm2022/components/tooltip/tooltip.component.mjs +47 -0
- package/esm2022/components/tooltip/tooltip.module.mjs +24 -0
- package/esm2022/directives/index.mjs +6 -0
- package/esm2022/directives/legacy-dropdown-open-monitor/index.mjs +2 -0
- package/esm2022/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.mjs +40 -0
- package/esm2022/directives/legacy-dropdown-open-monitor/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +5 -0
- package/esm2022/directives/taiga-ui-legacy-directives.mjs +5 -0
- package/esm2022/directives/textfield-controller/index.mjs +15 -0
- package/esm2022/directives/textfield-controller/taiga-ui-legacy-directives-textfield-controller.mjs +5 -0
- package/esm2022/directives/textfield-controller/textfield-appearance.directive.mjs +32 -0
- package/esm2022/directives/textfield-controller/textfield-cleaner.directive.mjs +25 -0
- package/esm2022/directives/textfield-controller/textfield-controller.module.mjs +72 -0
- package/esm2022/directives/textfield-controller/textfield-controller.provider.mjs +44 -0
- package/esm2022/directives/textfield-controller/textfield-custom-content.directive.mjs +25 -0
- package/esm2022/directives/textfield-controller/textfield-filler.directive.mjs +25 -0
- package/esm2022/directives/textfield-controller/textfield-icon-left.directive.mjs +21 -0
- package/esm2022/directives/textfield-controller/textfield-icon.directive.mjs +21 -0
- package/esm2022/directives/textfield-controller/textfield-label-outside.directive.mjs +29 -0
- package/esm2022/directives/textfield-controller/textfield-postfix.directive.mjs +25 -0
- package/esm2022/directives/textfield-controller/textfield-prefix.directive.mjs +25 -0
- package/esm2022/directives/textfield-controller/textfield-size.directive.mjs +25 -0
- package/esm2022/directives/textfield-controller/textfield.controller.mjs +48 -0
- package/esm2022/directives/textfield-controller/textfield.options.mjs +14 -0
- package/esm2022/directives/unfinished-validator/index.mjs +3 -0
- package/esm2022/directives/unfinished-validator/taiga-ui-legacy-directives-unfinished-validator.mjs +5 -0
- package/esm2022/directives/unfinished-validator/unfinished-validator.directive.mjs +25 -0
- package/esm2022/directives/unfinished-validator/unfinished.validator.mjs +15 -0
- package/esm2022/directives/value-accessor/index.mjs +4 -0
- package/esm2022/directives/value-accessor/taiga-ui-legacy-directives-value-accessor.mjs +5 -0
- package/esm2022/directives/value-accessor/value-accessor.directive.mjs +16 -0
- package/esm2022/directives/value-accessor/value-accessor.module.mjs +17 -0
- package/esm2022/directives/value-accessor/value-accessor.provider.mjs +10 -0
- package/esm2022/directives/wrapper/index.mjs +3 -0
- package/esm2022/directives/wrapper/taiga-ui-legacy-directives-wrapper.mjs +5 -0
- package/esm2022/directives/wrapper/wrapper.directive.mjs +85 -0
- package/esm2022/directives/wrapper/wrapper.module.mjs +20 -0
- package/esm2022/index.mjs +7 -0
- package/esm2022/pipes/format-phone/format-phone.pipe.mjs +50 -0
- package/esm2022/pipes/format-phone/index.mjs +2 -0
- package/esm2022/pipes/format-phone/taiga-ui-legacy-pipes-format-phone.mjs +5 -0
- package/esm2022/pipes/index.mjs +4 -0
- package/esm2022/pipes/iso-to-country-code/index.mjs +2 -0
- package/esm2022/pipes/iso-to-country-code/iso-to-country-code.pipe.mjs +43 -0
- package/esm2022/pipes/iso-to-country-code/taiga-ui-legacy-pipes-iso-to-country-code.mjs +5 -0
- package/esm2022/pipes/taiga-ui-legacy-pipes.mjs +5 -0
- package/esm2022/pipes/to-country-code/index.mjs +2 -0
- package/esm2022/pipes/to-country-code/taiga-ui-legacy-pipes-to-country-code.mjs +5 -0
- package/esm2022/pipes/to-country-code/to-country-code.pipe.mjs +73 -0
- package/esm2022/taiga-ui-legacy.mjs +5 -0
- package/esm2022/tokens/countries-masks.mjs +254 -0
- package/esm2022/tokens/focusable-item-accessor.mjs +14 -0
- package/esm2022/tokens/fonts-ready.mjs +7 -0
- package/esm2022/tokens/icons.mjs +7 -0
- package/esm2022/tokens/index.mjs +15 -0
- package/esm2022/tokens/is-apple.mjs +9 -0
- package/esm2022/tokens/is-chromium.mjs +8 -0
- package/esm2022/tokens/is-firefox.mjs +9 -0
- package/esm2022/tokens/is-stackblitz.mjs +5 -0
- package/esm2022/tokens/month-formatter.mjs +17 -0
- package/esm2022/tokens/sanitizer.mjs +6 -0
- package/esm2022/tokens/taiga-ui-legacy-tokens.mjs +5 -0
- package/esm2022/tokens/textfield-appearance.mjs +7 -0
- package/esm2022/tokens/textfield-host.mjs +10 -0
- package/esm2022/tokens/touch-supported.mjs +5 -0
- package/esm2022/tokens/value-accessor.mjs +7 -0
- package/esm2022/utils/date-mode-maskito-adapter.mjs +6 -0
- package/esm2022/utils/format-phone.mjs +59 -0
- package/esm2022/utils/get-border.mjs +20 -0
- package/esm2022/utils/get-max-allowed-phone-length.mjs +25 -0
- package/esm2022/utils/get-safe-area-size.mjs +17 -0
- package/esm2022/utils/icons-path-factory.mjs +14 -0
- package/esm2022/utils/index.mjs +14 -0
- package/esm2022/utils/is-apple.mjs +6 -0
- package/esm2022/utils/is-presumed-html-string.mjs +6 -0
- package/esm2022/utils/iso-to-country-code.mjs +15 -0
- package/esm2022/utils/not-kz-region.mjs +23 -0
- package/esm2022/utils/process-icon.mjs +32 -0
- package/esm2022/utils/specific-dropdown-controllers.mjs +6 -0
- package/esm2022/utils/status.mjs +2 -0
- package/esm2022/utils/taiga-ui-legacy-utils.mjs +5 -0
- package/fesm2022/taiga-ui-legacy-classes.mjs +377 -0
- package/fesm2022/taiga-ui-legacy-classes.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +73 -0
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +280 -0
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs +177 -0
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +277 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +334 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +438 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs +358 -0
- package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +209 -0
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs +219 -0
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +344 -0
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-password.mjs +167 -0
- package/fesm2022/taiga-ui-legacy-components-input-password.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs +204 -0
- package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +355 -0
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs +253 -0
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +192 -0
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +488 -0
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs +447 -0
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-year.mjs +176 -0
- package/fesm2022/taiga-ui-legacy-components-input-year.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input.mjs +132 -0
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-island.mjs +80 -0
- package/fesm2022/taiga-ui-legacy-components-island.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +47 -0
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +628 -0
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +443 -0
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs +88 -0
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-select.mjs +323 -0
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-sheet.mjs +561 -0
- package/fesm2022/taiga-ui-legacy-components-sheet.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-svg.mjs +356 -0
- package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-table-bar.mjs +115 -0
- package/fesm2022/taiga-ui-legacy-components-table-bar.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-tag.mjs +225 -0
- package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs +267 -0
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +71 -0
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components.mjs +36 -0
- package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +46 -0
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +365 -0
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +44 -0
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +43 -0
- package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +107 -0
- package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-directives.mjs +10 -0
- package/fesm2022/taiga-ui-legacy-directives.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-pipes-format-phone.mjs +56 -0
- package/fesm2022/taiga-ui-legacy-pipes-format-phone.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-pipes-iso-to-country-code.mjs +49 -0
- package/fesm2022/taiga-ui-legacy-pipes-iso-to-country-code.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-pipes-to-country-code.mjs +79 -0
- package/fesm2022/taiga-ui-legacy-pipes-to-country-code.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-pipes.mjs +8 -0
- package/fesm2022/taiga-ui-legacy-pipes.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-tokens.mjs +348 -0
- package/fesm2022/taiga-ui-legacy-tokens.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-utils.mjs +235 -0
- package/fesm2022/taiga-ui-legacy-utils.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy.mjs +11 -0
- package/fesm2022/taiga-ui-legacy.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/package.json +303 -0
- package/pipes/format-phone/format-phone.pipe.d.ts +34 -0
- package/pipes/format-phone/index.d.ts +1 -0
- package/pipes/index.d.ts +3 -0
- package/pipes/iso-to-country-code/index.d.ts +1 -0
- package/pipes/iso-to-country-code/iso-to-country-code.pipe.d.ts +29 -0
- package/pipes/to-country-code/index.d.ts +1 -0
- package/pipes/to-country-code/to-country-code.pipe.d.ts +37 -0
- package/styles/mixins/mixins.less +252 -0
- package/styles/mixins/mixins.scss +230 -0
- package/styles/mixins/textfield.less +315 -0
- package/styles/mixins/textfield.scss +306 -0
- package/styles/mixins/wrapper.less +65 -0
- package/styles/mixins/wrapper.scss +59 -0
- package/styles/taiga-ui-local.less +4 -0
- package/styles/taiga-ui-local.scss +4 -0
- package/styles/taiga-ui-theme.less +15 -0
- package/styles/wrapper/accent.less +28 -0
- package/styles/wrapper/base.less +44 -0
- package/styles/wrapper/floating.less +19 -0
- package/styles/wrapper/glass.less +31 -0
- package/styles/wrapper/icon.less +53 -0
- package/styles/wrapper/mono.less +23 -0
- package/styles/wrapper/none.less +5 -0
- package/styles/wrapper/opposite.less +33 -0
- package/styles/wrapper/outline.less +52 -0
- package/styles/wrapper/primary.less +32 -0
- package/styles/wrapper/secondary-destructive.less +16 -0
- package/styles/wrapper/secondary.less +47 -0
- package/styles/wrapper/table.less +82 -0
- package/styles/wrapper/textfield.less +80 -0
- package/styles/wrapper/whiteblock.less +47 -0
- package/tokens/countries-masks.d.ts +7 -0
- package/tokens/focusable-item-accessor.d.ts +22 -0
- package/tokens/fonts-ready.d.ts +3 -0
- package/tokens/icons.d.ts +5 -0
- package/tokens/index.d.ts +14 -0
- package/tokens/is-apple.d.ts +4 -0
- package/tokens/is-chromium.d.ts +4 -0
- package/tokens/is-firefox.d.ts +4 -0
- package/tokens/is-stackblitz.d.ts +1 -0
- package/tokens/month-formatter.d.ts +10 -0
- package/tokens/sanitizer.d.ts +6 -0
- package/tokens/textfield-appearance.d.ts +5 -0
- package/tokens/textfield-host.d.ts +17 -0
- package/tokens/touch-supported.d.ts +1 -0
- package/tokens/value-accessor.d.ts +7 -0
- package/utils/date-mode-maskito-adapter.d.ts +3 -0
- package/utils/format-phone.d.ts +29 -0
- package/utils/get-border.d.ts +2 -0
- package/utils/get-max-allowed-phone-length.d.ts +23 -0
- package/utils/get-safe-area-size.d.ts +6 -0
- package/utils/icons-path-factory.d.ts +4 -0
- package/utils/index.d.ts +13 -0
- package/utils/is-apple.d.ts +1 -0
- package/utils/is-presumed-html-string.d.ts +1 -0
- package/utils/iso-to-country-code.d.ts +12 -0
- package/utils/not-kz-region.d.ts +19 -0
- package/utils/process-icon.d.ts +1 -0
- package/utils/specific-dropdown-controllers.d.ts +1 -0
- package/utils/status.d.ts +1 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { inject, EventEmitter, TemplateRef, Component, ChangeDetectionStrategy, ViewChild, ContentChild, Input, Output, HostBinding, Directive, NgModule } from '@angular/core';
|
|
4
|
+
import { maskitoTransform, MASKITO_DEFAULT_OPTIONS } from '@maskito/core';
|
|
5
|
+
import { maskitoPrefixPostprocessorGenerator, maskitoCaretGuard } from '@maskito/kit';
|
|
6
|
+
import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
|
|
7
|
+
import { tuiCreateToken, tuiProvideOptions, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
|
+
import { tuiAsDataListHost, TuiDataListDirective } from '@taiga-ui/core/components/data-list';
|
|
9
|
+
import * as i1$1 from '@taiga-ui/core/directives/dropdown';
|
|
10
|
+
import { TuiDropdownOpen, TuiDropdown } from '@taiga-ui/core/directives/dropdown';
|
|
11
|
+
import { AbstractTuiControl, tuiAsControl, AbstractTuiTextfieldHost } from '@taiga-ui/legacy/classes';
|
|
12
|
+
import * as i2 from '@taiga-ui/legacy/components/primitive-textfield';
|
|
13
|
+
import { TuiPrimitiveTextfieldComponent, TuiPrimitiveTextfieldModule, TuiTextfieldComponent } from '@taiga-ui/legacy/components/primitive-textfield';
|
|
14
|
+
import * as i3 from '@taiga-ui/legacy/directives';
|
|
15
|
+
import { TUI_TEXTFIELD_CLEANER, TUI_TEXTFIELD_SIZE, TuiTextfieldControllerModule, TuiValueAccessorModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
|
|
16
|
+
import { tuiAsFocusableItemAccessor, tuiAsTextfieldHost } from '@taiga-ui/legacy/tokens';
|
|
17
|
+
import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/legacy/utils';
|
|
18
|
+
import * as i1 from '@maskito/angular';
|
|
19
|
+
import { MaskitoDirective } from '@maskito/angular';
|
|
20
|
+
|
|
21
|
+
const TUI_INPUT_PHONE_DEFAULT_OPTIONS = {
|
|
22
|
+
phoneMaskAfterCountryCode: '### ###-##-##',
|
|
23
|
+
allowText: false,
|
|
24
|
+
countryCode: '+7',
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Default parameters for input phone component
|
|
28
|
+
*/
|
|
29
|
+
const TUI_INPUT_PHONE_OPTIONS = tuiCreateToken(TUI_INPUT_PHONE_DEFAULT_OPTIONS);
|
|
30
|
+
function tuiInputPhoneOptionsProvider(options) {
|
|
31
|
+
return tuiProvideOptions(TUI_INPUT_PHONE_OPTIONS, options, TUI_INPUT_PHONE_DEFAULT_OPTIONS);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const countDigits = (value) => value.replaceAll(/\D/g, '').length;
|
|
35
|
+
/**
|
|
36
|
+
* `InputPhone` component sets country code as non-removable prefix.
|
|
37
|
+
* This prefix appears on focus and cannot be erased.
|
|
38
|
+
* But users sometimes can copy complete phone number (from any different source)
|
|
39
|
+
* and try to insert the whole string inside our `InputPhone` textfield.
|
|
40
|
+
* This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.
|
|
41
|
+
*/
|
|
42
|
+
function tuiCreateCompletePhoneInsertionPreprocessor(countryCode, phoneMaskAfterCountryCode) {
|
|
43
|
+
const completePhoneLength = (countryCode + phoneMaskAfterCountryCode).replaceAll(/[^#\d]+/g, '').length;
|
|
44
|
+
const trimCountryPrefix = (value) => countryCode === '+7'
|
|
45
|
+
? value.replace(/^(\+?7?\s?8?)\s?/, '')
|
|
46
|
+
: value.replace(new RegExp(`^(\\+?${countryCode.replace('+', '')}?)\\s?`), '');
|
|
47
|
+
return ({ elementState, data }) => {
|
|
48
|
+
const { value, selection } = elementState;
|
|
49
|
+
return {
|
|
50
|
+
elementState: {
|
|
51
|
+
selection,
|
|
52
|
+
value:
|
|
53
|
+
/**
|
|
54
|
+
* The only possible case when `value` includes digits more
|
|
55
|
+
* than mask expression allows – browser autofill.
|
|
56
|
+
* It means that we are inside `input`-event
|
|
57
|
+
* and mask are ready to reject "extra" characters.
|
|
58
|
+
* We should cut leading country prefix to save trailing characters!
|
|
59
|
+
*/
|
|
60
|
+
countDigits(value) > completePhoneLength
|
|
61
|
+
? trimCountryPrefix(value)
|
|
62
|
+
: value,
|
|
63
|
+
},
|
|
64
|
+
data: countDigits(data) >= completePhoneLength
|
|
65
|
+
? /**
|
|
66
|
+
* User tries to insert/drop the complete phone number (with country prefix).
|
|
67
|
+
* We should drop already existing non-removable prefix.
|
|
68
|
+
*/
|
|
69
|
+
trimCountryPrefix(data)
|
|
70
|
+
: data,
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* tuiCreatePhoneMaskExpression('+1', '(###) ###-####');
|
|
80
|
+
*/
|
|
81
|
+
function tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode) {
|
|
82
|
+
return [
|
|
83
|
+
...countryCode.split(''),
|
|
84
|
+
' ',
|
|
85
|
+
...phoneMaskAfterCountryCode
|
|
86
|
+
.replaceAll(/[^#\- ()]+/g, '')
|
|
87
|
+
.split('')
|
|
88
|
+
.map(item => (item === '#' ? /\d/ : item)),
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const MASK_SYMBOLS = /[ \-_()]/g;
|
|
93
|
+
function isText(value) {
|
|
94
|
+
return Number.isNaN(parseInt(value.replaceAll(MASK_SYMBOLS, ''), 10));
|
|
95
|
+
}
|
|
96
|
+
class TuiInputPhoneComponent extends AbstractTuiControl {
|
|
97
|
+
constructor() {
|
|
98
|
+
super(...arguments);
|
|
99
|
+
this.textfieldCleaner = inject(TUI_TEXTFIELD_CLEANER);
|
|
100
|
+
this.options = inject(TUI_INPUT_PHONE_OPTIONS);
|
|
101
|
+
this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
|
|
102
|
+
this.open = false;
|
|
103
|
+
this.phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;
|
|
104
|
+
this.allowText = this.options.allowText;
|
|
105
|
+
this.search = '';
|
|
106
|
+
this.searchChange = new EventEmitter();
|
|
107
|
+
this.countryCode = this.options.countryCode;
|
|
108
|
+
}
|
|
109
|
+
set countryCodeSetter(newCountryCode) {
|
|
110
|
+
const prevCountryCode = this.countryCode;
|
|
111
|
+
this.countryCode = newCountryCode;
|
|
112
|
+
this.updateValueWithNewCountryCode(prevCountryCode, newCountryCode);
|
|
113
|
+
}
|
|
114
|
+
get size() {
|
|
115
|
+
return this.textfieldSize.size;
|
|
116
|
+
}
|
|
117
|
+
get nativeFocusableElement() {
|
|
118
|
+
return !this.textfield || this.computedDisabled
|
|
119
|
+
? null
|
|
120
|
+
: this.textfield.nativeFocusableElement;
|
|
121
|
+
}
|
|
122
|
+
get focused() {
|
|
123
|
+
return (tuiIsNativeFocused(this.nativeFocusableElement) || !!this.dropdown?.focused);
|
|
124
|
+
}
|
|
125
|
+
get nativeValue() {
|
|
126
|
+
return (this.nativeFocusableElement?.value ||
|
|
127
|
+
maskitoTransform(this.value, this.maskOptions));
|
|
128
|
+
}
|
|
129
|
+
set nativeValue(value) {
|
|
130
|
+
if (this.nativeFocusableElement) {
|
|
131
|
+
this.nativeFocusableElement.value = value;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
get inputMode() {
|
|
135
|
+
return this.allowText ? 'text' : 'numeric';
|
|
136
|
+
}
|
|
137
|
+
onValueChange(value) {
|
|
138
|
+
const parsed = isText(value)
|
|
139
|
+
? value
|
|
140
|
+
: value.replaceAll(MASK_SYMBOLS, '').slice(0, this.maxPhoneLength);
|
|
141
|
+
this.updateSearch(parsed);
|
|
142
|
+
this.value = parsed === this.countryCode || isText(parsed) ? '' : parsed;
|
|
143
|
+
this.open = true;
|
|
144
|
+
if (!this.value && !this.allowText) {
|
|
145
|
+
this.nativeValue = this.nonRemovablePrefix;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
handleOption(item) {
|
|
149
|
+
this.focusInput();
|
|
150
|
+
this.value = item;
|
|
151
|
+
this.nativeValue = maskitoTransform(this.value, this.maskOptions);
|
|
152
|
+
this.updateSearch('');
|
|
153
|
+
this.open = false;
|
|
154
|
+
}
|
|
155
|
+
setDisabledState() {
|
|
156
|
+
super.setDisabledState();
|
|
157
|
+
this.open = false;
|
|
158
|
+
}
|
|
159
|
+
writeValue(value) {
|
|
160
|
+
super.writeValue(value);
|
|
161
|
+
this.nativeValue = maskitoTransform(value || '', this.maskOptions);
|
|
162
|
+
this.updateSearch('');
|
|
163
|
+
}
|
|
164
|
+
get canOpen() {
|
|
165
|
+
return this.interactive && !!this.datalist;
|
|
166
|
+
}
|
|
167
|
+
get canClean() {
|
|
168
|
+
return (this.nativeValue !== this.nonRemovablePrefix && this.textfieldCleaner.cleaner);
|
|
169
|
+
}
|
|
170
|
+
get maskOptions() {
|
|
171
|
+
return this.calculateMask(this.countryCode, this.phoneMaskAfterCountryCode, this.nonRemovablePrefix, this.allowText);
|
|
172
|
+
}
|
|
173
|
+
onActiveZone(active) {
|
|
174
|
+
this.updateFocused(active);
|
|
175
|
+
if (active && !this.nativeValue && !this.readOnly && !this.allowText) {
|
|
176
|
+
this.updateSearch(this.nonRemovablePrefix);
|
|
177
|
+
this.nativeValue = this.nonRemovablePrefix;
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (this.nativeValue === this.nonRemovablePrefix || this.isTextValue) {
|
|
181
|
+
this.updateSearch('');
|
|
182
|
+
this.nativeValue = '';
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (!active && !this.allowText && this.nativeFocusableElement) {
|
|
186
|
+
this.nativeValue = this.nativeValue.replace(/\D$/, '');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
getFallbackValue() {
|
|
190
|
+
return '';
|
|
191
|
+
}
|
|
192
|
+
get nonRemovablePrefix() {
|
|
193
|
+
return `${this.countryCode} `;
|
|
194
|
+
}
|
|
195
|
+
get maxPhoneLength() {
|
|
196
|
+
return (this.countryCode.length +
|
|
197
|
+
this.phoneMaskAfterCountryCode.replaceAll(/[^#]+/g, '').length);
|
|
198
|
+
}
|
|
199
|
+
get isTextValue() {
|
|
200
|
+
return !!this.search && isText(this.search);
|
|
201
|
+
}
|
|
202
|
+
calculateMask(countryCode, phoneMaskAfterCountryCode, nonRemovablePrefix, allowText) {
|
|
203
|
+
const mask = tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode);
|
|
204
|
+
const preprocessors = [
|
|
205
|
+
tuiCreateCompletePhoneInsertionPreprocessor(countryCode, phoneMaskAfterCountryCode),
|
|
206
|
+
];
|
|
207
|
+
return allowText
|
|
208
|
+
? {
|
|
209
|
+
mask: ({ value }) => isText(value) && value !== '+'
|
|
210
|
+
? MASKITO_DEFAULT_OPTIONS.mask
|
|
211
|
+
: mask,
|
|
212
|
+
preprocessors,
|
|
213
|
+
}
|
|
214
|
+
: {
|
|
215
|
+
mask,
|
|
216
|
+
preprocessors,
|
|
217
|
+
postprocessors: [
|
|
218
|
+
maskitoPrefixPostprocessorGenerator(nonRemovablePrefix),
|
|
219
|
+
],
|
|
220
|
+
plugins: [
|
|
221
|
+
maskitoCaretGuard((value, [from, to]) => [
|
|
222
|
+
from === to ? nonRemovablePrefix.length : 0,
|
|
223
|
+
value.length,
|
|
224
|
+
]),
|
|
225
|
+
],
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
focusInput() {
|
|
229
|
+
if (this.nativeFocusableElement) {
|
|
230
|
+
this.nativeFocusableElement.focus({ preventScroll: true });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
updateSearch(search) {
|
|
234
|
+
if (this.search === search) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
this.search = search;
|
|
238
|
+
this.searchChange.emit(search);
|
|
239
|
+
}
|
|
240
|
+
updateValueWithNewCountryCode(prevCountryCode, newCountryCode) {
|
|
241
|
+
if (!this.isTextValue) {
|
|
242
|
+
this.value = this.value.replace(prevCountryCode, newCountryCode);
|
|
243
|
+
this.nativeValue = maskitoTransform(this.value, this.maskOptions);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputPhoneComponent, selector: "tui-input-phone", inputs: { phoneMaskAfterCountryCode: "phoneMaskAfterCountryCode", allowText: "allowText", search: "search", countryCodeSetter: ["countryCode", "countryCodeSetter"] }, outputs: { searchChange: "searchChange" }, host: { properties: { "attr.data-size": "this.size" } }, providers: [
|
|
248
|
+
tuiAsFocusableItemAccessor(TuiInputPhoneComponent),
|
|
249
|
+
tuiAsControl(TuiInputPhoneComponent),
|
|
250
|
+
tuiAsDataListHost(TuiInputPhoneComponent),
|
|
251
|
+
], queries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }, { propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCleaner]=\"canClean\"\n [(value)]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}\n"], dependencies: [{ kind: "directive", type: i1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i2.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i2.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i3.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i3.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { kind: "directive", type: i3.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "directive", type: i1$1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1$1.TuiDropdownOpen, selector: "[tuiDropdownOpen],[tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }], viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
252
|
+
}
|
|
253
|
+
__decorate([
|
|
254
|
+
tuiPure
|
|
255
|
+
], TuiInputPhoneComponent.prototype, "calculateMask", null);
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneComponent, decorators: [{
|
|
257
|
+
type: Component,
|
|
258
|
+
args: [{ selector: 'tui-input-phone', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
259
|
+
tuiAsFocusableItemAccessor(TuiInputPhoneComponent),
|
|
260
|
+
tuiAsControl(TuiInputPhoneComponent),
|
|
261
|
+
tuiAsDataListHost(TuiInputPhoneComponent),
|
|
262
|
+
], viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCleaner]=\"canClean\"\n [(value)]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}:host._disabled{pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}\n"] }]
|
|
263
|
+
}], propDecorators: { dropdown: [{
|
|
264
|
+
type: ViewChild,
|
|
265
|
+
args: [TuiDropdownOpen]
|
|
266
|
+
}], textfield: [{
|
|
267
|
+
type: ViewChild,
|
|
268
|
+
args: [TuiPrimitiveTextfieldComponent]
|
|
269
|
+
}], datalist: [{
|
|
270
|
+
type: ContentChild,
|
|
271
|
+
args: [TuiDataListDirective, { read: TemplateRef }]
|
|
272
|
+
}], phoneMaskAfterCountryCode: [{
|
|
273
|
+
type: Input
|
|
274
|
+
}], allowText: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], search: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], searchChange: [{
|
|
279
|
+
type: Output
|
|
280
|
+
}], countryCodeSetter: [{
|
|
281
|
+
type: Input,
|
|
282
|
+
args: ['countryCode']
|
|
283
|
+
}], size: [{
|
|
284
|
+
type: HostBinding,
|
|
285
|
+
args: ['attr.data-size']
|
|
286
|
+
}], calculateMask: [] } });
|
|
287
|
+
|
|
288
|
+
class TuiInputPhoneDirective extends AbstractTuiTextfieldHost {
|
|
289
|
+
get value() {
|
|
290
|
+
return this.host.nativeValue;
|
|
291
|
+
}
|
|
292
|
+
onValueChange(value) {
|
|
293
|
+
this.host.onValueChange(value);
|
|
294
|
+
}
|
|
295
|
+
process(input) {
|
|
296
|
+
this.input = input;
|
|
297
|
+
}
|
|
298
|
+
ngDoCheck() {
|
|
299
|
+
if (!this.input) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
this.input.type = 'tel';
|
|
303
|
+
this.input.inputMode = this.host.inputMode;
|
|
304
|
+
}
|
|
305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
306
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputPhoneDirective, selector: "tui-input-phone", providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)], usesInheritance: true, ngImport: i0 }); }
|
|
307
|
+
}
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneDirective, decorators: [{
|
|
309
|
+
type: Directive,
|
|
310
|
+
args: [{
|
|
311
|
+
selector: 'tui-input-phone',
|
|
312
|
+
providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],
|
|
313
|
+
}]
|
|
314
|
+
}] });
|
|
315
|
+
|
|
316
|
+
class TuiInputPhoneModule {
|
|
317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
318
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneModule, declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective], imports: [MaskitoDirective,
|
|
319
|
+
TuiPrimitiveTextfieldModule,
|
|
320
|
+
TuiTextfieldControllerModule,
|
|
321
|
+
TuiValueAccessorModule,
|
|
322
|
+
TuiLegacyDropdownOpenMonitorDirective, i1$1.TuiDropdownOptionsDirective, i1$1.TuiDropdownDriverDirective, i1$1.TuiDropdownDirective, i1$1.TuiDropdownComponent, i1$1.TuiDropdownOpen, i1$1.TuiDropdownPortal, i1$1.TuiDropdownManual, i1$1.TuiDropdownHover, i1$1.TuiDropdownContext, i1$1.TuiDropdownPosition, i1$1.TuiDropdownPositionSided, i1$1.TuiDropdownSelection], exports: [TuiInputPhoneComponent,
|
|
323
|
+
TuiInputPhoneDirective,
|
|
324
|
+
TuiTextfieldComponent, i1$1.TuiDropdownOptionsDirective, i1$1.TuiDropdownDriverDirective, i1$1.TuiDropdownDirective, i1$1.TuiDropdownComponent, i1$1.TuiDropdownOpen, i1$1.TuiDropdownPortal, i1$1.TuiDropdownManual, i1$1.TuiDropdownHover, i1$1.TuiDropdownContext, i1$1.TuiDropdownPosition, i1$1.TuiDropdownPositionSided, i1$1.TuiDropdownSelection] }); }
|
|
325
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneModule, imports: [TuiPrimitiveTextfieldModule,
|
|
326
|
+
TuiTextfieldControllerModule,
|
|
327
|
+
TuiValueAccessorModule, i1$1.TuiDropdownComponent] }); }
|
|
328
|
+
}
|
|
329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneModule, decorators: [{
|
|
330
|
+
type: NgModule,
|
|
331
|
+
args: [{
|
|
332
|
+
imports: [
|
|
333
|
+
MaskitoDirective,
|
|
334
|
+
TuiPrimitiveTextfieldModule,
|
|
335
|
+
TuiTextfieldControllerModule,
|
|
336
|
+
TuiValueAccessorModule,
|
|
337
|
+
TuiLegacyDropdownOpenMonitorDirective,
|
|
338
|
+
...TuiDropdown,
|
|
339
|
+
],
|
|
340
|
+
declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],
|
|
341
|
+
exports: [
|
|
342
|
+
TuiInputPhoneComponent,
|
|
343
|
+
TuiInputPhoneDirective,
|
|
344
|
+
TuiTextfieldComponent,
|
|
345
|
+
...TuiDropdown,
|
|
346
|
+
],
|
|
347
|
+
}]
|
|
348
|
+
}] });
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Generated bundle index. Do not edit.
|
|
352
|
+
*/
|
|
353
|
+
|
|
354
|
+
export { TUI_INPUT_PHONE_DEFAULT_OPTIONS, TUI_INPUT_PHONE_OPTIONS, TuiInputPhoneComponent, TuiInputPhoneDirective, TuiInputPhoneModule, tuiInputPhoneOptionsProvider };
|
|
355
|
+
//# sourceMappingURL=taiga-ui-legacy-components-input-phone.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-input-phone.mjs","sources":["../../../projects/legacy/components/input-phone/input-phone.options.ts","../../../projects/legacy/components/input-phone/utils/complete-phone-insertion-preprocessor.ts","../../../projects/legacy/components/input-phone/utils/create-phone-mask-expression.ts","../../../projects/legacy/components/input-phone/input-phone.component.ts","../../../projects/legacy/components/input-phone/input-phone.template.html","../../../projects/legacy/components/input-phone/input-phone.directive.ts","../../../projects/legacy/components/input-phone/input-phone.module.ts","../../../projects/legacy/components/input-phone/taiga-ui-legacy-components-input-phone.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiInputPhoneOptions {\n readonly allowText: boolean;\n readonly countryCode: string;\n readonly phoneMaskAfterCountryCode: string;\n}\n\nexport const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions = {\n phoneMaskAfterCountryCode: '### ###-##-##',\n allowText: false,\n countryCode: '+7',\n};\n\n/**\n * Default parameters for input phone component\n */\nexport const TUI_INPUT_PHONE_OPTIONS = tuiCreateToken(TUI_INPUT_PHONE_DEFAULT_OPTIONS);\n\nexport function tuiInputPhoneOptionsProvider(\n options: Partial<TuiInputPhoneOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PHONE_OPTIONS,\n options,\n TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n );\n}\n","import type {MaskitoPreprocessor} from '@maskito/core';\n\nconst countDigits = (value: string): number => value.replaceAll(/\\D/g, '').length;\n\n/**\n * `InputPhone` component sets country code as non-removable prefix.\n * This prefix appears on focus and cannot be erased.\n * But users sometimes can copy complete phone number (from any different source)\n * and try to insert the whole string inside our `InputPhone` textfield.\n * This preprocessor helps to avoid country prefix duplication on paste/drop/autofill events.\n */\nexport function tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): MaskitoPreprocessor {\n const completePhoneLength = (countryCode + phoneMaskAfterCountryCode).replaceAll(\n /[^#\\d]+/g,\n '',\n ).length;\n\n const trimCountryPrefix = (value: string): string =>\n countryCode === '+7'\n ? value.replace(/^(\\+?7?\\s?8?)\\s?/, '')\n : value.replace(\n new RegExp(`^(\\\\+?${countryCode.replace('+', '')}?)\\\\s?`),\n '',\n );\n\n return ({elementState, data}) => {\n const {value, selection} = elementState;\n\n return {\n elementState: {\n selection,\n value:\n /**\n * The only possible case when `value` includes digits more\n * than mask expression allows – browser autofill.\n * It means that we are inside `input`-event\n * and mask are ready to reject \"extra\" characters.\n * We should cut leading country prefix to save trailing characters!\n */\n countDigits(value) > completePhoneLength\n ? trimCountryPrefix(value)\n : value,\n },\n data:\n countDigits(data) >= completePhoneLength\n ? /**\n * User tries to insert/drop the complete phone number (with country prefix).\n * We should drop already existing non-removable prefix.\n */\n trimCountryPrefix(data)\n : data,\n };\n };\n}\n","/**\n * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number\n *\n * @example\n * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');\n */\nexport function tuiCreatePhoneMaskExpression(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): Array<RegExp | string> {\n return [\n ...countryCode.split(''),\n ' ',\n ...phoneMaskAfterCountryCode\n .replaceAll(/[^#\\- ()]+/g, '')\n .split('')\n .map(item => (item === '#' ? /\\d/ : item)),\n ];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {MASKITO_DEFAULT_OPTIONS, maskitoTransform} from '@maskito/core';\nimport {maskitoCaretGuard, maskitoPrefixPostprocessorGenerator} from '@maskito/kit';\nimport type {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsDataListHost,\n TuiDataListDirective,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {AbstractTuiControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_TEXTFIELD_CLEANER, TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport type {TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {tuiAsFocusableItemAccessor} from '@taiga-ui/legacy/tokens';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/legacy/utils';\n\nimport {TUI_INPUT_PHONE_OPTIONS} from './input-phone.options';\nimport {\n tuiCreateCompletePhoneInsertionPreprocessor,\n tuiCreatePhoneMaskExpression,\n} from './utils';\n\nconst MASK_SYMBOLS = /[ \\-_()]/g;\n\nfunction isText(value: string): boolean {\n return Number.isNaN(parseInt(value.replaceAll(MASK_SYMBOLS, ''), 10));\n}\n\n@Component({\n selector: 'tui-input-phone',\n templateUrl: './input-phone.template.html',\n styleUrls: ['./input-phone.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputPhoneComponent),\n tuiAsControl(TuiInputPhoneComponent),\n tuiAsDataListHost(TuiInputPhoneComponent),\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputPhoneComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiDropdownOpen)\n private readonly dropdown?: TuiDropdownOpen;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly textfieldCleaner = inject(TUI_TEXTFIELD_CLEANER);\n private readonly options = inject(TUI_INPUT_PHONE_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n protected readonly datalist?: TemplateRef<TuiContext<TuiActiveZone>>;\n\n protected open = false;\n\n @Input()\n public phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;\n\n @Input()\n public allowText = this.options.allowText;\n\n @Input()\n public search = '';\n\n @Output()\n public readonly searchChange = new EventEmitter<string>();\n\n public countryCode = this.options.countryCode;\n\n @Input('countryCode')\n public set countryCodeSetter(newCountryCode: string) {\n const prevCountryCode = this.countryCode;\n\n this.countryCode = newCountryCode;\n this.updateValueWithNewCountryCode(prevCountryCode, newCountryCode);\n }\n\n @HostBinding('attr.data-size')\n public get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return !this.textfield || this.computedDisabled\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n public get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) || !!this.dropdown?.focused\n );\n }\n\n public get nativeValue(): string {\n return (\n this.nativeFocusableElement?.value ||\n maskitoTransform(this.value, this.maskOptions)\n );\n }\n\n public set nativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n public get inputMode(): string {\n return this.allowText ? 'text' : 'numeric';\n }\n\n public onValueChange(value: string): void {\n const parsed = isText(value)\n ? value\n : value.replaceAll(MASK_SYMBOLS, '').slice(0, this.maxPhoneLength);\n\n this.updateSearch(parsed);\n this.value = parsed === this.countryCode || isText(parsed) ? '' : parsed;\n this.open = true;\n\n if (!this.value && !this.allowText) {\n this.nativeValue = this.nonRemovablePrefix;\n }\n }\n\n public handleOption(item: string): void {\n this.focusInput();\n this.value = item;\n this.nativeValue = maskitoTransform(this.value, this.maskOptions);\n this.updateSearch('');\n this.open = false;\n }\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n public override writeValue(value: string | null): void {\n super.writeValue(value);\n this.nativeValue = maskitoTransform(value || '', this.maskOptions);\n this.updateSearch('');\n }\n\n protected get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n protected get canClean(): boolean {\n return (\n this.nativeValue !== this.nonRemovablePrefix && this.textfieldCleaner.cleaner\n );\n }\n\n protected get maskOptions(): MaskitoOptions {\n return this.calculateMask(\n this.countryCode,\n this.phoneMaskAfterCountryCode,\n this.nonRemovablePrefix,\n this.allowText,\n );\n }\n\n protected onActiveZone(active: boolean): void {\n this.updateFocused(active);\n\n if (active && !this.nativeValue && !this.readOnly && !this.allowText) {\n this.updateSearch(this.nonRemovablePrefix);\n this.nativeValue = this.nonRemovablePrefix;\n\n return;\n }\n\n if (this.nativeValue === this.nonRemovablePrefix || this.isTextValue) {\n this.updateSearch('');\n this.nativeValue = '';\n\n return;\n }\n\n if (!active && !this.allowText && this.nativeFocusableElement) {\n this.nativeValue = this.nativeValue.replace(/\\D$/, '');\n }\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n private get nonRemovablePrefix(): string {\n return `${this.countryCode} `;\n }\n\n private get maxPhoneLength(): number {\n return (\n this.countryCode.length +\n this.phoneMaskAfterCountryCode.replaceAll(/[^#]+/g, '').length\n );\n }\n\n private get isTextValue(): boolean {\n return !!this.search && isText(this.search);\n }\n\n @tuiPure\n private calculateMask(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n nonRemovablePrefix: string,\n allowText: boolean,\n ): MaskitoOptions {\n const mask = tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode);\n const preprocessors = [\n tuiCreateCompletePhoneInsertionPreprocessor(\n countryCode,\n phoneMaskAfterCountryCode,\n ),\n ];\n\n return allowText\n ? {\n mask: ({value}) =>\n isText(value) && value !== '+'\n ? (MASKITO_DEFAULT_OPTIONS.mask as RegExp)\n : mask,\n preprocessors,\n }\n : {\n mask,\n preprocessors,\n postprocessors: [\n maskitoPrefixPostprocessorGenerator(nonRemovablePrefix),\n ],\n plugins: [\n maskitoCaretGuard((value, [from, to]) => [\n from === to ? nonRemovablePrefix.length : 0,\n value.length,\n ]),\n ],\n };\n }\n\n private focusInput(): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll: true});\n }\n }\n\n private updateSearch(search: string): void {\n if (this.search === search) {\n return;\n }\n\n this.search = search;\n this.searchChange.emit(search);\n }\n\n private updateValueWithNewCountryCode(\n prevCountryCode: string,\n newCountryCode: string,\n ): void {\n if (!this.isTextValue) {\n this.value = this.value.replace(prevCountryCode, newCountryCode);\n this.nativeValue = maskitoTransform(this.value, this.maskOptions);\n }\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"canOpen\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"maskOptions\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCleaner]=\"canClean\"\n [(value)]=\"nativeValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-primitive-textfield>\n</div>\n","import type {DoCheck} from '@angular/core';\nimport {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport type {TuiInputPhoneComponent} from './input-phone.component';\n\n@Directive({\n selector: 'tui-input-phone',\n providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],\n})\nexport class TuiInputPhoneDirective\n extends AbstractTuiTextfieldHost<TuiInputPhoneComponent>\n implements DoCheck\n{\n protected input?: HTMLInputElement;\n\n public override get value(): string {\n return this.host.nativeValue;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public override process(input: HTMLInputElement): void {\n this.input = input;\n }\n\n public ngDoCheck(): void {\n if (!this.input) {\n return;\n }\n\n this.input.type = 'tel';\n this.input.inputMode = this.host.inputMode;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n} from '@taiga-ui/legacy/directives';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\n@NgModule({\n imports: [\n MaskitoDirective,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n TuiLegacyDropdownOpenMonitorDirective,\n ...TuiDropdown,\n ],\n declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],\n exports: [\n TuiInputPhoneComponent,\n TuiInputPhoneDirective,\n TuiTextfieldComponent,\n ...TuiDropdown,\n ],\n})\nexport class TuiInputPhoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1"],"mappings":"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"}
|