UNPKG

@taiga-ui/kit

Version:
590 lines (583 loc) 34.1 kB
import { __decorate, __param } from 'tslib'; import { Optional, Self, Inject, ChangeDetectorRef, Input, ViewChild, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core'; import { NgControl, ReactiveFormsModule } from '@angular/forms'; import { AbstractTuiControl, setNativeFocused, tuiDefaultProp, tuiPure, TUI_FOCUSABLE_ITEM_ACCESSOR } from '@taiga-ui/cdk'; import { TUI_DIGIT_REGEXP, TUI_ICONS_PATH, TuiPrimitiveTextfieldComponent, TuiSvgModule, TuiGroupModule, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiHintControllerModule, TuiHostedDropdownModule, TuiDataListModule } from '@taiga-ui/core'; import { TUI_ARROW, TuiArrowModule } from '@taiga-ui/kit/components/arrow'; import { TuiInputPhoneComponent, TuiInputPhoneModule } from '@taiga-ui/kit/components/input-phone'; import { FIXED_DROPDOWN_CONTROLLER_PROVIDER } from '@taiga-ui/kit/providers'; import { CommonModule } from '@angular/common'; import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus'; var TuiCountryIsoCode; (function (TuiCountryIsoCode) { TuiCountryIsoCode["AD"] = "AD"; TuiCountryIsoCode["AE"] = "AE"; TuiCountryIsoCode["AF"] = "AF"; TuiCountryIsoCode["AG"] = "AG"; TuiCountryIsoCode["AI"] = "AI"; TuiCountryIsoCode["AL"] = "AL"; TuiCountryIsoCode["AM"] = "AM"; TuiCountryIsoCode["AN"] = "AN"; TuiCountryIsoCode["AO"] = "AO"; TuiCountryIsoCode["AR"] = "AR"; TuiCountryIsoCode["AT"] = "AT"; TuiCountryIsoCode["AU"] = "AU"; TuiCountryIsoCode["AW"] = "AW"; TuiCountryIsoCode["AZ"] = "AZ"; TuiCountryIsoCode["BA"] = "BA"; TuiCountryIsoCode["BB"] = "BB"; TuiCountryIsoCode["BD"] = "BD"; TuiCountryIsoCode["BE"] = "BE"; TuiCountryIsoCode["BF"] = "BF"; TuiCountryIsoCode["BG"] = "BG"; TuiCountryIsoCode["BH"] = "BH"; TuiCountryIsoCode["BI"] = "BI"; TuiCountryIsoCode["BJ"] = "BJ"; TuiCountryIsoCode["BM"] = "BM"; TuiCountryIsoCode["BN"] = "BN"; TuiCountryIsoCode["BO"] = "BO"; TuiCountryIsoCode["BR"] = "BR"; TuiCountryIsoCode["BS"] = "BS"; TuiCountryIsoCode["BT"] = "BT"; TuiCountryIsoCode["BW"] = "BW"; TuiCountryIsoCode["BY"] = "BY"; TuiCountryIsoCode["BZ"] = "BZ"; TuiCountryIsoCode["CD"] = "CD"; TuiCountryIsoCode["CF"] = "CF"; TuiCountryIsoCode["CG"] = "CG"; TuiCountryIsoCode["CH"] = "CH"; TuiCountryIsoCode["CI"] = "CI"; TuiCountryIsoCode["CL"] = "CL"; TuiCountryIsoCode["CM"] = "CM"; TuiCountryIsoCode["CN"] = "CN"; TuiCountryIsoCode["CO"] = "CO"; TuiCountryIsoCode["CR"] = "CR"; TuiCountryIsoCode["CU"] = "CU"; TuiCountryIsoCode["CV"] = "CV"; TuiCountryIsoCode["CY"] = "CY"; TuiCountryIsoCode["CZ"] = "CZ"; TuiCountryIsoCode["DE"] = "DE"; TuiCountryIsoCode["DJ"] = "DJ"; TuiCountryIsoCode["DK"] = "DK"; TuiCountryIsoCode["DM"] = "DM"; TuiCountryIsoCode["DO"] = "DO"; TuiCountryIsoCode["DZ"] = "DZ"; TuiCountryIsoCode["EC"] = "EC"; TuiCountryIsoCode["EE"] = "EE"; TuiCountryIsoCode["EG"] = "EG"; TuiCountryIsoCode["ER"] = "ER"; TuiCountryIsoCode["ES"] = "ES"; TuiCountryIsoCode["ET"] = "ET"; TuiCountryIsoCode["FI"] = "FI"; TuiCountryIsoCode["FJ"] = "FJ"; TuiCountryIsoCode["FK"] = "FK"; TuiCountryIsoCode["FM"] = "FM"; TuiCountryIsoCode["FR"] = "FR"; TuiCountryIsoCode["GA"] = "GA"; TuiCountryIsoCode["GD"] = "GD"; TuiCountryIsoCode["GE"] = "GE"; TuiCountryIsoCode["GH"] = "GH"; TuiCountryIsoCode["GI"] = "GI"; TuiCountryIsoCode["GL"] = "GL"; TuiCountryIsoCode["GM"] = "GM"; TuiCountryIsoCode["GN"] = "GN"; TuiCountryIsoCode["GQ"] = "GQ"; TuiCountryIsoCode["GR"] = "GR"; TuiCountryIsoCode["GT"] = "GT"; TuiCountryIsoCode["GW"] = "GW"; TuiCountryIsoCode["GY"] = "GY"; TuiCountryIsoCode["HK"] = "HK"; TuiCountryIsoCode["HN"] = "HN"; TuiCountryIsoCode["HR"] = "HR"; TuiCountryIsoCode["HT"] = "HT"; TuiCountryIsoCode["HU"] = "HU"; TuiCountryIsoCode["ID"] = "ID"; TuiCountryIsoCode["IE"] = "IE"; TuiCountryIsoCode["IL"] = "IL"; TuiCountryIsoCode["IN"] = "IN"; TuiCountryIsoCode["IQ"] = "IQ"; TuiCountryIsoCode["IR"] = "IR"; TuiCountryIsoCode["IS"] = "IS"; TuiCountryIsoCode["IT"] = "IT"; TuiCountryIsoCode["JM"] = "JM"; TuiCountryIsoCode["JO"] = "JO"; TuiCountryIsoCode["JP"] = "JP"; TuiCountryIsoCode["KE"] = "KE"; TuiCountryIsoCode["KG"] = "KG"; TuiCountryIsoCode["KH"] = "KH"; TuiCountryIsoCode["KM"] = "KM"; TuiCountryIsoCode["KN"] = "KN"; TuiCountryIsoCode["KP"] = "KP"; TuiCountryIsoCode["KR"] = "KR"; TuiCountryIsoCode["KW"] = "KW"; TuiCountryIsoCode["KY"] = "KY"; TuiCountryIsoCode["KZ"] = "KZ"; TuiCountryIsoCode["LA"] = "LA"; TuiCountryIsoCode["LB"] = "LB"; TuiCountryIsoCode["LC"] = "LC"; TuiCountryIsoCode["LI"] = "LI"; TuiCountryIsoCode["LK"] = "LK"; TuiCountryIsoCode["LR"] = "LR"; TuiCountryIsoCode["LS"] = "LS"; TuiCountryIsoCode["LT"] = "LT"; TuiCountryIsoCode["LU"] = "LU"; TuiCountryIsoCode["LV"] = "LV"; TuiCountryIsoCode["LY"] = "LY"; TuiCountryIsoCode["MA"] = "MA"; TuiCountryIsoCode["MC"] = "MC"; TuiCountryIsoCode["MD"] = "MD"; TuiCountryIsoCode["ME"] = "ME"; TuiCountryIsoCode["MG"] = "MG"; TuiCountryIsoCode["MK"] = "MK"; TuiCountryIsoCode["ML"] = "ML"; TuiCountryIsoCode["MM"] = "MM"; TuiCountryIsoCode["MN"] = "MN"; TuiCountryIsoCode["MO"] = "MO"; TuiCountryIsoCode["MR"] = "MR"; TuiCountryIsoCode["MS"] = "MS"; TuiCountryIsoCode["MT"] = "MT"; TuiCountryIsoCode["MU"] = "MU"; TuiCountryIsoCode["MV"] = "MV"; TuiCountryIsoCode["MW"] = "MW"; TuiCountryIsoCode["MX"] = "MX"; TuiCountryIsoCode["MY"] = "MY"; TuiCountryIsoCode["MZ"] = "MZ"; TuiCountryIsoCode["NA"] = "NA"; TuiCountryIsoCode["NE"] = "NE"; TuiCountryIsoCode["NG"] = "NG"; TuiCountryIsoCode["NI"] = "NI"; TuiCountryIsoCode["NL"] = "NL"; TuiCountryIsoCode["NO"] = "NO"; TuiCountryIsoCode["NP"] = "NP"; TuiCountryIsoCode["NZ"] = "NZ"; TuiCountryIsoCode["OM"] = "OM"; TuiCountryIsoCode["PA"] = "PA"; TuiCountryIsoCode["PE"] = "PE"; TuiCountryIsoCode["PF"] = "PF"; TuiCountryIsoCode["PG"] = "PG"; TuiCountryIsoCode["PH"] = "PH"; TuiCountryIsoCode["PK"] = "PK"; TuiCountryIsoCode["PL"] = "PL"; TuiCountryIsoCode["PT"] = "PT"; TuiCountryIsoCode["PW"] = "PW"; TuiCountryIsoCode["PY"] = "PY"; TuiCountryIsoCode["QA"] = "QA"; TuiCountryIsoCode["RO"] = "RO"; TuiCountryIsoCode["RS"] = "RS"; TuiCountryIsoCode["RU"] = "RU"; TuiCountryIsoCode["RW"] = "RW"; TuiCountryIsoCode["SA"] = "SA"; TuiCountryIsoCode["SB"] = "SB"; TuiCountryIsoCode["SC"] = "SC"; TuiCountryIsoCode["SD"] = "SD"; TuiCountryIsoCode["SE"] = "SE"; TuiCountryIsoCode["SG"] = "SG"; TuiCountryIsoCode["SH"] = "SH"; TuiCountryIsoCode["SI"] = "SI"; TuiCountryIsoCode["SK"] = "SK"; TuiCountryIsoCode["SL"] = "SL"; TuiCountryIsoCode["SM"] = "SM"; TuiCountryIsoCode["SN"] = "SN"; TuiCountryIsoCode["SO"] = "SO"; TuiCountryIsoCode["SR"] = "SR"; TuiCountryIsoCode["ST"] = "ST"; TuiCountryIsoCode["SV"] = "SV"; TuiCountryIsoCode["SY"] = "SY"; TuiCountryIsoCode["SZ"] = "SZ"; TuiCountryIsoCode["TC"] = "TC"; TuiCountryIsoCode["TD"] = "TD"; TuiCountryIsoCode["TG"] = "TG"; TuiCountryIsoCode["TH"] = "TH"; TuiCountryIsoCode["TJ"] = "TJ"; TuiCountryIsoCode["TL"] = "TL"; TuiCountryIsoCode["TM"] = "TM"; TuiCountryIsoCode["TN"] = "TN"; TuiCountryIsoCode["TO"] = "TO"; TuiCountryIsoCode["TR"] = "TR"; TuiCountryIsoCode["TT"] = "TT"; TuiCountryIsoCode["TW"] = "TW"; TuiCountryIsoCode["TZ"] = "TZ"; TuiCountryIsoCode["UA"] = "UA"; TuiCountryIsoCode["UG"] = "UG"; TuiCountryIsoCode["UK"] = "UK"; TuiCountryIsoCode["UY"] = "UY"; TuiCountryIsoCode["UZ"] = "UZ"; TuiCountryIsoCode["VC"] = "VC"; TuiCountryIsoCode["VE"] = "VE"; TuiCountryIsoCode["VG"] = "VG"; TuiCountryIsoCode["VN"] = "VN"; TuiCountryIsoCode["VU"] = "VU"; TuiCountryIsoCode["WS"] = "WS"; TuiCountryIsoCode["YE"] = "YE"; TuiCountryIsoCode["ZA"] = "ZA"; TuiCountryIsoCode["ZM"] = "ZM"; TuiCountryIsoCode["ZW"] = "ZW"; TuiCountryIsoCode["US"] = "US"; TuiCountryIsoCode["CA"] = "CA"; })(TuiCountryIsoCode || (TuiCountryIsoCode = {})); // TODO: i18n const COUNTRIES = { [TuiCountryIsoCode.AD]: { mask: '+376###-###', name: 'Андорра' }, [TuiCountryIsoCode.AE]: { mask: '+971-#-###-####', name: 'Объединенные Арабские Эмираты', }, [TuiCountryIsoCode.AF]: { mask: '+93##-###-####', name: 'Афганистан' }, [TuiCountryIsoCode.AG]: { mask: '+1(268) ###-####', name: 'Антигуа и Барбуда' }, [TuiCountryIsoCode.AI]: { mask: '+1(264) ###-####', name: 'Ангилья' }, [TuiCountryIsoCode.AL]: { mask: '+355(###) ###-###', name: 'Албания' }, [TuiCountryIsoCode.AM]: { mask: '+374##-###-###', name: 'Армения' }, [TuiCountryIsoCode.AN]: { mask: '+599-###-####', name: 'Нидерландские Антильские острова', }, [TuiCountryIsoCode.AO]: { mask: '+244(###) ###-###', name: 'Ангола' }, [TuiCountryIsoCode.AR]: { mask: '+54(###) ###-####', name: 'Аргентина' }, [TuiCountryIsoCode.AT]: { mask: '+43(###) ###-####', name: 'Австрия' }, [TuiCountryIsoCode.AU]: { mask: '+61#-####-####', name: 'Австралия' }, [TuiCountryIsoCode.AW]: { mask: '+297###-####', name: 'Аруба' }, [TuiCountryIsoCode.AZ]: { mask: '+994##-###-##-##', name: 'Азербайджан' }, [TuiCountryIsoCode.BA]: { mask: '+387##-#####', name: 'Босния и Герцеговина' }, [TuiCountryIsoCode.BB]: { mask: '+1(246) ###-####', name: 'Барбадос' }, [TuiCountryIsoCode.BD]: { mask: '+880##-###-###', name: 'Бангладеш' }, [TuiCountryIsoCode.BE]: { mask: '+32(###) ###-###', name: 'Бельгия' }, [TuiCountryIsoCode.BF]: { mask: '+226##-##-####', name: 'Буркина Фасо' }, [TuiCountryIsoCode.BG]: { mask: '+359(###) ###-###', name: 'Болгария' }, [TuiCountryIsoCode.BH]: { mask: '+973####-####', name: 'Бахрейн' }, [TuiCountryIsoCode.BI]: { mask: '+257##-##-####', name: 'Бурунди' }, [TuiCountryIsoCode.BJ]: { mask: '+229##-##-####', name: 'Бенин' }, [TuiCountryIsoCode.BM]: { mask: '+1(441) ###-####', name: 'Бермудские острова' }, [TuiCountryIsoCode.BN]: { mask: '+673###-####', name: 'Бруней-Даруссалам' }, [TuiCountryIsoCode.BO]: { mask: '+591#-###-####', name: 'Боливия' }, [TuiCountryIsoCode.BR]: { mask: '+55(##) ####-####', name: 'Бразилия' }, [TuiCountryIsoCode.BS]: { mask: '+1(242) ###-####', name: 'Багамские Острова' }, [TuiCountryIsoCode.BT]: { mask: '+975#-###-###', name: 'Бутан' }, [TuiCountryIsoCode.BW]: { mask: '+267##-###-###', name: 'Ботсвана' }, [TuiCountryIsoCode.BY]: { mask: '+375(##) ###-##-##', name: 'Беларусь (Белоруссия)' }, [TuiCountryIsoCode.BZ]: { mask: '+501###-####', name: 'Белиз' }, [TuiCountryIsoCode.CA]: { mask: '+1(###) ###-####', name: 'Канада' }, [TuiCountryIsoCode.CD]: { mask: '+243(###) ###-###', name: 'Дем. Респ. Конго (Киншаса)', }, [TuiCountryIsoCode.CF]: { mask: '+236-##-##-####', name: 'Центральноафриканская Республика', }, [TuiCountryIsoCode.CG]: { mask: '+242##-###-####', name: 'Конго (Браззавиль)' }, [TuiCountryIsoCode.CH]: { mask: '+41##-###-####', name: 'Швейцария' }, [TuiCountryIsoCode.CI]: { mask: '+225##-###-###', name: 'Кот-д’Ивуар' }, [TuiCountryIsoCode.CL]: { mask: '+56#-####-####', name: 'Чили' }, [TuiCountryIsoCode.CM]: { mask: '+237####-####', name: 'Камерун' }, [TuiCountryIsoCode.CN]: { mask: '+86(###) ####-####', name: 'Китайская Н.Р.' }, [TuiCountryIsoCode.CO]: { mask: '+57(###) ###-####', name: 'Колумбия' }, [TuiCountryIsoCode.CR]: { mask: '+506####-####', name: 'Коста-Рика' }, [TuiCountryIsoCode.CU]: { mask: '+53#-###-####', name: 'Куба' }, [TuiCountryIsoCode.CV]: { mask: '+238(###) ##-##', name: 'Кабо-Верде' }, [TuiCountryIsoCode.CY]: { mask: '+357##-###-###', name: 'Кипр' }, [TuiCountryIsoCode.CZ]: { mask: '+420(###) ###-###', name: 'Чехия' }, [TuiCountryIsoCode.DE]: { mask: '+49(###) ###-###-##', name: 'Германия' }, [TuiCountryIsoCode.DJ]: { mask: '+253##-##-##-##', name: 'Джибути' }, [TuiCountryIsoCode.DK]: { mask: '+45##-##-##-##', name: 'Дания' }, [TuiCountryIsoCode.DM]: { mask: '+1(767) ###-####', name: 'Доминика' }, [TuiCountryIsoCode.DO]: { mask: '+1(###) ###-####', name: 'Доминиканская Республика' }, [TuiCountryIsoCode.DZ]: { mask: '+213##-###-####', name: 'Алжир' }, [TuiCountryIsoCode.EC]: { mask: '+593##-###-####', name: 'Эквадор ' }, [TuiCountryIsoCode.EE]: { mask: '+372####-####', name: 'Эстония ' }, [TuiCountryIsoCode.EG]: { mask: '+20(###) ###-####', name: 'Египет' }, [TuiCountryIsoCode.ER]: { mask: '+291#-###-###', name: 'Эритрея' }, [TuiCountryIsoCode.ES]: { mask: '+34(###) ###-###', name: 'Испания' }, [TuiCountryIsoCode.ET]: { mask: '+251##-###-####', name: 'Эфиопия' }, [TuiCountryIsoCode.FI]: { mask: '+358(###) ###-##-##', name: 'Финляндия' }, [TuiCountryIsoCode.FJ]: { mask: '+679##-#####', name: 'Фиджи' }, [TuiCountryIsoCode.FK]: { mask: '+500#####', name: 'Фолклендские острова' }, [TuiCountryIsoCode.FM]: { mask: '+691###-####', name: 'Ф.Ш. Микронезии' }, [TuiCountryIsoCode.FR]: { mask: '+33(###) ###-###', name: 'Франция' }, [TuiCountryIsoCode.GA]: { mask: '+241#-##-##-##', name: 'Габон' }, [TuiCountryIsoCode.GD]: { mask: '+1(473) ###-####', name: 'Гренада' }, [TuiCountryIsoCode.GE]: { mask: '+995(###) ###-###', name: 'Грузия' }, [TuiCountryIsoCode.GH]: { mask: '+233(###) ###-###', name: 'Гана' }, [TuiCountryIsoCode.GI]: { mask: '+350###-#####', name: 'Гибралтар' }, [TuiCountryIsoCode.GL]: { mask: '+299##-##-##', name: 'Гренландия' }, [TuiCountryIsoCode.GM]: { mask: '+220(###) ##-##', name: 'Гамбия' }, [TuiCountryIsoCode.GN]: { mask: '+224##-###-###', name: 'Гвинея' }, [TuiCountryIsoCode.GQ]: { mask: '+240##-###-####', name: 'Экваториальная Гвинея' }, [TuiCountryIsoCode.GR]: { mask: '+30(###) ###-####', name: 'Греция' }, [TuiCountryIsoCode.GT]: { mask: '+502#-###-####', name: 'Гватемала' }, [TuiCountryIsoCode.GW]: { mask: '+245#-######', name: 'Гвинея-Бисау' }, [TuiCountryIsoCode.GY]: { mask: '+592###-####', name: 'Гайана' }, [TuiCountryIsoCode.HK]: { mask: '+852####-####', name: 'Гонконг' }, [TuiCountryIsoCode.HN]: { mask: '+504####-####', name: 'Гондурас' }, [TuiCountryIsoCode.HR]: { mask: '+385##-###-###', name: 'Хорватия' }, [TuiCountryIsoCode.HT]: { mask: '+509##-##-####', name: 'Гаити' }, [TuiCountryIsoCode.HU]: { mask: '+36(###) ###-###', name: 'Венгрия' }, [TuiCountryIsoCode.ID]: { mask: '+62(###) ###-##-###', name: 'Индонезия ' }, [TuiCountryIsoCode.IE]: { mask: '+353(###) ###-###', name: 'Ирландия' }, [TuiCountryIsoCode.IL]: { mask: '+972##-###-####', name: 'Израиль' }, [TuiCountryIsoCode.IN]: { mask: '+91(####) ###-###', name: 'Индия' }, [TuiCountryIsoCode.IQ]: { mask: '+964(###) ###-####', name: 'Ирак' }, [TuiCountryIsoCode.IR]: { mask: '+98(###) ###-####', name: 'Иран' }, [TuiCountryIsoCode.IS]: { mask: '+354###-####', name: 'Исландия' }, [TuiCountryIsoCode.IT]: { mask: '+39(###) ####-###', name: 'Италия' }, [TuiCountryIsoCode.JM]: { mask: '+1(876) ###-####', name: 'Ямайка' }, [TuiCountryIsoCode.JO]: { mask: '+962#-####-####', name: 'Иордания' }, [TuiCountryIsoCode.JP]: { mask: '+81-##-####-####', name: 'Япония ' }, [TuiCountryIsoCode.KE]: { mask: '+254###-######', name: 'Кения' }, [TuiCountryIsoCode.KG]: { mask: '+996(###) ###-###', name: 'Киргизия' }, [TuiCountryIsoCode.KH]: { mask: '+855##-###-###', name: 'Камбоджа' }, [TuiCountryIsoCode.KM]: { mask: '+269##-#####', name: 'Коморы' }, [TuiCountryIsoCode.KN]: { mask: '+1(869) ###-####', name: 'Сент-Китс и Невис' }, [TuiCountryIsoCode.KP]: { mask: '+850####-#############', name: 'Корейская НДР' }, [TuiCountryIsoCode.KR]: { mask: '+82##-###-####', name: 'Респ. Корея' }, [TuiCountryIsoCode.KW]: { mask: '+965####-####', name: 'Кувейт' }, [TuiCountryIsoCode.KY]: { mask: '+1(345) ###-####', name: 'Каймановы острова' }, [TuiCountryIsoCode.KZ]: { mask: '+7(###) ###-##-##', name: 'Казахстан' }, [TuiCountryIsoCode.LA]: { mask: '+856##-##-###-###', name: 'Лаос' }, [TuiCountryIsoCode.LB]: { mask: '+961##-###-###', name: 'Ливан ' }, [TuiCountryIsoCode.LC]: { mask: '+1(758) ###-####', name: 'Сент-Люсия' }, [TuiCountryIsoCode.LI]: { mask: '+423(###) ###-####', name: 'Лихтенштейн' }, [TuiCountryIsoCode.LK]: { mask: '+94##-###-####', name: 'Шри-Ланка' }, [TuiCountryIsoCode.LR]: { mask: '+231##-###-###', name: 'Либерия' }, [TuiCountryIsoCode.LS]: { mask: '+266#-###-####', name: 'Лесото' }, [TuiCountryIsoCode.LT]: { mask: '+370(###) ##-###', name: 'Литва' }, [TuiCountryIsoCode.LU]: { mask: '+352(###) ###-###', name: 'Люксембург' }, [TuiCountryIsoCode.LV]: { mask: '+371##-###-###', name: 'Латвия' }, [TuiCountryIsoCode.LY]: { mask: '+218##-###-####', name: 'Ливия' }, [TuiCountryIsoCode.MA]: { mask: '+212##-####-###', name: 'Марокко' }, [TuiCountryIsoCode.MC]: { mask: '+377###-###-###', name: 'Монако' }, [TuiCountryIsoCode.MD]: { mask: '+373####-####', name: 'Молдова' }, [TuiCountryIsoCode.ME]: { mask: '+382##-###-###', name: 'Черногория' }, [TuiCountryIsoCode.MG]: { mask: '+261##-##-#####', name: 'Мадагаскар' }, [TuiCountryIsoCode.MK]: { mask: '+389##-###-###', name: 'Респ. Македония' }, [TuiCountryIsoCode.ML]: { mask: '+223##-##-####', name: 'Мали' }, [TuiCountryIsoCode.MM]: { mask: '+95##-###-###', name: 'Бирма (Мьянма)' }, [TuiCountryIsoCode.MN]: { mask: '+976##-##-####', name: 'Монголия' }, [TuiCountryIsoCode.MO]: { mask: '+853####-####', name: 'Макао' }, [TuiCountryIsoCode.MR]: { mask: '+222##-##-####', name: 'Мавритания' }, [TuiCountryIsoCode.MS]: { mask: '+1(664) ###-####', name: 'Монтсеррат' }, [TuiCountryIsoCode.MT]: { mask: '+356####-####', name: 'Мальта' }, [TuiCountryIsoCode.MU]: { mask: '+230###-####', name: 'Маврикий' }, [TuiCountryIsoCode.MV]: { mask: '+960###-####', name: 'Мальдивские острова' }, [TuiCountryIsoCode.MW]: { mask: '+265#-####-####', name: 'Малави' }, [TuiCountryIsoCode.MX]: { mask: '+52(###) ###-####', name: 'Мексика' }, [TuiCountryIsoCode.MY]: { mask: '+60(###) ###-###', name: 'Малайзия' }, [TuiCountryIsoCode.MZ]: { mask: '+258##-###-###', name: 'Мозамбик' }, [TuiCountryIsoCode.NA]: { mask: '+264##-###-####', name: 'Намибия' }, [TuiCountryIsoCode.NE]: { mask: '+227##-##-####', name: 'Нигер' }, [TuiCountryIsoCode.NG]: { mask: '+234(###) ###-####', name: 'Нигерия' }, [TuiCountryIsoCode.NI]: { mask: '+505####-####', name: 'Никарагуа' }, [TuiCountryIsoCode.NL]: { mask: '+31##-###-####', name: 'Нидерланды' }, [TuiCountryIsoCode.NO]: { mask: '+47(###) ##-###', name: 'Норвегия' }, [TuiCountryIsoCode.NP]: { mask: '+977##-###-###', name: 'Непал' }, [TuiCountryIsoCode.NZ]: { mask: '+64(###) ###-####', name: 'Новая Зеландия' }, [TuiCountryIsoCode.OM]: { mask: '+968##-###-###', name: 'Оман' }, [TuiCountryIsoCode.PA]: { mask: '+507###-####', name: 'Панама' }, [TuiCountryIsoCode.PE]: { mask: '+51(###) ###-###', name: 'Перу' }, [TuiCountryIsoCode.PF]: { mask: '+689##-##-##', name: 'Французская Полинезия (Таити)', }, [TuiCountryIsoCode.PG]: { mask: '+675(###) ##-###', name: 'Папуа-Новая Гвинея' }, [TuiCountryIsoCode.PH]: { mask: '+63(###) ###-####', name: 'Филиппины' }, [TuiCountryIsoCode.PK]: { mask: '+92(###) ###-####', name: 'Пакистан' }, [TuiCountryIsoCode.PL]: { mask: '+48(###) ###-###', name: 'Польша' }, [TuiCountryIsoCode.PT]: { mask: '+351##-###-####', name: 'Португалия' }, [TuiCountryIsoCode.PW]: { mask: '+680###-####', name: 'Палау' }, [TuiCountryIsoCode.PY]: { mask: '+595(###) ###-###', name: 'Парагвай' }, [TuiCountryIsoCode.QA]: { mask: '+974####-####', name: 'Катар' }, [TuiCountryIsoCode.RO]: { mask: '+40##-###-####', name: 'Румыния' }, [TuiCountryIsoCode.RS]: { mask: '+381##-###-####', name: 'Сербия' }, [TuiCountryIsoCode.RU]: { mask: '+7(###) ###-##-##', name: 'Россия' }, [TuiCountryIsoCode.RW]: { mask: '+250(###) ###-###', name: 'Руанда' }, [TuiCountryIsoCode.SA]: { mask: '+966#-####-####', name: 'Саудовская Аравия ' }, [TuiCountryIsoCode.SB]: { mask: '+677###-####', name: 'Соломоновы Острова ' }, [TuiCountryIsoCode.SC]: { mask: '+248#-###-###', name: 'Сейшелы' }, [TuiCountryIsoCode.SD]: { mask: '+249##-###-####', name: 'Судан' }, [TuiCountryIsoCode.SE]: { mask: '+46##-###-####', name: 'Швеция' }, [TuiCountryIsoCode.SG]: { mask: '+65####-####', name: 'Сингапур' }, [TuiCountryIsoCode.SH]: { mask: '+290####', name: 'Остров Святой Елены' }, [TuiCountryIsoCode.SI]: { mask: '+386##-###-###', name: 'Словения' }, [TuiCountryIsoCode.SK]: { mask: '+421(###) ###-###', name: 'Словакия' }, [TuiCountryIsoCode.SL]: { mask: '+232##-######', name: 'Сьерра-Леоне' }, [TuiCountryIsoCode.SM]: { mask: '+378####-######', name: 'Сан-Марино' }, [TuiCountryIsoCode.SN]: { mask: '+221##-###-####', name: 'Сенегал' }, [TuiCountryIsoCode.SO]: { mask: '+252##-###-###', name: 'Сомали' }, [TuiCountryIsoCode.SR]: { mask: '+597###-####', name: 'Суринам ' }, [TuiCountryIsoCode.ST]: { mask: '+239##-#####', name: 'Сан-Томе и Принсипи' }, [TuiCountryIsoCode.SV]: { mask: '+503##-##-####', name: 'Сальвадор' }, [TuiCountryIsoCode.SY]: { mask: '+963##-####-###', name: 'Сирийская арабская республика', }, [TuiCountryIsoCode.SZ]: { mask: '+268##-##-####', name: 'Свазиленд' }, [TuiCountryIsoCode.TC]: { mask: '+1(649) ###-####', name: 'Тёркс и Кайкос' }, [TuiCountryIsoCode.TD]: { mask: '+235##-##-##-##', name: 'Чад' }, [TuiCountryIsoCode.TG]: { mask: '+228##-###-###', name: 'Того' }, [TuiCountryIsoCode.TH]: { mask: '+66##-###-####', name: 'Таиланд ' }, [TuiCountryIsoCode.TJ]: { mask: '+992##-###-####', name: 'Таджикистан' }, [TuiCountryIsoCode.TL]: { mask: '+670###-#####', name: 'Восточный Тимор' }, [TuiCountryIsoCode.TM]: { mask: '+993#-###-####', name: 'Туркменистан' }, [TuiCountryIsoCode.TN]: { mask: '+216##-###-###', name: 'Тунис' }, [TuiCountryIsoCode.TO]: { mask: '+676#####', name: 'Тонга' }, [TuiCountryIsoCode.TR]: { mask: '+90(###) ###-####', name: 'Турция' }, [TuiCountryIsoCode.TT]: { mask: '+1(868) ###-####', name: 'Тринидад и Тобаго' }, [TuiCountryIsoCode.TW]: { mask: '+886#-####-####', name: 'Тайвань' }, [TuiCountryIsoCode.TZ]: { mask: '+255##-###-####', name: 'Танзания' }, [TuiCountryIsoCode.UA]: { mask: '+380(##) ###-##-##', name: 'Украина' }, [TuiCountryIsoCode.UG]: { mask: '+256(###) ###-###', name: 'Уганда' }, [TuiCountryIsoCode.UK]: { mask: '+44##-####-####', name: 'Великобритания' }, [TuiCountryIsoCode.US]: { mask: '+1(###) ###-####', name: 'США' }, [TuiCountryIsoCode.UY]: { mask: '+598#-###-##-##', name: 'Уругвай' }, [TuiCountryIsoCode.UZ]: { mask: '+998##-###-####', name: 'Узбекистан' }, [TuiCountryIsoCode.VC]: { mask: '+1(784) ###-####', name: 'Сент-Винсент и Гренадины' }, [TuiCountryIsoCode.VE]: { mask: '+58(###) ###-####', name: 'Венесуэла' }, [TuiCountryIsoCode.VG]: { mask: '+1(284)###-####', name: 'Британские Виргинские острова', }, [TuiCountryIsoCode.VN]: { mask: '+84(###) ####-###', name: 'Вьетнам' }, [TuiCountryIsoCode.VU]: { mask: '+678##-#####', name: 'Вануату ' }, [TuiCountryIsoCode.WS]: { mask: '+685##-####', name: 'Самоа' }, [TuiCountryIsoCode.YE]: { mask: '+967###-###-###', name: 'Йемен ' }, [TuiCountryIsoCode.ZA]: { mask: '+27##-###-####', name: 'Южно-Африканская Респ.' }, [TuiCountryIsoCode.ZM]: { mask: '+260##-###-####', name: 'Замбия' }, [TuiCountryIsoCode.ZW]: { mask: '+263#-######', name: 'Зимбабве' }, }; var TuiInputPhoneInternationalComponent_1; // @dynamic let TuiInputPhoneInternationalComponent = TuiInputPhoneInternationalComponent_1 = class TuiInputPhoneInternationalComponent extends AbstractTuiControl { constructor(control, changeDetectorRef, iconsPath) { super(control, changeDetectorRef); this.countryIsoCode = TuiCountryIsoCode.RU; this.countries = []; this.open = false; this.arrow = TUI_ARROW; this.staticPath = null; this.staticPath = iconsPath('tuiIcon').replace('tuiIcon.svg#tuiIcon', ''); } get nativeFocusableElement() { return this.inputPhoneComponent && !this.computedDisabled ? this.inputPhoneComponent.nativeFocusableElement : null; } get focused() { return ((!!this.primitiveTextfield && this.primitiveTextfield.focused) || (!!this.inputPhoneComponent && this.inputPhoneComponent.focused)); } get inputPhoneCountryCode() { return this.isoToCountryCode(this.countryIsoCode); } get phoneMaskAfterCountryCode() { const countryCode = this.isoToCountryCode(this.countryIsoCode); return this.calculateMaskAfterCountryCode(COUNTRIES[this.countryIsoCode].mask, countryCode); } get countryFlagPath() { return this.getFlagPath(this.countryIsoCode); } getFlagPath(code) { return `${this.staticPath}${code}.png`; } getCountryName(isoCode) { return COUNTRIES[isoCode].name; } onItemClick(isoCode) { this.open = false; this.countryIsoCode = isoCode; // recalculates mask inside inputPhone to prevent isoCode conflict this.changeDetectorRef.detectChanges(); if (this.nativeFocusableElement) { setNativeFocused(this.nativeFocusableElement); } } setDisabledState() { super.setDisabledState(); this.close(); } isoToCountryCode(isoCode) { return ('+' + COUNTRIES[isoCode].mask .split('') .filter(symbol => TUI_DIGIT_REGEXP.test(symbol)) .join('')); } getFallbackValue() { return ''; } close() { this.open = false; } calculateMaskAfterCountryCode(mask, countryCode) { return mask.replace(countryCode, ''); } }; TuiInputPhoneInternationalComponent.ctorParameters = () => [ { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] }, { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }, { type: undefined, decorators: [{ type: Inject, args: [TUI_ICONS_PATH,] }] } ]; __decorate([ Input(), tuiDefaultProp() ], TuiInputPhoneInternationalComponent.prototype, "countryIsoCode", void 0); __decorate([ Input() ], TuiInputPhoneInternationalComponent.prototype, "countries", void 0); __decorate([ ViewChild(TuiInputPhoneComponent) ], TuiInputPhoneInternationalComponent.prototype, "inputPhoneComponent", void 0); __decorate([ ViewChild(TuiPrimitiveTextfieldComponent) ], TuiInputPhoneInternationalComponent.prototype, "primitiveTextfield", void 0); __decorate([ tuiPure ], TuiInputPhoneInternationalComponent.prototype, "isoToCountryCode", null); __decorate([ tuiPure ], TuiInputPhoneInternationalComponent.prototype, "calculateMaskAfterCountryCode", null); TuiInputPhoneInternationalComponent = TuiInputPhoneInternationalComponent_1 = __decorate([ Component({ selector: 'tui-input-phone-international', template: "<tui-hosted-dropdown\n class=\"hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHostedDropdownHost\n class=\"country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [iconContent]=\"arrow\"\n [pseudoFocused]=\"open || null\"\n [readOnly]=\"readOnly\"\n [tuiHintContent]=\"null\"\n ></tui-primitive-textfield>\n <tui-input-phone\n class=\"input-phone tui-group__auto-width-item\"\n tuiTextfieldAutocomplete=\"off\"\n [tuiTextfieldLabelOutside]=\"true\"\n [formControl]=\"control\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [pseudoFocused]=\"pseudoFocused\"\n [pseudoHovered]=\"pseudoHovered\"\n >\n {{inputPhoneCountryCode}}\n </tui-input-phone>\n </div>\n</tui-hosted-dropdown>\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 class=\"country-item-flag\" alt=\"\" [src]=\"getFlagPath(item)\" />\n <span class=\"country-item-name\">{{getCountryName(item)}}</span>\n <span class=\"country-item-code\">{{isoToCountryCode(item)}}</span>\n </button>\n </tui-data-list>\n</ng-template>\n\n<ng-template #countryValueContent>\n <img\n class=\"flag\"\n [alt]=\"getCountryName(countryIsoCode)\"\n [src]=\"countryFlagPath\"\n />\n</ng-template>\n", changeDetection: ChangeDetectionStrategy.OnPush, providers: [ { provide: TUI_FOCUSABLE_ITEM_ACCESSOR, useExisting: forwardRef(() => TuiInputPhoneInternationalComponent_1), }, FIXED_DROPDOWN_CONTROLLER_PROVIDER, ], styles: [":host{display:block}:host._disabled{pointer-events:none}.hosted-dropdown{display:block}.country-select{width:90px}.arrow-icon{transition-duration:.3s;transition-timing-function:ease-in-out;display:flex;width:24px;height:24px;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.arrow-icon:hover{color:var(--tui-text-02)}:host._disabled .arrow-icon,:host._readonly .arrow-icon{pointer-events:none}:host[data-mode=onDark] .arrow-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .arrow-icon:hover{color:var(--tui-text-01-night)}.arrow-icon_open{transform:rotate(180deg)}.input-phone{flex:1}.flag{width:28px;height:20px;margin-left:-8px}.country-item-flag{width:28px;height:20px}.country-item-name{margin-left:12px;margin-right:auto}.country-item-code{color:var(--tui-text-02);margin-right:4px}"] }), __param(0, Optional()), __param(0, Self()), __param(0, Inject(NgControl)), __param(1, Inject(ChangeDetectorRef)), __param(2, Inject(TUI_ICONS_PATH)) ], TuiInputPhoneInternationalComponent); let TuiInputPhoneInternationalModule = class TuiInputPhoneInternationalModule { }; TuiInputPhoneInternationalModule = __decorate([ NgModule({ imports: [ CommonModule, ReactiveFormsModule, PolymorpheusModule, TuiSvgModule, TuiInputPhoneModule, TuiGroupModule, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiHintControllerModule, TuiHostedDropdownModule, TuiDataListModule, TuiArrowModule, ], declarations: [TuiInputPhoneInternationalComponent], exports: [TuiInputPhoneInternationalComponent], }) ], TuiInputPhoneInternationalModule); /** * Generated bundle index. Do not edit. */ export { COUNTRIES, TuiCountryIsoCode, TuiInputPhoneInternationalComponent, TuiInputPhoneInternationalModule }; //# sourceMappingURL=taiga-ui-kit-components-input-phone-international.js.map