@foxford/ui 2.120.0 → 2.121.0-beta-1a9b254-20260727

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.
@@ -1,2 +1,2 @@
1
- 'use strict';var React=require('react');var Input=require('../Input/Input.js');var constants=require('./constants.js');var jsxRuntime=require('react/jsx-runtime');const onlyNumbers=(t="")=>t.replace(constants.REGEXPS.NOT_NUMBERS,'');exports.InputPhone=class InputPhone extends React.PureComponent{static displayName='Input.Phone';static defaultProps={countryData:constants.COUNTRY_DATA,defaultMask:constants.DEFAULT_MASK,initialMask:constants.INITIAL_MASK,placeholder:'+9 (999) 999-99-99',rounded:!0,type:'text',color:'mineShaft',mask:'',placeholderColor:'silver'};constructor(t){super(t),this.autocorrectOf8=!0,this.autocorrectOf9=!0;const{mask:e}=this.getUpdates(t.value||'');this.state={mask:e,regexp:null}}componentDidUpdate(t){const{value:e}=this.props;e!==t.value&&this.change(e)}getUpdates=(t,e)=>{const{countryData:s,defaultMask:a,initialMask:n}=this.props;const r=onlyNumbers(t);let o=n;let c=null;let l=!1;let u=!1;if(!r)return{mask:o,numbers:r,startsFrom8:l,startsFrom9:u,regexp:c};let i=!1;for(let t=0;t<s.length;t++)r.startsWith(s[t][1])&&([,,o,c]=s[t],i=t===0||t===1);return l=i&&constants.REGEXPS.FROM_8.test(r)&&this.autocorrectOf8,u=(!o||r.length===constants.RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH&&e==='')&&this.autocorrectOf9&&constants.REGEXPS.FROM_9.test(r),l&&(o=constants.COUNTRY_DATA[0][2],this.autocorrectOf8=!1),u&&(o=constants.COUNTRY_DATA[0][2],this.autocorrectOf9=!1),o||(o=a),{mask:o,numbers:r,startsFrom8:l,startsFrom9:u,regexp:c}};change=t=>{const{mask:e}=this.getUpdates(t);this.setState({mask:e})};handleChange=t=>{t.persist();const{onChange:e,stripValue:s}=this.props;if(e){const a=t;s&&(a.target.value=onlyNumbers(t.target.value)),e(a)}};beforeMaskedValueChange=(t,e)=>{const{mask:s,numbers:a,startsFrom8:n,startsFrom9:r,regexp:o}=this.getUpdates(t.value,e.value);return this.setState({mask:s,regexp:o}),r?{selection:a.length===1?{start:5,end:5}:t.selection,value:t.value.replace(constants.REGEXPS.FROM_9,'+79$1')}:n?{selection:{start:2,end:2},value:t.value.replace(constants.REGEXPS.FROM_8,'+7$1')}:constants.REGEXPS.FILLED.test(e.value)&&a.length===1?{selection:{start:2,end:2},value:t.value}:!constants.REGEXPS.FILLED.test(e.value)&&constants.REGEXPS.FILLED.test(t.value)?{...t,selection:t.selection?{start:t.selection.start+1,end:t.selection.end+1}:null}:t};render(){const{countryData:t,defaultMask:e,initialMask:s,stripValue:a,...n}=this.props;const{mask:r,regexp:o}=this.state;return jsxRuntime.jsx(Input.Input,{...n,beforeMaskedValueChange:this.beforeMaskedValueChange,mask:r,"data-regexp":o instanceof RegExp?o.toString():void 0,onChange:this.handleChange})}};
1
+ 'use strict';var React=require('react');var useMergedProps=require('../../hooks/useMergedProps.js');var isNil=require('../../shared/utils/isNil.js');var Input=require('../Input/Input.js');var constants=require('./constants.js');var jsxRuntime=require('react/jsx-runtime');var sizes=require('../Input/sizes.js');const onlyNumbers=(e="")=>e.replace(constants.REGEXPS.NOT_NUMBERS,'');exports.InputPhone=React.forwardRef((e,t)=>{const{countryData:s=constants.COUNTRY_DATA,defaultMask:r=constants.DEFAULT_MASK,placeholder:n="+9 (999) 999-99-99",rounded:a=!0,type:o="text",color:u="mineShaft",placeholderColor:l="silver",disableRussianNumberDigitSwap:c,defaultValue:i,...d}=useMergedProps.useMergedProps(e,{componentName:"InputPhone",sizes:sizes.SIZES});const[p,h]=React.useState(i??'');const g=e.value??p;const f=React.useMemo(()=>[...s].sort((e,t)=>t[1].length-e[1].length),[s]);const v=React.useMemo(()=>{if(!f.length)return null;const e=onlyNumbers(g);return e.length<f[0][1].length?null:f.find(t=>e.startsWith(t[1]))},[g,f]);const R=v?v[2]:r;const m=React.useRef(R);return React.useEffect(()=>{m.current=R},[R]),jsxRuntime.jsx(Input.Input,{...d,ref:t,placeholder:n,rounded:a,type:o,color:u,placeholderColor:l,value:g,mask:g?R:void 0,"data-regexp":v&&v[3]instanceof RegExp?v[3].toString():void 0,onChange:t=>{d.onChange&&d.onChange(t),isNil.isNil(e.value)&&h(t.currentTarget.value)},beforeMaskedValueChange:(e,t,s,r)=>{if(d.beforeMaskedValueChange)return d.beforeMaskedValueChange(e,t,s,r);const n={...e};const a=onlyNumbers(n.value);if(!c&&v&&v[0]==='Россия'&&a.startsWith('8')&&(n.value=n.value.replace('8','7')),m.current!==R&&a.length){const e=n.value.lastIndexOf(a[a.length-1]);e!==-1&&(n.selection={start:e+1,end:e+1})}return n}})});
2
2
  //# sourceMappingURL=Input.Phone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.Phone.js","sources":["../../../../src/components/Input.Phone/Input.Phone.tsx"],"sourcesContent":["import { PureComponent } from 'react'\nimport type { InputMaskState } from 'shared/interfaces'\nimport { Input } from '../Input/Input'\nimport type { InputProps } from '../Input'\nimport {\n COUNTRY_DATA,\n DEFAULT_MASK,\n INITIAL_MASK,\n REGEXPS,\n RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH,\n} from './constants'\n\nconst onlyNumbers = (value = ''): string => value.replace(REGEXPS.NOT_NUMBERS, '')\n\nexport interface InputPhoneProps extends InputProps {\n /**\n * Settings for different country codes\n */\n countryData?: string[][]\n /**\n * Default field mask that is set when none of the countryData prop matches\n */\n defaultMask?: string\n /**\n * The default field mask when the phone field is empty is required to enable autocomplete in\n * the browser\n */\n initialMask?: string\n /** If event should return stripped phone value (not for redux forms) */\n stripValue?: boolean\n}\n\ninterface InputPhoneState {\n mask: string\n regexp?: RegExp | null\n}\n\nexport class InputPhone extends PureComponent<typeof InputPhone.defaultProps & InputPhoneProps, InputPhoneState> {\n static displayName = 'Input.Phone'\n static defaultProps = {\n countryData: COUNTRY_DATA,\n defaultMask: DEFAULT_MASK,\n initialMask: INITIAL_MASK,\n placeholder: '+9 (999) 999-99-99',\n rounded: true,\n type: 'text',\n color: 'mineShaft',\n mask: '',\n placeholderColor: 'silver',\n }\n\n autocorrectOf8: boolean\n autocorrectOf9: boolean\n\n constructor(props: typeof InputPhone.defaultProps & InputPhoneProps) {\n super(props)\n\n this.autocorrectOf8 = true\n this.autocorrectOf9 = true\n\n const { mask } = this.getUpdates(props.value || '')\n\n this.state = { mask, regexp: null }\n }\n\n componentDidUpdate(nextProps: InputPhoneProps) {\n const { value } = this.props\n\n if (value !== nextProps.value) {\n this.change(value)\n }\n }\n\n getUpdates = (\n value: InputPhoneProps['value'],\n prevValue: InputPhoneProps['value'] = undefined\n ): {\n mask: string\n numbers: string\n startsFrom8: boolean\n startsFrom9: boolean\n regexp: RegExp | null\n } => {\n const { countryData, defaultMask, initialMask } = this.props\n const numbers = onlyNumbers(value as string)\n\n let mask = initialMask\n let regexp = null\n let startsFrom8 = false\n let startsFrom9 = false\n\n if (!numbers)\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n\n let isRussian = false\n\n for (let i = 0; i < countryData.length; i++) {\n if (numbers.startsWith(countryData[i][1])) {\n ;[, , mask, regexp] = countryData[i]\n isRussian = i === 0 || i === 1\n }\n }\n\n startsFrom8 = isRussian && REGEXPS.FROM_8.test(numbers) && this.autocorrectOf8\n startsFrom9 =\n (!mask || (numbers.length === RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH && prevValue === '')) &&\n this.autocorrectOf9 &&\n REGEXPS.FROM_9.test(numbers)\n\n if (startsFrom8) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf8 = false\n }\n\n if (startsFrom9) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf9 = false\n }\n\n if (!mask) {\n mask = defaultMask\n }\n\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n }\n\n change = (phone: InputPhoneProps['value']) => {\n const { mask } = this.getUpdates(phone)\n\n this.setState({ mask })\n }\n\n handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.persist()\n\n const { onChange, stripValue } = this.props\n\n if (onChange) {\n const _e = e\n if (stripValue) _e.target.value = onlyNumbers(e.target.value)\n onChange(_e)\n }\n }\n\n beforeMaskedValueChange = (newState: InputMaskState, oldState: InputMaskState) => {\n const { mask, numbers, startsFrom8, startsFrom9, regexp } = this.getUpdates(newState.value, oldState.value)\n\n this.setState({ mask, regexp })\n\n /**\n * For the correct caret position, when the user enters 9 in the phone field and it's replaced\n * by '+7 (9'\n */\n if (startsFrom9) {\n return {\n selection: numbers.length === 1 ? { start: 5, end: 5 } : newState.selection,\n value: newState.value.replace(REGEXPS.FROM_9, '+79$1'),\n }\n }\n\n if (startsFrom8) {\n return { selection: { start: 2, end: 2 }, value: newState.value.replace(REGEXPS.FROM_8, '+7$1') }\n }\n\n if (REGEXPS.FILLED.test(oldState.value) && numbers.length === 1) {\n return { selection: { start: 2, end: 2 }, value: newState.value }\n }\n\n if (!REGEXPS.FILLED.test(oldState.value) && REGEXPS.FILLED.test(newState.value)) {\n return {\n ...newState,\n selection: newState.selection ? { start: newState.selection.start + 1, end: newState.selection.end + 1 } : null,\n }\n }\n\n return newState\n }\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { countryData, defaultMask, initialMask, stripValue, ...props } = this.props\n const { mask, regexp } = this.state\n\n return (\n <Input\n {...props}\n beforeMaskedValueChange={this.beforeMaskedValueChange}\n mask={mask}\n data-regexp={regexp instanceof RegExp ? regexp.toString() : undefined}\n onChange={this.handleChange}\n />\n )\n }\n}\n"],"names":["onlyNumbers","value","replace","REGEXPS","NOT_NUMBERS","InputPhone","PureComponent","static","countryData","COUNTRY_DATA","defaultMask","DEFAULT_MASK","initialMask","INITIAL_MASK","placeholder","rounded","type","color","mask","placeholderColor","constructor","props","super","this","autocorrectOf8","autocorrectOf9","getUpdates","state","regexp","componentDidUpdate","nextProps","change","prevValue","numbers","startsFrom8","startsFrom9","isRussian","i","length","startsWith","FROM_8","test","RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH","FROM_9","phone","setState","handleChange","e","persist","onChange","stripValue","_e","target","beforeMaskedValueChange","newState","oldState","selection","start","end","FILLED","render","_jsx","Input","RegExp","toString","undefined"],"mappings":"mKAYA,MAAMA,YAAcA,CAACC,EAAQ,KAAeA,EAAMC,QAAQC,UAAAA,QAAQC,YAAa,uBAyBxE,MAAMC,mBAAmBC,MAAAA,cAC9BC,mBAAqB,cACrBA,oBAAsB,CACpBC,YAAaC,UAAAA,aACbC,YAAaC,UAAAA,aACbC,YAAaC,UAAAA,aACbC,YAAa,qBACbC,SAAS,EACTC,KAAM,OACNC,MAAO,YACPC,KAAM,GACNC,iBAAkB,UAMpBC,WAAAA,CAAYC,GACVC,MAAMD,GAENE,KAAKC,gBAAiB,EACtBD,KAAKE,gBAAiB,EAEtB,MAAMP,KAAEA,GAASK,KAAKG,WAAWL,EAAMpB,OAAS,IAEhDsB,KAAKI,MAAQ,CAAET,OAAMU,OAAQ,KAC/B,CAEAC,kBAAAA,CAAmBC,GACjB,MAAM7B,MAAEA,GAAUsB,KAAKF,MAEnBpB,IAAU6B,EAAU7B,OACtBsB,KAAKQ,OAAO9B,EAEhB,CAEAyB,WAAaA,CACXzB,EACA+B,KAQA,MAAMxB,YAAEA,EAAWE,YAAEA,EAAWE,YAAEA,GAAgBW,KAAKF,MACvD,MAAMY,EAAUjC,YAAYC,GAE5B,IAAIiB,EAAON,EACX,IAAIgB,EAAS,KACb,IAAIM,GAAc,EAClB,IAAIC,GAAc,EAElB,IAAKF,EACH,MAAO,CACLf,OACAe,UACAC,cACAC,cACAP,UAGJ,IAAIQ,GAAY,EAEhB,IAAK,IAAIC,EAAI,EAAGA,EAAI7B,EAAY8B,OAAQD,IAClCJ,EAAQM,WAAW/B,EAAY6B,GAAG,OACnC,CAAA,CAAKnB,EAAMU,GAAUpB,EAAY6B,GAClCD,EAAYC,IAAM,GAAKA,IAAM,GA4BjC,OAxBAH,EAAcE,GAAajC,kBAAQqC,OAAOC,KAAKR,IAAYV,KAAKC,eAChEW,IACIjB,GAASe,EAAQK,SAAWI,UAAAA,0CAA4CV,IAAc,KACxFT,KAAKE,gBACLtB,UAAAA,QAAQwC,OAAOF,KAAKR,GAElBC,IAEFhB,EAAOT,UAAAA,aAAa,GAAG,GAEvBc,KAAKC,gBAAiB,GAGpBW,IAEFjB,EAAOT,UAAAA,aAAa,GAAG,GAEvBc,KAAKE,gBAAiB,GAGnBP,IACHA,EAAOR,GAGF,CACLQ,OACAe,UACAC,cACAC,cACAP,WAIJG,OAAUa,IACR,MAAM1B,KAAEA,GAASK,KAAKG,WAAWkB,GAEjCrB,KAAKsB,SAAS,CAAE3B,UAGlB4B,aAA4DC,IAC1DA,EAAEC,UAEF,MAAMC,SAAEA,EAAQC,WAAEA,GAAe3B,KAAKF,MAEtC,GAAI4B,EAAU,CACZ,MAAME,EAAKJ,EACPG,IAAYC,EAAGC,OAAOnD,MAAQD,YAAY+C,EAAEK,OAAOnD,QACvDgD,EAASE,EACX,GAGFE,wBAA0BA,CAACC,EAA0BC,KACnD,MAAMrC,KAAEA,EAAIe,QAAEA,EAAOC,YAAEA,EAAWC,YAAEA,EAAWP,OAAEA,GAAWL,KAAKG,WAAW4B,EAASrD,MAAOsD,EAAStD,OAQrG,OANAsB,KAAKsB,SAAS,CAAE3B,OAAMU,WAMlBO,EACK,CACLqB,UAAWvB,EAAQK,SAAW,EAAI,CAAEmB,MAAO,EAAGC,IAAK,GAAMJ,EAASE,UAClEvD,MAAOqD,EAASrD,MAAMC,QAAQC,UAAAA,QAAQwC,OAAQ,UAI9CT,EACK,CAAEsB,UAAW,CAAEC,MAAO,EAAGC,IAAK,GAAKzD,MAAOqD,EAASrD,MAAMC,QAAQC,UAAAA,QAAQqC,OAAQ,SAGtFrC,UAAAA,QAAQwD,OAAOlB,KAAKc,EAAStD,QAAUgC,EAAQK,SAAW,EACrD,CAAEkB,UAAW,CAAEC,MAAO,EAAGC,IAAK,GAAKzD,MAAOqD,EAASrD,QAGvDE,UAAAA,QAAQwD,OAAOlB,KAAKc,EAAStD,QAAUE,UAAAA,QAAQwD,OAAOlB,KAAKa,EAASrD,OAChE,IACFqD,EACHE,UAAWF,EAASE,UAAY,CAAEC,MAAOH,EAASE,UAAUC,MAAQ,EAAGC,IAAKJ,EAASE,UAAUE,IAAM,GAAM,MAIxGJ,GAGTM,MAAAA,GAEE,MAAMpD,YAAEA,EAAWE,YAAEA,EAAWE,YAAEA,EAAWsC,WAAEA,KAAe7B,GAAUE,KAAKF,MAC7E,MAAMH,KAAEA,EAAIU,OAAEA,GAAWL,KAAKI,MAE9B,OACEkC,WAAAA,IAACC,MAAAA,MAAK,IACAzC,EACJgC,wBAAyB9B,KAAK8B,wBAC9BnC,KAAMA,EACN,cAAaU,aAAkBmC,OAASnC,EAAOoC,gBAAaC,EAC5DhB,SAAU1B,KAAKuB,cAGrB"}
