@taiga-ui/kit 3.54.0 → 3.55.0-canary.17e839c
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/bundles/taiga-ui-kit-components-accordion.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-action.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-calendar-range.umd.js +2 -1
- package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.js +4 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-files.umd.js +5 -2
- package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-multi.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date-multi.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-range.umd.js +9 -1
- package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone.umd.js +5 -4
- package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.js +2 -10
- package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-line-clamp.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.js +4 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-progress.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-push.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-radio.umd.js +37 -43
- package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-range.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-select-option.umd.js +4 -4
- package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-slider.umd.js +14 -4
- package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +1 -1
- package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-pipes-field-error.umd.js +6 -6
- package/bundles/taiga-ui-kit-pipes-field-error.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js +17 -25
- package/bundles/taiga-ui-kit-utils-miscellaneous.umd.js.map +1 -1
- package/components/files/file/file.component.d.ts +1 -1
- package/components/input-tag/input-tag.component.d.ts +3 -4
- package/components/pdf-viewer/pdf-viewer.options.d.ts +5 -5
- package/components/progress/progress-circle/progress-circle.component.d.ts +2 -2
- package/components/radio/radio.component.d.ts +2 -4
- package/components/slider/slider.component.d.ts +1 -0
- package/esm2015/components/accordion/accordion-item/accordion-item.component.js +1 -1
- package/esm2015/components/action/action.component.js +1 -1
- package/esm2015/components/avatar/avatar.component.js +2 -2
- package/esm2015/components/badged-content/badged-content.component.js +1 -1
- package/esm2015/components/calendar-range/calendar-range.component.js +3 -2
- package/esm2015/components/combo-box/combo-box.component.js +5 -2
- package/esm2015/components/files/file/file.component.js +5 -2
- package/esm2015/components/files/files.component.js +1 -1
- package/esm2015/components/input-date/input-date.component.js +1 -1
- package/esm2015/components/input-date-multi/input-date-multi.component.js +1 -1
- package/esm2015/components/input-date-range/input-date-range.component.js +10 -2
- package/esm2015/components/input-date-time/input-date-time.component.js +1 -1
- package/esm2015/components/input-files/input-files.component.js +1 -2
- package/esm2015/components/input-files/input-files.directive.js +1 -2
- package/esm2015/components/input-phone/input-phone.component.js +6 -5
- package/esm2015/components/input-phone-international/input-phone-international.component.js +2 -2
- package/esm2015/components/input-slider/input-slider.component.js +1 -1
- package/esm2015/components/input-tag/input-tag.component.js +3 -11
- package/esm2015/components/line-clamp/line-clamp-box.component.js +2 -2
- package/esm2015/components/line-clamp/line-clamp.component.js +1 -1
- package/esm2015/components/multi-select/multi-select.component.js +5 -2
- package/esm2015/components/pdf-viewer/pdf-viewer.options.js +1 -1
- package/esm2015/components/progress/progress-circle/progress-circle.component.js +2 -2
- package/esm2015/components/push/push.component.js +1 -1
- package/esm2015/components/radio/radio.component.js +9 -16
- package/esm2015/components/range/range.component.js +1 -1
- package/esm2015/components/select-option/select-option.component.js +5 -5
- package/esm2015/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +3 -3
- package/esm2015/components/slider/slider.component.js +9 -3
- package/esm2015/components/stepper/step/step.component.js +1 -1
- package/esm2015/components/tabs/tab/tab.component.js +1 -1
- package/esm2015/components/tree/components/tree-item/tree-item.component.js +1 -2
- package/esm2015/components/tree/components/tree-item/tree-item.providers.js +1 -2
- package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +1 -2
- package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +1 -1
- package/esm2015/pipes/field-error/field-error-pipe.js +7 -7
- package/esm2015/utils/miscellaneous/create-time-periods.js +3 -3
- package/fesm2015/taiga-ui-kit-components-accordion.js +1 -1
- package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-action.js +1 -1
- package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-avatar.js +1 -1
- package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-calendar-range.js +2 -1
- package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-combo-box.js +4 -1
- package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-files.js +6 -3
- package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-multi.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-multi.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-range.js +9 -1
- package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-time.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone.js +5 -4
- package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-tag.js +3 -11
- package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-line-clamp.js +1 -1
- package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select.js +4 -1
- package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-progress.js +1 -1
- package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-push.js +1 -1
- package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-radio.js +10 -16
- package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-range.js +1 -1
- package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-select-option.js +4 -4
- package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-slider.js +10 -4
- package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-stepper.js +1 -1
- package/fesm2015/taiga-ui-kit-components-tabs.js +1 -1
- package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
- package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +1 -1
- package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
- package/fesm2015/taiga-ui-kit-pipes-field-error.js +6 -6
- package/fesm2015/taiga-ui-kit-pipes-field-error.js.map +1 -1
- package/fesm2015/taiga-ui-kit-utils-miscellaneous.js +2 -2
- package/fesm2015/taiga-ui-kit-utils-miscellaneous.js.map +1 -1
- package/package.json +42 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-phone-international.js","sources":["../../../projects/kit/components/input-phone-international/input-phone-international.options.ts","../../../projects/kit/components/input-phone-international/utils/extract-value-from-event.ts","../../../projects/kit/components/input-phone-international/input-phone-international.component.ts","../../../projects/kit/components/input-phone-international/input-phone-international.template.html","../../../projects/kit/components/input-phone-international/input-phone-international.module.ts","../../../projects/kit/components/input-phone-international/taiga-ui-kit-components-input-phone-international.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiCountryIsoCode} from '@taiga-ui/i18n';\n\nexport interface TuiInputPhoneInternationalOptions {\n readonly countries: readonly TuiCountryIsoCode[];\n readonly countryIsoCode: TuiCountryIsoCode;\n}\n\nexport const TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS: TuiInputPhoneInternationalOptions =\n {\n countries: [],\n countryIsoCode: TuiCountryIsoCode.RU,\n };\n\n/**\n * Default parameters for input phone international component\n */\nexport const TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS = tuiCreateToken(\n TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS,\n);\n\nexport function tuiInputPhoneInternationalOptionsProvider(\n options: Partial<TuiInputPhoneInternationalOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS,\n options,\n TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS,\n );\n}\n","import {tuiGetClipboardDataText} from '@taiga-ui/cdk';\n\nexport function tuiExtractValueFromEvent(event: ClipboardEvent | DragEvent): string {\n return `dataTransfer` in event\n ? event.dataTransfer?.getData(`text/plain`) || ``\n : tuiGetClipboardDataText(event);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n CHAR_PLUS,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiPure,\n TuiTypedMapper,\n} from '@taiga-ui/cdk';\nimport {\n TUI_MASK_SYMBOLS_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n TUI_TEXTFIELD_SIZE,\n TuiFlagPipe,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeM,\n TuiSizeS,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {TUI_ARROW} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputPhoneComponent} from '@taiga-ui/kit/components/input-phone';\nimport {TuiToCountryCodePipe} from '@taiga-ui/kit/pipes';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_COUNTRIES, TUI_COUNTRIES_MASKS} from '@taiga-ui/kit/tokens';\nimport {tuiGetMaxAllowedPhoneLength, tuiIsoToCountryCode} from '@taiga-ui/kit/utils';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nimport {\n TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS,\n TuiInputPhoneInternationalOptions,\n} from './input-phone-international.options';\nimport {tuiExtractValueFromEvent} from './utils/extract-value-from-event';\n\n@Component({\n selector: 'tui-input-phone-international',\n templateUrl: './input-phone-international.template.html',\n styleUrls: ['./input-phone-international.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputPhoneInternationalComponent),\n tuiAsControl(TuiInputPhoneInternationalComponent),\n // TODO: for backward compatibility only. Drop in v4.0\n TuiFlagPipe,\n TuiToCountryCodePipe,\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputPhoneInternationalComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiInputPhoneComponent)\n private readonly inputPhoneComponent?: TuiInputPhoneComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly primitiveTextfield?: TuiPrimitiveTextfieldComponent;\n\n @Input('countryIsoCode')\n set isoCode(code: TuiCountryIsoCode) {\n if (this.countryIsoCode === code) {\n return;\n }\n\n this.inputPhoneComponent?.writeValue(this.value);\n this.countryIsoCode = code;\n }\n\n @Input()\n countries = this.options.countries;\n\n @Output()\n readonly countryIsoCodeChange = new EventEmitter<TuiCountryIsoCode>();\n\n countryIsoCode = this.options.countryIsoCode;\n\n open = false;\n\n readonly arrow: PolymorpheusContent<\n TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>\n > = TUI_ARROW;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_COUNTRIES)\n readonly countriesNames$: Observable<Record<TuiCountryIsoCode, string>>,\n @Inject(TUI_COUNTRIES_MASKS)\n readonly countriesMasks: Record<TuiCountryIsoCode, string>,\n @Inject(TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS)\n private readonly options: TuiInputPhoneInternationalOptions,\n @Inject(TuiFlagPipe)\n private readonly flagPipe: TuiFlagPipe,\n @Inject(TuiToCountryCodePipe)\n private readonly extractCountryCodePipe: TuiToCountryCodePipe,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {\n super(control, cdr);\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get nativeFocusableElement(): HTMLElement | null {\n return this.inputPhoneComponent && !this.computedDisabled\n ? this.inputPhoneComponent.nativeFocusableElement\n : null;\n }\n\n get focused(): boolean {\n return (\n (!!this.primitiveTextfield && this.primitiveTextfield.focused) ||\n (!!this.inputPhoneComponent && this.inputPhoneComponent.focused)\n );\n }\n\n get inputPhoneCountryCode(): string {\n return tuiIsoToCountryCode(this.countriesMasks, this.countryIsoCode);\n }\n\n get phoneMaskAfterCountryCode(): string {\n const countryCode = this.inputPhoneCountryCode;\n\n return this.calculateMaskAfterCountryCode(\n this.countriesMasks[this.countryIsoCode],\n countryCode,\n );\n }\n\n /**\n * @deprecated use `<img [src]=\"countryIsoCode | tuiFlagPipe\" />`\n * TODO drop in v4.0\n */\n get countryFlagPath(): string {\n return this.getFlagPath(this.countryIsoCode);\n }\n\n @HostListener('paste.capture.prevent.stop', ['$event'])\n @HostListener('drop.capture.prevent.stop', ['$event'])\n onPaste(event: ClipboardEvent | DragEvent): void {\n let value = tuiExtractValueFromEvent(event).replace(TUI_NON_DIGITS_REGEXP, '');\n const countryIsoCode = this.extractCountryCodePipe.transform(\n value,\n this.countries,\n );\n\n if (!countryIsoCode) {\n this.value = `${this.inputPhoneCountryCode}${value}`\n .replace(TUI_MASK_SYMBOLS_REGEXP, '')\n .slice(\n 0,\n tuiGetMaxAllowedPhoneLength(this.countriesMasks, this.countryIsoCode),\n );\n\n return;\n }\n\n if (countryIsoCode === TuiCountryIsoCode.RU) {\n value = value.replace(/^8/, '7');\n }\n\n this.updateCountryIsoCode(countryIsoCode);\n this.value = `${CHAR_PLUS}${value}`;\n }\n\n readonly isoToCountryCodeMapper: TuiTypedMapper<[TuiCountryIsoCode], string> = item =>\n tuiIsoToCountryCode(this.countriesMasks, item);\n\n /**\n * @deprecated use `<img [src]=\"countryIsoCode | tuiFlagPipe\" />`\n * TODO drop in v4.0\n */\n getFlagPath(code: TuiCountryIsoCode): string {\n return this.flagPipe.transform(code);\n }\n\n onItemClick(isoCode: TuiCountryIsoCode): void {\n this.open = false;\n this.updateCountryIsoCode(isoCode);\n // recalculates mask inside inputPhone to prevent isoCode conflict\n this.cdr.detectChanges();\n\n const maxLength = tuiGetMaxAllowedPhoneLength(this.countriesMasks, isoCode);\n\n if (this.value.length > maxLength) {\n this.value = this.value.slice(0, maxLength);\n }\n\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus();\n }\n }\n\n override setDisabledState(): void {\n super.setDisabledState();\n this.close();\n }\n\n /**\n * @deprecated use `{{ countryIsoCode | tuiIsoToCountryCode }}`\n * TODO drop in v4.0\n */\n isoToCountryCode(isoCode: TuiCountryIsoCode): string {\n return tuiIsoToCountryCode(this.countriesMasks, isoCode);\n }\n\n /** @deprecated use 'value' setter */\n onModelChange(value: string): void {\n this.value = value;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n @tuiPure\n private calculateMaskAfterCountryCode(mask: string, countryCode: string): string {\n return mask.replace(countryCode, '').trim();\n }\n\n private close(): void {\n this.open = false;\n }\n\n private updateCountryIsoCode(code: TuiCountryIsoCode): void {\n this.countryIsoCode = code;\n this.countryIsoCodeChange.emit(code);\n }\n}\n","<tui-hosted-dropdown\n *ngIf=\"countriesNames$ | async as countriesNames\"\n class=\"t-hosted-dropdown\"\n [canOpen]=\"!readOnly\"\n [content]=\"dropdown\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHintContent=\"\"\n tuiTextfieldPostfix=\"\"\n tuiTextfieldPrefix=\"\"\n class=\"t-country-select tui-group__auto-width-item\"\n [disabled]=\"disabled\"\n [editable]=\"false\"\n [focusable]=\"focusable\"\n [pseudoFocus]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldIcon]=\"icon\"\n [tuiTextfieldLabelOutside]=\"true\"\n ></tui-primitive-textfield>\n <tui-input-phone\n class=\"t-input-phone tui-group__auto-width-item\"\n [countryCode]=\"inputPhoneCountryCode\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [(ngModel)]=\"value\"\n >\n <ng-content></ng-content>\n <input\n autocomplete=\"new-password\"\n tuiTextfield\n />\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n alt=\"\"\n class=\"t-country-item-flag\"\n [src]=\"item | tuiFlag\"\n />\n <span class=\"t-country-item-name\">\n {{ countriesNames[item] }}\n </span>\n <span class=\"t-country-item-code\">\n {{ item | tuiMapper: isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <!-- eslint-disable @html-eslint/require-img-alt -->\n <img\n class=\"t-flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryIsoCode | tuiFlag\"\n />\n </ng-template>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n >\n <ng-container *polymorpheusOutlet=\"arrow\"></ng-container>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiActiveZoneModule, TuiLetModule, TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {\n TuiDataListModule,\n TuiFlagPipeModule,\n TuiGroupModule,\n TuiHintModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputPhoneModule} from '@taiga-ui/kit/components/input-phone';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputPhoneInternationalComponent} from './input-phone-international.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusModule,\n TuiSvgModule,\n TuiInputPhoneModule,\n TuiGroupModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHintModule,\n TuiHostedDropdownModule,\n TuiDataListModule,\n TuiArrowModule,\n TuiWrapperModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiActiveZoneModule,\n TuiFlagPipeModule,\n ],\n declarations: [TuiInputPhoneInternationalComponent],\n exports: [TuiInputPhoneInternationalComponent],\n})\nexport class TuiInputPhoneInternationalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASa,MAAA,6CAA6C,GACtD;AACI,IAAA,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,iBAAiB,CAAC,EAAE;EACtC;AAEN;;AAEG;MACU,qCAAqC,GAAG,cAAc,CAC/D,6CAA6C,EAC/C;AAEI,SAAU,yCAAyC,CACrD,OAAmD,EAAA;IAEnD,OAAO,iBAAiB,CACpB,qCAAqC,EACrC,OAAO,EACP,6CAA6C,CAChD,CAAC;AACN;;AC5BM,SAAU,wBAAwB,CAAC,KAAiC,EAAA;;IACtE,OAAO,CAAA,YAAA,CAAc,IAAI,KAAK;AAC1B,UAAE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAA,UAAA,CAAY,CAAC,KAAI,CAAE,CAAA;AACjD,UAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACzC;;AC4DM,MAAO,mCACT,SAAQ,kBAA0B,CAAA;AAiClC,IAAA,WAAA,CAII,OAAyB,EACE,GAAsB,EAExC,eAA8D,EAE9D,cAAiD,EAEzC,OAA0C,EAE1C,QAAqB,EAErB,sBAA4C,EAE5C,aAAwC,EAAA;AAEzD,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAZX,IAAe,CAAA,eAAA,GAAf,eAAe,CAA+C;QAE9D,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmC;QAEzC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmC;QAE1C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QAErB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAsB;QAE5C,IAAa,CAAA,aAAA,GAAb,aAAa,CAA2B;AA9B7D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAG1B,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAqB,CAAC;AAEtE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAE7C,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QAEJ,IAAK,CAAA,KAAA,GAEV,SAAS,CAAC;AA2FL,QAAA,IAAA,CAAA,sBAAsB,GAAgD,IAAI,IAC/E,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;KAtElD;IA5CD,IACI,OAAO,CAAC,IAAuB,EAAA;;AAC/B,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YAC9B,OAAO;AACV,SAAA;QAED,CAAA,EAAA,GAAA,IAAI,CAAC,mBAAmB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B;AAsCD,IAAA,IACI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;KAClC;AAED,IAAA,IAAI,sBAAsB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,gBAAgB;AACrD,cAAE,IAAI,CAAC,mBAAmB,CAAC,sBAAsB;cAC/C,IAAI,CAAC;KACd;AAED,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,QACI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO;AAC7D,aAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAClE;KACL;AAED,IAAA,IAAI,qBAAqB,GAAA;QACrB,OAAO,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KACxE;AAED,IAAA,IAAI,yBAAyB,GAAA;AACzB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAE/C,QAAA,OAAO,IAAI,CAAC,6BAA6B,CACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EACxC,WAAW,CACd,CAAC;KACL;AAED;;;AAGG;AACH,IAAA,IAAI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAChD;AAID,IAAA,OAAO,CAAC,KAAiC,EAAA;AACrC,QAAA,IAAI,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAC/E,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CACxD,KAAK,EACL,IAAI,CAAC,SAAS,CACjB,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,qBAAqB,CAAG,EAAA,KAAK,CAAE,CAAA;AAC/C,iBAAA,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;AACpC,iBAAA,KAAK,CACF,CAAC,EACD,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CACxE,CAAC;YAEN,OAAO;AACV,SAAA;AAED,QAAA,IAAI,cAAc,KAAK,iBAAiB,CAAC,EAAE,EAAE;YACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,SAAS,CAAG,EAAA,KAAK,EAAE,CAAC;KACvC;AAKD;;;AAGG;AACH,IAAA,WAAW,CAAC,IAAuB,EAAA;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACxC;AAED,IAAA,WAAW,CAAC,OAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;;AAEnC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAE5E,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/C,SAAA;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;AACvC,SAAA;KACJ;IAEQ,gBAAgB,GAAA;QACrB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,OAA0B,EAAA;QACvC,OAAO,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KAC5D;;AAGD,IAAA,aAAa,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAED,IAAA,YAAY,CAAC,MAAe,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC9B;IAES,gBAAgB,GAAA;AACtB,QAAA,OAAO,EAAE,CAAC;KACb;IAGO,6BAA6B,CAAC,IAAY,EAAE,WAAmB,EAAA;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KAC/C;IAEO,KAAK,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;AAEO,IAAA,oBAAoB,CAAC,IAAuB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxC;;AA7LQ,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,EAqChC,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,SAAS,EAET,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,iBAAiB,aACjB,aAAa,EAAA,EAAA,EAAA,KAAA,EAEb,mBAAmB,EAAA,EAAA,EAAA,KAAA,EAEnB,qCAAqC,EAErC,EAAA,EAAA,KAAA,EAAA,WAAW,EAEX,EAAA,EAAA,KAAA,EAAA,oBAAoB,aAEpB,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlDrB,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mCAAmC,EATjC,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACP,0BAA0B,CAAC,mCAAmC,CAAC;QAC/D,YAAY,CAAC,mCAAmC,CAAC;;QAEjD,WAAW;QACX,oBAAoB;KACvB,EAOU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,qFAGtB,8BAA8B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzE7C,6vFAmFA,EDnBmB,MAAA,EAAA,CAAA,+8BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,2BAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,qHAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,aAAA,EAAA,CAAC,kCAAkC,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;AAoLnD,UAAA,CAAA;IADC,OAAO;AAGP,CAAA,EAAA,mCAAA,CAAA,SAAA,EAAA,+BAAA,EAAA,IAAA,CAAA,CAAA;4FApLQ,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAd/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,WAAW,EAAE,2CAA2C;oBACxD,SAAS,EAAE,CAAC,wCAAwC,CAAC;oBACrD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACP,wBAAA,0BAA0B,CAAqC,mCAAA,CAAA;AAC/D,wBAAA,YAAY,CAAqC,mCAAA,CAAA;;wBAEjD,WAAW;wBACX,oBAAoB;AACvB,qBAAA;oBACD,aAAa,EAAE,CAAC,kCAAkC,CAAC;AACtD,iBAAA,CAAA;;0BAoCQ,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,SAAS,CAAA;;0BAEhB,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,aAAa,CAAA;;0BAEpB,MAAM;2BAAC,mBAAmB,CAAA;;0BAE1B,MAAM;2BAAC,qCAAqC,CAAA;;0BAE5C,MAAM;2BAAC,WAAW,CAAA;;0BAElB,MAAM;2BAAC,oBAAoB,CAAA;;0BAE3B,MAAM;2BAAC,kBAAkB,CAAA;4CA7Cb,mBAAmB,EAAA,CAAA;sBADnC,SAAS;uBAAC,sBAAsB,CAAA;gBAIhB,kBAAkB,EAAA,CAAA;sBADlC,SAAS;uBAAC,8BAA8B,CAAA;gBAIrC,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,gBAAgB,CAAA;gBAWvB,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIG,oBAAoB,EAAA,CAAA;sBAD5B,MAAM;gBAkCH,IAAI,EAAA,CAAA;sBADP,WAAW;uBAAC,gBAAgB,CAAA;gBAyC7B,OAAO,EAAA,CAAA;sBAFN,YAAY;uBAAC,4BAA4B,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBACrD,YAAY;uBAAC,2BAA2B,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAkF7C,6BAA6B,EAAA,EAAA,EAAA,EAAA,CAAA;;MExM5B,gCAAgC,CAAA;;8HAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+HAAhC,gCAAgC,EAAA,YAAA,EAAA,CAH1B,mCAAmC,CAAA,EAAA,OAAA,EAAA,CAlB9C,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,YAAY;QACZ,mBAAmB;QACnB,cAAc;QACd,2BAA2B;QAC3B,4BAA4B;QAC5B,aAAa;QACb,uBAAuB;QACvB,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,YAAY;QACZ,mBAAmB;QACnB,mBAAmB;AACnB,QAAA,iBAAiB,aAGX,mCAAmC,CAAA,EAAA,CAAA,CAAA;AAEpC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,EAtBhC,OAAA,EAAA,CAAA;YACL,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,YAAY;YACZ,mBAAmB;YACnB,cAAc;YACd,2BAA2B;YAC3B,4BAA4B;YAC5B,aAAa;YACb,uBAAuB;YACvB,iBAAiB;YACjB,cAAc;YACd,gBAAgB;YAChB,YAAY;YACZ,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;AACpB,SAAA,CAAA,EAAA,CAAA,CAAA;4FAIQ,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAvB5C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,kBAAkB;wBAClB,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,2BAA2B;wBAC3B,4BAA4B;wBAC5B,aAAa;wBACb,uBAAuB;wBACvB,iBAAiB;wBACjB,cAAc;wBACd,gBAAgB;wBAChB,YAAY;wBACZ,mBAAmB;wBACnB,mBAAmB;wBACnB,iBAAiB;AACpB,qBAAA;oBACD,YAAY,EAAE,CAAC,mCAAmC,CAAC;oBACnD,OAAO,EAAE,CAAC,mCAAmC,CAAC;AACjD,iBAAA,CAAA;;;AC3CD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-phone-international.js","sources":["../../../projects/kit/components/input-phone-international/input-phone-international.options.ts","../../../projects/kit/components/input-phone-international/utils/extract-value-from-event.ts","../../../projects/kit/components/input-phone-international/input-phone-international.component.ts","../../../projects/kit/components/input-phone-international/input-phone-international.template.html","../../../projects/kit/components/input-phone-international/input-phone-international.module.ts","../../../projects/kit/components/input-phone-international/taiga-ui-kit-components-input-phone-international.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiCountryIsoCode} from '@taiga-ui/i18n';\n\nexport interface TuiInputPhoneInternationalOptions {\n readonly countries: readonly TuiCountryIsoCode[];\n readonly countryIsoCode: TuiCountryIsoCode;\n}\n\nexport const TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS: TuiInputPhoneInternationalOptions =\n {\n countries: [],\n countryIsoCode: TuiCountryIsoCode.RU,\n };\n\n/**\n * Default parameters for input phone international component\n */\nexport const TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS = tuiCreateToken(\n TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS,\n);\n\nexport function tuiInputPhoneInternationalOptionsProvider(\n options: Partial<TuiInputPhoneInternationalOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS,\n options,\n TUI_INPUT_PHONE_INTERNATIONAL_DEFAULT_OPTIONS,\n );\n}\n","import {tuiGetClipboardDataText} from '@taiga-ui/cdk';\n\nexport function tuiExtractValueFromEvent(event: ClipboardEvent | DragEvent): string {\n return `dataTransfer` in event\n ? event.dataTransfer?.getData(`text/plain`) || ``\n : tuiGetClipboardDataText(event);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n CHAR_PLUS,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiPure,\n TuiTypedMapper,\n} from '@taiga-ui/cdk';\nimport {\n TUI_MASK_SYMBOLS_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n TUI_TEXTFIELD_SIZE,\n TuiFlagPipe,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeM,\n TuiSizeS,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {TuiCountryIsoCode} from '@taiga-ui/i18n';\nimport {TUI_ARROW} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputPhoneComponent} from '@taiga-ui/kit/components/input-phone';\nimport {TuiToCountryCodePipe} from '@taiga-ui/kit/pipes';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\nimport {TUI_COUNTRIES, TUI_COUNTRIES_MASKS} from '@taiga-ui/kit/tokens';\nimport {tuiGetMaxAllowedPhoneLength, tuiIsoToCountryCode} from '@taiga-ui/kit/utils';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\n\nimport {\n TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS,\n TuiInputPhoneInternationalOptions,\n} from './input-phone-international.options';\nimport {tuiExtractValueFromEvent} from './utils/extract-value-from-event';\n\n@Component({\n selector: 'tui-input-phone-international',\n templateUrl: './input-phone-international.template.html',\n styleUrls: ['./input-phone-international.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputPhoneInternationalComponent),\n tuiAsControl(TuiInputPhoneInternationalComponent),\n // TODO: for backward compatibility only. Drop in v4.0\n TuiFlagPipe,\n TuiToCountryCodePipe,\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputPhoneInternationalComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiInputPhoneComponent)\n private readonly inputPhoneComponent?: TuiInputPhoneComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly primitiveTextfield?: TuiPrimitiveTextfieldComponent;\n\n @Input('countryIsoCode')\n set isoCode(code: TuiCountryIsoCode) {\n if (this.countryIsoCode === code) {\n return;\n }\n\n this.inputPhoneComponent?.writeValue(this.value);\n this.countryIsoCode = code;\n }\n\n @Input()\n countries = this.options.countries;\n\n @Output()\n readonly countryIsoCodeChange = new EventEmitter<TuiCountryIsoCode>();\n\n countryIsoCode = this.options.countryIsoCode;\n\n open = false;\n\n readonly arrow: PolymorpheusContent<\n TuiContextWithImplicit<TuiSizeL | TuiSizeM | TuiSizeS>\n > = TUI_ARROW;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_COUNTRIES)\n readonly countriesNames$: Observable<Record<TuiCountryIsoCode, string>>,\n @Inject(TUI_COUNTRIES_MASKS)\n readonly countriesMasks: Record<TuiCountryIsoCode, string>,\n @Inject(TUI_INPUT_PHONE_INTERNATIONAL_OPTIONS)\n private readonly options: TuiInputPhoneInternationalOptions,\n @Inject(TuiFlagPipe)\n private readonly flagPipe: TuiFlagPipe,\n @Inject(TuiToCountryCodePipe)\n private readonly extractCountryCodePipe: TuiToCountryCodePipe,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {\n super(control, cdr);\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get nativeFocusableElement(): HTMLElement | null {\n return this.inputPhoneComponent && !this.computedDisabled\n ? this.inputPhoneComponent.nativeFocusableElement\n : null;\n }\n\n get focused(): boolean {\n return (\n (!!this.primitiveTextfield && this.primitiveTextfield.focused) ||\n (!!this.inputPhoneComponent && this.inputPhoneComponent.focused)\n );\n }\n\n get inputPhoneCountryCode(): string {\n return tuiIsoToCountryCode(this.countriesMasks, this.countryIsoCode);\n }\n\n get phoneMaskAfterCountryCode(): string {\n const countryCode = this.inputPhoneCountryCode;\n\n return this.calculateMaskAfterCountryCode(\n this.countriesMasks[this.countryIsoCode],\n countryCode,\n );\n }\n\n /**\n * @deprecated use `<img [src]=\"countryIsoCode | tuiFlagPipe\" />`\n * TODO drop in v4.0\n */\n get countryFlagPath(): string {\n return this.getFlagPath(this.countryIsoCode);\n }\n\n @HostListener('paste.capture.prevent.stop', ['$event'])\n @HostListener('drop.capture.prevent.stop', ['$event'])\n onPaste(event: ClipboardEvent | DragEvent): void {\n let value = tuiExtractValueFromEvent(event).replace(TUI_NON_DIGITS_REGEXP, '');\n const countryIsoCode = this.extractCountryCodePipe.transform(\n value,\n this.countries,\n );\n\n if (!countryIsoCode) {\n this.value = `${this.inputPhoneCountryCode}${value}`\n .replace(TUI_MASK_SYMBOLS_REGEXP, '')\n .slice(\n 0,\n tuiGetMaxAllowedPhoneLength(this.countriesMasks, this.countryIsoCode),\n );\n\n return;\n }\n\n if (countryIsoCode === TuiCountryIsoCode.RU) {\n value = value.replace(/^8/, '7');\n }\n\n this.updateCountryIsoCode(countryIsoCode);\n this.value = `${CHAR_PLUS}${value}`;\n }\n\n readonly isoToCountryCodeMapper: TuiTypedMapper<[TuiCountryIsoCode], string> = item =>\n tuiIsoToCountryCode(this.countriesMasks, item);\n\n /**\n * @deprecated use `<img [src]=\"countryIsoCode | tuiFlagPipe\" />`\n * TODO drop in v4.0\n */\n getFlagPath(code: TuiCountryIsoCode): string {\n return this.flagPipe.transform(code);\n }\n\n onItemClick(isoCode: TuiCountryIsoCode): void {\n this.open = false;\n this.updateCountryIsoCode(isoCode);\n // recalculates mask inside inputPhone to prevent isoCode conflict\n this.cdr.detectChanges();\n\n const maxLength = tuiGetMaxAllowedPhoneLength(this.countriesMasks, isoCode);\n\n if (this.value.length > maxLength) {\n this.value = this.value.slice(0, maxLength);\n }\n\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.focus();\n }\n }\n\n override setDisabledState(): void {\n super.setDisabledState();\n this.close();\n }\n\n /**\n * @deprecated use `{{ countryIsoCode | tuiIsoToCountryCode }}`\n * TODO drop in v4.0\n */\n isoToCountryCode(isoCode: TuiCountryIsoCode): string {\n return tuiIsoToCountryCode(this.countriesMasks, isoCode);\n }\n\n /** @deprecated use 'value' setter */\n onModelChange(value: string): void {\n this.value = value;\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n\n @tuiPure\n private calculateMaskAfterCountryCode(mask: string, countryCode: string): string {\n return mask.replace(countryCode, '').trim();\n }\n\n private close(): void {\n this.open = false;\n }\n\n private updateCountryIsoCode(code: TuiCountryIsoCode): void {\n this.countryIsoCode = code;\n this.countryIsoCodeChange.emit(code);\n }\n}\n","<tui-hosted-dropdown\n *ngIf=\"countriesNames$ | async as countriesNames\"\n class=\"t-hosted-dropdown\"\n [canOpen]=\"!readOnly\"\n [content]=\"dropdown\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHintContent=\"\"\n tuiTextfieldPostfix=\"\"\n tuiTextfieldPrefix=\"\"\n class=\"t-country-select tui-group__auto-width-item\"\n [disabled]=\"disabled\"\n [editable]=\"false\"\n [focusable]=\"focusable\"\n [pseudoFocus]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldIcon]=\"icon\"\n [tuiTextfieldLabelOutside]=\"true\"\n ></tui-primitive-textfield>\n <tui-input-phone\n class=\"t-input-phone tui-group__auto-width-item\"\n [countryCode]=\"inputPhoneCountryCode\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [(ngModel)]=\"value\"\n >\n <ng-content></ng-content>\n <input\n autocomplete=\"new-password\"\n tuiTextfield\n />\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n alt=\"\"\n class=\"t-country-item-flag\"\n [src]=\"item | tuiFlag\"\n />\n <span class=\"t-country-item-name\">\n {{ countriesNames[item] }}\n </span>\n <span class=\"t-country-item-code\">\n {{ item | tuiMapper: isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"t-flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryIsoCode | tuiFlag\"\n />\n </ng-template>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n >\n <ng-container *polymorpheusOutlet=\"arrow\"></ng-container>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiActiveZoneModule, TuiLetModule, TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {\n TuiDataListModule,\n TuiFlagPipeModule,\n TuiGroupModule,\n TuiHintModule,\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n TuiWrapperModule,\n} from '@taiga-ui/core';\nimport {TuiArrowModule} from '@taiga-ui/kit/components/arrow';\nimport {TuiInputPhoneModule} from '@taiga-ui/kit/components/input-phone';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputPhoneInternationalComponent} from './input-phone-international.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusModule,\n TuiSvgModule,\n TuiInputPhoneModule,\n TuiGroupModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHintModule,\n TuiHostedDropdownModule,\n TuiDataListModule,\n TuiArrowModule,\n TuiWrapperModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiActiveZoneModule,\n TuiFlagPipeModule,\n ],\n declarations: [TuiInputPhoneInternationalComponent],\n exports: [TuiInputPhoneInternationalComponent],\n})\nexport class TuiInputPhoneInternationalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,9 @@ function tuiCreatePhoneMaskExpression(countryCode, phoneMaskAfterCountryCode) {
|
|
|
86
86
|
];
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
function isText(value) {
|
|
90
|
+
return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));
|
|
91
|
+
}
|
|
89
92
|
class TuiInputPhoneComponent extends AbstractTuiControl {
|
|
90
93
|
constructor(control, cdr, textfieldCleaner, options, textfieldSize) {
|
|
91
94
|
super(control, cdr);
|
|
@@ -158,7 +161,8 @@ class TuiInputPhoneComponent extends AbstractTuiControl {
|
|
|
158
161
|
? value
|
|
159
162
|
: value.replace(TUI_MASK_SYMBOLS_REGEXP, '').slice(0, this.maxPhoneLength);
|
|
160
163
|
this.updateSearch(parsed);
|
|
161
|
-
|
|
164
|
+
const prepared = parsed === this.countryCode || isText(parsed) ? '' : parsed;
|
|
165
|
+
this.value = prepared === '' && !this.allowText ? this.countryCode : prepared;
|
|
162
166
|
this.open = true;
|
|
163
167
|
}
|
|
164
168
|
handleOption(item) {
|
|
@@ -301,9 +305,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
301
305
|
type: HostBinding,
|
|
302
306
|
args: ['attr.data-size']
|
|
303
307
|
}], calculateMask: [] } });
|
|
304
|
-
function isText(value) {
|
|
305
|
-
return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));
|
|
306
|
-
}
|
|
307
308
|
|
|
308
309
|
class TuiInputPhoneDirective extends AbstractTuiTextfieldHost {
|
|
309
310
|
get value() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-phone.js","sources":["../../../projects/kit/components/input-phone/input-phone.options.ts","../../../projects/kit/components/input-phone/utils/complete-phone-insertion-preprocessor.ts","../../../projects/kit/components/input-phone/utils/create-phone-mask-expression.ts","../../../projects/kit/components/input-phone/input-phone.component.ts","../../../projects/kit/components/input-phone/input-phone.template.html","../../../projects/kit/components/input-phone/input-phone.directive.ts","../../../projects/kit/components/input-phone/input-phone.module.ts","../../../projects/kit/components/input-phone/taiga-ui-kit-components-input-phone.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\n\nexport interface TuiInputPhoneOptions {\n readonly allowText: boolean;\n readonly countryCode: string;\n readonly phoneMaskAfterCountryCode: string;\n}\n\nexport const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions = {\n phoneMaskAfterCountryCode: `### ###-##-##`,\n allowText: false,\n countryCode: `+7`,\n};\n\n/**\n * Default parameters for input phone component\n */\nexport const TUI_INPUT_PHONE_OPTIONS = tuiCreateToken(TUI_INPUT_PHONE_DEFAULT_OPTIONS);\n\nexport function tuiInputPhoneOptionsProvider(\n options: Partial<TuiInputPhoneOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PHONE_OPTIONS,\n options,\n TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n );\n}\n","import {MaskitoPreprocessor} from '@maskito/core';\n\nconst countDigits = (value: string): number => value.replace(/\\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).replace(\n /[^#\\d]+/g,\n ``,\n ).length;\n\n const trimCountryPrefix = (value: string): string =>\n countryCode === `+7`\n ? value.replace(/^(\\+?7?\\s?8?)\\s?/, ``)\n : value.replace(\n new RegExp(`^(\\\\+?${countryCode.replace(`+`, ``)}?)\\\\s?`),\n ``,\n );\n\n return ({elementState, data}) => {\n const {value, selection} = elementState;\n\n return {\n elementState: {\n selection,\n value:\n /**\n * The only possible case when `value` includes digits more\n * than mask expression allows – browser autofill.\n * It means that we are inside `input`-event\n * and mask are ready to reject \"extra\" characters.\n * We should cut leading country prefix to save trailing characters!\n */\n countDigits(value) > completePhoneLength\n ? trimCountryPrefix(value)\n : value,\n },\n data:\n countDigits(data) >= completePhoneLength\n ? /**\n * User tries to insert/drop the complete phone number (with country prefix).\n * We should drop already existing non-removable prefix.\n */\n trimCountryPrefix(data)\n : data,\n };\n };\n}\n","/**\n * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number\n *\n * @example\n * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');\n */\nexport function tuiCreatePhoneMaskExpression(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): Array<RegExp | string> {\n return [\n ...countryCode.split(``),\n ` `,\n ...phoneMaskAfterCountryCode\n .replace(/[^#\\- ()]+/g, ``)\n .split(``)\n .map(item => (item === `#` ? /\\d/ : item)),\n ];\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {MASKITO_DEFAULT_OPTIONS, MaskitoOptions, maskitoTransform} from '@maskito/core';\nimport {maskitoCaretGuard, maskitoPrefixPostprocessorGenerator} from '@maskito/kit';\nimport {\n AbstractTuiControl,\n TuiActiveZoneDirective,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n TuiInputMode,\n tuiIsNativeFocused,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_MASK_SYMBOLS_REGEXP,\n TUI_TEXTFIELD_CLEANER,\n TUI_TEXTFIELD_SIZE,\n tuiAsDataListHost,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldCleanerDirective,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\n\nimport {TUI_INPUT_PHONE_OPTIONS, TuiInputPhoneOptions} from './input-phone.options';\nimport {\n tuiCreateCompletePhoneInsertionPreprocessor,\n tuiCreatePhoneMaskExpression,\n} from './utils';\n\n@Component({\n selector: 'tui-input-phone',\n templateUrl: './input-phone.template.html',\n styleUrls: ['./input-phone.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputPhoneComponent),\n tuiAsControl(TuiInputPhoneComponent),\n tuiAsDataListHost(TuiInputPhoneComponent),\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputPhoneComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiHostedDropdownComponent)\n private readonly dropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input('countryCode')\n set countryCodeSetter(newCountryCode: string) {\n const prevCountryCode = this.countryCode;\n\n this.countryCode = newCountryCode;\n this.updateValueWithNewCountryCode(prevCountryCode, newCountryCode);\n }\n\n @Input()\n phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;\n\n @Input()\n allowText = this.options.allowText;\n\n @Input()\n search = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist?: TemplateRef<TuiContextWithImplicit<TuiActiveZoneDirective>>;\n\n countryCode = this.options.countryCode;\n\n open = false;\n\n constructor(\n @Optional() @Self() @Inject(NgControl) control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n @Inject(TUI_INPUT_PHONE_OPTIONS) private readonly options: TuiInputPhoneOptions,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {\n super(control, cdr);\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.textfield || this.computedDisabled\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) ||\n (!!this.dropdown && this.dropdown.focused)\n );\n }\n\n get nativeValue(): string {\n return (\n this.nativeFocusableElement?.value ||\n maskitoTransform(this.value, this.maskOptions)\n );\n }\n\n set nativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n get inputMode(): TuiInputMode {\n return this.allowText ? 'text' : 'numeric';\n }\n\n get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n get canClean(): boolean {\n return (\n this.nativeValue !== this.nonRemovablePrefix && this.textfieldCleaner.cleaner\n );\n }\n\n get maskOptions(): MaskitoOptions {\n return this.calculateMask(\n this.countryCode,\n this.phoneMaskAfterCountryCode,\n this.nonRemovablePrefix,\n this.allowText,\n );\n }\n\n 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\n if (!active && !this.allowText && this.nativeFocusableElement) {\n this.nativeValue = this.nativeValue.replace(/\\D$/, '');\n }\n }\n\n onValueChange(value: string): void {\n const parsed = isText(value)\n ? value\n : value.replace(TUI_MASK_SYMBOLS_REGEXP, '').slice(0, this.maxPhoneLength);\n\n this.updateSearch(parsed);\n this.value = parsed === this.countryCode || isText(parsed) ? '' : parsed;\n this.open = true;\n }\n\n 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 override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n override writeValue(value: string | null): void {\n super.writeValue(value);\n this.nativeValue = maskitoTransform(value || '', this.maskOptions);\n this.updateSearch('');\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.replace(/[^#]+/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\nfunction isText(value: string): boolean {\n return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));\n}\n","<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"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></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n","import {Directive, DoCheck} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\n\n@Directive({\n selector: 'tui-input-phone',\n providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],\n})\nexport class TuiInputPhoneDirective\n extends AbstractTuiTextfieldHost<TuiInputPhoneComponent>\n implements DoCheck\n{\n input?: HTMLInputElement;\n\n override get value(): string {\n return this.host.nativeValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n override process(input: HTMLInputElement): void {\n this.input = input;\n }\n\n 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 {MaskitoModule} from '@maskito/angular';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\n@NgModule({\n imports: [\n MaskitoModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiTextfieldControllerModule,\n TuiActiveZoneModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],\n exports: [TuiInputPhoneComponent, TuiInputPhoneDirective, TuiTextfieldComponent],\n})\nexport class TuiInputPhoneModule {}\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-kit-components-input-phone.js","sources":["../../../projects/kit/components/input-phone/input-phone.options.ts","../../../projects/kit/components/input-phone/utils/complete-phone-insertion-preprocessor.ts","../../../projects/kit/components/input-phone/utils/create-phone-mask-expression.ts","../../../projects/kit/components/input-phone/input-phone.component.ts","../../../projects/kit/components/input-phone/input-phone.template.html","../../../projects/kit/components/input-phone/input-phone.directive.ts","../../../projects/kit/components/input-phone/input-phone.module.ts","../../../projects/kit/components/input-phone/taiga-ui-kit-components-input-phone.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\n\nexport interface TuiInputPhoneOptions {\n readonly allowText: boolean;\n readonly countryCode: string;\n readonly phoneMaskAfterCountryCode: string;\n}\n\nexport const TUI_INPUT_PHONE_DEFAULT_OPTIONS: TuiInputPhoneOptions = {\n phoneMaskAfterCountryCode: `### ###-##-##`,\n allowText: false,\n countryCode: `+7`,\n};\n\n/**\n * Default parameters for input phone component\n */\nexport const TUI_INPUT_PHONE_OPTIONS = tuiCreateToken(TUI_INPUT_PHONE_DEFAULT_OPTIONS);\n\nexport function tuiInputPhoneOptionsProvider(\n options: Partial<TuiInputPhoneOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PHONE_OPTIONS,\n options,\n TUI_INPUT_PHONE_DEFAULT_OPTIONS,\n );\n}\n","import {MaskitoPreprocessor} from '@maskito/core';\n\nconst countDigits = (value: string): number => value.replace(/\\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).replace(\n /[^#\\d]+/g,\n ``,\n ).length;\n\n const trimCountryPrefix = (value: string): string =>\n countryCode === `+7`\n ? value.replace(/^(\\+?7?\\s?8?)\\s?/, ``)\n : value.replace(\n new RegExp(`^(\\\\+?${countryCode.replace(`+`, ``)}?)\\\\s?`),\n ``,\n );\n\n return ({elementState, data}) => {\n const {value, selection} = elementState;\n\n return {\n elementState: {\n selection,\n value:\n /**\n * The only possible case when `value` includes digits more\n * than mask expression allows – browser autofill.\n * It means that we are inside `input`-event\n * and mask are ready to reject \"extra\" characters.\n * We should cut leading country prefix to save trailing characters!\n */\n countDigits(value) > completePhoneLength\n ? trimCountryPrefix(value)\n : value,\n },\n data:\n countDigits(data) >= completePhoneLength\n ? /**\n * User tries to insert/drop the complete phone number (with country prefix).\n * We should drop already existing non-removable prefix.\n */\n trimCountryPrefix(data)\n : data,\n };\n };\n}\n","/**\n * Create {@link https://maskito.dev/core-concepts/mask-expression pattern mask expression} for phone number\n *\n * @example\n * tuiCreatePhoneMaskExpression('+1', '(###) ###-####');\n */\nexport function tuiCreatePhoneMaskExpression(\n countryCode: string,\n phoneMaskAfterCountryCode: string,\n): Array<RegExp | string> {\n return [\n ...countryCode.split(``),\n ` `,\n ...phoneMaskAfterCountryCode\n .replace(/[^#\\- ()]+/g, ``)\n .split(``)\n .map(item => (item === `#` ? /\\d/ : item)),\n ];\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {MASKITO_DEFAULT_OPTIONS, MaskitoOptions, maskitoTransform} from '@maskito/core';\nimport {maskitoCaretGuard, maskitoPrefixPostprocessorGenerator} from '@maskito/kit';\nimport {\n AbstractTuiControl,\n TuiActiveZoneDirective,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n TuiInputMode,\n tuiIsNativeFocused,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_MASK_SYMBOLS_REGEXP,\n TUI_TEXTFIELD_CLEANER,\n TUI_TEXTFIELD_SIZE,\n tuiAsDataListHost,\n TuiDataListDirective,\n TuiDataListHost,\n TuiHostedDropdownComponent,\n TuiPrimitiveTextfieldComponent,\n TuiSizeL,\n TuiSizeS,\n TuiTextfieldCleanerDirective,\n TuiTextfieldSizeDirective,\n} from '@taiga-ui/core';\nimport {FIXED_DROPDOWN_CONTROLLER_PROVIDER} from '@taiga-ui/kit/providers';\n\nimport {TUI_INPUT_PHONE_OPTIONS, TuiInputPhoneOptions} from './input-phone.options';\nimport {\n tuiCreateCompletePhoneInsertionPreprocessor,\n tuiCreatePhoneMaskExpression,\n} from './utils';\n\nfunction isText(value: string): boolean {\n return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));\n}\n\n@Component({\n selector: 'tui-input-phone',\n templateUrl: './input-phone.template.html',\n styleUrls: ['./input-phone.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputPhoneComponent),\n tuiAsControl(TuiInputPhoneComponent),\n tuiAsDataListHost(TuiInputPhoneComponent),\n ],\n viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER],\n})\nexport class TuiInputPhoneComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor, TuiDataListHost<string>\n{\n @ViewChild(TuiHostedDropdownComponent)\n private readonly dropdown?: TuiHostedDropdownComponent;\n\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @Input('countryCode')\n set countryCodeSetter(newCountryCode: string) {\n const prevCountryCode = this.countryCode;\n\n this.countryCode = newCountryCode;\n this.updateValueWithNewCountryCode(prevCountryCode, newCountryCode);\n }\n\n @Input()\n phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;\n\n @Input()\n allowText = this.options.allowText;\n\n @Input()\n search = '';\n\n @Output()\n readonly searchChange = new EventEmitter<string>();\n\n @ContentChild(TuiDataListDirective, {read: TemplateRef})\n readonly datalist?: TemplateRef<TuiContextWithImplicit<TuiActiveZoneDirective>>;\n\n countryCode = this.options.countryCode;\n\n open = false;\n\n constructor(\n @Optional() @Self() @Inject(NgControl) control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_CLEANER)\n private readonly textfieldCleaner: TuiTextfieldCleanerDirective,\n @Inject(TUI_INPUT_PHONE_OPTIONS) private readonly options: TuiInputPhoneOptions,\n @Inject(TUI_TEXTFIELD_SIZE)\n private readonly textfieldSize: TuiTextfieldSizeDirective,\n ) {\n super(control, cdr);\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.textfield || this.computedDisabled\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) ||\n (!!this.dropdown && this.dropdown.focused)\n );\n }\n\n get nativeValue(): string {\n return (\n this.nativeFocusableElement?.value ||\n maskitoTransform(this.value, this.maskOptions)\n );\n }\n\n set nativeValue(value: string) {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = value;\n }\n }\n\n get inputMode(): TuiInputMode {\n return this.allowText ? 'text' : 'numeric';\n }\n\n get canOpen(): boolean {\n return this.interactive && !!this.datalist;\n }\n\n get canClean(): boolean {\n return (\n this.nativeValue !== this.nonRemovablePrefix && this.textfieldCleaner.cleaner\n );\n }\n\n get maskOptions(): MaskitoOptions {\n return this.calculateMask(\n this.countryCode,\n this.phoneMaskAfterCountryCode,\n this.nonRemovablePrefix,\n this.allowText,\n );\n }\n\n 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\n if (!active && !this.allowText && this.nativeFocusableElement) {\n this.nativeValue = this.nativeValue.replace(/\\D$/, '');\n }\n }\n\n onValueChange(value: string): void {\n const parsed = isText(value)\n ? value\n : value.replace(TUI_MASK_SYMBOLS_REGEXP, '').slice(0, this.maxPhoneLength);\n\n this.updateSearch(parsed);\n\n const prepared = parsed === this.countryCode || isText(parsed) ? '' : parsed;\n\n this.value = prepared === '' && !this.allowText ? this.countryCode : prepared;\n this.open = true;\n }\n\n 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 override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n override writeValue(value: string | null): void {\n super.writeValue(value);\n this.nativeValue = maskitoTransform(value || '', this.maskOptions);\n this.updateSearch('');\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.replace(/[^#]+/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","<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"canOpen\"\n [content]=\"datalist || ''\"\n [(open)]=\"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></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-primitive-textfield>\n</tui-hosted-dropdown>\n","import {Directive, DoCheck} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\n\n@Directive({\n selector: 'tui-input-phone',\n providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],\n})\nexport class TuiInputPhoneDirective\n extends AbstractTuiTextfieldHost<TuiInputPhoneComponent>\n implements DoCheck\n{\n input?: HTMLInputElement;\n\n override get value(): string {\n return this.host.nativeValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n override process(input: HTMLInputElement): void {\n this.input = input;\n }\n\n 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 {MaskitoModule} from '@maskito/angular';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {\n TuiHostedDropdownModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\n\nimport {TuiInputPhoneComponent} from './input-phone.component';\nimport {TuiInputPhoneDirective} from './input-phone.directive';\n\n@NgModule({\n imports: [\n MaskitoModule,\n TuiPrimitiveTextfieldModule,\n TuiHostedDropdownModule,\n TuiTextfieldControllerModule,\n TuiActiveZoneModule,\n TuiValueAccessorModule,\n ],\n declarations: [TuiInputPhoneComponent, TuiInputPhoneDirective],\n exports: [TuiInputPhoneComponent, TuiInputPhoneDirective, TuiTextfieldComponent],\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,CAAe,aAAA,CAAA;AAC1C,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,WAAW,EAAE,CAAI,EAAA,CAAA;EACnB;AAEF;;AAEG;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;;AC1BA,MAAM,WAAW,GAAG,CAAC,KAAa,KAAa,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AAE/E;;;;;;AAMG;AACa,SAAA,2CAA2C,CACvD,WAAmB,EACnB,yBAAiC,EAAA;AAEjC,IAAA,MAAM,mBAAmB,GAAG,CAAC,WAAW,GAAG,yBAAyB,EAAE,OAAO,CACzE,UAAU,EACV,CAAA,CAAE,CACL,CAAC,MAAM,CAAC;IAET,MAAM,iBAAiB,GAAG,CAAC,KAAa,KACpC,WAAW,KAAK,CAAI,EAAA,CAAA;UACd,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;UACrC,KAAK,CAAC,OAAO,CACT,IAAI,MAAM,CAAC,CAAA,MAAA,EAAS,WAAW,CAAC,OAAO,CAAC,CAAA,CAAA,CAAG,EAAE,CAAE,CAAA,CAAC,QAAQ,CAAC,EACzD,CAAE,CAAA,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,CAAG,CAAA,CAAA;AACH,QAAA,GAAG,yBAAyB;AACvB,aAAA,OAAO,CAAC,aAAa,EAAE,CAAA,CAAE,CAAC;aAC1B,KAAK,CAAC,EAAE,CAAC;AACT,aAAA,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAA,CAAA,CAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;KACjD,CAAC;AACN;;ACiCA,SAAS,MAAM,CAAC,KAAa,EAAA;AACzB,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAcK,MAAO,sBACT,SAAQ,kBAA0B,CAAA;IAoClC,WAC2C,CAAA,OAAyB,EACrC,GAAsB,EAEhC,gBAA8C,EACb,OAA6B,EAE9D,aAAwC,EAAA;AAEzD,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QALH,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA8B;QACb,IAAO,CAAA,OAAA,GAAP,OAAO,CAAsB;QAE9D,IAAa,CAAA,aAAA,GAAb,aAAa,CAA2B;AAzB7D,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;AAKnD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAEvC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;KAYZ;IArCD,IACI,iBAAiB,CAAC,cAAsB,EAAA;AACxC,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;AAiCD,IAAA,IACI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;KAClC;AAED,IAAA,IAAI,sBAAsB,GAAA;AACtB,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,IAAI,OAAO,GAAA;AACP,QAAA,QACI,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC/C,aAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC5C;KACL;AAED,IAAA,IAAI,WAAW,GAAA;;AACX,QAAA,QACI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,sBAAsB,0CAAE,KAAK;YAClC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAChD;KACL;IAED,IAAI,WAAW,CAAC,KAAa,EAAA;QACzB,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,KAAK,CAAC;AAC7C,SAAA;KACJ;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;KAC9C;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC9C;AAED,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,QACI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAC/E;KACL;AAED,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,SAAS,CACjB,CAAC;KACL;AAED,IAAA,YAAY,CAAC,MAAe,EAAA;AACxB,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;AACzB,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;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACvB,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,cAAE,KAAK;AACP,cAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAE/E,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QAE7E,IAAI,CAAC,KAAK,GAAG,QAAQ,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC9E,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;QACrB,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;IAEQ,gBAAgB,GAAA;QACrB,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;AAEQ,IAAA,UAAU,CAAC,KAAoB,EAAA;AACpC,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;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,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAC7D;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;;oHA3OQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAsCC,SAAS,EAC7B,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,iBAAiB,aACjB,qBAAqB,EAAA,EAAA,EAAA,KAAA,EAErB,uBAAuB,EAAA,EAAA,EAAA,KAAA,EACvB,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA3CrB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAPpB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACP,0BAA0B,CAAC,sBAAsB,CAAC;QAClD,YAAY,CAAC,sBAAsB,CAAC;QACpC,iBAAiB,CAAC,sBAAsB,CAAC;AAC5C,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiCa,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAS,WAAW,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA1B3C,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAG1B,8BAA8B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1E7C,44BA6BA,EAAA,MAAA,EAAA,CAAA,kNAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,qHAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EDoCmB,CAAC,kCAAkC,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;AAiLnD,UAAA,CAAA;IADC,OAAO;AAoCP,CAAA,EAAA,sBAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;4FAlNQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,WAAW,EAAE,6BAA6B;oBAC1C,SAAS,EAAE,CAAC,0BAA0B,CAAC;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACP,wBAAA,0BAA0B,CAAwB,sBAAA,CAAA;AAClD,wBAAA,YAAY,CAAwB,sBAAA,CAAA;AACpC,wBAAA,iBAAiB,CAAwB,sBAAA,CAAA;AAC5C,qBAAA;oBACD,aAAa,EAAE,CAAC,kCAAkC,CAAC;AACtD,iBAAA,CAAA;;0BAuCQ,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,SAAS,CAAA;;0BACpC,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,qBAAqB,CAAA;;0BAE5B,MAAM;2BAAC,uBAAuB,CAAA;;0BAC9B,MAAM;2BAAC,kBAAkB,CAAA;4CAtCb,QAAQ,EAAA,CAAA;sBADxB,SAAS;uBAAC,0BAA0B,CAAA;gBAIpB,SAAS,EAAA,CAAA;sBADzB,SAAS;uBAAC,8BAA8B,CAAA;gBAIrC,iBAAiB,EAAA,CAAA;sBADpB,KAAK;uBAAC,aAAa,CAAA;gBASpB,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIG,YAAY,EAAA,CAAA;sBADpB,MAAM;gBAIE,QAAQ,EAAA,CAAA;sBADhB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAA;gBAoBnD,IAAI,EAAA,CAAA;sBADP,WAAW;uBAAC,gBAAgB,CAAA;gBA8HrB,aAAa,EAAA,EAAA,EAAA,EAAA,CAAA;;AEzOnB,MAAO,sBACT,SAAQ,wBAAgD,CAAA;AAKxD,IAAA,IAAa,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;KAChC;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAClC;AAEQ,IAAA,OAAO,CAAC,KAAuB,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAED,SAAS,GAAA;AACL,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;;oHAzBQ,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,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;4FAE9C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE,CAAC,kBAAkB,CAAA,sBAAA,CAAwB,CAAC;AAC1D,iBAAA,CAAA;;;MCkBY,mBAAmB,CAAA;;iHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHb,YAAA,EAAA,CAAA,sBAAsB,EAAE,sBAAsB,aAPzD,aAAa;QACb,2BAA2B;QAC3B,uBAAuB;QACvB,4BAA4B;QAC5B,mBAAmB;AACnB,QAAA,sBAAsB,CAGhB,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEtE,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAXnB,OAAA,EAAA,CAAA;YACL,aAAa;YACb,2BAA2B;YAC3B,uBAAuB;YACvB,4BAA4B;YAC5B,mBAAmB;YACnB,sBAAsB;AACzB,SAAA,CAAA,EAAA,CAAA,CAAA;4FAIQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,aAAa;wBACb,2BAA2B;wBAC3B,uBAAuB;wBACvB,4BAA4B;wBAC5B,mBAAmB;wBACnB,sBAAsB;AACzB,qBAAA;AACD,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;AAC9D,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,CAAC;AACnF,iBAAA,CAAA;;;ACzBD;;AAEG;;;;"}
|
|
@@ -120,7 +120,7 @@ TuiInputSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
120
120
|
tuiAsControl(TuiInputSliderComponent),
|
|
121
121
|
tuiSliderOptionsProvider({ trackColor: 'transparent' }),
|
|
122
122
|
TEXTFIELD_CONTROLLER_PROVIDER,
|
|
123
|
-
], viewQueries: [{ propertyName: "inputNumberRef", first: true, predicate: TuiInputNumberComponent, descendants: true }, { propertyName: "sliderRef", first: true, predicate: TuiSliderComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<tui-input-number\n [decimal]=\"decimal\"\n [disabled]=\"computedDisabled\"\n [max]=\"max\"\n [min]=\"min\"\n [precision]=\"precision\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldPostfix]=\"showValueContent ? '' : postfix\"\n [tuiTextfieldPrefix]=\"showValueContent ? '' : prefix\"\n [(ngModel)]=\"textfieldValue\"\n (focusedChange)=\"onFocused($event)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showValueContent\"\n automation-id=\"tui-input-slider__value-content\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-input-number>\n\n<input\n tuiSlider\n type=\"range\"\n [disabled]=\"readOnly || computedDisabled\"\n [keySteps]=\"computeKeySteps(keySteps, min, max)\"\n [max]=\"computedSteps\"\n [ngModel]=\"value\"\n [segments]=\"segments\"\n [tuiFocusable]=\"false\"\n (click)=\"focusTextInput()\"\n (ngModelChange)=\"onSliderChange($event)\"\n/>\n", styles: [":host{position:relative;display:block;height:-webkit-max-content;height:max-content;isolation:isolate}input[type=range]{position:absolute;top:100%;left:
|
|
123
|
+
], viewQueries: [{ propertyName: "inputNumberRef", first: true, predicate: TuiInputNumberComponent, descendants: true }, { propertyName: "sliderRef", first: true, predicate: TuiSliderComponent, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<tui-input-number\n [decimal]=\"decimal\"\n [disabled]=\"computedDisabled\"\n [max]=\"max\"\n [min]=\"min\"\n [precision]=\"precision\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldPostfix]=\"showValueContent ? '' : postfix\"\n [tuiTextfieldPrefix]=\"showValueContent ? '' : prefix\"\n [(ngModel)]=\"textfieldValue\"\n (focusedChange)=\"onFocused($event)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showValueContent\"\n automation-id=\"tui-input-slider__value-content\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-input-number>\n\n<input\n tuiSlider\n type=\"range\"\n [disabled]=\"readOnly || computedDisabled\"\n [keySteps]=\"computeKeySteps(keySteps, min, max)\"\n [max]=\"computedSteps\"\n [ngModel]=\"value\"\n [segments]=\"segments\"\n [tuiFocusable]=\"false\"\n (click)=\"focusTextInput()\"\n (ngModelChange)=\"onSliderChange($event)\"\n/>\n", styles: [":host{position:relative;display:block;height:-webkit-max-content;height:max-content;isolation:isolate}input[type=range]{position:absolute;top:100%;left:calc(var(--tui-radius-m) / 2);right:0;width:calc(100% - calc(var(--tui-radius-m) / 2));box-sizing:border-box;height:1rem;margin:-.5625rem 0 0;border-top-left-radius:0;border-bottom-left-radius:calc(var(--tui-radius-m) * 5) calc(var(--tui-radius-m) * 1.5)}\n"], components: [{ type: i1.TuiInputNumberComponent, selector: "tui-input-number", inputs: ["min", "max", "decimal", "precision", "step", "prefix", "postfix"] }, { type: i2.TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: ["size", "segments"] }], directives: [{ type: i1.TuiInputNumberDirective, selector: "tui-input-number" }, { type: i3.TuiTextfieldPostfixDirective, selector: "[tuiTextfieldPostfix]", inputs: ["tuiTextfieldPostfix"] }, { type: i3.TuiTextfieldPrefixDirective, selector: "[tuiTextfieldPrefix]", inputs: ["tuiTextfieldPrefix"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i2.TuiSliderKeyStepsDirective, selector: "input[tuiSlider][keySteps]", inputs: ["keySteps"] }, { type: i4.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.TuiFocusableDirective, selector: "[tuiFocusable]", inputs: ["tuiFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
124
124
|
__decorate([
|
|
125
125
|
tuiPure
|
|
126
126
|
], TuiInputSliderComponent.prototype, "computeKeySteps", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-slider.js","sources":["../../../projects/kit/components/input-slider/input-slider.component.ts","../../../projects/kit/components/input-slider/input-slider.template.html","../../../projects/kit/components/input-slider/input-slider.module.ts","../../../projects/kit/components/input-slider/taiga-ui-kit-components-input-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n tuiClamp,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n TuiNativeFocusableElement,\n tuiPure,\n tuiRound,\n} from '@taiga-ui/cdk';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiDecimal,\n tuiGetFractionPartPadded,\n TuiTextfieldController,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiInputNumberComponent} from '@taiga-ui/kit/components/input-number';\nimport {\n TuiSliderComponent,\n tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n@Component({\n selector: 'tui-input-slider',\n templateUrl: './input-slider.template.html',\n styleUrls: ['./input-slider.style.less'],\n host: {\n '[attr.data-size]': 'controller.size',\n '[class._label-outside]': 'controller.labelOutside',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputSliderComponent),\n tuiAsControl(TuiInputSliderComponent),\n tuiSliderOptionsProvider({trackColor: 'transparent'}),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputSliderComponent\n extends AbstractTuiControl<number>\n implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiInputNumberComponent)\n private readonly inputNumberRef?: TuiInputNumberComponent;\n\n @ViewChild(TuiSliderComponent, {read: ElementRef})\n private readonly sliderRef?: ElementRef<HTMLInputElement>;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n quantum = 1;\n\n @Input()\n steps = 0;\n\n @Input()\n segments = 1;\n\n @Input()\n keySteps: TuiKeySteps | null = null;\n\n @Input()\n valueContent: PolymorpheusContent<TuiContextWithImplicit<number>>;\n\n /** @deprecated use `tuiTextfieldPrefix` from {@link TuiTextfieldControllerModule} instead */\n @Input('prefix')\n textfieldPrefix = '';\n\n /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */\n @Input('postfix')\n textfieldPostfix = '';\n\n textfieldValue = this.safeCurrentValue;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n ) {\n super(control, cdr);\n }\n\n get prefix(): string {\n return this.textfieldPrefix || this.controller.prefix;\n }\n\n get postfix(): string {\n return this.textfieldPostfix || this.controller.postfix;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return !this.inputNumberRef?.nativeFocusableElement || this.computedDisabled\n ? null\n : this.inputNumberRef.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) ||\n tuiIsNativeFocused(this.sliderRef?.nativeElement || null)\n );\n }\n\n get computedSteps(): number {\n return this.steps || (this.max - this.min) / this.quantum;\n }\n\n get precision(): number {\n return tuiGetFractionPartPadded(this.quantum).length;\n }\n\n get decimal(): TuiDecimal {\n return this.precision ? 'not-zero' : 'never';\n }\n\n get showValueContent(): boolean {\n return Boolean(this.valueContent && !this.focused);\n }\n\n get step(): number {\n return (this.max - this.min) / this.computedSteps;\n }\n\n @tuiPure\n computeKeySteps(keySteps: TuiKeySteps | null, min: number, max: number): TuiKeySteps {\n return (\n keySteps || [\n [0, min],\n [100, max],\n ]\n );\n }\n\n focusTextInput(): void {\n const focusableElement = this.inputNumberRef?.nativeFocusableElement;\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }\n\n safelyUpdateValue(value: number | null): void {\n this.value = this.valueGuard(value ?? this.safeCurrentValue);\n }\n\n onVerticalArrowKeyDown(coefficient: number): void {\n if (this.readOnly || !this.step) {\n return;\n }\n\n const value = this.value + coefficient * this.step;\n\n if (value !== this.value) {\n this.safelyUpdateValue(value);\n this.textfieldValue = this.value;\n }\n }\n\n onSliderChange(newValue: number): void {\n this.safelyUpdateValue(newValue);\n this.textfieldValue = this.value;\n }\n\n onFocused(focused: boolean): void {\n const {value, textfieldValue} = this;\n\n if (!focused && textfieldValue !== value) {\n this.textfieldValue = value;\n }\n\n this.updateFocused(focused);\n }\n\n override writeValue(value: number | null): void {\n super.writeValue(value);\n this.textfieldValue = this.value;\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private valueGuard(value: number): number {\n const roundedValue = tuiRound(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n );\n\n return tuiClamp(roundedValue, this.min, this.max);\n }\n}\n","<tui-input-number\n [decimal]=\"decimal\"\n [disabled]=\"computedDisabled\"\n [max]=\"max\"\n [min]=\"min\"\n [precision]=\"precision\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldPostfix]=\"showValueContent ? '' : postfix\"\n [tuiTextfieldPrefix]=\"showValueContent ? '' : prefix\"\n [(ngModel)]=\"textfieldValue\"\n (focusedChange)=\"onFocused($event)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showValueContent\"\n automation-id=\"tui-input-slider__value-content\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-input-number>\n\n<input\n tuiSlider\n type=\"range\"\n [disabled]=\"readOnly || computedDisabled\"\n [keySteps]=\"computeKeySteps(keySteps, min, max)\"\n [max]=\"computedSteps\"\n [ngModel]=\"value\"\n [segments]=\"segments\"\n [tuiFocusable]=\"false\"\n (click)=\"focusTextInput()\"\n (ngModelChange)=\"onSliderChange($event)\"\n/>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFocusableModule} from '@taiga-ui/cdk';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/core';\nimport {TuiInputNumberModule} from '@taiga-ui/kit/components/input-number';\nimport {TuiSliderModule} from '@taiga-ui/kit/components/slider';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputSliderComponent} from './input-slider.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusModule,\n TuiFocusableModule,\n TuiInputNumberModule,\n TuiSliderModule,\n TuiTextfieldControllerModule,\n ],\n declarations: [TuiInputSliderComponent],\n exports: [TuiInputSliderComponent],\n})\nexport class TuiInputSliderModule {}\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-kit-components-input-slider.js","sources":["../../../projects/kit/components/input-slider/input-slider.component.ts","../../../projects/kit/components/input-slider/input-slider.template.html","../../../projects/kit/components/input-slider/input-slider.module.ts","../../../projects/kit/components/input-slider/taiga-ui-kit-components-input-slider.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n tuiClamp,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n TuiNativeFocusableElement,\n tuiPure,\n tuiRound,\n} from '@taiga-ui/cdk';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiDecimal,\n tuiGetFractionPartPadded,\n TuiTextfieldController,\n TuiWithOptionalMinMax,\n} from '@taiga-ui/core';\nimport {TuiInputNumberComponent} from '@taiga-ui/kit/components/input-number';\nimport {\n TuiSliderComponent,\n tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {TUI_FLOATING_PRECISION} from '@taiga-ui/kit/constants';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n@Component({\n selector: 'tui-input-slider',\n templateUrl: './input-slider.template.html',\n styleUrls: ['./input-slider.style.less'],\n host: {\n '[attr.data-size]': 'controller.size',\n '[class._label-outside]': 'controller.labelOutside',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputSliderComponent),\n tuiAsControl(TuiInputSliderComponent),\n tuiSliderOptionsProvider({trackColor: 'transparent'}),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiInputSliderComponent\n extends AbstractTuiControl<number>\n implements TuiWithOptionalMinMax<number>, TuiFocusableElementAccessor\n{\n @ViewChild(TuiInputNumberComponent)\n private readonly inputNumberRef?: TuiInputNumberComponent;\n\n @ViewChild(TuiSliderComponent, {read: ElementRef})\n private readonly sliderRef?: ElementRef<HTMLInputElement>;\n\n @Input()\n min = 0;\n\n @Input()\n max = 100;\n\n @Input()\n quantum = 1;\n\n @Input()\n steps = 0;\n\n @Input()\n segments = 1;\n\n @Input()\n keySteps: TuiKeySteps | null = null;\n\n @Input()\n valueContent: PolymorpheusContent<TuiContextWithImplicit<number>>;\n\n /** @deprecated use `tuiTextfieldPrefix` from {@link TuiTextfieldControllerModule} instead */\n @Input('prefix')\n textfieldPrefix = '';\n\n /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */\n @Input('postfix')\n textfieldPostfix = '';\n\n textfieldValue = this.safeCurrentValue;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n ) {\n super(control, cdr);\n }\n\n get prefix(): string {\n return this.textfieldPrefix || this.controller.prefix;\n }\n\n get postfix(): string {\n return this.textfieldPostfix || this.controller.postfix;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return !this.inputNumberRef?.nativeFocusableElement || this.computedDisabled\n ? null\n : this.inputNumberRef.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return (\n tuiIsNativeFocused(this.nativeFocusableElement) ||\n tuiIsNativeFocused(this.sliderRef?.nativeElement || null)\n );\n }\n\n get computedSteps(): number {\n return this.steps || (this.max - this.min) / this.quantum;\n }\n\n get precision(): number {\n return tuiGetFractionPartPadded(this.quantum).length;\n }\n\n get decimal(): TuiDecimal {\n return this.precision ? 'not-zero' : 'never';\n }\n\n get showValueContent(): boolean {\n return Boolean(this.valueContent && !this.focused);\n }\n\n get step(): number {\n return (this.max - this.min) / this.computedSteps;\n }\n\n @tuiPure\n computeKeySteps(keySteps: TuiKeySteps | null, min: number, max: number): TuiKeySteps {\n return (\n keySteps || [\n [0, min],\n [100, max],\n ]\n );\n }\n\n focusTextInput(): void {\n const focusableElement = this.inputNumberRef?.nativeFocusableElement;\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }\n\n safelyUpdateValue(value: number | null): void {\n this.value = this.valueGuard(value ?? this.safeCurrentValue);\n }\n\n onVerticalArrowKeyDown(coefficient: number): void {\n if (this.readOnly || !this.step) {\n return;\n }\n\n const value = this.value + coefficient * this.step;\n\n if (value !== this.value) {\n this.safelyUpdateValue(value);\n this.textfieldValue = this.value;\n }\n }\n\n onSliderChange(newValue: number): void {\n this.safelyUpdateValue(newValue);\n this.textfieldValue = this.value;\n }\n\n onFocused(focused: boolean): void {\n const {value, textfieldValue} = this;\n\n if (!focused && textfieldValue !== value) {\n this.textfieldValue = value;\n }\n\n this.updateFocused(focused);\n }\n\n override writeValue(value: number | null): void {\n super.writeValue(value);\n this.textfieldValue = this.value;\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private valueGuard(value: number): number {\n const roundedValue = tuiRound(\n Math.round(value / this.quantum) * this.quantum,\n TUI_FLOATING_PRECISION,\n );\n\n return tuiClamp(roundedValue, this.min, this.max);\n }\n}\n","<tui-input-number\n [decimal]=\"decimal\"\n [disabled]=\"computedDisabled\"\n [max]=\"max\"\n [min]=\"min\"\n [precision]=\"precision\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldPostfix]=\"showValueContent ? '' : postfix\"\n [tuiTextfieldPrefix]=\"showValueContent ? '' : prefix\"\n [(ngModel)]=\"textfieldValue\"\n (focusedChange)=\"onFocused($event)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showValueContent\"\n automation-id=\"tui-input-slider__value-content\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-input-number>\n\n<input\n tuiSlider\n type=\"range\"\n [disabled]=\"readOnly || computedDisabled\"\n [keySteps]=\"computeKeySteps(keySteps, min, max)\"\n [max]=\"computedSteps\"\n [ngModel]=\"value\"\n [segments]=\"segments\"\n [tuiFocusable]=\"false\"\n (click)=\"focusTextInput()\"\n (ngModelChange)=\"onSliderChange($event)\"\n/>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiFocusableModule} from '@taiga-ui/cdk';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/core';\nimport {TuiInputNumberModule} from '@taiga-ui/kit/components/input-number';\nimport {TuiSliderModule} from '@taiga-ui/kit/components/slider';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputSliderComponent} from './input-slider.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n PolymorpheusModule,\n TuiFocusableModule,\n TuiInputNumberModule,\n TuiSliderModule,\n TuiTextfieldControllerModule,\n ],\n declarations: [TuiInputSliderComponent],\n exports: [TuiInputSliderComponent],\n})\nexport class TuiInputSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAyDM,MAAO,uBACT,SAAQ,kBAA0B,CAAA;AAwClC,IAAA,WAAA,CAII,OAAyB,EACE,GAAsB,EAExC,UAAkC,EAAA;AAE3C,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAFX,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;QArC/C,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;QAGR,IAAG,CAAA,GAAA,GAAG,GAAG,CAAC;QAGV,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QAGZ,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QAGV,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QAGb,IAAQ,CAAA,QAAA,GAAuB,IAAI,CAAC;;QAOpC,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;;QAIrB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;AAEtB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC;KAYtC;AAED,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;KACzD;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;KAC3D;AAED,IAAA,IAAI,sBAAsB,GAAA;;AACtB,QAAA,OAAO,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,sBAAsB,CAAA,IAAI,IAAI,CAAC,gBAAgB;AACxE,cAAE,IAAI;AACN,cAAE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;KACpD;AAED,IAAA,IAAI,OAAO,GAAA;;AACP,QAAA,QACI,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC/C,YAAA,kBAAkB,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,KAAI,IAAI,CAAC,EAC3D;KACL;AAED,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;KAC7D;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;KACxD;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;KAChD;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC;KACrD;AAGD,IAAA,eAAe,CAAC,QAA4B,EAAE,GAAW,EAAE,GAAW,EAAA;QAClE,QACI,QAAQ,IAAI;YACR,CAAC,CAAC,EAAE,GAAG,CAAC;YACR,CAAC,GAAG,EAAE,GAAG,CAAC;AACb,SAAA,EACH;KACL;IAED,cAAc,GAAA;;QACV,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,sBAAsB,CAAC;AAErE,QAAA,IAAI,gBAAgB,EAAE;YAClB,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAA;KACJ;AAED,IAAA,iBAAiB,CAAC,KAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAChE;AAED,IAAA,sBAAsB,CAAC,WAAmB,EAAA;QACtC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO;AACV,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;AAEnD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;AACpC,SAAA;KACJ;AAED,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;KACpC;AAED,IAAA,SAAS,CAAC,OAAgB,EAAA;AACtB,QAAA,MAAM,EAAC,KAAK,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;AAErC,QAAA,IAAI,CAAC,OAAO,IAAI,cAAc,KAAK,KAAK,EAAE;AACtC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;AAEQ,IAAA,UAAU,CAAC,KAAoB,EAAA;AACpC,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;KACpC;IAES,gBAAgB,GAAA;AACtB,QAAA,OAAO,CAAC,CAAC;KACZ;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;QAC5B,MAAM,YAAY,GAAG,QAAQ,CACzB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAC/C,sBAAsB,CACzB,CAAC;AAEF,QAAA,OAAO,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrD;;AAhKQ,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EA4CpB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,SAAS,EAET,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,iBAAiB,aACjB,gCAAgC,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA/CnC,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAPrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,CAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACP,0BAA0B,CAAC,uBAAuB,CAAC;QACnD,YAAY,CAAC,uBAAuB,CAAC;AACrC,QAAA,wBAAwB,CAAC,EAAC,UAAU,EAAE,aAAa,EAAC,CAAC;QACrD,6BAA6B;AAChC,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMU,uBAAuB,EAGvB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,EAAS,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,oDChEpD,+4CA2CA,EAAA,MAAA,EAAA,CAAA,2ZAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;AD6GI,UAAA,CAAA;IADC,OAAO;AAQP,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;4FAtGQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,WAAW,EAAE,8BAA8B;oBAC3C,SAAS,EAAE,CAAC,2BAA2B,CAAC;AACxC,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,iBAAiB;AACrC,wBAAA,wBAAwB,EAAE,yBAAyB;AACtD,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE;AACP,wBAAA,0BAA0B,CAAyB,uBAAA,CAAA;AACnD,wBAAA,YAAY,CAAyB,uBAAA,CAAA;AACrC,wBAAA,wBAAwB,CAAC,EAAC,UAAU,EAAE,aAAa,EAAC,CAAC;wBACrD,6BAA6B;AAChC,qBAAA;AACJ,iBAAA,CAAA;;0BA2CQ,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,SAAS,CAAA;;0BAEhB,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,gCAAgC,CAAA;4CA1C3B,cAAc,EAAA,CAAA;sBAD9B,SAAS;uBAAC,uBAAuB,CAAA;gBAIjB,SAAS,EAAA,CAAA;sBADzB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAA;gBAIjD,GAAG,EAAA,CAAA;sBADF,KAAK;gBAIN,GAAG,EAAA,CAAA;sBADF,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,KAAK;uBAAC,QAAQ,CAAA;gBAKf,gBAAgB,EAAA,CAAA;sBADf,KAAK;uBAAC,SAAS,CAAA;gBA2DhB,eAAe,EAAA,EAAA,EAAA,EAAA,CAAA;;MEhIN,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAApB,oBAAoB,EAAA,YAAA,EAAA,CAHd,uBAAuB,CAAA,EAAA,OAAA,EAAA,CARlC,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;QACpB,eAAe;AACf,QAAA,4BAA4B,aAGtB,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAExB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAZpB,OAAA,EAAA,CAAA;YACL,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,kBAAkB;YAClB,oBAAoB;YACpB,eAAe;YACf,4BAA4B;AAC/B,SAAA,CAAA,EAAA,CAAA,CAAA;4FAIQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,kBAAkB;wBAClB,kBAAkB;wBAClB,oBAAoB;wBACpB,eAAe;wBACf,4BAA4B;AAC/B,qBAAA;oBACD,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACrC,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}
|
|
@@ -5,7 +5,7 @@ import { NgControl, FormsModule } from '@angular/forms';
|
|
|
5
5
|
import * as i4 from '@taiga-ui/cdk';
|
|
6
6
|
import { tuiCreateToken, tuiProvideOptions, AbstractTuiMultipleControl, EMPTY_QUERY, ALWAYS_TRUE_HANDLER, ALWAYS_FALSE_HANDLER, tuiIsNativeFocusedIn, tuiRetargetedBoundaryCrossing, tuiGetActualTarget, tuiIsElement, tuiGetClipboardDataText, tuiArrayRemove, tuiAsFocusableItemAccessor, tuiAsControl, TuiFocusableModule, TuiHoveredModule, TuiActiveZoneModule, TuiScrollService } from '@taiga-ui/cdk';
|
|
7
7
|
import * as i1 from '@taiga-ui/core';
|
|
8
|
-
import { TuiModeDirective, TUI_MODE, TuiHintOptionsDirective, TUI_TEXTFIELD_WATCHED_CONTROLLER,
|
|
8
|
+
import { TuiModeDirective, TUI_MODE, TuiHintOptionsDirective, TUI_TEXTFIELD_WATCHED_CONTROLLER, TUI_COMMON_ICONS, tuiAsDataListHost, TEXTFIELD_CONTROLLER_PROVIDER, MODE_PROVIDER, TuiDataListDirective, TuiHostedDropdownComponent, TuiScrollbarComponent, TuiSvgModule, TuiScrollbarModule, TuiTooltipModule, TuiHostedDropdownModule, TuiWrapperModule } from '@taiga-ui/core';
|
|
9
9
|
import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers';
|
|
10
10
|
import { map } from 'rxjs/operators';
|
|
11
11
|
import * as i2 from '@taiga-ui/kit/components/tag';
|
|
@@ -41,7 +41,7 @@ const LINE_HEIGHT_REM = {
|
|
|
41
41
|
};
|
|
42
42
|
const TAG_VERTICAL_SPACE_REM = 0.125;
|
|
43
43
|
class TuiInputTagComponent extends AbstractTuiMultipleControl {
|
|
44
|
-
constructor(control, cdr, el, modeDirective, mode$, hintOptions, controller, options,
|
|
44
|
+
constructor(control, cdr, el, modeDirective, mode$, hintOptions, controller, options, icons) {
|
|
45
45
|
super(control, cdr);
|
|
46
46
|
this.el = el;
|
|
47
47
|
this.modeDirective = modeDirective;
|
|
@@ -49,7 +49,6 @@ class TuiInputTagComponent extends AbstractTuiMultipleControl {
|
|
|
49
49
|
this.hintOptions = hintOptions;
|
|
50
50
|
this.controller = controller;
|
|
51
51
|
this.options = options;
|
|
52
|
-
this.parentHostedDropdown = parentHostedDropdown;
|
|
53
52
|
this.icons = icons;
|
|
54
53
|
this.tags = EMPTY_QUERY;
|
|
55
54
|
this.separator = this.options.separator;
|
|
@@ -162,11 +161,9 @@ class TuiInputTagComponent extends AbstractTuiMultipleControl {
|
|
|
162
161
|
: '';
|
|
163
162
|
}
|
|
164
163
|
onCleanerClick() {
|
|
165
|
-
var _a;
|
|
166
164
|
this.updateSearch('');
|
|
167
165
|
this.clear();
|
|
168
166
|
this.focusInput();
|
|
169
|
-
(_a = this.parentHostedDropdown) === null || _a === void 0 ? void 0 : _a.updateOpen(true);
|
|
170
167
|
}
|
|
171
168
|
onActiveZone(active) {
|
|
172
169
|
this.open = false;
|
|
@@ -341,7 +338,7 @@ class TuiInputTagComponent extends AbstractTuiMultipleControl {
|
|
|
341
338
|
: LINE_HEIGHT_REM[this.controller.size];
|
|
342
339
|
}
|
|
343
340
|
}
|
|
344
|
-
TuiInputTagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTagComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: ElementRef }, { token: TuiModeDirective, optional: true }, { token: TUI_MODE }, { token: TuiHintOptionsDirective, optional: true }, { token: TUI_TEXTFIELD_WATCHED_CONTROLLER }, { token: TUI_INPUT_TAG_OPTIONS }, { token:
|
|
341
|
+
TuiInputTagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputTagComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: ElementRef }, { token: TuiModeDirective, optional: true }, { token: TUI_MODE }, { token: TuiHintOptionsDirective, optional: true }, { token: TUI_TEXTFIELD_WATCHED_CONTROLLER }, { token: TUI_INPUT_TAG_OPTIONS }, { token: TUI_COMMON_ICONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
345
342
|
TuiInputTagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputTagComponent, selector: "tui-input-tag", inputs: { separator: "separator", search: "search", editable: "editable", tagValidator: "tagValidator", expandable: "expandable", rows: "rows", inputHidden: "inputHidden", uniqueTags: "uniqueTags", maxLength: "maxLength", placeholder: "placeholder", removable: "removable", disabledItemHandler: "disabledItemHandler", pseudoFocusedSetter: ["pseudoFocused", "pseudoFocusedSetter"] }, outputs: { searchChange: "searchChange" }, host: { listeners: { "focusin.capture.silent": "onFocusInOut()", "focusout.capture.silent": "onFocusInOut()" }, properties: { "class._expandable": "this.expandable", "attr.data-size": "this.size", "class._label-outside": "this.labelOutside", "class._icon-left": "this.iconLeft" } }, providers: [
|
|
346
343
|
tuiAsFocusableItemAccessor(TuiInputTagComponent),
|
|
347
344
|
tuiAsControl(TuiInputTagComponent),
|
|
@@ -397,11 +394,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
397
394
|
}] }, { type: undefined, decorators: [{
|
|
398
395
|
type: Inject,
|
|
399
396
|
args: [TUI_INPUT_TAG_OPTIONS]
|
|
400
|
-
}] }, { type: i1.TuiHostedDropdownComponent, decorators: [{
|
|
401
|
-
type: Optional
|
|
402
|
-
}, {
|
|
403
|
-
type: Inject,
|
|
404
|
-
args: [TuiHostedDropdownComponent]
|
|
405
397
|
}] }, { type: undefined, decorators: [{
|
|
406
398
|
type: Inject,
|
|
407
399
|
args: [TUI_COMMON_ICONS]
|