@taiga-ui/legacy 4.19.0 → 4.20.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/components/arrow/arrow.component.d.ts +2 -3
- package/components/input-number/input-number.component.d.ts +8 -0
- package/components/input-number/input-number.directive.d.ts +4 -0
- package/components/input-number/input-number.module.d.ts +4 -0
- package/components/input-number/input-number.options.d.ts +12 -4
- package/components/input-tag/input-tag.component.d.ts +7 -5
- package/components/primitive-textfield/primitive-textfield.component.d.ts +1 -0
- package/esm2022/components/arrow/arrow.component.mjs +9 -9
- package/esm2022/components/input-date-multi/input-date-multi.component.mjs +1 -1
- package/esm2022/components/input-date-range/input-date-range.component.mjs +3 -3
- package/esm2022/components/input-number/input-number.component.mjs +9 -1
- package/esm2022/components/input-number/input-number.directive.mjs +5 -1
- package/esm2022/components/input-number/input-number.module.mjs +5 -1
- package/esm2022/components/input-number/input-number.options.mjs +9 -5
- package/esm2022/components/input-phone/utils/complete-phone-insertion-preprocessor.mjs +2 -2
- package/esm2022/components/input-tag/input-tag.component.mjs +19 -11
- package/esm2022/components/multi-select/multi-select.component.mjs +1 -1
- package/esm2022/components/primitive-textfield/primitive-textfield.component.mjs +15 -5
- package/esm2022/components/tooltip/tooltip.component.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +8 -8
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +24 -4
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +18 -10
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +14 -4
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/icons-path-factory.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-input-date-range.mjs","sources":["../../../projects/legacy/components/input-date-range/input-date-range.component.ts","../../../projects/legacy/components/input-date-range/input-date-range.template.html","../../../projects/legacy/components/input-date-range/input-date-range.directive.ts","../../../projects/legacy/components/input-date-range/input-date-range.module.ts","../../../projects/legacy/components/input-date-range/taiga-ui-legacy-components-input-date-range.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {MASKITO_DEFAULT_OPTIONS} from '@maskito/core';\nimport {maskitoDateRangeOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {TuiDateMode, TuiDay, TuiDayLike} from '@taiga-ui/cdk/date-time';\nimport {\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDayRange,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {\n changeDateSeparator,\n tuiIsPresent,\n tuiNullableSame,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiMarkerHandler} from '@taiga-ui/core/components/calendar';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {TuiDayRangePeriod} from '@taiga-ui/kit/components/calendar-range';\nimport type {TuiInputDateOptions} from '@taiga-ui/kit/tokens';\nimport {\n TUI_DATE_RANGE_VALUE_TRANSFORMER,\n TUI_DATE_TEXTS,\n TUI_INPUT_DATE_OPTIONS,\n TUI_MOBILE_CALENDAR,\n TUI_MOBILE_CALENDAR_PROVIDER,\n tuiDateStreamWithTransformer,\n} from '@taiga-ui/kit/tokens';\nimport {\n AbstractTuiNullableControl,\n tuiAsControl as tuiAsLegacyControl,\n} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport type {TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {tuiAsFocusableItemAccessor} from '@taiga-ui/legacy/tokens';\nimport {TUI_DATE_MODE_MASKITO_ADAPTER} from '@taiga-ui/legacy/utils';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'tui-input-date-range',\n templateUrl: './input-date-range.template.html',\n styleUrls: ['./input-date-range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputDateRangeComponent),\n tuiAsControl(TuiInputDateRangeComponent as any),\n tuiAsLegacyControl(TuiInputDateRangeComponent),\n tuiDateStreamWithTransformer(TUI_DATE_RANGE_VALUE_TRANSFORMER),\n tuiAsDataListHost(TuiInputDateRangeComponent),\n TUI_MOBILE_CALENDAR_PROVIDER,\n ],\n host: {\n '[attr.data-size]': 'size',\n '(click)': 'onClick()',\n },\n})\nexport class TuiInputDateRangeComponent\n extends AbstractTuiNullableControl<TuiDayRange>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly mobileCalendar = inject(TUI_MOBILE_CALENDAR, {optional: true});\n private readonly options = inject(TUI_INPUT_DATE_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n private readonly nativeValue = signal('');\n\n protected readonly dateTexts$ = inject(TUI_DATE_TEXTS);\n protected override readonly valueTransformer = inject(\n TUI_DATE_RANGE_VALUE_TRANSFORMER,\n {optional: true},\n );\n\n protected readonly dateFiller$ = this.dateTexts$.pipe(\n map((dateTexts) =>\n changeDateSeparator(\n dateTexts[this.dateFormat.mode],\n this.dateFormat.separator,\n ),\n ),\n );\n\n protected dateFormat = TUI_DEFAULT_DATE_FORMAT;\n protected readonly dateFormat$ = inject(TUI_DATE_FORMAT)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed())\n .subscribe((format) => {\n this.dateFormat = format;\n });\n\n protected selectedActivePeriod: TuiDayRangePeriod | null = null;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public defaultViewedMonth = TuiMonth.currentLocal();\n\n @Input()\n public items: readonly TuiDayRangePeriod[] = [];\n\n @Input()\n public min: TuiDay | null = this.options.min;\n\n @Input()\n public max: TuiDay | null = this.options.max;\n\n @Input()\n public minLength: TuiDayLike | null = null;\n\n @Input()\n public maxLength: TuiDayLike | null = null;\n\n public open = false;\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield?.nativeFocusableElement ?? null;\n }\n\n public get focused(): boolean {\n return !!this.textfield?.focused;\n }\n\n public get computedExampleText(): string {\n return this.items.length\n ? this.textfield?.nativeFocusableElement?.placeholder || ''\n : '';\n }\n\n public get computedValue(): string {\n const {value, nativeValue, activePeriod} = this;\n\n if (activePeriod) {\n return String(activePeriod);\n }\n\n return value\n ? value.getFormattedDayRange(this.dateFormat.mode, this.dateFormat.separator)\n : nativeValue();\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n public onClick(): void {\n if (!this.isMobile && this.interactive) {\n this.toggle();\n }\n }\n\n public onValueChange(value: string): void {\n this.nativeValue.set(value);\n\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n if (!value && !this.mobileCalendar) {\n this.onOpenChange(true);\n }\n\n if (this.activePeriod) {\n this.nativeValue.set('');\n }\n\n this.value =\n value.length === DATE_RANGE_FILLER_LENGTH && !this.activePeriod\n ? TuiDayRange.normalizeParse(value, this.dateFormat.mode)\n : null;\n\n if (!this.value) {\n this.selectedActivePeriod = null;\n }\n }\n\n public onRangeChange(range: TuiDayRange | null): void {\n this.toggle();\n this.focusInput();\n\n if (!range) {\n this.nativeValue.set('');\n }\n\n this.value = range;\n }\n\n public override writeValue(value: TuiDayRange | null): void {\n super.writeValue(value);\n this.nativeValue.set(value ? this.computedValue : '');\n this.selectedActivePeriod = this.findActivePeriodBy(value);\n }\n\n protected get computedMobile(): boolean {\n return this.isMobile && !!this.mobileCalendar;\n }\n\n protected get calendarIcon(): TuiInputDateOptions['icon'] {\n return this.options.icon;\n }\n\n protected get computedMask(): MaskitoOptions {\n return this.activePeriod\n ? MASKITO_DEFAULT_OPTIONS\n : this.calculateMask(\n this.dateFormat.mode,\n this.dateFormat.separator,\n this.min,\n this.max,\n this.minLength,\n this.maxLength,\n );\n }\n\n protected get activePeriod(): TuiDayRangePeriod | null {\n return this.selectedActivePeriod ?? this.findActivePeriodBy(this.value);\n }\n\n protected get showValueTemplate(): boolean {\n return tuiIsPresent(this.value) && !this.focused;\n }\n\n protected get computedContent(): PolymorpheusContent {\n return this.activePeriod?.content || this.computedValue;\n }\n\n protected get innerPseudoFocused(): boolean | null {\n if (this.pseudoFocus === false) {\n return false;\n }\n\n if (this.open || this.computedFocused) {\n return true;\n }\n\n return null;\n }\n\n protected getComputedRangeFiller(dateFiller: string): string {\n return this.activePeriod ? '' : this.getDateRangeFiller(dateFiller);\n }\n\n protected onIconClick(): void {\n if (this.isMobile && this.interactive) {\n this.onOpenChange(true);\n }\n }\n\n protected onOpenChange(open: boolean): void {\n this.open = open;\n }\n\n protected onActiveZone(focused: boolean): void {\n this.updateFocused(focused);\n\n if (\n !focused &&\n !this.itemSelected &&\n (this.nativeValue().length === DATE_FILLER_LENGTH ||\n this.nativeValue().length ===\n DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length)\n ) {\n this.value = TuiDayRange.normalizeParse(\n this.nativeValue(),\n this.dateFormat.mode,\n );\n }\n }\n\n protected override valueIdenticalComparator(\n oldValue: TuiDayRange | null,\n newValue: TuiDayRange | null,\n ): boolean {\n return tuiNullableSame(oldValue, newValue, (a, b) => a.daySame(b));\n }\n\n private get itemSelected(): boolean {\n return this.items.findIndex((item) => String(item) === this.nativeValue()) !== -1;\n }\n\n @tuiPure\n private calculateMask(\n dateFormat: TuiDateMode,\n dateSeparator: string,\n min: TuiDay | null,\n max: TuiDay | null,\n minLength: TuiDayLike | null,\n maxLength: TuiDayLike | null,\n ): MaskitoOptions {\n return maskitoDateRangeOptionsGenerator({\n dateSeparator,\n mode: TUI_DATE_MODE_MASKITO_ADAPTER[dateFormat],\n min: (min || TUI_FIRST_DAY).toLocalNativeDate(),\n max: (max || TUI_LAST_DAY).toLocalNativeDate(),\n minLength: minLength || {},\n maxLength: maxLength || {},\n });\n }\n\n private toggle(): void {\n this.open = !this.open;\n }\n\n private focusInput(preventScroll = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n }\n }\n\n private getDateRangeFiller(dateFiller: string): string {\n return `${dateFiller}${RANGE_SEPARATOR_CHAR}${dateFiller}`;\n }\n\n private findActivePeriodBy(value: TuiDayRange | null): TuiDayRangePeriod | null {\n return (\n this.items.find((item) =>\n tuiNullableSame(\n value,\n item.range,\n (a, b) =>\n a.from.daySame(b.from.dayLimit(this.min, this.max)) &&\n a.to.daySame(b.to.dayLimit(this.min, this.max)),\n ),\n ) ?? null\n );\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedRangeFiller(dateFiller || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <div\n *ngIf=\"showValueTemplate\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n automation-id=\"tui-input-date-range__icon\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [markerHandler]=\"markerHandler\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [minLength]=\"minLength\"\n [value]=\"value\"\n [(item)]=\"selectedActivePeriod\"\n (valueChange)=\"onRangeChange($event)\"\n />\n </ng-template>\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 {TuiInputDateRangeComponent} from './input-date-range.component';\n\n@Directive({\n standalone: false,\n selector: 'tui-input-date-range',\n providers: [tuiAsTextfieldHost(TuiInputDateRangeDirective)],\n})\nexport class TuiInputDateRangeDirective\n extends AbstractTuiTextfieldHost<TuiInputDateRangeComponent>\n implements DoCheck\n{\n public override get value(): string {\n return this.host.computedValue;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public override process(input: HTMLInputElement): void {\n input.inputMode = 'numeric';\n }\n\n public ngDoCheck(): void {\n if (this.host.nativeFocusableElement) {\n this.host.nativeFocusableElement.placeholder = this.host.computedExampleText;\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\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';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputDateRangeComponent} from './input-date-range.component';\nimport {TuiInputDateRangeDirective} from './input-date-range.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n TuiLet,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiCalendarRange,\n TuiValueAccessorModule,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiIcon,\n TuiAppearance,\n ...TuiDropdown,\n ],\n declarations: [TuiInputDateRangeComponent, TuiInputDateRangeDirective],\n exports: [\n TuiInputDateRangeComponent,\n TuiInputDateRangeDirective,\n TuiTextfieldComponent,\n ...TuiDropdown,\n ],\n})\nexport class TuiInputDateRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiAsLegacyControl","i10","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-input-date-range.mjs","sources":["../../../projects/legacy/components/input-date-range/input-date-range.component.ts","../../../projects/legacy/components/input-date-range/input-date-range.template.html","../../../projects/legacy/components/input-date-range/input-date-range.directive.ts","../../../projects/legacy/components/input-date-range/input-date-range.module.ts","../../../projects/legacy/components/input-date-range/taiga-ui-legacy-components-input-date-range.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {MASKITO_DEFAULT_OPTIONS} from '@maskito/core';\nimport {maskitoDateRangeOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {TuiDateMode, TuiDay, TuiDayLike} from '@taiga-ui/cdk/date-time';\nimport {\n DATE_FILLER_LENGTH,\n DATE_RANGE_FILLER_LENGTH,\n RANGE_SEPARATOR_CHAR,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiDayRange,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {\n changeDateSeparator,\n tuiIsPresent,\n tuiNullableSame,\n tuiPure,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiMarkerHandler} from '@taiga-ui/core/components/calendar';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {TuiDayRangePeriod} from '@taiga-ui/kit/components/calendar-range';\nimport type {TuiInputDateOptions} from '@taiga-ui/kit/tokens';\nimport {\n TUI_DATE_RANGE_VALUE_TRANSFORMER,\n TUI_DATE_TEXTS,\n TUI_INPUT_DATE_OPTIONS,\n TUI_MOBILE_CALENDAR,\n TUI_MOBILE_CALENDAR_PROVIDER,\n tuiDateStreamWithTransformer,\n} from '@taiga-ui/kit/tokens';\nimport {\n AbstractTuiNullableControl,\n tuiAsControl as tuiAsLegacyControl,\n} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport type {TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {tuiAsFocusableItemAccessor} from '@taiga-ui/legacy/tokens';\nimport {TUI_DATE_MODE_MASKITO_ADAPTER} from '@taiga-ui/legacy/utils';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'tui-input-date-range',\n templateUrl: './input-date-range.template.html',\n styleUrls: ['./input-date-range.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputDateRangeComponent),\n tuiAsControl(TuiInputDateRangeComponent as any),\n tuiAsLegacyControl(TuiInputDateRangeComponent),\n tuiDateStreamWithTransformer(TUI_DATE_RANGE_VALUE_TRANSFORMER),\n tuiAsDataListHost(TuiInputDateRangeComponent),\n TUI_MOBILE_CALENDAR_PROVIDER,\n ],\n host: {\n '[attr.data-size]': 'size',\n '(click)': 'onClick()',\n },\n})\nexport class TuiInputDateRangeComponent\n extends AbstractTuiNullableControl<TuiDayRange>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly mobileCalendar = inject(TUI_MOBILE_CALENDAR, {optional: true});\n private readonly options = inject(TUI_INPUT_DATE_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n private readonly nativeValue = signal('');\n\n protected readonly dateTexts$ = inject(TUI_DATE_TEXTS);\n protected override readonly valueTransformer = inject(\n TUI_DATE_RANGE_VALUE_TRANSFORMER,\n {optional: true},\n );\n\n protected readonly dateFiller$ = this.dateTexts$.pipe(\n map((dateTexts) =>\n changeDateSeparator(\n dateTexts[this.dateFormat.mode],\n this.dateFormat.separator,\n ),\n ),\n );\n\n protected dateFormat = TUI_DEFAULT_DATE_FORMAT;\n protected readonly dateFormat$ = inject(TUI_DATE_FORMAT)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed())\n .subscribe((format) => {\n this.dateFormat = format;\n });\n\n protected selectedActivePeriod: TuiDayRangePeriod | null = null;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public defaultViewedMonth = TuiMonth.currentLocal();\n\n @Input()\n public items: readonly TuiDayRangePeriod[] = [];\n\n @Input()\n public min: TuiDay | null = this.options.min;\n\n @Input()\n public max: TuiDay | null = this.options.max;\n\n @Input()\n public minLength: TuiDayLike | null = null;\n\n @Input()\n public maxLength: TuiDayLike | null = null;\n\n public open = false;\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield?.nativeFocusableElement ?? null;\n }\n\n public get focused(): boolean {\n return !!this.textfield?.focused;\n }\n\n public get computedExampleText(): string {\n return this.items.length\n ? this.textfield?.nativeFocusableElement?.placeholder || ''\n : '';\n }\n\n public get computedValue(): string {\n const {value, nativeValue, activePeriod} = this;\n\n if (activePeriod) {\n return String(activePeriod);\n }\n\n return value\n ? value.getFormattedDayRange(this.dateFormat.mode, this.dateFormat.separator)\n : nativeValue();\n }\n\n public get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n public onClick(): void {\n if (!this.isMobile && this.interactive) {\n this.toggle();\n }\n }\n\n public onValueChange(value: string): void {\n this.nativeValue.set(value);\n\n if (this.control) {\n this.control.updateValueAndValidity({emitEvent: false});\n }\n\n if (!value && !this.mobileCalendar) {\n this.onOpenChange(true);\n }\n\n if (this.activePeriod) {\n this.nativeValue.set('');\n }\n\n this.value =\n value.length === DATE_RANGE_FILLER_LENGTH && !this.activePeriod\n ? TuiDayRange.normalizeParse(value, this.dateFormat.mode)\n : null;\n\n if (!this.value) {\n this.selectedActivePeriod = null;\n }\n }\n\n public onRangeChange(range: TuiDayRange | null): void {\n this.toggle();\n this.focusInput();\n\n if (!range) {\n this.nativeValue.set('');\n }\n\n this.value = range;\n }\n\n public override writeValue(value: TuiDayRange | null): void {\n super.writeValue(value);\n this.nativeValue.set(this.value ? this.computedValue : '');\n this.selectedActivePeriod = this.findActivePeriodBy(this.value);\n }\n\n protected get computedMobile(): boolean {\n return this.isMobile && !!this.mobileCalendar;\n }\n\n protected get calendarIcon(): TuiInputDateOptions['icon'] {\n return this.options.icon;\n }\n\n protected get computedMask(): MaskitoOptions {\n return this.activePeriod\n ? MASKITO_DEFAULT_OPTIONS\n : this.calculateMask(\n this.dateFormat.mode,\n this.dateFormat.separator,\n this.min,\n this.max,\n this.minLength,\n this.maxLength,\n );\n }\n\n protected get activePeriod(): TuiDayRangePeriod | null {\n return this.selectedActivePeriod ?? this.findActivePeriodBy(this.value);\n }\n\n protected get showValueTemplate(): boolean {\n return tuiIsPresent(this.value) && !this.focused;\n }\n\n protected get computedContent(): PolymorpheusContent {\n return this.activePeriod?.content || this.computedValue;\n }\n\n protected get innerPseudoFocused(): boolean | null {\n if (this.pseudoFocus === false) {\n return false;\n }\n\n if (this.open || this.computedFocused) {\n return true;\n }\n\n return null;\n }\n\n protected getComputedRangeFiller(dateFiller: string): string {\n return this.activePeriod ? '' : this.getDateRangeFiller(dateFiller);\n }\n\n protected onIconClick(): void {\n if (this.isMobile && this.interactive) {\n this.onOpenChange(true);\n }\n }\n\n protected onOpenChange(open: boolean): void {\n this.open = open;\n }\n\n protected onActiveZone(focused: boolean): void {\n this.updateFocused(focused);\n\n if (\n !focused &&\n !this.itemSelected &&\n (this.nativeValue().length === DATE_FILLER_LENGTH ||\n this.nativeValue().length ===\n DATE_FILLER_LENGTH + RANGE_SEPARATOR_CHAR.length)\n ) {\n this.value = TuiDayRange.normalizeParse(\n this.nativeValue(),\n this.dateFormat.mode,\n );\n }\n }\n\n protected override valueIdenticalComparator(\n oldValue: TuiDayRange | null,\n newValue: TuiDayRange | null,\n ): boolean {\n return tuiNullableSame(oldValue, newValue, (a, b) => a.daySame(b));\n }\n\n private get itemSelected(): boolean {\n return this.items.findIndex((item) => String(item) === this.nativeValue()) !== -1;\n }\n\n @tuiPure\n private calculateMask(\n dateFormat: TuiDateMode,\n dateSeparator: string,\n min: TuiDay | null,\n max: TuiDay | null,\n minLength: TuiDayLike | null,\n maxLength: TuiDayLike | null,\n ): MaskitoOptions {\n return maskitoDateRangeOptionsGenerator({\n dateSeparator,\n mode: TUI_DATE_MODE_MASKITO_ADAPTER[dateFormat],\n min: (min || TUI_FIRST_DAY).toLocalNativeDate(),\n max: (max || TUI_LAST_DAY).toLocalNativeDate(),\n minLength: minLength || {},\n maxLength: maxLength || {},\n });\n }\n\n private toggle(): void {\n this.open = !this.open;\n }\n\n private focusInput(preventScroll = false): void {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus({preventScroll});\n }\n }\n\n private getDateRangeFiller(dateFiller: string): string {\n return `${dateFiller}${RANGE_SEPARATOR_CHAR}${dateFiller}`;\n }\n\n private findActivePeriodBy(value: TuiDayRange | null): TuiDayRangePeriod | null {\n return (\n this.items.find((item) =>\n tuiNullableSame(\n value,\n item.range,\n (a, b) =>\n a.from.daySame(b.from.dayLimit(this.min, this.max)) &&\n a.to.daySame(b.to.dayLimit(this.min, this.max)),\n ),\n ) ?? null\n );\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"dateFiller$ | async as dateFiller\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"innerPseudoFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedRangeFiller(dateFiller || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <div\n *ngIf=\"showValueTemplate\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <ng-container *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n automation-id=\"tui-input-date-range__icon\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar-range\n [defaultViewedMonth]=\"defaultViewedMonth\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [items]=\"items\"\n [markerHandler]=\"markerHandler\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [minLength]=\"minLength\"\n [value]=\"value\"\n [(item)]=\"selectedActivePeriod\"\n (valueChange)=\"onRangeChange($event)\"\n />\n </ng-template>\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 {TuiInputDateRangeComponent} from './input-date-range.component';\n\n@Directive({\n standalone: false,\n selector: 'tui-input-date-range',\n providers: [tuiAsTextfieldHost(TuiInputDateRangeDirective)],\n})\nexport class TuiInputDateRangeDirective\n extends AbstractTuiTextfieldHost<TuiInputDateRangeComponent>\n implements DoCheck\n{\n public override get value(): string {\n return this.host.computedValue;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public override process(input: HTMLInputElement): void {\n input.inputMode = 'numeric';\n }\n\n public ngDoCheck(): void {\n if (this.host.nativeFocusableElement) {\n this.host.nativeFocusableElement.placeholder = this.host.computedExampleText;\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiCalendarRange} from '@taiga-ui/kit/components/calendar-range';\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';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputDateRangeComponent} from './input-date-range.component';\nimport {TuiInputDateRangeDirective} from './input-date-range.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n TuiLet,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiCalendarRange,\n TuiValueAccessorModule,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiIcon,\n TuiAppearance,\n ...TuiDropdown,\n ],\n declarations: [TuiInputDateRangeComponent, TuiInputDateRangeDirective],\n exports: [\n TuiInputDateRangeComponent,\n TuiInputDateRangeDirective,\n TuiTextfieldComponent,\n ...TuiDropdown,\n ],\n})\nexport class TuiInputDateRangeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiAsLegacyControl","i10","i1"],"mappings":"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"}
|
|
@@ -27,8 +27,8 @@ import * as i6 from '@taiga-ui/core/components/button';
|
|
|
27
27
|
import { TuiButton } from '@taiga-ui/core/components/button';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* @deprecated
|
|
31
|
-
*
|
|
30
|
+
* @deprecated use new version of {@link TUI_INPUT_NUMBER_DEFAULT_OPTIONS} (from @taiga-ui/kit) instead
|
|
31
|
+
* TODO(v5): delete it
|
|
32
32
|
*/
|
|
33
33
|
const TUI_INPUT_NUMBER_DEFAULT_OPTIONS = {
|
|
34
34
|
icons: {
|
|
@@ -40,16 +40,28 @@ const TUI_INPUT_NUMBER_DEFAULT_OPTIONS = {
|
|
|
40
40
|
step: 0,
|
|
41
41
|
};
|
|
42
42
|
/**
|
|
43
|
-
* @deprecated
|
|
44
|
-
*
|
|
43
|
+
* @deprecated use new version of {@link TUI_INPUT_NUMBER_OPTIONS} (from @taiga-ui/kit) instead
|
|
44
|
+
* TODO(v5): delete it
|
|
45
45
|
*/
|
|
46
46
|
const TUI_INPUT_NUMBER_OPTIONS = tuiCreateToken(TUI_INPUT_NUMBER_DEFAULT_OPTIONS);
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated use new version of {@link tuiInputNumberOptionsProvider} (from @taiga-ui/kit) instead
|
|
49
|
+
* TODO(v5): delete it
|
|
50
|
+
*/
|
|
47
51
|
function tuiInputNumberOptionsProvider(options) {
|
|
48
52
|
return tuiProvideOptions(TUI_INPUT_NUMBER_OPTIONS, options, TUI_INPUT_NUMBER_DEFAULT_OPTIONS);
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
const DEFAULT_MAX_LENGTH = 18;
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated use new version of {@link https://taiga-ui.dev/components/input-number tuiInputNumberOptionsProvider} (from @taiga-ui/kit) (property `valueTransformer`) instead
|
|
58
|
+
* TODO(v5): delete it
|
|
59
|
+
*/
|
|
52
60
|
const TUI_NUMBER_VALUE_TRANSFORMER = tuiCreateToken();
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated use new version of {@link https://taiga-ui.dev/components/input-number TuiInputNumber} (from @taiga-ui/kit) instead
|
|
63
|
+
* TODO(v5): delete it
|
|
64
|
+
*/
|
|
53
65
|
class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
54
66
|
constructor() {
|
|
55
67
|
super(...arguments);
|
|
@@ -293,6 +305,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
293
305
|
type: Input
|
|
294
306
|
}], computeMin: [], computeMax: [], calculateMask: [] } });
|
|
295
307
|
|
|
308
|
+
/**
|
|
309
|
+
* @deprecated use new version of {@link https://taiga-ui.dev/components/input-number TuiInputNumber} (from @taiga-ui/kit) instead
|
|
310
|
+
* TODO(v5): delete it
|
|
311
|
+
*/
|
|
296
312
|
class TuiInputNumberDirective extends AbstractTuiTextfieldHost {
|
|
297
313
|
get value() {
|
|
298
314
|
return this.host.computedValue;
|
|
@@ -322,6 +338,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
322
338
|
}]
|
|
323
339
|
}] });
|
|
324
340
|
|
|
341
|
+
/**
|
|
342
|
+
* @deprecated use new version of {@link https://taiga-ui.dev/components/input-number TuiInputNumber} (from @taiga-ui/kit) instead
|
|
343
|
+
* TODO(v5): delete it
|
|
344
|
+
*/
|
|
325
345
|
class TuiInputNumberModule {
|
|
326
346
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
327
347
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiInputNumberModule, declarations: [TuiInputNumberComponent, TuiInputNumberDirective], imports: [CommonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-input-number.mjs","sources":["../../../projects/legacy/components/input-number/input-number.options.ts","../../../projects/legacy/components/input-number/input-number.component.ts","../../../projects/legacy/components/input-number/input-number.template.html","../../../projects/legacy/components/input-number/input-number.directive.ts","../../../projects/legacy/components/input-number/input-number.module.ts","../../../projects/legacy/components/input-number/taiga-ui-legacy-components-input-number.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiInputNumberOptions {\n readonly icons: Readonly<{\n down: string;\n up: string;\n }>;\n readonly max: number;\n readonly min: number;\n readonly step: number;\n}\n\n/**\n * @deprecated: drop in v5.0\n * Default values for the input number options.\n */\nexport const TUI_INPUT_NUMBER_DEFAULT_OPTIONS: TuiInputNumberOptions = {\n icons: {\n up: '@tui.plus',\n down: '@tui.minus',\n },\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n step: 0,\n};\n\n/**\n * @deprecated: drop in v5.0\n * Default parameters for input count component\n */\nexport const TUI_INPUT_NUMBER_OPTIONS = tuiCreateToken(TUI_INPUT_NUMBER_DEFAULT_OPTIONS);\n\nexport function tuiInputNumberOptionsProvider(\n options: Partial<TuiInputNumberOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_NUMBER_OPTIONS,\n options,\n TUI_INPUT_NUMBER_DEFAULT_OPTIONS,\n );\n}\n","import type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {maskitoInitialCalibrationPlugin} from '@maskito/core';\nimport {\n maskitoCaretGuard,\n maskitoNumberOptionsGenerator,\n maskitoParseNumber,\n} from '@maskito/kit';\nimport type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {CHAR_HYPHEN, CHAR_MINUS, EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiClamp, tuiIsSafeToRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiCreateToken, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiDecimalMode} from '@taiga-ui/core/tokens';\nimport {TUI_DEFAULT_NUMBER_FORMAT, TUI_NUMBER_FORMAT} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiFormatNumber} from '@taiga-ui/core/utils/format';\nimport {AbstractTuiNullableControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_SIZE,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n} from '@taiga-ui/legacy/directives';\nimport type {TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {tuiAsFocusableItemAccessor} from '@taiga-ui/legacy/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport type {TuiInputNumberOptions} from './input-number.options';\nimport {TUI_INPUT_NUMBER_OPTIONS} from './input-number.options';\n\nconst DEFAULT_MAX_LENGTH = 18;\n\nexport const TUI_NUMBER_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<number | null>>();\n\n@Component({\n standalone: false,\n selector: 'tui-input-number',\n templateUrl: './input-number.template.html',\n styleUrls: ['./input-number.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputNumberComponent),\n tuiAsControl(TuiInputNumberComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n host: {\n '[attr.data-size]': 'size',\n '(keydown.arrowDown)': 'onArrow(-step)',\n '(keydown.arrowUp)': 'onArrow(step)',\n },\n})\nexport class TuiInputNumberComponent\n extends AbstractTuiNullableControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n private readonly options = inject(TUI_INPUT_NUMBER_OPTIONS);\n private unfinishedValue: string | null = '';\n\n @ContentChildren(PolymorpheusOutlet, {descendants: true})\n protected readonly polymorpheusValueContent: QueryList<unknown> = EMPTY_QUERY;\n\n protected override readonly valueTransformer = inject<\n TuiValueTransformer<number | null>\n >(TUI_NUMBER_VALUE_TRANSFORMER, {optional: true});\n\n protected numberFormat = TUI_DEFAULT_NUMBER_FORMAT;\n protected readonly controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);\n protected readonly numberFormat$ = inject(TUI_NUMBER_FORMAT)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed())\n .subscribe((format) => {\n this.numberFormat = format;\n });\n\n @Input()\n public min: number | null = this.options.min;\n\n @Input()\n public max: number | null = this.options.max;\n\n @Input()\n public step = this.options.step;\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 !!this.textfield?.focused;\n }\n\n public get inputMode(): string {\n if (this.isIOS && this.isNegativeAllowed) {\n // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'\n return 'text';\n }\n\n return !this.precision ? 'numeric' : 'decimal';\n }\n\n public get calculatedMaxLength(): number {\n const decimalPart =\n !!this.precision &&\n this.nativeValue.includes(this.numberFormat.decimalSeparator);\n const precision = decimalPart ? Math.min(this.precision + 1, 20) : 0;\n const takeThousand = this.numberFormat.thousandSeparator.repeat(5).length;\n\n return DEFAULT_MAX_LENGTH + precision + takeThousand;\n }\n\n public get computedValue(): string {\n return this.focused ? this.nativeValue : this.formattedValue;\n }\n\n public onValueChange(nativeValue: string): void {\n const parsedValue = maskitoParseNumber(\n nativeValue,\n this.numberFormat.decimalSeparator,\n );\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(parsedValue)) {\n this.value = null;\n\n return;\n }\n\n if (this.isNativeValueNotFinished) {\n this.unfinishedValue = nativeValue;\n this.cdr.markForCheck();\n\n return;\n }\n\n if (parsedValue < this.computedMin || parsedValue > this.computedMax) {\n return;\n }\n\n this.value = parsedValue;\n }\n\n public override writeValue(value: number | null): void {\n super.writeValue(value);\n this.nativeValue = this.formattedValue;\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n protected get icons(): TuiInputNumberOptions['icons'] {\n return this.options.icons;\n }\n\n protected get computedMin(): number {\n return this.computeMin(this.min, this.max);\n }\n\n protected get computedMax(): number {\n return this.computeMax(this.min, this.max);\n }\n\n protected get isNegativeAllowed(): boolean {\n return this.computedMin < 0;\n }\n\n protected get formattedValue(): string {\n return this.value !== null ? this.getFormattedValue(this.value || 0) : '';\n }\n\n protected get canDecrement(): boolean {\n return this.interactive && (this.value || 0) > this.computedMin;\n }\n\n protected get canIncrement(): boolean {\n return this.interactive && (this.value || 0) < this.computedMax;\n }\n\n protected get computedPrefix(): string {\n return this.controller.prefix;\n }\n\n protected get computedPostfix(): string {\n const postfix = this.controller.postfix;\n\n return postfix && ` ${postfix}`;\n }\n\n protected get mask(): MaskitoOptions {\n return this.calculateMask(\n this.precision,\n this.numberFormat.decimalMode,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n this.computedMin,\n this.computedMax,\n this.computedPrefix,\n this.computedPostfix,\n );\n }\n\n protected get nativeValue(): string {\n return this.nativeFocusableElement?.value || '';\n }\n\n protected set nativeValue(value: string) {\n if (!this.textfield || !this.nativeFocusableElement) {\n return;\n }\n\n this.textfield.value = value;\n this.nativeFocusableElement.value = value;\n }\n\n protected onArrow(step: number | null): void {\n if (!step) {\n return;\n }\n\n this.value = tuiClamp(\n (this.value || 0) + step,\n this.computedMin,\n this.computedMax,\n );\n this.nativeValue = this.formattedValue;\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n const nativeNumberValue = this.unfinishedValue\n ? maskitoParseNumber(this.unfinishedValue, this.numberFormat.decimalSeparator)\n : this.nativeNumberValue;\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(nativeNumberValue)) {\n this.nativeValue =\n focused && !this.readOnly\n ? this.computedPrefix + this.computedPostfix\n : '';\n this.value = null;\n\n return;\n }\n\n if (!focused) {\n this.value = nativeNumberValue;\n this.nativeValue = this.formattedValue;\n }\n }\n\n protected getFormattedValue(value: number): string {\n return (\n this.computedPrefix +\n tuiFormatNumber(value, {\n ...this.numberFormat,\n /**\n * Number can satisfy interval [Number.MIN_SAFE_INTEGER; Number.MAX_SAFE_INTEGER]\n * but its rounding can violate it.\n * Before BigInt support there is no perfect solution – only trade off.\n * No rounding is better than lose precision and incorrect mutation of already valid value.\n */\n precision: tuiIsSafeToRound(value, this.precision)\n ? this.precision\n : Infinity,\n }).replace(CHAR_HYPHEN, CHAR_MINUS) +\n this.computedPostfix\n );\n }\n\n private get isNativeValueNotFinished(): boolean {\n const nativeNumberValue = this.nativeNumberValue;\n\n return nativeNumberValue < 0\n ? nativeNumberValue > this.computedMax\n : nativeNumberValue < this.computedMin;\n }\n\n private get nativeNumberValue(): number {\n return maskitoParseNumber(this.nativeValue, this.numberFormat.decimalSeparator);\n }\n\n private get precision(): number {\n return Number.isNaN(this.numberFormat.precision)\n ? 2\n : this.numberFormat.precision;\n }\n\n @tuiPure\n private computeMin(min: number | null, max: number | null): number {\n return Math.min(\n this.valueTransformer?.fromControlValue(min) ?? min ?? this.options.min,\n this.valueTransformer?.fromControlValue(max) ?? max ?? this.options.max,\n );\n }\n\n @tuiPure\n private computeMax(min: number | null, max: number | null): number {\n return Math.max(\n this.valueTransformer?.fromControlValue(min) ?? min ?? this.options.min,\n this.valueTransformer?.fromControlValue(max) ?? max ?? this.options.max,\n );\n }\n\n // eslint-disable-next-line sonarjs/sonar-max-params\n @tuiPure\n private calculateMask(\n precision: number,\n decimalMode: TuiDecimalMode,\n decimalSeparator: string,\n thousandSeparator: string,\n min: number,\n max: number,\n prefix: string,\n postfix: string,\n ): MaskitoOptions {\n const generatorParams = {\n decimalSeparator,\n thousandSeparator,\n min,\n max,\n prefix,\n postfix,\n precision,\n decimalZeroPadding: decimalMode === 'always',\n };\n const {plugins, ...options} = maskitoNumberOptionsGenerator(generatorParams);\n const initialCalibrationPlugin = maskitoInitialCalibrationPlugin(\n maskitoNumberOptionsGenerator({\n ...generatorParams,\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n }),\n );\n\n return {\n ...options,\n plugins: [\n ...plugins,\n initialCalibrationPlugin,\n maskitoCaretGuard((value) => [\n prefix.length,\n value.length - postfix.length,\n ]),\n ],\n };\n }\n}\n","<tui-primitive-textfield\n #textfield\n tuiTextfieldPostfix=\"\"\n tuiTextfieldPrefix=\"\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"mask\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n>\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n <div\n *ngIf=\"polymorpheusValueContent.length\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value-content\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text\">\n {{ text }}\n </ng-container>\n </div>\n</tui-primitive-textfield>\n\n<section\n *ngIf=\"step\"\n class=\"t-buttons\"\n>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canIncrement\"\n [iconStart]=\"icons.up\"\n (click.prevent)=\"onArrow(step)\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canDecrement\"\n [iconStart]=\"icons.down\"\n (click.prevent)=\"onArrow(-step)\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n >\n -\n </button>\n</section>\n\n<ng-container *ngIf=\"polymorpheusValueContent.changes | async\" />\n\n<ng-template #valueContent>\n <ng-content select=\"tuiContent\" />\n</ng-template>\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 {TuiInputNumberComponent} from './input-number.component';\n\n@Directive({\n standalone: false,\n selector: 'tui-input-number',\n providers: [tuiAsTextfieldHost(TuiInputNumberDirective)],\n})\nexport class TuiInputNumberDirective\n extends AbstractTuiTextfieldHost<TuiInputNumberComponent>\n implements DoCheck\n{\n protected input?: HTMLInputElement;\n\n public override get value(): string {\n return this.host.computedValue;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public ngDoCheck(): void {\n if (!this.host.nativeFocusableElement) {\n return;\n }\n\n this.host.nativeFocusableElement.inputMode = this.host.inputMode;\n this.host.nativeFocusableElement.maxLength =\n this.host.nativeFocusableElement.maxLength > 0\n ? this.host.nativeFocusableElement.maxLength\n : this.host.calculatedMaxLength;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputNumberComponent} from './input-number.component';\nimport {TuiInputNumberDirective} from './input-number.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiButton,\n ],\n declarations: [TuiInputNumberComponent, TuiInputNumberDirective],\n exports: [TuiInputNumberComponent, TuiInputNumberDirective, TuiTextfieldComponent],\n})\nexport class TuiInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-input-number.mjs","sources":["../../../projects/legacy/components/input-number/input-number.options.ts","../../../projects/legacy/components/input-number/input-number.component.ts","../../../projects/legacy/components/input-number/input-number.template.html","../../../projects/legacy/components/input-number/input-number.directive.ts","../../../projects/legacy/components/input-number/input-number.module.ts","../../../projects/legacy/components/input-number/taiga-ui-legacy-components-input-number.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @deprecated use new version of {@link TuiInputNumberOptions} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\nexport interface TuiInputNumberOptions {\n readonly icons: Readonly<{\n down: string;\n up: string;\n }>;\n readonly max: number;\n readonly min: number;\n readonly step: number;\n}\n\n/**\n * @deprecated use new version of {@link TUI_INPUT_NUMBER_DEFAULT_OPTIONS} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\nexport const TUI_INPUT_NUMBER_DEFAULT_OPTIONS: TuiInputNumberOptions = {\n icons: {\n up: '@tui.plus',\n down: '@tui.minus',\n },\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n step: 0,\n};\n\n/**\n * @deprecated use new version of {@link TUI_INPUT_NUMBER_OPTIONS} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\nexport const TUI_INPUT_NUMBER_OPTIONS = tuiCreateToken(TUI_INPUT_NUMBER_DEFAULT_OPTIONS);\n\n/**\n * @deprecated use new version of {@link tuiInputNumberOptionsProvider} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\nexport function tuiInputNumberOptionsProvider(\n options: Partial<TuiInputNumberOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_NUMBER_OPTIONS,\n options,\n TUI_INPUT_NUMBER_DEFAULT_OPTIONS,\n );\n}\n","import type {QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {maskitoInitialCalibrationPlugin} from '@maskito/core';\nimport {\n maskitoCaretGuard,\n maskitoNumberOptionsGenerator,\n maskitoParseNumber,\n} from '@maskito/kit';\nimport type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {CHAR_HYPHEN, CHAR_MINUS, EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiClamp, tuiIsSafeToRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiCreateToken, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiDecimalMode} from '@taiga-ui/core/tokens';\nimport {TUI_DEFAULT_NUMBER_FORMAT, TUI_NUMBER_FORMAT} from '@taiga-ui/core/tokens';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {tuiFormatNumber} from '@taiga-ui/core/utils/format';\nimport {AbstractTuiNullableControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_SIZE,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n} from '@taiga-ui/legacy/directives';\nimport type {TuiFocusableElementAccessor} from '@taiga-ui/legacy/tokens';\nimport {tuiAsFocusableItemAccessor} from '@taiga-ui/legacy/tokens';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport type {TuiInputNumberOptions} from './input-number.options';\nimport {TUI_INPUT_NUMBER_OPTIONS} from './input-number.options';\n\nconst DEFAULT_MAX_LENGTH = 18;\n\n/**\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-number tuiInputNumberOptionsProvider} (from @taiga-ui/kit) (property `valueTransformer`) instead\n * TODO(v5): delete it\n */\nexport const TUI_NUMBER_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<number | null>>();\n\n/**\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-number TuiInputNumber} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\n@Component({\n standalone: false,\n selector: 'tui-input-number',\n templateUrl: './input-number.template.html',\n styleUrls: ['./input-number.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputNumberComponent),\n tuiAsControl(TuiInputNumberComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n host: {\n '[attr.data-size]': 'size',\n '(keydown.arrowDown)': 'onArrow(-step)',\n '(keydown.arrowUp)': 'onArrow(step)',\n },\n})\nexport class TuiInputNumberComponent\n extends AbstractTuiNullableControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n private readonly options = inject(TUI_INPUT_NUMBER_OPTIONS);\n private unfinishedValue: string | null = '';\n\n @ContentChildren(PolymorpheusOutlet, {descendants: true})\n protected readonly polymorpheusValueContent: QueryList<unknown> = EMPTY_QUERY;\n\n protected override readonly valueTransformer = inject<\n TuiValueTransformer<number | null>\n >(TUI_NUMBER_VALUE_TRANSFORMER, {optional: true});\n\n protected numberFormat = TUI_DEFAULT_NUMBER_FORMAT;\n protected readonly controller = inject(TUI_TEXTFIELD_WATCHED_CONTROLLER);\n protected readonly numberFormat$ = inject(TUI_NUMBER_FORMAT)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed())\n .subscribe((format) => {\n this.numberFormat = format;\n });\n\n @Input()\n public min: number | null = this.options.min;\n\n @Input()\n public max: number | null = this.options.max;\n\n @Input()\n public step = this.options.step;\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 !!this.textfield?.focused;\n }\n\n public get inputMode(): string {\n if (this.isIOS && this.isNegativeAllowed) {\n // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'\n return 'text';\n }\n\n return !this.precision ? 'numeric' : 'decimal';\n }\n\n public get calculatedMaxLength(): number {\n const decimalPart =\n !!this.precision &&\n this.nativeValue.includes(this.numberFormat.decimalSeparator);\n const precision = decimalPart ? Math.min(this.precision + 1, 20) : 0;\n const takeThousand = this.numberFormat.thousandSeparator.repeat(5).length;\n\n return DEFAULT_MAX_LENGTH + precision + takeThousand;\n }\n\n public get computedValue(): string {\n return this.focused ? this.nativeValue : this.formattedValue;\n }\n\n public onValueChange(nativeValue: string): void {\n const parsedValue = maskitoParseNumber(\n nativeValue,\n this.numberFormat.decimalSeparator,\n );\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(parsedValue)) {\n this.value = null;\n\n return;\n }\n\n if (this.isNativeValueNotFinished) {\n this.unfinishedValue = nativeValue;\n this.cdr.markForCheck();\n\n return;\n }\n\n if (parsedValue < this.computedMin || parsedValue > this.computedMax) {\n return;\n }\n\n this.value = parsedValue;\n }\n\n public override writeValue(value: number | null): void {\n super.writeValue(value);\n this.nativeValue = this.formattedValue;\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n protected get icons(): TuiInputNumberOptions['icons'] {\n return this.options.icons;\n }\n\n protected get computedMin(): number {\n return this.computeMin(this.min, this.max);\n }\n\n protected get computedMax(): number {\n return this.computeMax(this.min, this.max);\n }\n\n protected get isNegativeAllowed(): boolean {\n return this.computedMin < 0;\n }\n\n protected get formattedValue(): string {\n return this.value !== null ? this.getFormattedValue(this.value || 0) : '';\n }\n\n protected get canDecrement(): boolean {\n return this.interactive && (this.value || 0) > this.computedMin;\n }\n\n protected get canIncrement(): boolean {\n return this.interactive && (this.value || 0) < this.computedMax;\n }\n\n protected get computedPrefix(): string {\n return this.controller.prefix;\n }\n\n protected get computedPostfix(): string {\n const postfix = this.controller.postfix;\n\n return postfix && ` ${postfix}`;\n }\n\n protected get mask(): MaskitoOptions {\n return this.calculateMask(\n this.precision,\n this.numberFormat.decimalMode,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n this.computedMin,\n this.computedMax,\n this.computedPrefix,\n this.computedPostfix,\n );\n }\n\n protected get nativeValue(): string {\n return this.nativeFocusableElement?.value || '';\n }\n\n protected set nativeValue(value: string) {\n if (!this.textfield || !this.nativeFocusableElement) {\n return;\n }\n\n this.textfield.value = value;\n this.nativeFocusableElement.value = value;\n }\n\n protected onArrow(step: number | null): void {\n if (!step) {\n return;\n }\n\n this.value = tuiClamp(\n (this.value || 0) + step,\n this.computedMin,\n this.computedMax,\n );\n this.nativeValue = this.formattedValue;\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n const nativeNumberValue = this.unfinishedValue\n ? maskitoParseNumber(this.unfinishedValue, this.numberFormat.decimalSeparator)\n : this.nativeNumberValue;\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(nativeNumberValue)) {\n this.nativeValue =\n focused && !this.readOnly\n ? this.computedPrefix + this.computedPostfix\n : '';\n this.value = null;\n\n return;\n }\n\n if (!focused) {\n this.value = nativeNumberValue;\n this.nativeValue = this.formattedValue;\n }\n }\n\n protected getFormattedValue(value: number): string {\n return (\n this.computedPrefix +\n tuiFormatNumber(value, {\n ...this.numberFormat,\n /**\n * Number can satisfy interval [Number.MIN_SAFE_INTEGER; Number.MAX_SAFE_INTEGER]\n * but its rounding can violate it.\n * Before BigInt support there is no perfect solution – only trade off.\n * No rounding is better than lose precision and incorrect mutation of already valid value.\n */\n precision: tuiIsSafeToRound(value, this.precision)\n ? this.precision\n : Infinity,\n }).replace(CHAR_HYPHEN, CHAR_MINUS) +\n this.computedPostfix\n );\n }\n\n private get isNativeValueNotFinished(): boolean {\n const nativeNumberValue = this.nativeNumberValue;\n\n return nativeNumberValue < 0\n ? nativeNumberValue > this.computedMax\n : nativeNumberValue < this.computedMin;\n }\n\n private get nativeNumberValue(): number {\n return maskitoParseNumber(this.nativeValue, this.numberFormat.decimalSeparator);\n }\n\n private get precision(): number {\n return Number.isNaN(this.numberFormat.precision)\n ? 2\n : this.numberFormat.precision;\n }\n\n @tuiPure\n private computeMin(min: number | null, max: number | null): number {\n return Math.min(\n this.valueTransformer?.fromControlValue(min) ?? min ?? this.options.min,\n this.valueTransformer?.fromControlValue(max) ?? max ?? this.options.max,\n );\n }\n\n @tuiPure\n private computeMax(min: number | null, max: number | null): number {\n return Math.max(\n this.valueTransformer?.fromControlValue(min) ?? min ?? this.options.min,\n this.valueTransformer?.fromControlValue(max) ?? max ?? this.options.max,\n );\n }\n\n // eslint-disable-next-line sonarjs/sonar-max-params\n @tuiPure\n private calculateMask(\n precision: number,\n decimalMode: TuiDecimalMode,\n decimalSeparator: string,\n thousandSeparator: string,\n min: number,\n max: number,\n prefix: string,\n postfix: string,\n ): MaskitoOptions {\n const generatorParams = {\n decimalSeparator,\n thousandSeparator,\n min,\n max,\n prefix,\n postfix,\n precision,\n decimalZeroPadding: decimalMode === 'always',\n };\n const {plugins, ...options} = maskitoNumberOptionsGenerator(generatorParams);\n const initialCalibrationPlugin = maskitoInitialCalibrationPlugin(\n maskitoNumberOptionsGenerator({\n ...generatorParams,\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n }),\n );\n\n return {\n ...options,\n plugins: [\n ...plugins,\n initialCalibrationPlugin,\n maskitoCaretGuard((value) => [\n prefix.length,\n value.length - postfix.length,\n ]),\n ],\n };\n }\n}\n","<tui-primitive-textfield\n #textfield\n tuiTextfieldPostfix=\"\"\n tuiTextfieldPrefix=\"\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"mask\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n>\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n <div\n *ngIf=\"polymorpheusValueContent.length\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value-content\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text\">\n {{ text }}\n </ng-container>\n </div>\n</tui-primitive-textfield>\n\n<section\n *ngIf=\"step\"\n class=\"t-buttons\"\n>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canIncrement\"\n [iconStart]=\"icons.up\"\n (click.prevent)=\"onArrow(step)\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canDecrement\"\n [iconStart]=\"icons.down\"\n (click.prevent)=\"onArrow(-step)\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n >\n -\n </button>\n</section>\n\n<ng-container *ngIf=\"polymorpheusValueContent.changes | async\" />\n\n<ng-template #valueContent>\n <ng-content select=\"tuiContent\" />\n</ng-template>\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 {TuiInputNumberComponent} from './input-number.component';\n\n/**\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-number TuiInputNumber} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\n@Directive({\n standalone: false,\n selector: 'tui-input-number',\n providers: [tuiAsTextfieldHost(TuiInputNumberDirective)],\n})\nexport class TuiInputNumberDirective\n extends AbstractTuiTextfieldHost<TuiInputNumberComponent>\n implements DoCheck\n{\n protected input?: HTMLInputElement;\n\n public override get value(): string {\n return this.host.computedValue;\n }\n\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n public ngDoCheck(): void {\n if (!this.host.nativeFocusableElement) {\n return;\n }\n\n this.host.nativeFocusableElement.inputMode = this.host.inputMode;\n this.host.nativeFocusableElement.maxLength =\n this.host.nativeFocusableElement.maxLength > 0\n ? this.host.nativeFocusableElement.maxLength\n : this.host.calculatedMaxLength;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputNumberComponent} from './input-number.component';\nimport {TuiInputNumberDirective} from './input-number.directive';\n\n/**\n * @deprecated use new version of {@link https://taiga-ui.dev/components/input-number TuiInputNumber} (from @taiga-ui/kit) instead\n * TODO(v5): delete it\n */\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiButton,\n ],\n declarations: [TuiInputNumberComponent, TuiInputNumberDirective],\n exports: [TuiInputNumberComponent, TuiInputNumberDirective, TuiTextfieldComponent],\n})\nexport class TuiInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ function tuiCreateCompletePhoneInsertionPreprocessor(countryCode, phoneMaskAfter
|
|
|
61
61
|
? trimCountryPrefix(value)
|
|
62
62
|
: value,
|
|
63
63
|
},
|
|
64
|
-
data: countDigits(data) >= completePhoneLength
|
|
64
|
+
data: countDigits(data) >= completePhoneLength || data.startsWith(countryCode)
|
|
65
65
|
? /**
|
|
66
66
|
* User tries to insert/drop the complete phone number (with country prefix).
|
|
67
67
|
* We should drop already existing non-removable prefix.
|
|
@@ -1 +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 * @deprecated: drop in v5.0\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(/^(\\+?\\s*7?\\s?8?)\\s?/, '')\n : value.replace(\n new RegExp(`^(\\\\+?\\\\s*${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 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 {TuiDropdownFixed, 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';\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 standalone: false,\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 hostDirectives: [TuiDropdownFixed],\n host: {\n '[attr.data-size]': 'size',\n },\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 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) ||\n !!this.dropdown?.tuiDropdownOpen\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 standalone: false,\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":[],"mappings":";;;;;;;;;;;;;;;;;;;AASa,MAAA,+BAA+B,GAAyB;AACjE,IAAA,yBAAyB,EAAE,eAAe;AAC1C,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,WAAW,EAAE,IAAI;EACnB;AAEF;;;AAGG;MACU,uBAAuB,GAAG,cAAc,CAAC,+BAA+B,EAAE;AAEjF,SAAU,4BAA4B,CACxC,OAAsC,EAAA;IAEtC,OAAO,iBAAiB,CACpB,uBAAuB,EACvB,OAAO,EACP,+BAA+B,CAClC,CAAC;AACN;;AC3BA,MAAM,WAAW,GAAG,CAAC,KAAa,KAAa,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AAElF;;;;;;AAMG;AACa,SAAA,2CAA2C,CACvD,WAAmB,EACnB,yBAAiC,EAAA;AAEjC,IAAA,MAAM,mBAAmB,GAAG,CAAC,WAAW,GAAG,yBAAyB,EAAE,UAAU,CAC5E,UAAU,EACV,EAAE,CACL,CAAC,MAAM,CAAC;IAET,MAAM,iBAAiB,GAAG,CAAC,KAAa,KACpC,WAAW,KAAK,IAAI;UACd,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;UACxC,KAAK,CAAC,OAAO,CACT,IAAI,MAAM,CAAC,CAAA,UAAA,EAAa,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAC7D,EAAE,CACL,CAAC;AAEZ,IAAA,OAAO,CAAC,EAAC,YAAY,EAAE,IAAI,EAAC,KAAI;AAC5B,QAAA,MAAM,EAAC,KAAK,EAAE,SAAS,EAAC,GAAG,YAAY,CAAC;QAExC,OAAO;AACH,YAAA,YAAY,EAAE;gBACV,SAAS;gBACT,KAAK;AACD;;;;;;AAMG;AACH,gBAAA,WAAW,CAAC,KAAK,CAAC,GAAG,mBAAmB;AACpC,sBAAE,iBAAiB,CAAC,KAAK,CAAC;AAC1B,sBAAE,KAAK;AAClB,aAAA;AACD,YAAA,IAAI,EACA,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAmB;AACpC;;;AAGK;oBACH,iBAAiB,CAAC,IAAI,CAAC;AACzB,kBAAE,IAAI;SACjB,CAAC;AACN,KAAC,CAAC;AACN;;ACxDA;;;;;AAKG;AACa,SAAA,4BAA4B,CACxC,WAAmB,EACnB,yBAAiC,EAAA;IAEjC,OAAO;AACH,QAAA,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG;AACH,QAAA,GAAG,yBAAyB;AACvB,aAAA,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;aAC7B,KAAK,CAAC,EAAE,CAAC;AACT,aAAA,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;KACnD,CAAC;AACN;;ACmBA,MAAM,YAAY,GAAG,WAAW,CAAC;AAEjC,SAAS,MAAM,CAAC,KAAa,EAAA;AACzB,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAgBa,sBACT,SAAQ,kBAA0B,CAAA;AAjBtC,IAAA,WAAA,GAAA;;AA0BqB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAKlD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAGhB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC;AAGnE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAGnC,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAGH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAEnD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAuMjD,KAAA;IArMG,IACW,iBAAiB,CAAC,cAAsB,EAAA;AAC/C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;AAEzC,QAAA,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;AAClC,QAAA,IAAI,CAAC,6BAA6B,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;KACvE;AAED,IAAA,IAAW,IAAI,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;KAClC;AAED,IAAA,IAAW,sBAAsB,GAAA;AAC7B,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB;AAC3C,cAAE,IAAI;AACN,cAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;KAC/C;AAED,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,QACI,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC/C,YAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAClC;KACL;AAED,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,QACI,IAAI,CAAC,sBAAsB,EAAE,KAAK;YAClC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAChD;KACL;IAED,IAAW,WAAW,CAAC,KAAa,EAAA;QAChC,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;AAC7C,SAAA;KACJ;AAED,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;KAC9C;AAEM,IAAA,aAAa,CAAC,KAAa,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,cAAE,KAAK;AACP,cAAE,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAEvE,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AACzE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC9C,SAAA;KACJ;AAEM,IAAA,YAAY,CAAC,IAAY,EAAA;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAEe,gBAAgB,GAAA;QAC5B,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;AAEe,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3C,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACzB;AAED,IAAA,IAAc,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9C;AAED,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,QACI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAC/E;KACL;AAED,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,SAAS,CACjB,CAAC;KACL;AAES,IAAA,YAAY,CAAC,MAAe,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAE3B,QAAA,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAE3C,OAAO;AACV,SAAA;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAEtB,OAAO;AACV,SAAA;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC3D,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1D,SAAA;KACJ;IAES,gBAAgB,GAAA;AACtB,QAAA,OAAO,EAAE,CAAC;KACb;AAED,IAAA,IAAY,kBAAkB,GAAA;AAC1B,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,WAAW,GAAG,CAAC;KACjC;AAED,IAAA,IAAY,cAAc,GAAA;AACtB,QAAA,QACI,IAAI,CAAC,WAAW,CAAC,MAAM;AACvB,YAAA,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAChE;KACL;AAED,IAAA,IAAY,WAAW,GAAA;AACnB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/C;AAGO,IAAA,aAAa,CACjB,WAAmB,EACnB,yBAAiC,EACjC,kBAA0B,EAC1B,SAAkB,EAAA;QAElB,MAAM,IAAI,GAAG,4BAA4B,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;AAClF,QAAA,MAAM,aAAa,GAAG;AAClB,YAAA,2CAA2C,CACvC,WAAW,EACX,yBAAyB,CAC5B;SACJ,CAAC;AAEF,QAAA,OAAO,SAAS;AACZ,cAAE;AACI,gBAAA,IAAI,EAAE,CAAC,EAAC,KAAK,EAAC,KACV,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG;sBACvB,uBAAuB,CAAC,IAAe;AAC1C,sBAAE,IAAI;gBACd,aAAa;AAChB,aAAA;AACH,cAAE;gBACI,IAAI;gBACJ,aAAa;AACb,gBAAA,cAAc,EAAE;oBACZ,mCAAmC,CAAC,kBAAkB,CAAC;AAC1D,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK;wBACrC,IAAI,KAAK,EAAE,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;AAC3C,wBAAA,KAAK,CAAC,MAAM;qBACf,CAAC;AACL,iBAAA;aACJ,CAAC;KACX;IAEO,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;AAC5D,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,MAAc,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;YACxB,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAEO,6BAA6B,CACjC,eAAuB,EACvB,cAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACrE,SAAA;KACJ;+GArOQ,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAVpB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,0BAA0B,CAAC,sBAAsB,CAAC;YAClD,YAAY,CAAC,sBAAsB,CAAC;YACpC,iBAAiB,CAAC,sBAAsB,CAAC;SAC5C,EAoBa,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,2BAAS,WAAW,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAV3C,eAAe,EAGf,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,8BAA8B,6HClE7C,24BA8BA,EAAA,MAAA,EAAA,CAAA,mPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qCAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;ADsMY,UAAA,CAAA;IADP,OAAO;AAoCP,CAAA,EAAA,sBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;4FA5MQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhBlC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,0BAA0B,CAAwB,sBAAA,CAAA;AAClD,wBAAA,YAAY,CAAwB,sBAAA,CAAA;AACpC,wBAAA,iBAAiB,CAAwB,sBAAA,CAAA;qBAC5C,EACe,cAAA,EAAA,CAAC,gBAAgB,CAAC,EAC5B,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,QAAA,EAAA,24BAAA,EAAA,MAAA,EAAA,CAAA,mPAAA,CAAA,EAAA,CAAA;8BAOgB,QAAQ,EAAA,CAAA;sBADxB,SAAS;uBAAC,eAAe,CAAA;gBAIT,SAAS,EAAA,CAAA;sBADzB,SAAS;uBAAC,8BAA8B,CAAA;gBAQtB,QAAQ,EAAA,CAAA;sBAD1B,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBAMhD,yBAAyB,EAAA,CAAA;sBAD/B,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAIU,YAAY,EAAA,CAAA;sBAD3B,MAAM;gBAMI,iBAAiB,EAAA,CAAA;sBAD3B,KAAK;uBAAC,aAAa,CAAA;gBAwIZ,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;AE7NzB,MAKa,sBACT,SAAQ,wBAAgD,CAAA;AAKxD,IAAA,IAAoB,KAAK,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;KAChC;AAEM,IAAA,aAAa,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAClC;AAEe,IAAA,OAAO,CAAC,KAAuB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAEM,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;KAC9C;+GAzBQ,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,0CAFpB,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAE9C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE,CAAC,kBAAkB,CAAA,sBAAA,CAAwB,CAAC;AAC1D,iBAAA,CAAA;;;ACKD,MAiBa,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EARb,YAAA,EAAA,CAAA,sBAAsB,EAAE,sBAAsB,aAPzD,gBAAgB;YAChB,2BAA2B;YAC3B,4BAA4B;YAC5B,sBAAsB;AACtB,YAAA,qCAAqC,kVAKrC,sBAAsB;YACtB,sBAAsB;YACtB,qBAAqB,EAAA,EAAA,CAAA,2BAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAIhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAdxB,2BAA2B;YAC3B,4BAA4B;YAC5B,sBAAsB,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAYjB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAjB/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,gBAAgB;wBAChB,2BAA2B;wBAC3B,4BAA4B;wBAC5B,sBAAsB;wBACtB,qCAAqC;AACrC,wBAAA,GAAG,WAAW;AACjB,qBAAA;AACD,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;AAC9D,oBAAA,OAAO,EAAE;wBACL,sBAAsB;wBACtB,sBAAsB;wBACtB,qBAAqB;AACrB,wBAAA,GAAG,WAAW;AACjB,qBAAA;AACJ,iBAAA,CAAA;;;AChCD;;AAEG;;;;"}
|
|
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 * @deprecated: drop in v5.0\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(/^(\\+?\\s*7?\\s?8?)\\s?/, '')\n : value.replace(\n new RegExp(`^(\\\\+?\\\\s*${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 || data.startsWith(countryCode)\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 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 {TuiDropdownFixed, 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';\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 standalone: false,\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 hostDirectives: [TuiDropdownFixed],\n host: {\n '[attr.data-size]': 'size',\n },\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 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) ||\n !!this.dropdown?.tuiDropdownOpen\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 standalone: false,\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":[],"mappings":"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"}
|