1
+ {"version":3,"file":"Input.Phone.js","sources":["../../../../src/components/Input.Phone/Input.Phone.tsx"],"sourcesContent":["import { forwardRef, useState, useMemo, useRef, useEffect } from 'react'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { isNil } from 'shared/utils/isNil'\nimport { Input } from '../Input/Input'\nimport type { InputProps } from '../Input'\nimport { SIZES } from '../Input'\nimport { COUNTRY_DATA, DEFAULT_MASK, REGEXPS } from './constants'\n\nconst onlyNumbers = (value = ''): string => value.replace(REGEXPS.NOT_NUMBERS, '')\n\nexport interface InputPhoneProps extends Omit<InputProps, 'mask'> {\n /**\n * Метаданные по странам для определения маски.\n *\n * @default COUNTRY_DATA */\n countryData?: [string, string, string, RegExp][]\n /**\n * Дефолтная маска инпута.\n *\n * @default '+99999999...' */\n defaultMask?: string\n /**\n * Отключить замену первой 8 на 7 в российских номерах.\n *\n * @default false */\n disableRussianNumberDigitSwap?: boolean\n}\n\nconst COMPONENT_NAME = 'InputPhone'\n\n/**\n *\n * Контрол для ввода телефонного номера.\n *\n * Поддерживается \"ref\" и все нативные атрибуты \\<input\\> элемента.\n */\nconst InputPhone = forwardRef<HTMLInputElement, InputPhoneProps>((props, ref) => {\n const {\n countryData = COUNTRY_DATA,\n defaultMask = DEFAULT_MASK,\n placeholder = '+9 (999) 999-99-99',\n rounded = true,\n type = 'text',\n color = 'mineShaft',\n placeholderColor = 'silver',\n disableRussianNumberDigitSwap,\n defaultValue,\n ...restProps\n } = useMergedProps(props, {\n componentName: COMPONENT_NAME,\n sizes: SIZES,\n })\n\n const [value, setValue] = useState<string>(defaultValue ?? '')\n\n const inputValue = props.value ?? value\n\n const countryDataSorted = useMemo(() => {\n return [...countryData].sort((a, b) => b[1].length - a[1].length)\n }, [countryData])\n\n const inputValueData = useMemo(() => {\n if (!countryDataSorted.length) {\n return null\n }\n\n const valueNumbers = onlyNumbers(inputValue)\n\n if (valueNumbers.length < countryDataSorted[0][1].length) {\n return null\n }\n\n return countryDataSorted.find((item) => valueNumbers.startsWith(item[1]))\n }, [inputValue, countryDataSorted])\n\n const inputMask = inputValueData ? inputValueData[2] : defaultMask\n\n const inputMaskRef = useRef(inputMask)\n\n useEffect(() => {\n inputMaskRef.current = inputMask\n }, [inputMask])\n\n return (\n <Input\n {...restProps}\n ref={ref}\n placeholder={placeholder}\n rounded={rounded}\n type={type}\n color={color}\n placeholderColor={placeholderColor}\n value={inputValue}\n mask={inputValue ? inputMask : undefined}\n data-regexp={inputValueData && inputValueData[3] instanceof RegExp ? inputValueData[3].toString() : undefined}\n onChange={(evt) => {\n if (restProps.onChange) {\n restProps.onChange(evt)\n }\n\n if (isNil(props.value)) {\n setValue(evt.currentTarget.value)\n }\n }}\n beforeMaskedValueChange={(newState, oldState, userInput, maskOptions) => {\n if (restProps.beforeMaskedValueChange) {\n return restProps.beforeMaskedValueChange(newState, oldState, userInput, maskOptions)\n }\n\n const inputState = { ...newState }\n\n const valueNumbers = onlyNumbers(inputState.value)\n\n if (\n !disableRussianNumberDigitSwap &&\n inputValueData &&\n inputValueData[0] === 'Россия' &&\n valueNumbers.startsWith('8')\n ) {\n inputState.value = inputState.value.replace('8', '7')\n }\n\n if (inputMaskRef.current !== inputMask && valueNumbers.length) {\n const idx = inputState.value.lastIndexOf(valueNumbers[valueNumbers.length - 1])\n\n if (idx !== -1) {\n inputState.selection = {\n start: idx + 1,\n end: idx + 1,\n }\n }\n }\n\n return inputState\n }}\n />\n )\n})\n\nexport { InputPhone }\n"],"names":["onlyNumbers","value","replace","REGEXPS","NOT_NUMBERS","forwardRef","props","ref","countryData","COUNTRY_DATA","defaultMask","DEFAULT_MASK","placeholder","rounded","type","color","placeholderColor","disableRussianNumberDigitSwap","defaultValue","restProps","useMergedProps","componentName","sizes","SIZES","setValue","useState","inputValue","countryDataSorted","useMemo","sort","a","b","length","inputValueData","valueNumbers","find","item","startsWith","inputMask","inputMaskRef","useRef","useEffect","current","_jsx","Input","mask","undefined","RegExp","toString","onChange","evt","isNil","currentTarget","beforeMaskedValueChange","newState","oldState","userInput","maskOptions","inputState","idx","lastIndexOf","selection","start","end"],"mappings":"uTAQA,MAAMA,YAAcA,CAACC,EAAQ,KAAeA,EAAMC,QAAQC,UAAAA,QAAQC,YAAa,uBA4B5DC,MAAAA,WAA8C,CAACC,EAAOC,KACvE,MAAMC,YACJA,EAAcC,UAAAA,aAAYC,YAC1BA,EAAcC,UAAAA,aAAYC,YAC1BA,EAAc,qBAAoBC,QAClCA,GAAU,EAAIC,KACdA,EAAO,OAAMC,MACbA,EAAQ,YAAWC,iBACnBA,EAAmB,SAAQC,8BAC3BA,EAA6BC,aAC7BA,KACGC,GACDC,eAAAA,eAAed,EAAO,CACxBe,cArBmB,aAsBnBC,MAAOC,MAAAA,QAGT,MAAOtB,EAAOuB,GAAYC,MAAAA,SAAiBP,GAAgB,IAE3D,MAAMQ,EAAapB,EAAML,OAASA,EAElC,MAAM0B,EAAoBC,MAAAA,QAAQ,IACzB,IAAIpB,GAAaqB,KAAK,CAACC,EAAGC,IAAMA,EAAE,GAAGC,OAASF,EAAE,GAAGE,QACzD,CAACxB,IAEJ,MAAMyB,EAAiBL,MAAAA,QAAQ,KAC7B,IAAKD,EAAkBK,OACrB,OAAO,KAGT,MAAME,EAAelC,YAAY0B,GAEjC,OAAIQ,EAAaF,OAASL,EAAkB,GAAG,GAAGK,OACzC,KAGFL,EAAkBQ,KAAMC,GAASF,EAAaG,WAAWD,EAAK,MACpE,CAACV,EAAYC,IAEhB,MAAMW,EAAYL,EAAiBA,EAAe,GAAKvB,EAEvD,MAAM6B,EAAeC,MAAAA,OAAOF,GAM5B,OAJAG,MAAAA,UAAU,KACRF,EAAaG,QAAUJ,GACtB,CAACA,IAGFK,WAAAA,IAACC,MAAAA,MAAK,IACAzB,EACJZ,IAAKA,EACLK,YAAaA,EACbC,QAASA,EACTC,KAAMA,EACNC,MAAOA,EACPC,iBAAkBA,EAClBf,MAAOyB,EACPmB,KAAMnB,EAAaY,OAAYQ,EAC/B,cAAab,GAAkBA,EAAe,aAAcc,OAASd,EAAe,GAAGe,gBAAaF,EACpGG,SAAWC,IACL/B,EAAU8B,UACZ9B,EAAU8B,SAASC,GAGjBC,MAAAA,MAAM7C,EAAML,QACduB,EAAS0B,EAAIE,cAAcnD,QAG/BoD,wBAAyBA,CAACC,EAAUC,EAAUC,EAAWC,KACvD,GAAItC,EAAUkC,wBACZ,OAAOlC,EAAUkC,wBAAwBC,EAAUC,EAAUC,EAAWC,GAG1E,MAAMC,EAAa,IAAKJ,GAExB,MAAMpB,EAAelC,YAAY0D,EAAWzD,OAW5C,IARGgB,GACDgB,GACAA,EAAe,KAAO,UACtBC,EAAaG,WAAW,OAExBqB,EAAWzD,MAAQyD,EAAWzD,MAAMC,QAAQ,IAAK,MAG/CqC,EAAaG,UAAYJ,GAAaJ,EAAaF,OAAQ,CAC7D,MAAM2B,EAAMD,EAAWzD,MAAM2D,YAAY1B,EAAaA,EAAaF,OAAS,IAExE2B,KAAQ,IACVD,EAAWG,UAAY,CACrBC,MAAOH,EAAM,EACbI,IAAKJ,EAAM,GAGjB,CAEA,OAAOD"}
@@ -1,2 +1,2 @@
1
- import{PureComponent}from'react';import{Input}from'../Input/Input.mjs';import{INITIAL_MASK,DEFAULT_MASK,COUNTRY_DATA,REGEXPS,RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH}from'./constants.mjs';import{jsx}from'react/jsx-runtime';const onlyNumbers=(t="")=>t.replace(REGEXPS.NOT_NUMBERS,'');class InputPhone extends PureComponent{static displayName='Input.Phone';static defaultProps={countryData:COUNTRY_DATA,defaultMask:DEFAULT_MASK,initialMask:INITIAL_MASK,placeholder:'+9 (999) 999-99-99',rounded:!0,type:'text',color:'mineShaft',mask:'',placeholderColor:'silver'};constructor(t){super(t),this.autocorrectOf8=!0,this.autocorrectOf9=!0;const{mask:e}=this.getUpdates(t.value||'');this.state={mask:e,regexp:null}}componentDidUpdate(t){const{value:e}=this.props;e!==t.value&&this.change(e)}getUpdates=(t,e)=>{const{countryData:s,defaultMask:a,initialMask:r}=this.props;const n=onlyNumbers(t);let o=r;let l=null;let u=!1;let i=!1;if(!n)return{mask:o,numbers:n,startsFrom8:u,startsFrom9:i,regexp:l};let c=!1;for(let t=0;t<s.length;t++)n.startsWith(s[t][1])&&([,,o,l]=s[t],c=t===0||t===1);return u=c&&REGEXPS.FROM_8.test(n)&&this.autocorrectOf8,i=(!o||n.length===RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH&&e==='')&&this.autocorrectOf9&&REGEXPS.FROM_9.test(n),u&&(o=COUNTRY_DATA[0][2],this.autocorrectOf8=!1),i&&(o=COUNTRY_DATA[0][2],this.autocorrectOf9=!1),o||(o=a),{mask:o,numbers:n,startsFrom8:u,startsFrom9:i,regexp:l}};change=t=>{const{mask:e}=this.getUpdates(t);this.setState({mask:e})};handleChange=t=>{t.persist();const{onChange:e,stripValue:s}=this.props;if(e){const a=t;s&&(a.target.value=onlyNumbers(t.target.value)),e(a)}};beforeMaskedValueChange=(t,e)=>{const{mask:s,numbers:a,startsFrom8:r,startsFrom9:n,regexp:o}=this.getUpdates(t.value,e.value);return this.setState({mask:s,regexp:o}),n?{selection:a.length===1?{start:5,end:5}:t.selection,value:t.value.replace(REGEXPS.FROM_9,'+79$1')}:r?{selection:{start:2,end:2},value:t.value.replace(REGEXPS.FROM_8,'+7$1')}:REGEXPS.FILLED.test(e.value)&&a.length===1?{selection:{start:2,end:2},value:t.value}:!REGEXPS.FILLED.test(e.value)&&REGEXPS.FILLED.test(t.value)?{...t,selection:t.selection?{start:t.selection.start+1,end:t.selection.end+1}:null}:t};render(){const{countryData:t,defaultMask:e,initialMask:s,stripValue:a,...r}=this.props;const{mask:n,regexp:o}=this.state;return jsx(Input,{...r,beforeMaskedValueChange:this.beforeMaskedValueChange,mask:n,"data-regexp":o instanceof RegExp?o.toString():void 0,onChange:this.handleChange})}}export{InputPhone};
1
+ import{forwardRef,useState,useMemo,useRef,useEffect}from'react';import{useMergedProps}from'../../hooks/useMergedProps.mjs';import{isNil}from'../../shared/utils/isNil.mjs';import{Input}from'../Input/Input.mjs';import{COUNTRY_DATA,DEFAULT_MASK,REGEXPS}from'./constants.mjs';import{jsx}from'react/jsx-runtime';import{SIZES}from'../Input/sizes.mjs';const onlyNumbers=(e="")=>e.replace(REGEXPS.NOT_NUMBERS,'');const InputPhone=forwardRef((e,t)=>{const{countryData:o=COUNTRY_DATA,defaultMask:r=DEFAULT_MASK,placeholder:n="+9 (999) 999-99-99",rounded:s=!0,type:a="text",color:u="mineShaft",placeholderColor:l="silver",disableRussianNumberDigitSwap:i,defaultValue:c,...m}=useMergedProps(e,{componentName:"InputPhone",sizes:SIZES});const[p,f]=useState(c??'');const d=e.value??p;const h=useMemo(()=>[...o].sort((e,t)=>t[1].length-e[1].length),[o]);const g=useMemo(()=>{if(!h.length)return null;const e=onlyNumbers(d);return e.length<h[0][1].length?null:h.find(t=>e.startsWith(t[1]))},[d,h]);const S=g?g[2]:r;const M=useRef(S);return useEffect(()=>{M.current=S},[S]),jsx(Input,{...m,ref:t,placeholder:n,rounded:s,type:a,color:u,placeholderColor:l,value:d,mask:d?S:void 0,"data-regexp":g&&g[3]instanceof RegExp?g[3].toString():void 0,onChange:t=>{m.onChange&&m.onChange(t),isNil(e.value)&&f(t.currentTarget.value)},beforeMaskedValueChange:(e,t,o,r)=>{if(m.beforeMaskedValueChange)return m.beforeMaskedValueChange(e,t,o,r);const n={...e};const s=onlyNumbers(n.value);if(!i&&g&&g[0]==='Россия'&&s.startsWith('8')&&(n.value=n.value.replace('8','7')),M.current!==S&&s.length){const e=n.value.lastIndexOf(s[s.length-1]);e!==-1&&(n.selection={start:e+1,end:e+1})}return n}})});export{InputPhone};
2
2
  //# sourceMappingURL=Input.Phone.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.Phone.mjs","sources":["../../../../src/components/Input.Phone/Input.Phone.tsx"],"sourcesContent":["import { PureComponent } from 'react'\nimport type { InputMaskState } from 'shared/interfaces'\nimport { Input } from '../Input/Input'\nimport type { InputProps } from '../Input'\nimport {\n COUNTRY_DATA,\n DEFAULT_MASK,\n INITIAL_MASK,\n REGEXPS,\n RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH,\n} from './constants'\n\nconst onlyNumbers = (value = ''): string => value.replace(REGEXPS.NOT_NUMBERS, '')\n\nexport interface InputPhoneProps extends InputProps {\n /**\n * Settings for different country codes\n */\n countryData?: string[][]\n /**\n * Default field mask that is set when none of the countryData prop matches\n */\n defaultMask?: string\n /**\n * The default field mask when the phone field is empty is required to enable autocomplete in\n * the browser\n */\n initialMask?: string\n /** If event should return stripped phone value (not for redux forms) */\n stripValue?: boolean\n}\n\ninterface InputPhoneState {\n mask: string\n regexp?: RegExp | null\n}\n\nexport class InputPhone extends PureComponent<typeof InputPhone.defaultProps & InputPhoneProps, InputPhoneState> {\n static displayName = 'Input.Phone'\n static defaultProps = {\n countryData: COUNTRY_DATA,\n defaultMask: DEFAULT_MASK,\n initialMask: INITIAL_MASK,\n placeholder: '+9 (999) 999-99-99',\n rounded: true,\n type: 'text',\n color: 'mineShaft',\n mask: '',\n placeholderColor: 'silver',\n }\n\n autocorrectOf8: boolean\n autocorrectOf9: boolean\n\n constructor(props: typeof InputPhone.defaultProps & InputPhoneProps) {\n super(props)\n\n this.autocorrectOf8 = true\n this.autocorrectOf9 = true\n\n const { mask } = this.getUpdates(props.value || '')\n\n this.state = { mask, regexp: null }\n }\n\n componentDidUpdate(nextProps: InputPhoneProps) {\n const { value } = this.props\n\n if (value !== nextProps.value) {\n this.change(value)\n }\n }\n\n getUpdates = (\n value: InputPhoneProps['value'],\n prevValue: InputPhoneProps['value'] = undefined\n ): {\n mask: string\n numbers: string\n startsFrom8: boolean\n startsFrom9: boolean\n regexp: RegExp | null\n } => {\n const { countryData, defaultMask, initialMask } = this.props\n const numbers = onlyNumbers(value as string)\n\n let mask = initialMask\n let regexp = null\n let startsFrom8 = false\n let startsFrom9 = false\n\n if (!numbers)\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n\n let isRussian = false\n\n for (let i = 0; i < countryData.length; i++) {\n if (numbers.startsWith(countryData[i][1])) {\n ;[, , mask, regexp] = countryData[i]\n isRussian = i === 0 || i === 1\n }\n }\n\n startsFrom8 = isRussian && REGEXPS.FROM_8.test(numbers) && this.autocorrectOf8\n startsFrom9 =\n (!mask || (numbers.length === RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH && prevValue === '')) &&\n this.autocorrectOf9 &&\n REGEXPS.FROM_9.test(numbers)\n\n if (startsFrom8) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf8 = false\n }\n\n if (startsFrom9) {\n // RUSSIAN_MASK\n mask = COUNTRY_DATA[0][2]\n\n this.autocorrectOf9 = false\n }\n\n if (!mask) {\n mask = defaultMask\n }\n\n return {\n mask,\n numbers,\n startsFrom8,\n startsFrom9,\n regexp,\n }\n }\n\n change = (phone: InputPhoneProps['value']) => {\n const { mask } = this.getUpdates(phone)\n\n this.setState({ mask })\n }\n\n handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n e.persist()\n\n const { onChange, stripValue } = this.props\n\n if (onChange) {\n const _e = e\n if (stripValue) _e.target.value = onlyNumbers(e.target.value)\n onChange(_e)\n }\n }\n\n beforeMaskedValueChange = (newState: InputMaskState, oldState: InputMaskState) => {\n const { mask, numbers, startsFrom8, startsFrom9, regexp } = this.getUpdates(newState.value, oldState.value)\n\n this.setState({ mask, regexp })\n\n /**\n * For the correct caret position, when the user enters 9 in the phone field and it's replaced\n * by '+7 (9'\n */\n if (startsFrom9) {\n return {\n selection: numbers.length === 1 ? { start: 5, end: 5 } : newState.selection,\n value: newState.value.replace(REGEXPS.FROM_9, '+79$1'),\n }\n }\n\n if (startsFrom8) {\n return { selection: { start: 2, end: 2 }, value: newState.value.replace(REGEXPS.FROM_8, '+7$1') }\n }\n\n if (REGEXPS.FILLED.test(oldState.value) && numbers.length === 1) {\n return { selection: { start: 2, end: 2 }, value: newState.value }\n }\n\n if (!REGEXPS.FILLED.test(oldState.value) && REGEXPS.FILLED.test(newState.value)) {\n return {\n ...newState,\n selection: newState.selection ? { start: newState.selection.start + 1, end: newState.selection.end + 1 } : null,\n }\n }\n\n return newState\n }\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { countryData, defaultMask, initialMask, stripValue, ...props } = this.props\n const { mask, regexp } = this.state\n\n return (\n <Input\n {...props}\n beforeMaskedValueChange={this.beforeMaskedValueChange}\n mask={mask}\n data-regexp={regexp instanceof RegExp ? regexp.toString() : undefined}\n onChange={this.handleChange}\n />\n )\n }\n}\n"],"names":["onlyNumbers","value","replace","REGEXPS","NOT_NUMBERS","InputPhone","PureComponent","static","countryData","COUNTRY_DATA","defaultMask","DEFAULT_MASK","initialMask","INITIAL_MASK","placeholder","rounded","type","color","mask","placeholderColor","constructor","props","super","this","autocorrectOf8","autocorrectOf9","getUpdates","state","regexp","componentDidUpdate","nextProps","change","prevValue","numbers","startsFrom8","startsFrom9","isRussian","i","length","startsWith","FROM_8","test","RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH","FROM_9","phone","setState","handleChange","e","persist","onChange","stripValue","_e","target","beforeMaskedValueChange","newState","oldState","selection","start","end","FILLED","render","_jsx","Input","RegExp","toString","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"Input.Phone.mjs","sources":["../../../../src/components/Input.Phone/Input.Phone.tsx"],"sourcesContent":["import { forwardRef, useState, useMemo, useRef, useEffect } from 'react'\nimport { useMergedProps } from 'hooks/useMergedProps'\nimport { isNil } from 'shared/utils/isNil'\nimport { Input } from '../Input/Input'\nimport type { InputProps } from '../Input'\nimport { SIZES } from '../Input'\nimport { COUNTRY_DATA, DEFAULT_MASK, REGEXPS } from './constants'\n\nconst onlyNumbers = (value = ''): string => value.replace(REGEXPS.NOT_NUMBERS, '')\n\nexport interface InputPhoneProps extends Omit<InputProps, 'mask'> {\n /**\n * Метаданные по странам для определения маски.\n *\n * @default COUNTRY_DATA */\n countryData?: [string, string, string, RegExp][]\n /**\n * Дефолтная маска инпута.\n *\n * @default '+99999999...' */\n defaultMask?: string\n /**\n * Отключить замену первой 8 на 7 в российских номерах.\n *\n * @default false */\n disableRussianNumberDigitSwap?: boolean\n}\n\nconst COMPONENT_NAME = 'InputPhone'\n\n/**\n *\n * Контрол для ввода телефонного номера.\n *\n * Поддерживается \"ref\" и все нативные атрибуты \\<input\\> элемента.\n */\nconst InputPhone = forwardRef<HTMLInputElement, InputPhoneProps>((props, ref) => {\n const {\n countryData = COUNTRY_DATA,\n defaultMask = DEFAULT_MASK,\n placeholder = '+9 (999) 999-99-99',\n rounded = true,\n type = 'text',\n color = 'mineShaft',\n placeholderColor = 'silver',\n disableRussianNumberDigitSwap,\n defaultValue,\n ...restProps\n } = useMergedProps(props, {\n componentName: COMPONENT_NAME,\n sizes: SIZES,\n })\n\n const [value, setValue] = useState<string>(defaultValue ?? '')\n\n const inputValue = props.value ?? value\n\n const countryDataSorted = useMemo(() => {\n return [...countryData].sort((a, b) => b[1].length - a[1].length)\n }, [countryData])\n\n const inputValueData = useMemo(() => {\n if (!countryDataSorted.length) {\n return null\n }\n\n const valueNumbers = onlyNumbers(inputValue)\n\n if (valueNumbers.length < countryDataSorted[0][1].length) {\n return null\n }\n\n return countryDataSorted.find((item) => valueNumbers.startsWith(item[1]))\n }, [inputValue, countryDataSorted])\n\n const inputMask = inputValueData ? inputValueData[2] : defaultMask\n\n const inputMaskRef = useRef(inputMask)\n\n useEffect(() => {\n inputMaskRef.current = inputMask\n }, [inputMask])\n\n return (\n <Input\n {...restProps}\n ref={ref}\n placeholder={placeholder}\n rounded={rounded}\n type={type}\n color={color}\n placeholderColor={placeholderColor}\n value={inputValue}\n mask={inputValue ? inputMask : undefined}\n data-regexp={inputValueData && inputValueData[3] instanceof RegExp ? inputValueData[3].toString() : undefined}\n onChange={(evt) => {\n if (restProps.onChange) {\n restProps.onChange(evt)\n }\n\n if (isNil(props.value)) {\n setValue(evt.currentTarget.value)\n }\n }}\n beforeMaskedValueChange={(newState, oldState, userInput, maskOptions) => {\n if (restProps.beforeMaskedValueChange) {\n return restProps.beforeMaskedValueChange(newState, oldState, userInput, maskOptions)\n }\n\n const inputState = { ...newState }\n\n const valueNumbers = onlyNumbers(inputState.value)\n\n if (\n !disableRussianNumberDigitSwap &&\n inputValueData &&\n inputValueData[0] === 'Россия' &&\n valueNumbers.startsWith('8')\n ) {\n inputState.value = inputState.value.replace('8', '7')\n }\n\n if (inputMaskRef.current !== inputMask && valueNumbers.length) {\n const idx = inputState.value.lastIndexOf(valueNumbers[valueNumbers.length - 1])\n\n if (idx !== -1) {\n inputState.selection = {\n start: idx + 1,\n end: idx + 1,\n }\n }\n }\n\n return inputState\n }}\n />\n )\n})\n\nexport { InputPhone }\n"],"names":["onlyNumbers","value","replace","REGEXPS","NOT_NUMBERS","InputPhone","forwardRef","props","ref","countryData","COUNTRY_DATA","defaultMask","DEFAULT_MASK","placeholder","rounded","type","color","placeholderColor","disableRussianNumberDigitSwap","defaultValue","restProps","useMergedProps","componentName","sizes","SIZES","setValue","useState","inputValue","countryDataSorted","useMemo","sort","a","b","length","inputValueData","valueNumbers","find","item","startsWith","inputMask","inputMaskRef","useRef","useEffect","current","_jsx","Input","mask","undefined","RegExp","toString","onChange","evt","isNil","currentTarget","beforeMaskedValueChange","newState","oldState","userInput","maskOptions","inputState","idx","lastIndexOf","selection","start","end"],"mappings":"yVAQA,MAAMA,YAAcA,CAACC,EAAQ,KAAeA,EAAMC,QAAQC,QAAQC,YAAa,IA4B/E,MAAMC,WAAaC,WAA8C,CAACC,EAAOC,KACvE,MAAMC,YACJA,EAAcC,aAAYC,YAC1BA,EAAcC,aAAYC,YAC1BA,EAAc,qBAAoBC,QAClCA,GAAU,EAAIC,KACdA,EAAO,OAAMC,MACbA,EAAQ,YAAWC,iBACnBA,EAAmB,SAAQC,8BAC3BA,EAA6BC,aAC7BA,KACGC,GACDC,eAAed,EAAO,CACxBe,cArBmB,aAsBnBC,MAAOC,QAGT,MAAOvB,EAAOwB,GAAYC,SAAiBP,GAAgB,IAE3D,MAAMQ,EAAapB,EAAMN,OAASA,EAElC,MAAM2B,EAAoBC,QAAQ,IACzB,IAAIpB,GAAaqB,KAAK,CAACC,EAAGC,IAAMA,EAAE,GAAGC,OAASF,EAAE,GAAGE,QACzD,CAACxB,IAEJ,MAAMyB,EAAiBL,QAAQ,KAC7B,IAAKD,EAAkBK,OACrB,OAAO,KAGT,MAAME,EAAenC,YAAY2B,GAEjC,OAAIQ,EAAaF,OAASL,EAAkB,GAAG,GAAGK,OACzC,KAGFL,EAAkBQ,KAAMC,GAASF,EAAaG,WAAWD,EAAK,MACpE,CAACV,EAAYC,IAEhB,MAAMW,EAAYL,EAAiBA,EAAe,GAAKvB,EAEvD,MAAM6B,EAAeC,OAAOF,GAM5B,OAJAG,UAAU,KACRF,EAAaG,QAAUJ,GACtB,CAACA,IAGFK,IAACC,MAAK,IACAzB,EACJZ,IAAKA,EACLK,YAAaA,EACbC,QAASA,EACTC,KAAMA,EACNC,MAAOA,EACPC,iBAAkBA,EAClBhB,MAAO0B,EACPmB,KAAMnB,EAAaY,OAAYQ,EAC/B,cAAab,GAAkBA,EAAe,aAAcc,OAASd,EAAe,GAAGe,gBAAaF,EACpGG,SAAWC,IACL/B,EAAU8B,UACZ9B,EAAU8B,SAASC,GAGjBC,MAAM7C,EAAMN,QACdwB,EAAS0B,EAAIE,cAAcpD,QAG/BqD,wBAAyBA,CAACC,EAAUC,EAAUC,EAAWC,KACvD,GAAItC,EAAUkC,wBACZ,OAAOlC,EAAUkC,wBAAwBC,EAAUC,EAAUC,EAAWC,GAG1E,MAAMC,EAAa,IAAKJ,GAExB,MAAMpB,EAAenC,YAAY2D,EAAW1D,OAW5C,IARGiB,GACDgB,GACAA,EAAe,KAAO,UACtBC,EAAaG,WAAW,OAExBqB,EAAW1D,MAAQ0D,EAAW1D,MAAMC,QAAQ,IAAK,MAG/CsC,EAAaG,UAAYJ,GAAaJ,EAAaF,OAAQ,CAC7D,MAAM2B,EAAMD,EAAW1D,MAAM4D,YAAY1B,EAAaA,EAAaF,OAAS,IAExE2B,KAAQ,IACVD,EAAWG,UAAY,CACrBC,MAAOH,EAAM,EACbI,IAAKJ,EAAM,GAGjB,CAEA,OAAOD"}
@@ -1,2 +1,2 @@
1
- 'use strict';exports.COUNTRY_DATA=[['Россия','7','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Россия','8','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Украина','380','+999 (99) 999-99-99',/^(\+?380)([0-9()\-\s]{8,20})$/],['Беларусь','375','+999 (999) 99-99-99',/^(\+?375)([0-9()\-\s]{8,20})$/],['Узбекистан','998','+999 (99) 999-99-99',/^(\+?998)([0-9()\-\s]{8,20})$/],['Молдова','373','+999 (99) 99-99-99',/^(\+?373)([0-9()\-\s]{8,20})$/],['Азербайджан','994','+999 (99) 999-99-99',/^(\+?994)([0-9()\-\s]{8,20})$/],['Киргизия','996','+999 (999) 99-99-99',/^(\+?996)([0-9()\-\s]{8,20})$/],['Болгария','359','+999 (999) 99-99-99',/^(\+?359)([0-9()\-\s]{8,20})$/],['Германия','49','+99 (999) 99999999',/^(\+?49)([0-9()\-\s]{8,20})$/],['США','1','+9 (999) 999-99-99',/^(\+?1)([0-9()\-\s]{8,20})$/],['Армения','374','+999 (99) 99-99-99',/^(\+?374)([0-9()\-\s]{8,20})$/],['Израиль','972','+999 (99) 999-99-99',/^(\+?972)([0-9()\-\s]{8,20})$/],['Испания','34','+99 (999) 99-99-99',/^(\+?34)([0-9()\-\s]{8,20})$/],['Латвия','371','+999 (99) 999-999',/^(\+?371)([0-9()\-\s]{8,20})$/],['Бахрейн','973','+999 (99) 999-999',/^(\+?973)([0-9()\-\s]{8,20})$/],['Турция','90','+99 (999) 999-9999',/^(\+?90)([0-9()\-\s]{8,20})$/],['Литва','370','+999 (999) 99999',/^(\+?370)([0-9()\-\s]{8,20})$/],['Великобритания','44','+99 (99) 9999-9999',/^(\+?44)([0-9()\-\s]{8,20})$/],['Индия','91','+99 (99) 99-999999',/^(\+?91)([0-9()\-\s]{8,20})$/],['Сербия','381','+999 (99) 999-9999',/^(\+?381)([0-9()\-\s]{8,20})$/],['Черногория','382','+999 (99) 999-999',/^(\+?382)([0-9()\-\s]{8,20})$/],['Мексика','52','+99 (999) 999-99-99',/^(\+?52)([0-9()\-\s]{8,20})$/],['Польша','48','+99 999999999',/^(\+?48)([0-9()\-\s]{8,20})$/],['Италия','39','+99 (999) 999-99-99',/^(\+?39)([0-9()\-\s]{8,20})$/],['Таиланд','66','+99 999-999-999',/^(\+?66)([0-9()\-\s]{8,20})$/],['Грузия','995','+999 (999) 999-999',/^(\+?995)([0-9()\-\s]{8,20})$/],['Шри-Ланка','94','+99 (99) 9999999',/^(\+?94)([0-9()\-\s]{8,20})$/],['Китай','86','+99 (999) 9999-9999',/^(\+?86)([0-9()\-\s]{8,20})$/],['Кипр','357','+999 (99) 999999',/^(\+?357)([0-9()\-\s]{8,20})$/],['ОАЭ','971','+999 99-999-9999',/^(\+?971)([0-9()\-\s]{8,20})$/],['Франция','33','+33(999)999-999',/^(\+?33)([0-9()\-\s]{8,20})$/],['Германия','49','+99(9999)999-9999',/^(\+?49)([0-9()\-\s]{8,20})$/],['Япония','81','+99 99-9999-9999',/^(\+?81)([0-9()\-\s]{8,20})$/],['Австрия','43','+99(999)999-99999',/^(\+?43)([0-9()\-\s]{8,20})$/],['Южная Корея','82','+99(999)999-9999',/^(\+?82)([0-9()\-\s]{8,20})$/]],exports.DEFAULT_MASK="+99999999999999999999",exports.INITIAL_MASK="99999999999999999999",exports.REGEXPS={FILLED:/^\+\d.*$/,FROM_8:/^\+?8(.*)$/,FROM_9:/^\+?9(.*)$/,NOT_NUMBERS:/\D/gim},exports.RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH=10;
1
+ 'use strict';exports.COUNTRY_DATA=[['Россия','7','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Россия','8','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Украина','380','+999 (99) 999-99-99',/^(\+?380)([0-9()\-\s]{8,20})$/],['Беларусь','375','+999 (999) 99-99-99',/^(\+?375)([0-9()\-\s]{8,20})$/],['Узбекистан','998','+999 (99) 999-99-99',/^(\+?998)([0-9()\-\s]{8,20})$/],['Молдова','373','+999 (99) 99-99-99',/^(\+?373)([0-9()\-\s]{8,20})$/],['Азербайджан','994','+999 (99) 999-99-99',/^(\+?994)([0-9()\-\s]{8,20})$/],['Киргизия','996','+999 (999) 99-99-99',/^(\+?996)([0-9()\-\s]{8,20})$/],['Болгария','359','+999 (999) 99-99-99',/^(\+?359)([0-9()\-\s]{8,20})$/],['Германия','49','+99 (999) 99999999',/^(\+?49)([0-9()\-\s]{8,20})$/],['США','1','+9 (999) 999-99-99',/^(\+?1)([0-9()\-\s]{8,20})$/],['Армения','374','+999 (99) 99-99-99',/^(\+?374)([0-9()\-\s]{8,20})$/],['Израиль','972','+999 (99) 999-99-99',/^(\+?972)([0-9()\-\s]{8,20})$/],['Испания','34','+99 (999) 99-99-99',/^(\+?34)([0-9()\-\s]{8,20})$/],['Латвия','371','+999 (99) 999-999',/^(\+?371)([0-9()\-\s]{8,20})$/],['Бахрейн','973','+999 (99) 999-999',/^(\+?973)([0-9()\-\s]{8,20})$/],['Турция','90','+99 (999) 999-9999',/^(\+?90)([0-9()\-\s]{8,20})$/],['Литва','370','+999 (999) 99999',/^(\+?370)([0-9()\-\s]{8,20})$/],['Великобритания','44','+99 (99) 9999-9999',/^(\+?44)([0-9()\-\s]{8,20})$/],['Индия','91','+99 (99) 99-999999',/^(\+?91)([0-9()\-\s]{8,20})$/],['Сербия','381','+999 (99) 999-9999',/^(\+?381)([0-9()\-\s]{8,20})$/],['Черногория','382','+999 (99) 999-999',/^(\+?382)([0-9()\-\s]{8,20})$/],['Мексика','52','+99 (999) 999-99-99',/^(\+?52)([0-9()\-\s]{8,20})$/],['Польша','48','+99 999999999',/^(\+?48)([0-9()\-\s]{8,20})$/],['Италия','39','+99 (999) 999-99-99',/^(\+?39)([0-9()\-\s]{8,20})$/],['Таиланд','66','+99 999-999-999',/^(\+?66)([0-9()\-\s]{8,20})$/],['Грузия','995','+999 (999) 999-999',/^(\+?995)([0-9()\-\s]{8,20})$/],['Шри-Ланка','94','+99 (99) 9999999',/^(\+?94)([0-9()\-\s]{8,20})$/],['Китай','86','+99 (999) 9999-9999',/^(\+?86)([0-9()\-\s]{8,20})$/],['Кипр','357','+999 (99) 999999',/^(\+?357)([0-9()\-\s]{8,20})$/],['ОАЭ','971','+999 99-999-9999',/^(\+?971)([0-9()\-\s]{8,20})$/],['Франция','33','+33(999)999-999',/^(\+?33)([0-9()\-\s]{8,20})$/],['Германия','49','+99(9999)999-9999',/^(\+?49)([0-9()\-\s]{8,20})$/],['Япония','81','+99 99-9999-9999',/^(\+?81)([0-9()\-\s]{8,20})$/],['Австрия','43','+99(999)999-99999',/^(\+?43)([0-9()\-\s]{8,20})$/],['Южная Корея','82','+99(999)999-9999',/^(\+?82)([0-9()\-\s]{8,20})$/]],exports.DEFAULT_MASK="+99999999999999999999",exports.INITIAL_MASK="99999999999999999999",exports.REGEXPS={NOT_NUMBERS:/\D/gim};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/components/Input.Phone/constants.ts"],"sourcesContent":["export const INITIAL_MASK = '99999999999999999999'\n\nexport const DEFAULT_MASK = `+${INITIAL_MASK}`\n\nexport const RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH = 10\n\nexport const COUNTRY_DATA: [string, string, string, RegExp][] = [\n ['Россия', '7', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Россия', '8', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Украина', '380', '+999 (99) 999-99-99', /^(\\+?380)([0-9()\\-\\s]{8,20})$/],\n ['Беларусь', '375', '+999 (999) 99-99-99', /^(\\+?375)([0-9()\\-\\s]{8,20})$/],\n ['Узбекистан', '998', '+999 (99) 999-99-99', /^(\\+?998)([0-9()\\-\\s]{8,20})$/],\n ['Молдова', '373', '+999 (99) 99-99-99', /^(\\+?373)([0-9()\\-\\s]{8,20})$/],\n ['Азербайджан', '994', '+999 (99) 999-99-99', /^(\\+?994)([0-9()\\-\\s]{8,20})$/],\n ['Киргизия', '996', '+999 (999) 99-99-99', /^(\\+?996)([0-9()\\-\\s]{8,20})$/],\n ['Болгария', '359', '+999 (999) 99-99-99', /^(\\+?359)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99 (999) 99999999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['США', '1', '+9 (999) 999-99-99', /^(\\+?1)([0-9()\\-\\s]{8,20})$/],\n ['Армения', '374', '+999 (99) 99-99-99', /^(\\+?374)([0-9()\\-\\s]{8,20})$/],\n ['Израиль', '972', '+999 (99) 999-99-99', /^(\\+?972)([0-9()\\-\\s]{8,20})$/],\n ['Испания', '34', '+99 (999) 99-99-99', /^(\\+?34)([0-9()\\-\\s]{8,20})$/],\n ['Латвия', '371', '+999 (99) 999-999', /^(\\+?371)([0-9()\\-\\s]{8,20})$/],\n ['Бахрейн', '973', '+999 (99) 999-999', /^(\\+?973)([0-9()\\-\\s]{8,20})$/],\n ['Турция', '90', '+99 (999) 999-9999', /^(\\+?90)([0-9()\\-\\s]{8,20})$/],\n ['Литва', '370', '+999 (999) 99999', /^(\\+?370)([0-9()\\-\\s]{8,20})$/],\n ['Великобритания', '44', '+99 (99) 9999-9999', /^(\\+?44)([0-9()\\-\\s]{8,20})$/],\n ['Индия', '91', '+99 (99) 99-999999', /^(\\+?91)([0-9()\\-\\s]{8,20})$/],\n ['Сербия', '381', '+999 (99) 999-9999', /^(\\+?381)([0-9()\\-\\s]{8,20})$/],\n ['Черногория', '382', '+999 (99) 999-999', /^(\\+?382)([0-9()\\-\\s]{8,20})$/],\n ['Мексика', '52', '+99 (999) 999-99-99', /^(\\+?52)([0-9()\\-\\s]{8,20})$/],\n ['Польша', '48', '+99 999999999', /^(\\+?48)([0-9()\\-\\s]{8,20})$/],\n ['Италия', '39', '+99 (999) 999-99-99', /^(\\+?39)([0-9()\\-\\s]{8,20})$/],\n ['Таиланд', '66', '+99 999-999-999', /^(\\+?66)([0-9()\\-\\s]{8,20})$/],\n ['Грузия', '995', '+999 (999) 999-999', /^(\\+?995)([0-9()\\-\\s]{8,20})$/],\n ['Шри-Ланка', '94', '+99 (99) 9999999', /^(\\+?94)([0-9()\\-\\s]{8,20})$/],\n ['Китай', '86', '+99 (999) 9999-9999', /^(\\+?86)([0-9()\\-\\s]{8,20})$/],\n ['Кипр', '357', '+999 (99) 999999', /^(\\+?357)([0-9()\\-\\s]{8,20})$/],\n ['ОАЭ', '971', '+999 99-999-9999', /^(\\+?971)([0-9()\\-\\s]{8,20})$/],\n ['Франция', '33', '+33(999)999-999', /^(\\+?33)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99(9999)999-9999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['Япония', '81', '+99 99-9999-9999', /^(\\+?81)([0-9()\\-\\s]{8,20})$/],\n ['Австрия', '43', '+99(999)999-99999', /^(\\+?43)([0-9()\\-\\s]{8,20})$/],\n ['Южная Корея', '82', '+99(999)999-9999', /^(\\+?82)([0-9()\\-\\s]{8,20})$/],\n]\n\nexport const REGEXPS = {\n FILLED: /^\\+\\d.*$/,\n FROM_8: /^\\+?8(.*)$/,\n FROM_9: /^\\+?9(.*)$/,\n NOT_NUMBERS: /\\D/gim,\n}\n"],"names":["FILLED","FROM_8","FROM_9","NOT_NUMBERS"],"mappings":"kCAMgE,CAC9D,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,aAAc,MAAO,sBAAuB,iCAC7C,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,cAAe,MAAO,sBAAuB,iCAC9C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,KAAM,qBAAsB,gCACzC,CAAC,MAAO,IAAK,qBAAsB,+BACnC,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,UAAW,KAAM,qBAAsB,gCACxC,CAAC,SAAU,MAAO,oBAAqB,iCACvC,CAAC,UAAW,MAAO,oBAAqB,iCACxC,CAAC,SAAU,KAAM,qBAAsB,gCACvC,CAAC,QAAS,MAAO,mBAAoB,iCACrC,CAAC,iBAAkB,KAAM,qBAAsB,gCAC/C,CAAC,QAAS,KAAM,qBAAsB,gCACtC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,aAAc,MAAO,oBAAqB,iCAC3C,CAAC,UAAW,KAAM,sBAAuB,gCACzC,CAAC,SAAU,KAAM,gBAAiB,gCAClC,CAAC,SAAU,KAAM,sBAAuB,gCACxC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,YAAa,KAAM,mBAAoB,gCACxC,CAAC,QAAS,KAAM,sBAAuB,gCACvC,CAAC,OAAQ,MAAO,mBAAoB,iCACpC,CAAC,MAAO,MAAO,mBAAoB,iCACnC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,WAAY,KAAM,oBAAqB,gCACxC,CAAC,SAAU,KAAM,mBAAoB,gCACrC,CAAC,UAAW,KAAM,oBAAqB,gCACvC,CAAC,cAAe,KAAM,mBAAoB,sDAxChB,6CAFA,uCA6CL,CACrBA,OAAQ,WACRC,OAAQ,aACRC,OAAQ,aACRC,YAAa,0DA7CyC"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/components/Input.Phone/constants.ts"],"sourcesContent":["export const INITIAL_MASK = '99999999999999999999'\n\nexport const DEFAULT_MASK = `+${INITIAL_MASK}`\n\nexport const COUNTRY_DATA: [string, string, string, RegExp][] = [\n ['Россия', '7', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Россия', '8', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Украина', '380', '+999 (99) 999-99-99', /^(\\+?380)([0-9()\\-\\s]{8,20})$/],\n ['Беларусь', '375', '+999 (999) 99-99-99', /^(\\+?375)([0-9()\\-\\s]{8,20})$/],\n ['Узбекистан', '998', '+999 (99) 999-99-99', /^(\\+?998)([0-9()\\-\\s]{8,20})$/],\n ['Молдова', '373', '+999 (99) 99-99-99', /^(\\+?373)([0-9()\\-\\s]{8,20})$/],\n ['Азербайджан', '994', '+999 (99) 999-99-99', /^(\\+?994)([0-9()\\-\\s]{8,20})$/],\n ['Киргизия', '996', '+999 (999) 99-99-99', /^(\\+?996)([0-9()\\-\\s]{8,20})$/],\n ['Болгария', '359', '+999 (999) 99-99-99', /^(\\+?359)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99 (999) 99999999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['США', '1', '+9 (999) 999-99-99', /^(\\+?1)([0-9()\\-\\s]{8,20})$/],\n ['Армения', '374', '+999 (99) 99-99-99', /^(\\+?374)([0-9()\\-\\s]{8,20})$/],\n ['Израиль', '972', '+999 (99) 999-99-99', /^(\\+?972)([0-9()\\-\\s]{8,20})$/],\n ['Испания', '34', '+99 (999) 99-99-99', /^(\\+?34)([0-9()\\-\\s]{8,20})$/],\n ['Латвия', '371', '+999 (99) 999-999', /^(\\+?371)([0-9()\\-\\s]{8,20})$/],\n ['Бахрейн', '973', '+999 (99) 999-999', /^(\\+?973)([0-9()\\-\\s]{8,20})$/],\n ['Турция', '90', '+99 (999) 999-9999', /^(\\+?90)([0-9()\\-\\s]{8,20})$/],\n ['Литва', '370', '+999 (999) 99999', /^(\\+?370)([0-9()\\-\\s]{8,20})$/],\n ['Великобритания', '44', '+99 (99) 9999-9999', /^(\\+?44)([0-9()\\-\\s]{8,20})$/],\n ['Индия', '91', '+99 (99) 99-999999', /^(\\+?91)([0-9()\\-\\s]{8,20})$/],\n ['Сербия', '381', '+999 (99) 999-9999', /^(\\+?381)([0-9()\\-\\s]{8,20})$/],\n ['Черногория', '382', '+999 (99) 999-999', /^(\\+?382)([0-9()\\-\\s]{8,20})$/],\n ['Мексика', '52', '+99 (999) 999-99-99', /^(\\+?52)([0-9()\\-\\s]{8,20})$/],\n ['Польша', '48', '+99 999999999', /^(\\+?48)([0-9()\\-\\s]{8,20})$/],\n ['Италия', '39', '+99 (999) 999-99-99', /^(\\+?39)([0-9()\\-\\s]{8,20})$/],\n ['Таиланд', '66', '+99 999-999-999', /^(\\+?66)([0-9()\\-\\s]{8,20})$/],\n ['Грузия', '995', '+999 (999) 999-999', /^(\\+?995)([0-9()\\-\\s]{8,20})$/],\n ['Шри-Ланка', '94', '+99 (99) 9999999', /^(\\+?94)([0-9()\\-\\s]{8,20})$/],\n ['Китай', '86', '+99 (999) 9999-9999', /^(\\+?86)([0-9()\\-\\s]{8,20})$/],\n ['Кипр', '357', '+999 (99) 999999', /^(\\+?357)([0-9()\\-\\s]{8,20})$/],\n ['ОАЭ', '971', '+999 99-999-9999', /^(\\+?971)([0-9()\\-\\s]{8,20})$/],\n ['Франция', '33', '+33(999)999-999', /^(\\+?33)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99(9999)999-9999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['Япония', '81', '+99 99-9999-9999', /^(\\+?81)([0-9()\\-\\s]{8,20})$/],\n ['Австрия', '43', '+99(999)999-99999', /^(\\+?43)([0-9()\\-\\s]{8,20})$/],\n ['Южная Корея', '82', '+99(999)999-9999', /^(\\+?82)([0-9()\\-\\s]{8,20})$/],\n]\n\nexport const REGEXPS = {\n FILLED: /^\\+\\d.*$/,\n FROM_8: /^\\+?8(.*)$/,\n FROM_9: /^\\+?9(.*)$/,\n NOT_NUMBERS: /\\D/gim,\n}\n"],"names":["NOT_NUMBERS"],"mappings":"kCAIgE,CAC9D,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,aAAc,MAAO,sBAAuB,iCAC7C,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,cAAe,MAAO,sBAAuB,iCAC9C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,KAAM,qBAAsB,gCACzC,CAAC,MAAO,IAAK,qBAAsB,+BACnC,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,UAAW,KAAM,qBAAsB,gCACxC,CAAC,SAAU,MAAO,oBAAqB,iCACvC,CAAC,UAAW,MAAO,oBAAqB,iCACxC,CAAC,SAAU,KAAM,qBAAsB,gCACvC,CAAC,QAAS,MAAO,mBAAoB,iCACrC,CAAC,iBAAkB,KAAM,qBAAsB,gCAC/C,CAAC,QAAS,KAAM,qBAAsB,gCACtC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,aAAc,MAAO,oBAAqB,iCAC3C,CAAC,UAAW,KAAM,sBAAuB,gCACzC,CAAC,SAAU,KAAM,gBAAiB,gCAClC,CAAC,SAAU,KAAM,sBAAuB,gCACxC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,YAAa,KAAM,mBAAoB,gCACxC,CAAC,QAAS,KAAM,sBAAuB,gCACvC,CAAC,OAAQ,MAAO,mBAAoB,iCACpC,CAAC,MAAO,MAAO,mBAAoB,iCACnC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,WAAY,KAAM,oBAAqB,gCACxC,CAAC,SAAU,KAAM,mBAAoB,gCACrC,CAAC,UAAW,KAAM,oBAAqB,gCACvC,CAAC,cAAe,KAAM,mBAAoB,sDAtChB,6CAFA,uCA2CL,CAIrBA,YAAa"}
@@ -1,2 +1,2 @@
1
- const INITIAL_MASK='99999999999999999999';const DEFAULT_MASK="+99999999999999999999";const RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH=10;const COUNTRY_DATA=[['Россия','7','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Россия','8','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Украина','380','+999 (99) 999-99-99',/^(\+?380)([0-9()\-\s]{8,20})$/],['Беларусь','375','+999 (999) 99-99-99',/^(\+?375)([0-9()\-\s]{8,20})$/],['Узбекистан','998','+999 (99) 999-99-99',/^(\+?998)([0-9()\-\s]{8,20})$/],['Молдова','373','+999 (99) 99-99-99',/^(\+?373)([0-9()\-\s]{8,20})$/],['Азербайджан','994','+999 (99) 999-99-99',/^(\+?994)([0-9()\-\s]{8,20})$/],['Киргизия','996','+999 (999) 99-99-99',/^(\+?996)([0-9()\-\s]{8,20})$/],['Болгария','359','+999 (999) 99-99-99',/^(\+?359)([0-9()\-\s]{8,20})$/],['Германия','49','+99 (999) 99999999',/^(\+?49)([0-9()\-\s]{8,20})$/],['США','1','+9 (999) 999-99-99',/^(\+?1)([0-9()\-\s]{8,20})$/],['Армения','374','+999 (99) 99-99-99',/^(\+?374)([0-9()\-\s]{8,20})$/],['Израиль','972','+999 (99) 999-99-99',/^(\+?972)([0-9()\-\s]{8,20})$/],['Испания','34','+99 (999) 99-99-99',/^(\+?34)([0-9()\-\s]{8,20})$/],['Латвия','371','+999 (99) 999-999',/^(\+?371)([0-9()\-\s]{8,20})$/],['Бахрейн','973','+999 (99) 999-999',/^(\+?973)([0-9()\-\s]{8,20})$/],['Турция','90','+99 (999) 999-9999',/^(\+?90)([0-9()\-\s]{8,20})$/],['Литва','370','+999 (999) 99999',/^(\+?370)([0-9()\-\s]{8,20})$/],['Великобритания','44','+99 (99) 9999-9999',/^(\+?44)([0-9()\-\s]{8,20})$/],['Индия','91','+99 (99) 99-999999',/^(\+?91)([0-9()\-\s]{8,20})$/],['Сербия','381','+999 (99) 999-9999',/^(\+?381)([0-9()\-\s]{8,20})$/],['Черногория','382','+999 (99) 999-999',/^(\+?382)([0-9()\-\s]{8,20})$/],['Мексика','52','+99 (999) 999-99-99',/^(\+?52)([0-9()\-\s]{8,20})$/],['Польша','48','+99 999999999',/^(\+?48)([0-9()\-\s]{8,20})$/],['Италия','39','+99 (999) 999-99-99',/^(\+?39)([0-9()\-\s]{8,20})$/],['Таиланд','66','+99 999-999-999',/^(\+?66)([0-9()\-\s]{8,20})$/],['Грузия','995','+999 (999) 999-999',/^(\+?995)([0-9()\-\s]{8,20})$/],['Шри-Ланка','94','+99 (99) 9999999',/^(\+?94)([0-9()\-\s]{8,20})$/],['Китай','86','+99 (999) 9999-9999',/^(\+?86)([0-9()\-\s]{8,20})$/],['Кипр','357','+999 (99) 999999',/^(\+?357)([0-9()\-\s]{8,20})$/],['ОАЭ','971','+999 99-999-9999',/^(\+?971)([0-9()\-\s]{8,20})$/],['Франция','33','+33(999)999-999',/^(\+?33)([0-9()\-\s]{8,20})$/],['Германия','49','+99(9999)999-9999',/^(\+?49)([0-9()\-\s]{8,20})$/],['Япония','81','+99 99-9999-9999',/^(\+?81)([0-9()\-\s]{8,20})$/],['Австрия','43','+99(999)999-99999',/^(\+?43)([0-9()\-\s]{8,20})$/],['Южная Корея','82','+99(999)999-9999',/^(\+?82)([0-9()\-\s]{8,20})$/]];const REGEXPS={FILLED:/^\+\d.*$/,FROM_8:/^\+?8(.*)$/,FROM_9:/^\+?9(.*)$/,NOT_NUMBERS:/\D/gim};export{COUNTRY_DATA,DEFAULT_MASK,INITIAL_MASK,REGEXPS,RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH};
1
+ const INITIAL_MASK='99999999999999999999';const DEFAULT_MASK="+99999999999999999999";const COUNTRY_DATA=[['Россия','7','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Россия','8','+9 (999) 999-99-99',/^(\+?7|8)([0-9()\-\s]{8,20})$/],['Украина','380','+999 (99) 999-99-99',/^(\+?380)([0-9()\-\s]{8,20})$/],['Беларусь','375','+999 (999) 99-99-99',/^(\+?375)([0-9()\-\s]{8,20})$/],['Узбекистан','998','+999 (99) 999-99-99',/^(\+?998)([0-9()\-\s]{8,20})$/],['Молдова','373','+999 (99) 99-99-99',/^(\+?373)([0-9()\-\s]{8,20})$/],['Азербайджан','994','+999 (99) 999-99-99',/^(\+?994)([0-9()\-\s]{8,20})$/],['Киргизия','996','+999 (999) 99-99-99',/^(\+?996)([0-9()\-\s]{8,20})$/],['Болгария','359','+999 (999) 99-99-99',/^(\+?359)([0-9()\-\s]{8,20})$/],['Германия','49','+99 (999) 99999999',/^(\+?49)([0-9()\-\s]{8,20})$/],['США','1','+9 (999) 999-99-99',/^(\+?1)([0-9()\-\s]{8,20})$/],['Армения','374','+999 (99) 99-99-99',/^(\+?374)([0-9()\-\s]{8,20})$/],['Израиль','972','+999 (99) 999-99-99',/^(\+?972)([0-9()\-\s]{8,20})$/],['Испания','34','+99 (999) 99-99-99',/^(\+?34)([0-9()\-\s]{8,20})$/],['Латвия','371','+999 (99) 999-999',/^(\+?371)([0-9()\-\s]{8,20})$/],['Бахрейн','973','+999 (99) 999-999',/^(\+?973)([0-9()\-\s]{8,20})$/],['Турция','90','+99 (999) 999-9999',/^(\+?90)([0-9()\-\s]{8,20})$/],['Литва','370','+999 (999) 99999',/^(\+?370)([0-9()\-\s]{8,20})$/],['Великобритания','44','+99 (99) 9999-9999',/^(\+?44)([0-9()\-\s]{8,20})$/],['Индия','91','+99 (99) 99-999999',/^(\+?91)([0-9()\-\s]{8,20})$/],['Сербия','381','+999 (99) 999-9999',/^(\+?381)([0-9()\-\s]{8,20})$/],['Черногория','382','+999 (99) 999-999',/^(\+?382)([0-9()\-\s]{8,20})$/],['Мексика','52','+99 (999) 999-99-99',/^(\+?52)([0-9()\-\s]{8,20})$/],['Польша','48','+99 999999999',/^(\+?48)([0-9()\-\s]{8,20})$/],['Италия','39','+99 (999) 999-99-99',/^(\+?39)([0-9()\-\s]{8,20})$/],['Таиланд','66','+99 999-999-999',/^(\+?66)([0-9()\-\s]{8,20})$/],['Грузия','995','+999 (999) 999-999',/^(\+?995)([0-9()\-\s]{8,20})$/],['Шри-Ланка','94','+99 (99) 9999999',/^(\+?94)([0-9()\-\s]{8,20})$/],['Китай','86','+99 (999) 9999-9999',/^(\+?86)([0-9()\-\s]{8,20})$/],['Кипр','357','+999 (99) 999999',/^(\+?357)([0-9()\-\s]{8,20})$/],['ОАЭ','971','+999 99-999-9999',/^(\+?971)([0-9()\-\s]{8,20})$/],['Франция','33','+33(999)999-999',/^(\+?33)([0-9()\-\s]{8,20})$/],['Германия','49','+99(9999)999-9999',/^(\+?49)([0-9()\-\s]{8,20})$/],['Япония','81','+99 99-9999-9999',/^(\+?81)([0-9()\-\s]{8,20})$/],['Австрия','43','+99(999)999-99999',/^(\+?43)([0-9()\-\s]{8,20})$/],['Южная Корея','82','+99(999)999-9999',/^(\+?82)([0-9()\-\s]{8,20})$/]];const REGEXPS={NOT_NUMBERS:/\D/gim};export{COUNTRY_DATA,DEFAULT_MASK,INITIAL_MASK,REGEXPS};
2
2
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../../src/components/Input.Phone/constants.ts"],"sourcesContent":["export const INITIAL_MASK = '99999999999999999999'\n\nexport const DEFAULT_MASK = `+${INITIAL_MASK}`\n\nexport const RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH = 10\n\nexport const COUNTRY_DATA: [string, string, string, RegExp][] = [\n ['Россия', '7', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Россия', '8', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Украина', '380', '+999 (99) 999-99-99', /^(\\+?380)([0-9()\\-\\s]{8,20})$/],\n ['Беларусь', '375', '+999 (999) 99-99-99', /^(\\+?375)([0-9()\\-\\s]{8,20})$/],\n ['Узбекистан', '998', '+999 (99) 999-99-99', /^(\\+?998)([0-9()\\-\\s]{8,20})$/],\n ['Молдова', '373', '+999 (99) 99-99-99', /^(\\+?373)([0-9()\\-\\s]{8,20})$/],\n ['Азербайджан', '994', '+999 (99) 999-99-99', /^(\\+?994)([0-9()\\-\\s]{8,20})$/],\n ['Киргизия', '996', '+999 (999) 99-99-99', /^(\\+?996)([0-9()\\-\\s]{8,20})$/],\n ['Болгария', '359', '+999 (999) 99-99-99', /^(\\+?359)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99 (999) 99999999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['США', '1', '+9 (999) 999-99-99', /^(\\+?1)([0-9()\\-\\s]{8,20})$/],\n ['Армения', '374', '+999 (99) 99-99-99', /^(\\+?374)([0-9()\\-\\s]{8,20})$/],\n ['Израиль', '972', '+999 (99) 999-99-99', /^(\\+?972)([0-9()\\-\\s]{8,20})$/],\n ['Испания', '34', '+99 (999) 99-99-99', /^(\\+?34)([0-9()\\-\\s]{8,20})$/],\n ['Латвия', '371', '+999 (99) 999-999', /^(\\+?371)([0-9()\\-\\s]{8,20})$/],\n ['Бахрейн', '973', '+999 (99) 999-999', /^(\\+?973)([0-9()\\-\\s]{8,20})$/],\n ['Турция', '90', '+99 (999) 999-9999', /^(\\+?90)([0-9()\\-\\s]{8,20})$/],\n ['Литва', '370', '+999 (999) 99999', /^(\\+?370)([0-9()\\-\\s]{8,20})$/],\n ['Великобритания', '44', '+99 (99) 9999-9999', /^(\\+?44)([0-9()\\-\\s]{8,20})$/],\n ['Индия', '91', '+99 (99) 99-999999', /^(\\+?91)([0-9()\\-\\s]{8,20})$/],\n ['Сербия', '381', '+999 (99) 999-9999', /^(\\+?381)([0-9()\\-\\s]{8,20})$/],\n ['Черногория', '382', '+999 (99) 999-999', /^(\\+?382)([0-9()\\-\\s]{8,20})$/],\n ['Мексика', '52', '+99 (999) 999-99-99', /^(\\+?52)([0-9()\\-\\s]{8,20})$/],\n ['Польша', '48', '+99 999999999', /^(\\+?48)([0-9()\\-\\s]{8,20})$/],\n ['Италия', '39', '+99 (999) 999-99-99', /^(\\+?39)([0-9()\\-\\s]{8,20})$/],\n ['Таиланд', '66', '+99 999-999-999', /^(\\+?66)([0-9()\\-\\s]{8,20})$/],\n ['Грузия', '995', '+999 (999) 999-999', /^(\\+?995)([0-9()\\-\\s]{8,20})$/],\n ['Шри-Ланка', '94', '+99 (99) 9999999', /^(\\+?94)([0-9()\\-\\s]{8,20})$/],\n ['Китай', '86', '+99 (999) 9999-9999', /^(\\+?86)([0-9()\\-\\s]{8,20})$/],\n ['Кипр', '357', '+999 (99) 999999', /^(\\+?357)([0-9()\\-\\s]{8,20})$/],\n ['ОАЭ', '971', '+999 99-999-9999', /^(\\+?971)([0-9()\\-\\s]{8,20})$/],\n ['Франция', '33', '+33(999)999-999', /^(\\+?33)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99(9999)999-9999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['Япония', '81', '+99 99-9999-9999', /^(\\+?81)([0-9()\\-\\s]{8,20})$/],\n ['Австрия', '43', '+99(999)999-99999', /^(\\+?43)([0-9()\\-\\s]{8,20})$/],\n ['Южная Корея', '82', '+99(999)999-9999', /^(\\+?82)([0-9()\\-\\s]{8,20})$/],\n]\n\nexport const REGEXPS = {\n FILLED: /^\\+\\d.*$/,\n FROM_8: /^\\+?8(.*)$/,\n FROM_9: /^\\+?9(.*)$/,\n NOT_NUMBERS: /\\D/gim,\n}\n"],"names":["INITIAL_MASK","DEFAULT_MASK","RUSSIAN_PHONE_WITHOUT_COUNTY_CODE_LENGTH","COUNTRY_DATA","REGEXPS","FILLED","FROM_8","FROM_9","NOT_NUMBERS"],"mappings":"AAAO,MAAMA,aAAe,uBAErB,MAAMC,aAAe,wBAErB,MAAMC,yCAA2C,SAE3CC,aAAmD,CAC9D,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,aAAc,MAAO,sBAAuB,iCAC7C,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,cAAe,MAAO,sBAAuB,iCAC9C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,KAAM,qBAAsB,gCACzC,CAAC,MAAO,IAAK,qBAAsB,+BACnC,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,UAAW,KAAM,qBAAsB,gCACxC,CAAC,SAAU,MAAO,oBAAqB,iCACvC,CAAC,UAAW,MAAO,oBAAqB,iCACxC,CAAC,SAAU,KAAM,qBAAsB,gCACvC,CAAC,QAAS,MAAO,mBAAoB,iCACrC,CAAC,iBAAkB,KAAM,qBAAsB,gCAC/C,CAAC,QAAS,KAAM,qBAAsB,gCACtC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,aAAc,MAAO,oBAAqB,iCAC3C,CAAC,UAAW,KAAM,sBAAuB,gCACzC,CAAC,SAAU,KAAM,gBAAiB,gCAClC,CAAC,SAAU,KAAM,sBAAuB,gCACxC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,YAAa,KAAM,mBAAoB,gCACxC,CAAC,QAAS,KAAM,sBAAuB,gCACvC,CAAC,OAAQ,MAAO,mBAAoB,iCACpC,CAAC,MAAO,MAAO,mBAAoB,iCACnC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,WAAY,KAAM,oBAAqB,gCACxC,CAAC,SAAU,KAAM,mBAAoB,gCACrC,CAAC,UAAW,KAAM,oBAAqB,gCACvC,CAAC,cAAe,KAAM,mBAAoB,iCAGrC,MAAMC,QAAU,CACrBC,OAAQ,WACRC,OAAQ,aACRC,OAAQ,aACRC,YAAa"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../src/components/Input.Phone/constants.ts"],"sourcesContent":["export const INITIAL_MASK = '99999999999999999999'\n\nexport const DEFAULT_MASK = `+${INITIAL_MASK}`\n\nexport const COUNTRY_DATA: [string, string, string, RegExp][] = [\n ['Россия', '7', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Россия', '8', '+9 (999) 999-99-99', /^(\\+?7|8)([0-9()\\-\\s]{8,20})$/],\n ['Украина', '380', '+999 (99) 999-99-99', /^(\\+?380)([0-9()\\-\\s]{8,20})$/],\n ['Беларусь', '375', '+999 (999) 99-99-99', /^(\\+?375)([0-9()\\-\\s]{8,20})$/],\n ['Узбекистан', '998', '+999 (99) 999-99-99', /^(\\+?998)([0-9()\\-\\s]{8,20})$/],\n ['Молдова', '373', '+999 (99) 99-99-99', /^(\\+?373)([0-9()\\-\\s]{8,20})$/],\n ['Азербайджан', '994', '+999 (99) 999-99-99', /^(\\+?994)([0-9()\\-\\s]{8,20})$/],\n ['Киргизия', '996', '+999 (999) 99-99-99', /^(\\+?996)([0-9()\\-\\s]{8,20})$/],\n ['Болгария', '359', '+999 (999) 99-99-99', /^(\\+?359)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99 (999) 99999999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['США', '1', '+9 (999) 999-99-99', /^(\\+?1)([0-9()\\-\\s]{8,20})$/],\n ['Армения', '374', '+999 (99) 99-99-99', /^(\\+?374)([0-9()\\-\\s]{8,20})$/],\n ['Израиль', '972', '+999 (99) 999-99-99', /^(\\+?972)([0-9()\\-\\s]{8,20})$/],\n ['Испания', '34', '+99 (999) 99-99-99', /^(\\+?34)([0-9()\\-\\s]{8,20})$/],\n ['Латвия', '371', '+999 (99) 999-999', /^(\\+?371)([0-9()\\-\\s]{8,20})$/],\n ['Бахрейн', '973', '+999 (99) 999-999', /^(\\+?973)([0-9()\\-\\s]{8,20})$/],\n ['Турция', '90', '+99 (999) 999-9999', /^(\\+?90)([0-9()\\-\\s]{8,20})$/],\n ['Литва', '370', '+999 (999) 99999', /^(\\+?370)([0-9()\\-\\s]{8,20})$/],\n ['Великобритания', '44', '+99 (99) 9999-9999', /^(\\+?44)([0-9()\\-\\s]{8,20})$/],\n ['Индия', '91', '+99 (99) 99-999999', /^(\\+?91)([0-9()\\-\\s]{8,20})$/],\n ['Сербия', '381', '+999 (99) 999-9999', /^(\\+?381)([0-9()\\-\\s]{8,20})$/],\n ['Черногория', '382', '+999 (99) 999-999', /^(\\+?382)([0-9()\\-\\s]{8,20})$/],\n ['Мексика', '52', '+99 (999) 999-99-99', /^(\\+?52)([0-9()\\-\\s]{8,20})$/],\n ['Польша', '48', '+99 999999999', /^(\\+?48)([0-9()\\-\\s]{8,20})$/],\n ['Италия', '39', '+99 (999) 999-99-99', /^(\\+?39)([0-9()\\-\\s]{8,20})$/],\n ['Таиланд', '66', '+99 999-999-999', /^(\\+?66)([0-9()\\-\\s]{8,20})$/],\n ['Грузия', '995', '+999 (999) 999-999', /^(\\+?995)([0-9()\\-\\s]{8,20})$/],\n ['Шри-Ланка', '94', '+99 (99) 9999999', /^(\\+?94)([0-9()\\-\\s]{8,20})$/],\n ['Китай', '86', '+99 (999) 9999-9999', /^(\\+?86)([0-9()\\-\\s]{8,20})$/],\n ['Кипр', '357', '+999 (99) 999999', /^(\\+?357)([0-9()\\-\\s]{8,20})$/],\n ['ОАЭ', '971', '+999 99-999-9999', /^(\\+?971)([0-9()\\-\\s]{8,20})$/],\n ['Франция', '33', '+33(999)999-999', /^(\\+?33)([0-9()\\-\\s]{8,20})$/],\n ['Германия', '49', '+99(9999)999-9999', /^(\\+?49)([0-9()\\-\\s]{8,20})$/],\n ['Япония', '81', '+99 99-9999-9999', /^(\\+?81)([0-9()\\-\\s]{8,20})$/],\n ['Австрия', '43', '+99(999)999-99999', /^(\\+?43)([0-9()\\-\\s]{8,20})$/],\n ['Южная Корея', '82', '+99(999)999-9999', /^(\\+?82)([0-9()\\-\\s]{8,20})$/],\n]\n\nexport const REGEXPS = {\n FILLED: /^\\+\\d.*$/,\n FROM_8: /^\\+?8(.*)$/,\n FROM_9: /^\\+?9(.*)$/,\n NOT_NUMBERS: /\\D/gim,\n}\n"],"names":["INITIAL_MASK","DEFAULT_MASK","COUNTRY_DATA","REGEXPS","NOT_NUMBERS"],"mappings":"AAAO,MAAMA,aAAe,uBAErB,MAAMC,aAAe,8BAEfC,aAAmD,CAC9D,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,SAAU,IAAK,qBAAsB,iCACtC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,aAAc,MAAO,sBAAuB,iCAC7C,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,cAAe,MAAO,sBAAuB,iCAC9C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,MAAO,sBAAuB,iCAC3C,CAAC,WAAY,KAAM,qBAAsB,gCACzC,CAAC,MAAO,IAAK,qBAAsB,+BACnC,CAAC,UAAW,MAAO,qBAAsB,iCACzC,CAAC,UAAW,MAAO,sBAAuB,iCAC1C,CAAC,UAAW,KAAM,qBAAsB,gCACxC,CAAC,SAAU,MAAO,oBAAqB,iCACvC,CAAC,UAAW,MAAO,oBAAqB,iCACxC,CAAC,SAAU,KAAM,qBAAsB,gCACvC,CAAC,QAAS,MAAO,mBAAoB,iCACrC,CAAC,iBAAkB,KAAM,qBAAsB,gCAC/C,CAAC,QAAS,KAAM,qBAAsB,gCACtC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,aAAc,MAAO,oBAAqB,iCAC3C,CAAC,UAAW,KAAM,sBAAuB,gCACzC,CAAC,SAAU,KAAM,gBAAiB,gCAClC,CAAC,SAAU,KAAM,sBAAuB,gCACxC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,SAAU,MAAO,qBAAsB,iCACxC,CAAC,YAAa,KAAM,mBAAoB,gCACxC,CAAC,QAAS,KAAM,sBAAuB,gCACvC,CAAC,OAAQ,MAAO,mBAAoB,iCACpC,CAAC,MAAO,MAAO,mBAAoB,iCACnC,CAAC,UAAW,KAAM,kBAAmB,gCACrC,CAAC,WAAY,KAAM,oBAAqB,gCACxC,CAAC,SAAU,KAAM,mBAAoB,gCACrC,CAAC,UAAW,KAAM,oBAAqB,gCACvC,CAAC,cAAe,KAAM,mBAAoB,iCAGrC,MAAMC,QAAU,CAIrBC,YAAa"}
package/dts/index.d.ts CHANGED
@@ -8443,56 +8443,30 @@ declare class ContextMenu extends PureComponent<ContextMenuProps, {
8443
8443
  render(): JSX.Element;
8444
8444
  }
8445
8445
 
8446
- interface InputPhoneProps extends InputProps {
8446
+ interface InputPhoneProps extends Omit<InputProps, 'mask'> {
8447
8447
  /**
8448
- * Settings for different country codes
8449
- */
8450
- countryData?: string[][];
8448
+ * Метаданные по странам для определения маски.
8449
+ *
8450
+ * @default COUNTRY_DATA */
8451
+ countryData?: [string, string, string, RegExp][];
8451
8452
  /**
8452
- * Default field mask that is set when none of the countryData prop matches
8453
- */
8453
+ * Дефолтная маска инпута.
8454
+ *
8455
+ * @default '+99999999...' */
8454
8456
  defaultMask?: string;
8455
8457
  /**
8456
- * The default field mask when the phone field is empty is required to enable autocomplete in
8457
- * the browser
8458
- */
8459
- initialMask?: string;
8460
- /** If event should return stripped phone value (not for redux forms) */
8461
- stripValue?: boolean;
8462
- }
8463
- interface InputPhoneState {
8464
- mask: string;
8465
- regexp?: RegExp | null;
8466
- }
8467
- declare class InputPhone extends PureComponent<typeof InputPhone.defaultProps & InputPhoneProps, InputPhoneState> {
8468
- static displayName: string;
8469
- static defaultProps: {
8470
- countryData: [string, string, string, RegExp][];
8471
- defaultMask: string;
8472
- initialMask: string;
8473
- placeholder: string;
8474
- rounded: boolean;
8475
- type: string;
8476
- color: string;
8477
- mask: string;
8478
- placeholderColor: string;
8479
- };
8480
- autocorrectOf8: boolean;
8481
- autocorrectOf9: boolean;
8482
- constructor(props: typeof InputPhone.defaultProps & InputPhoneProps);
8483
- componentDidUpdate(nextProps: InputPhoneProps): void;
8484
- getUpdates: (value: InputPhoneProps["value"], prevValue?: InputPhoneProps["value"]) => {
8485
- mask: string;
8486
- numbers: string;
8487
- startsFrom8: boolean;
8488
- startsFrom9: boolean;
8489
- regexp: RegExp | null;
8490
- };
8491
- change: (phone: InputPhoneProps["value"]) => void;
8492
- handleChange: React.ChangeEventHandler<HTMLInputElement>;
8493
- beforeMaskedValueChange: (newState: InputMaskState, oldState: InputMaskState) => InputMaskState;
8494
- render(): JSX.Element;
8458
+ * Отключить замену первой 8 на 7 в российских номерах.
8459
+ *
8460
+ * @default false */
8461
+ disableRussianNumberDigitSwap?: boolean;
8495
8462
  }
8463
+ /**
8464
+ *
8465
+ * Контрол для ввода телефонного номера.
8466
+ *
8467
+ * Поддерживается "ref" и все нативные атрибуты \<input\> элемента.
8468
+ */
8469
+ declare const InputPhone: react.ForwardRefExoticComponent<Pick<InputPhoneProps, "primary" | "hidden" | "color" | "size" | "height" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "translate" | "width" | "margin" | "form" | "label" | "slot" | "style" | "title" | "pattern" | "text" | "className" | "id" | "lang" | "max" | "min" | "name" | "type" | "role" | "tabIndex" | "crossOrigin" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "alt" | "controls" | "src" | "autoFocus" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "autoComplete" | "sizes" | "accept" | "capture" | "checked" | "enterKeyHint" | "list" | "maxLength" | "minLength" | "multiple" | "readOnly" | "required" | "step" | "sizeXS" | "marginBottomXS" | "marginLeftXS" | "marginRightXS" | "marginTopXS" | "widthXS" | "marginXS" | "sizeS" | "marginBottomS" | "marginLeftS" | "marginRightS" | "marginTopS" | "widthS" | "marginS" | "sizeL" | "marginBottomL" | "marginLeftL" | "marginRightL" | "marginTopL" | "widthL" | "marginL" | "sizeXL" | "marginBottomXL" | "marginLeftXL" | "marginRightXL" | "marginTopXL" | "widthXL" | "marginXL" | "sizeXXS" | "marginBottomXXS" | "marginLeftXXS" | "marginRightXXS" | "marginTopXXS" | "widthXXS" | "marginXXS" | "sizeM" | "marginBottomM" | "marginLeftM" | "marginRightM" | "marginTopM" | "widthM" | "marginM" | "sizeUnits" | "preset" | "palette" | "fluid" | "inline" | "icon" | "iconProps" | "success" | "contrast" | "secondary" | "onColored" | "rounded" | "placeholderColor" | "error" | "labelPosition" | "addonLeft" | "addonRight" | "maskChar" | "formatChars" | "alwaysShowMask" | "beforeMaskedValueChange" | "inputRef" | "addonButtonProps" | "countryData" | "defaultMask" | "disableRussianNumberDigitSwap"> & react.RefAttributes<HTMLInputElement>>;
8496
8470
 
8497
8471
  type Size$4 = 'l' | 'm' | 's' | 'xs';
8498
8472
  type Margin$3 = number | string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxford/ui",
3
- "version": "2.120.0",
3
+ "version": "2.121.0-beta-1a9b254-20260727",
4
4
  "description": "UI components and utilities",
5
5
  "bugs": {
6
6
  "url": "https://github.com/foxford/ui/issues"
@@ -63,6 +63,6 @@
63
63
  "shared",
64
64
  "theme"
65
65
  ],
66
- "sha": "02cc0f8",
66
+ "sha": "1a9b254",
67
67
  "scripts": {}
68
68
  }