@dnb/eufemia 10.70.1 → 10.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +0 -1
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js +7 -59
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +0 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.d.ts +0 -2
- package/cjs/components/date-picker/hooks/useDates.js +5 -5
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.js +11 -7
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.d.ts +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +2 -1
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/modal/ModalDocs.d.ts +2 -0
- package/cjs/components/modal/ModalDocs.js +11 -1
- package/cjs/components/modal/ModalDocs.js.map +1 -1
- package/cjs/components/upload/Upload.js +6 -3
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadDocs.d.ts +1 -0
- package/cjs/components/upload/UploadDocs.js +43 -1
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadFileListCell.js +32 -12
- package/cjs/components/upload/UploadFileListCell.js.map +1 -1
- package/cjs/components/upload/types.d.ts +7 -0
- package/cjs/components/upload/types.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +3 -6
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +8 -3
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -4
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +50 -17
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/types.d.ts +8 -5
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/FormError.d.ts +20 -16
- package/cjs/extensions/forms/utils/FormError.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/components/date-picker/DatePickerContext.d.ts +0 -1
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerInput.js +7 -59
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +0 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useDates.d.ts +0 -2
- package/components/date-picker/hooks/useDates.js +3 -5
- package/components/date-picker/hooks/useDates.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.js +11 -7
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.d.ts +1 -1
- package/components/input-masked/InputMaskedUtils.js +2 -1
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/modal/ModalDocs.d.ts +2 -0
- package/components/modal/ModalDocs.js +10 -0
- package/components/modal/ModalDocs.js.map +1 -1
- package/components/upload/Upload.js +6 -3
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadDocs.d.ts +1 -0
- package/components/upload/UploadDocs.js +42 -0
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadFileListCell.js +32 -12
- package/components/upload/UploadFileListCell.js.map +1 -1
- package/components/upload/types.d.ts +7 -0
- package/components/upload/types.js.map +1 -1
- package/es/components/date-picker/DatePickerContext.d.ts +0 -1
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +2 -53
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +0 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.d.ts +0 -2
- package/es/components/date-picker/hooks/useDates.js +3 -5
- package/es/components/date-picker/hooks/useDates.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.js +11 -7
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.d.ts +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +2 -1
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/modal/ModalDocs.d.ts +2 -0
- package/es/components/modal/ModalDocs.js +6 -0
- package/es/components/modal/ModalDocs.js.map +1 -1
- package/es/components/upload/Upload.js +6 -3
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadDocs.d.ts +1 -0
- package/es/components/upload/UploadDocs.js +42 -0
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadFileListCell.js +32 -12
- package/es/components/upload/UploadFileListCell.js.map +1 -1
- package/es/components/upload/types.d.ts +7 -0
- package/es/components/upload/types.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +3 -6
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +24 -16
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +3 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -4
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +51 -18
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/types.d.ts +8 -5
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/FormError.d.ts +20 -16
- package/es/extensions/forms/utils/FormError.js +1 -0
- package/es/extensions/forms/utils/FormError.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +3 -6
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/extensions/forms/Field/Upload/Upload.js +3 -1
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +11 -4
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +51 -18
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/types.d.ts +8 -5
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/FormError.d.ts +20 -16
- package/extensions/forms/utils/FormError.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Number.js","names":["_react","_interopRequireWildcard","require","_components","_Context","_interopRequireDefault","_FieldBlockContext","_classnames","_FieldBlock","_hooks","_utils","_SliderHelpers","_Context2","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultMinimum","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_props$innerRef","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","useContext","DataContext","fieldBlockContext","FieldBlockContext","sharedContext","SharedContext","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","prefixProp","suffix","suffixProp","showStepControls","schema","useMemo","_props$schema","_props$minimum","_props$maximum","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","useCallback","external","undefined","fromInput","_ref","numberValue","emptyValue","ref","useRef","preparedProps","valueType","width","composition","innerRef","id","name","className","inputClassName","autoComplete","placeholder","startWith","disabled","htmlAttributes","hasError","size","align","handleFocus","handleBlur","handleChange","setDisplayValue","useFieldProps","useEffect","_innerRef$current","current","handleSubmit","onKeyDownHandler","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","clamp","persist","fieldBlockProps","forId","classnames","contentClassName","contentWidth","pickSpacingProps","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","decreaseClickHandler","decreaseProps","subtractTitle","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","ariaParams","role","inputProps","inner_ref","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","asFieldset","Button","InputMasked","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, {\n useContext,\n useMemo,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { InputMasked, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type {\n InputAlign,\n InputProps,\n InputSize,\n} from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps, AllJSONSchemaVersions } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport DataContext from '../../DataContext/Context'\n\nexport type Props = FieldProps<number, undefined | number> & {\n innerRef?: React.RefObject<HTMLInputElement>\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string | ((value: number) => string)\n suffix?: string | ((value: number) => string)\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n}\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix: prefixProp,\n suffix: suffixProp,\n showStepControls,\n } = props\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n innerRef: props.innerRef ?? ref,\n }\n\n const {\n id,\n name,\n className,\n innerRef,\n inputClassName,\n autoComplete,\n placeholder,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n hasError,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n setDisplayValue(innerRef.current?.value)\n }, [innerRef, setDisplayValue, value])\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { event } = e as unknown as {\n event: React.KeyboardEvent<HTMLInputElement>\n }\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const prefix =\n typeof prefixProp === 'function' ? prefixProp(value) : prefixProp\n const suffix =\n typeof suffixProp === 'function' ? suffixProp(value) : suffixProp\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n decimalLimit,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps: InputProps = {\n id,\n name,\n inner_ref: innerRef,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(width),\n }\n Object.assign(inputProps, ariaParams)\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Number.js","names":["_react","_interopRequireWildcard","require","_components","_Context","_interopRequireDefault","_FieldBlockContext","_classnames","_FieldBlock","_hooks","_utils","_SliderHelpers","_Context2","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultMinimum","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_props$innerRef","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","useContext","DataContext","fieldBlockContext","FieldBlockContext","sharedContext","SharedContext","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","prefixProp","suffix","suffixProp","showStepControls","schema","useMemo","_props$schema","_props$minimum","_props$maximum","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","useCallback","external","undefined","fromInput","_ref","numberValue","emptyValue","ref","useRef","preparedProps","valueType","width","composition","innerRef","id","name","className","inputClassName","autoComplete","placeholder","startWith","disabled","htmlAttributes","hasError","size","align","handleFocus","handleBlur","handleChange","setDisplayValue","useFieldProps","useEffect","_innerRef$current","current","handleSubmit","onKeyDownHandler","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","clamp","persist","fieldBlockProps","forId","classnames","contentClassName","contentWidth","pickSpacingProps","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","decreaseClickHandler","decreaseProps","subtractTitle","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","ariaParams","role","inputProps","inner_ref","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","asFieldset","Button","InputMasked","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, {\n useContext,\n useMemo,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { InputMasked, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type {\n InputAlign,\n InputProps,\n InputSize,\n} from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps, AllJSONSchemaVersions } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport DataContext from '../../DataContext/Context'\n\nexport type Props = FieldProps<number, undefined | number> & {\n innerRef?: React.RefObject<HTMLInputElement>\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string | ((value: number) => string)\n suffix?: string | ((value: number) => string)\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n}\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix: prefixProp,\n suffix: suffixProp,\n showStepControls,\n } = props\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n innerRef: props.innerRef ?? ref,\n }\n\n const {\n id,\n name,\n className,\n innerRef,\n inputClassName,\n autoComplete,\n placeholder,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n hasError,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n setDisplayValue(innerRef.current?.value)\n }, [innerRef, setDisplayValue, value])\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { event } = e as unknown as {\n event: React.KeyboardEvent<HTMLInputElement>\n }\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const prefix =\n typeof prefixProp === 'function' ? prefixProp(value) : prefixProp\n const suffix =\n typeof suffixProp === 'function' ? suffixProp(value) : suffixProp\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n decimalLimit,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps: InputProps = {\n id,\n name,\n inner_ref: innerRef,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(width),\n ...maskProps,\n ...htmlAttributes,\n ...(ariaParams as any),\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,10 +4,12 @@ import { type CountryType } from '../../constants/countries';
|
|
|
4
4
|
import { Props as StringFieldProps } from '../String';
|
|
5
5
|
import { FieldPropsWithExtraValue } from '../../types';
|
|
6
6
|
import { CountryFilterSet } from '../SelectCountry';
|
|
7
|
-
export type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
export type AdditionalArgs = {
|
|
8
|
+
phoneNumber: string;
|
|
9
|
+
countryCode: string;
|
|
10
|
+
iso: string;
|
|
11
|
+
};
|
|
12
|
+
export type Props = Omit<FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>, 'layout' | 'layoutOptions'> & {
|
|
11
13
|
countryCodeFieldClassName?: string;
|
|
12
14
|
numberFieldClassName?: string;
|
|
13
15
|
countryCodePlaceholder?: string;
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
require("core-js/modules/es.string.replace.js");
|
|
8
9
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _components = require("../../../../components");
|
|
@@ -38,10 +39,12 @@ function PhoneNumber(props) {
|
|
|
38
39
|
} = (0, _useTranslation.default)().PhoneNumber;
|
|
39
40
|
const lang = (_sharedContext$locale = sharedContext.locale) === null || _sharedContext$locale === void 0 ? void 0 : _sharedContext$locale.split('-')[0];
|
|
40
41
|
const countryCodeRef = (0, _react.useRef)(props === null || props === void 0 ? void 0 : props.emptyValue);
|
|
42
|
+
const prevCountryCodeRef = (0, _react.useRef)(countryCodeRef.current);
|
|
41
43
|
const numberRef = (0, _react.useRef)(props === null || props === void 0 ? void 0 : props.emptyValue);
|
|
42
44
|
const dataRef = (0, _react.useRef)(null);
|
|
43
45
|
const langRef = (0, _react.useRef)(lang);
|
|
44
46
|
const wasFilled = (0, _react.useRef)(false);
|
|
47
|
+
const currentCountryRef = (0, _react.useRef)();
|
|
45
48
|
const errorMessages = (0, _react.useMemo)(() => _objectSpread({
|
|
46
49
|
'Field.errorRequired': errorRequired,
|
|
47
50
|
'Field.errorPattern': errorRequired
|
|
@@ -153,31 +156,35 @@ function PhoneNumber(props) {
|
|
|
153
156
|
makeObject
|
|
154
157
|
});
|
|
155
158
|
}, [lang, filter, ccFilter]);
|
|
156
|
-
const
|
|
159
|
+
const prepareEventValues = (0, _react.useCallback)(function () {
|
|
160
|
+
var _currentCountryRef$cu;
|
|
157
161
|
let {
|
|
158
162
|
countryCode = countryCodeRef.current || emptyValue,
|
|
159
163
|
phoneNumber = numberRef.current || emptyValue
|
|
160
164
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
165
|
+
if (!currentCountryRef.current) {
|
|
166
|
+
const cdcVal = countryCode === null || countryCode === void 0 ? void 0 : countryCode.replace(/^\+/, '');
|
|
167
|
+
const item = dataRef.current.find(item => {
|
|
168
|
+
var _item$country;
|
|
169
|
+
const cdc = item === null || item === void 0 ? void 0 : (_item$country = item.country) === null || _item$country === void 0 ? void 0 : _item$country.cdc;
|
|
170
|
+
return cdc === cdcVal;
|
|
171
|
+
});
|
|
172
|
+
currentCountryRef.current = item === null || item === void 0 ? void 0 : item.country;
|
|
173
|
+
}
|
|
161
174
|
return _objectSpread(_objectSpread({}, !omitCountryCodeField ? {
|
|
162
175
|
countryCode
|
|
163
176
|
} : {}), {}, {
|
|
164
|
-
phoneNumber
|
|
165
|
-
|
|
166
|
-
}, [omitCountryCodeField, emptyValue]);
|
|
167
|
-
const callOnChange = (0, _react.useCallback)(_ref2 => {
|
|
168
|
-
let {
|
|
169
|
-
countryCode = undefined,
|
|
170
|
-
phoneNumber = undefined
|
|
171
|
-
} = _ref2;
|
|
172
|
-
const eventValues = getEventValues({
|
|
173
|
-
countryCode,
|
|
174
|
-
phoneNumber
|
|
177
|
+
phoneNumber,
|
|
178
|
+
iso: (_currentCountryRef$cu = currentCountryRef.current) === null || _currentCountryRef$cu === void 0 ? void 0 : _currentCountryRef$cu.iso
|
|
175
179
|
});
|
|
180
|
+
}, [emptyValue, omitCountryCodeField]);
|
|
181
|
+
const callOnChange = (0, _react.useCallback)(data => {
|
|
182
|
+
const eventValues = prepareEventValues(data);
|
|
176
183
|
handleChange(joinValue([eventValues.countryCode, eventValues.phoneNumber]), eventValues);
|
|
177
|
-
}, [
|
|
184
|
+
}, [prepareEventValues, handleChange]);
|
|
178
185
|
const callOnBlurOrFocus = (0, _react.useCallback)(hasFocus => {
|
|
179
|
-
setHasFocus(hasFocus, undefined,
|
|
180
|
-
}, [
|
|
186
|
+
setHasFocus(hasFocus, undefined, prepareEventValues());
|
|
187
|
+
}, [prepareEventValues, setHasFocus]);
|
|
181
188
|
(0, _react.useMemo)(() => {
|
|
182
189
|
const [countryCode, phoneNumber] = splitValue(props.value || value);
|
|
183
190
|
numberRef.current = phoneNumber;
|
|
@@ -189,13 +196,13 @@ function PhoneNumber(props) {
|
|
|
189
196
|
updateCurrentDataSet();
|
|
190
197
|
}
|
|
191
198
|
}, [value, props.value, lang, updateCurrentDataSet]);
|
|
192
|
-
const
|
|
193
|
-
const handleCountryCodeChange = (0, _react.useCallback)(_ref3 => {
|
|
199
|
+
const handleCountryCodeChange = (0, _react.useCallback)(_ref2 => {
|
|
194
200
|
var _data$selectedKey;
|
|
195
201
|
let {
|
|
196
202
|
data
|
|
197
|
-
} =
|
|
203
|
+
} = _ref2;
|
|
198
204
|
const countryCode = countryCodeRef.current = (data === null || data === void 0 ? void 0 : (_data$selectedKey = data.selectedKey) === null || _data$selectedKey === void 0 ? void 0 : _data$selectedKey.trim()) || emptyValue;
|
|
205
|
+
currentCountryRef.current = data === null || data === void 0 ? void 0 : data.country;
|
|
199
206
|
callOnChange({
|
|
200
207
|
countryCode
|
|
201
208
|
});
|
|
@@ -214,10 +221,10 @@ function PhoneNumber(props) {
|
|
|
214
221
|
const handleOnFocus = (0, _react.useCallback)(() => {
|
|
215
222
|
callOnBlurOrFocus(true);
|
|
216
223
|
}, [callOnBlurOrFocus]);
|
|
217
|
-
const handleCountryCodeFocus = (0, _react.useCallback)(
|
|
224
|
+
const handleCountryCodeFocus = (0, _react.useCallback)(_ref3 => {
|
|
218
225
|
let {
|
|
219
226
|
updateData
|
|
220
|
-
} =
|
|
227
|
+
} = _ref3;
|
|
221
228
|
if (!wasFilled.current) {
|
|
222
229
|
wasFilled.current = true;
|
|
223
230
|
updateCurrentDataSet();
|
|
@@ -225,20 +232,20 @@ function PhoneNumber(props) {
|
|
|
225
232
|
}
|
|
226
233
|
handleOnFocus();
|
|
227
234
|
}, [handleOnFocus, updateCurrentDataSet]);
|
|
228
|
-
const onTypeHandler = (0, _react.useCallback)(
|
|
235
|
+
const onTypeHandler = (0, _react.useCallback)(_ref4 => {
|
|
229
236
|
var _event$nativeEvent;
|
|
230
237
|
let {
|
|
231
238
|
value,
|
|
232
239
|
updateData,
|
|
233
240
|
revalidateInputValue,
|
|
234
241
|
event
|
|
235
|
-
} =
|
|
242
|
+
} = _ref4;
|
|
236
243
|
if (typeof (event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.data) === 'undefined') {
|
|
237
244
|
const cdcVal = /\+\d{1,3}\s{1}\d+/.test(value) ? splitValue(value)[0] : value;
|
|
238
|
-
const country = _countries.default.find(
|
|
245
|
+
const country = _countries.default.find(_ref5 => {
|
|
239
246
|
let {
|
|
240
247
|
cdc
|
|
241
|
-
} =
|
|
248
|
+
} = _ref5;
|
|
242
249
|
return cdc === cdcVal;
|
|
243
250
|
});
|
|
244
251
|
if (country !== null && country !== void 0 && country.cdc) {
|
|
@@ -322,7 +329,8 @@ function makeObject(country, lang) {
|
|
|
322
329
|
return {
|
|
323
330
|
selectedKey: formatCountryCode(country.cdc),
|
|
324
331
|
selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,
|
|
325
|
-
content: `${formatCountryCode(country.cdc)} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}
|
|
332
|
+
content: `${formatCountryCode(country.cdc)} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}`,
|
|
333
|
+
country
|
|
326
334
|
};
|
|
327
335
|
}
|
|
328
336
|
function formatCountryCode(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumber.js","names":["_react","_interopRequireWildcard","require","_components","_classnames","_interopRequireDefault","_countries","_String","_FieldBlock","_hooks","_utils","_Context","_SelectCountry","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","_props$width","sharedContext","useContext","SharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","useTranslation","lang","locale","split","countryCodeRef","useRef","emptyValue","numberRef","dataRef","langRef","wasFilled","errorMessages","useMemo","validateRequired","useCallback","_ref","required","isChanged","error","countryCode","phoneNumber","splitValue","prevCountryCodeRef","current","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","numberMask","countries","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","useFieldProps","useEffect","_inputRef$current","number","joinValue","country","countryFilter","updateCurrentDataSet","getCountryData","formatCountryCode","cdc","sort","makeObject","getEventValues","callOnChange","_ref2","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_ref3","_data$selectedKey","data","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","_ref4","updateData","onTypeHandler","_ref5","_event$nativeEvent","revalidateInputValue","event","nativeEvent","cdcVal","test","find","_ref6","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","classnames","pickSpacingProps","createElement","Flex","Horizontal","align","Autocomplete","mode","label_direction","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","autoComplete","no_animation","noAnimation","stretch","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","selected_value","iso","content","i18n","en","match","slice","array","Boolean","join","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries, {\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<\n string,\n { country: string; phone: string },\n undefined | string\n >,\n 'layout' | 'layoutOptions'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [, phoneNumber] = splitValue(external)\n if (!phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [lang, filter, ccFilter])\n\n const getEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n } = {}) => {\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n }\n },\n [omitCountryCodeField, emptyValue]\n )\n\n const callOnChange = useCallback(\n ({ countryCode = undefined, phoneNumber = undefined }) => {\n const eventValues = getEventValues({ countryCode, phoneNumber })\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [getEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, getEventValues())\n },\n [setHasFocus, getEventValues]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n\n const handleCountryCodeChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width: omitCountryCodeField || props.width ? undefined : width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Flex.Horizontal align=\"flex-end\">\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n size={size}\n />\n )}\n\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width={\n omitCountryCodeField ? 'medium' : props.width ?? 'stretch'\n }\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={\n continuousValidation || validateContinuously\n }\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: formatCountryCode(country.cdc),\n selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,\n content: `${formatCountryCode(country.cdc)} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PhoneNumber.js","names":["_react","_interopRequireWildcard","require","_components","_classnames","_interopRequireDefault","_countries","_String","_FieldBlock","_hooks","_utils","_Context","_SelectCountry","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","_props$width","sharedContext","useContext","SharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","useTranslation","lang","locale","split","countryCodeRef","useRef","emptyValue","prevCountryCodeRef","current","numberRef","dataRef","langRef","wasFilled","currentCountryRef","errorMessages","useMemo","validateRequired","useCallback","_ref","required","isChanged","error","countryCode","phoneNumber","splitValue","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","numberMask","countries","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","useFieldProps","useEffect","_inputRef$current","number","joinValue","country","countryFilter","updateCurrentDataSet","getCountryData","formatCountryCode","cdc","sort","makeObject","prepareEventValues","_currentCountryRef$cu","cdcVal","replace","item","find","_item$country","iso","callOnChange","data","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_ref2","_data$selectedKey","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","revalidateInputValue","event","nativeEvent","test","_ref5","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","classnames","pickSpacingProps","createElement","Flex","Horizontal","align","Autocomplete","mode","label_direction","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","autoComplete","no_animation","noAnimation","stretch","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","selected_value","content","i18n","en","match","slice","array","Boolean","join","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries, {\n CountryISO,\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type AdditionalArgs = {\n phoneNumber: string\n countryCode: string\n iso: string\n}\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>,\n 'layout' | 'layoutOptions'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\ntype EventValues = {\n countryCode?: string\n phoneNumber?: string\n}\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n const currentCountryRef = useRef<CountryType>()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [, phoneNumber] = splitValue(external)\n if (!phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [lang, filter, ccFilter])\n\n const prepareEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n }: EventValues = {}) => {\n if (!currentCountryRef.current) {\n type Item = DrawerListDataArrayItem & { country: CountryType }\n\n const cdcVal = countryCode?.replace(/^\\+/, '')\n const item = dataRef.current.find((item: Item) => {\n const cdc = item?.country?.cdc\n return cdc === cdcVal\n }) as Item\n\n currentCountryRef.current = item?.country\n }\n\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n iso: currentCountryRef.current?.iso as CountryISO,\n }\n },\n [emptyValue, omitCountryCodeField]\n )\n\n const callOnChange = useCallback(\n (data: EventValues) => {\n const eventValues = prepareEventValues(data)\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [prepareEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, prepareEventValues())\n },\n [prepareEventValues, setHasFocus]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const handleCountryCodeChange = useCallback(\n ({\n data,\n }: {\n data: { selectedKey: string; country: CountryType }\n }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n currentCountryRef.current = data?.country\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width: omitCountryCodeField || props.width ? undefined : width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Flex.Horizontal align=\"flex-end\">\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n size={size}\n />\n )}\n\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width={\n omitCountryCodeField ? 'medium' : props.width ?? 'stretch'\n }\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={\n continuousValidation || validateContinuously\n }\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: formatCountryCode(country.cdc),\n selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,\n content: `${formatCountryCode(country.cdc)} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n country,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAOA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAD,sBAAA,CAAAH,OAAA;AAKA,IAAAK,OAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAKA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AAKA,IAAAW,eAAA,GAAAR,sBAAA,CAAAH,OAAA;AAAuD,SAAAG,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAApB,CAAA,EAAAK,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAS,IAAA,CAAArB,CAAA,OAAAY,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAAtB,CAAA,GAAAK,CAAA,KAAAkB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAnB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAK,CAAA,EAAAoB,UAAA,OAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAiB,CAAA,YAAAjB,CAAA;AAAA,SAAAsB,cAAA5B,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAC,CAAA,WAAAuB,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAe,OAAA,CAAAR,MAAA,CAAAN,CAAA,OAAAyB,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAAhC,CAAA,EAAAK,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAAlC,CAAA,EAAAY,MAAA,CAAAqB,yBAAA,CAAA3B,CAAA,KAAAc,OAAA,CAAAR,MAAA,CAAAN,CAAA,GAAAyB,OAAA,WAAA1B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAL,CAAA;AAAA,SAAAgC,gBAAAhC,CAAA,EAAAK,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAL,CAAA,GAAAY,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,IAAA+B,KAAA,EAAA9B,CAAA,EAAAmB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAAtC,CAAA,CAAAK,CAAA,IAAAC,CAAA,EAAAN,CAAA;AAAA,SAAAmC,eAAA7B,CAAA,QAAAY,CAAA,GAAAqB,YAAA,CAAAjC,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAqB,aAAAjC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAN,CAAA,GAAAM,CAAA,CAAAkC,MAAA,CAAAC,WAAA,kBAAAzC,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAAwB,SAAA,yEAAArC,CAAA,GAAAsC,MAAA,GAAAC,MAAA,EAAAtC,CAAA;AA4CvD,MAAMuC,kBAAkB,GAAG,KAAK;AAChC,MAAMC,kBAAkB,GAAG,aAAa;AACxC,MAAMC,WAAW,GAAG,CAClB,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,CACL;AAOD,SAASC,WAAWA,CAACC,KAAY,EAAE;EAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,YAAA;EACjC,MAAMC,aAAa,GAAG,IAAAC,iBAAU,EAACC,gBAAa,CAAC;EAC/C,MAAM;IACJC,KAAK,EAAEC,YAAY;IACnBC,gBAAgB,EAAEC,uBAAuB;IACzCC;EACF,CAAC,GAAG,IAAAC,uBAAc,EAAC,CAAC,CAACd,WAAW;EAChC,MAAMe,IAAI,IAAAb,qBAAA,GAAGI,aAAa,CAACU,MAAM,cAAAd,qBAAA,uBAApBA,qBAAA,CAAsBe,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAgB;EAE/D,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAiBlB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEmB,UAAU,CAAC;EAChE,MAAMC,kBAAkB,GAAG,IAAAF,aAAM,EAACD,cAAc,CAACI,OAAO,CAAC;EACzD,MAAMC,SAAS,GAAG,IAAAJ,aAAM,EAAiBlB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEmB,UAAU,CAAC;EAC3D,MAAMI,OAAO,GAAG,IAAAL,aAAM,EAAiC,IAAI,CAAC;EAC5D,MAAMM,OAAO,GAAG,IAAAN,aAAM,EAASJ,IAAI,CAAC;EACpC,MAAMW,SAAS,GAAG,IAAAP,aAAM,EAAU,KAAK,CAAC;EACxC,MAAMQ,iBAAiB,GAAG,IAAAR,aAAM,EAAc,CAAC;EAE/C,MAAMS,aAAa,GAAG,IAAAC,cAAO,EAC3B,MAAAjD,aAAA;IACE,qBAAqB,EAAEiC,aAAa;IACpC,oBAAoB,EAAEA;EAAa,GAChCZ,KAAK,CAAC2B,aAAa,CACtB,EACF,CAACf,aAAa,EAAEZ,KAAK,CAAC2B,aAAa,CACrC,CAAC;EAED,MAAME,gBAAgB,GAAG,IAAAC,kBAAW,EAClC,CAAC3C,KAAa,EAAA4C,IAAA,KAAqC;IAAA,IAAnC;MAAEC,QAAQ;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAC5C,IAAIC,QAAQ,EAAE;MACZ,MAAM,CAACG,WAAW,EAAEC,WAAW,CAAC,GAAGC,UAAU,CAAClD,KAAK,CAAC;MAEpD,IAAIgD,WAAW,KAAKf,kBAAkB,CAACC,OAAO,EAAE;QAC9C,IAAIc,WAAW,EAAE;UACff,kBAAkB,CAACC,OAAO,GAAGc,WAAW;QAC1C;QACA,OAAOG,SAAS;MAClB;MAEA,IAAIL,SAAS,IAAI,CAACG,WAAW,EAAE;QAC7B,OAAOF,KAAK;MACd;IACF;IAEA,OAAOI,SAAS;EAClB,CAAC,EACD,EACF,CAAC;EAED,MAAMC,YAAY,GAAG,IAAAT,kBAAW,EAC7BU,QAAgB,IAAK;IACpB,MAAM,GAAGJ,WAAW,CAAC,GAAGC,UAAU,CAACG,QAAQ,CAAC;IAC5C,IAAI,CAACJ,WAAW,IAAI,CAACpC,KAAK,CAACyC,oBAAoB,EAAE;MAC/C,OAAOxB,cAAc,CAACI,OAAO;IAC/B;IACA,OAAOmB,QAAQ;EACjB,CAAC,EACD,CAACxC,KAAK,CAACyC,oBAAoB,CAC7B,CAAC;EAED,MAAMC,OAAO,GAAG,IAAAZ,kBAAW,EACxB3C,KAAa,IAAK;IACjB,MAAM,GAAGiD,WAAW,CAAC,GAAGC,UAAU,CAAClD,KAAK,CAAC;IACzC,IAAI,CAACiD,WAAW,EAAE;MAChB,OAAOpC,KAAK,CAACmB,UAAU;IACzB;IACA,OAAOhC,KAAK;EACd,CAAC,EACD,CAACa,KAAK,CAACmB,UAAU,CACnB,CAAC;EAED,MAAMwB,MAAM,GAAG,IAAAf,cAAO,EACpB;IAAA,IAAAgB,aAAA;IAAA,QAAAA,aAAA,GACE5C,KAAK,CAAC2C,MAAM,cAAAC,aAAA,cAAAA,aAAA,GAAI;MACdC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE9C,KAAK,CAAC8C;IACjB,CAAC;EAAA,GACH,CAAC9C,KAAK,CAAC2C,MAAM,EAAE3C,KAAK,CAAC8C,OAAO,CAC9B,CAAC;EACD,MAAMC,YAA4B,GAAG;IACnCJ,MAAM;IACNhB;EACF,CAAC;EACD,MAAMqB,GAAG,GAAG,IAAA9B,aAAM,EAAmB,CAAC;EACtC,MAAM+B,aAAoB,GAAAtE,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACrBqB,KAAK,GACL+C,YAAY;IACflB,gBAAgB;IAChBU,YAAY;IACZG,OAAO;IACPQ,QAAQ,GAAAhD,eAAA,GAAEF,KAAK,CAACkD,QAAQ,cAAAhD,eAAA,cAAAA,eAAA,GAAI8C;EAAG,EAChC;EAED,MAAM;IACJG,EAAE;IACFC,IAAI;IACJC,QAAQ;IACRlE,KAAK;IACLmE,SAAS;IACTJ,QAAQ;IACRK,yBAAyB;IACzBC,oBAAoB;IACpBC,sBAAsB;IACtBC,WAAW;IACXhD,gBAAgB;IAChBF,KAAK,GAAGC,YAAY;IACpBkD,UAAU;IACVC,SAAS,EAAEC,QAAQ,GAAG,aAAa;IACnC1C,UAAU;IACV2C,IAAI;IACJC,OAAO;IACPC,IAAI;IACJ9B,KAAK;IACL+B,QAAQ;IACRC,QAAQ;IACRC,KAAK,GAAG,OAAO;IACfC,IAAI;IACJpC,QAAQ;IACRqC,iBAAiB;IACjBC,oBAAoB;IACpBC,oBAAoB;IACpBC,iBAAiB;IACjB/B,oBAAoB;IACpBgC,WAAW;IACXC,YAAY;IACZC,eAAe;IACfC,mBAAmB;IACnBC,cAAc;IACdC;EACF,CAAC,GAAG,IAAAC,oBAAa,EAAC9B,aAAa,CAAC;EAEhC,IAAA+B,gBAAS,EAAC,MAAM;IACd,IAAI5B,IAAI,IAAIC,QAAQ,EAAE;MAAA,IAAA4B,iBAAA;MACpB,MAAMC,MAAM,IAAAD,iBAAA,GAAG/B,QAAQ,CAAC7B,OAAO,cAAA4D,iBAAA,uBAAhBA,iBAAA,CAAkB9F,KAAK;MACtCwF,eAAe,CACb,CAAAO,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAErG,MAAM,IAAG,CAAC,GACdsG,SAAS,CAAC,CAAClE,cAAc,CAACI,OAAO,EAAE6D,MAAM,CAAC,CAAC,GAC3C5C,SACN,CAAC;IACH;EACF,CAAC,EAAE,CAACY,QAAQ,EAAEG,QAAQ,EAAED,IAAI,EAAEuB,eAAe,EAAExF,KAAK,CAAC,CAAC;EAEtD,MAAMZ,MAAM,GAAG,IAAAuD,kBAAW,EACvBsD,OAAoB,IAAK;IACxB,OAAO,IAAAC,4BAAa,EAACD,OAAO,EAAEN,eAAe,EAAEjB,QAAQ,CAAC;EAC1D,CAAC,EACD,CAACA,QAAQ,EAAEiB,eAAe,CAC5B,CAAC;EAED,MAAMQ,oBAAoB,GAAG,IAAAxD,kBAAW,EAAC,MAAM;IAC7CP,OAAO,CAACF,OAAO,GAAG,IAAAkE,6BAAc,EAAC;MAC/BzE,IAAI;MACJvC,MAAM,EAEJsF,QAAQ,KAAK,aAAa,IAAI,CAACpC,SAAS,CAACJ,OAAO,GAC3C+D,OAAO,IACN,GAAGI,iBAAiB,CAACJ,OAAO,CAACK,GAAG,CAAC,EAAE,KACnCxE,cAAc,CAACI,OAAO,GACxB9C,MAAM;MACZmH,IAAI,EAAE7B,QAAoD;MAC1D8B;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC7E,IAAI,EAAEvC,MAAM,EAAEsF,QAAQ,CAAC,CAAC;EAE5B,MAAM+B,kBAAkB,GAAG,IAAA9D,kBAAW,EACpC,YAGwB;IAAA,IAAA+D,qBAAA;IAAA,IAHvB;MACC1D,WAAW,GAAGlB,cAAc,CAACI,OAAO,IAAIF,UAAU;MAClDiB,WAAW,GAAGd,SAAS,CAACD,OAAO,IAAIF;IACxB,CAAC,GAAAvC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA0D,SAAA,GAAA1D,SAAA,MAAG,CAAC,CAAC;IACjB,IAAI,CAAC8C,iBAAiB,CAACL,OAAO,EAAE;MAG9B,MAAMyE,MAAM,GAAG3D,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE4D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MAC9C,MAAMC,IAAI,GAAGzE,OAAO,CAACF,OAAO,CAAC4E,IAAI,CAAED,IAAU,IAAK;QAAA,IAAAE,aAAA;QAChD,MAAMT,GAAG,GAAGO,IAAI,aAAJA,IAAI,wBAAAE,aAAA,GAAJF,IAAI,CAAEZ,OAAO,cAAAc,aAAA,uBAAbA,aAAA,CAAeT,GAAG;QAC9B,OAAOA,GAAG,KAAKK,MAAM;MACvB,CAAC,CAAS;MAEVpE,iBAAiB,CAACL,OAAO,GAAG2E,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEZ,OAAO;IAC3C;IAEA,OAAAzG,aAAA,CAAAA,aAAA,KACM,CAAC8D,oBAAoB,GAAG;MAAEN;IAAY,CAAC,GAAG,CAAC,CAAC;MAChDC,WAAW;MACX+D,GAAG,GAAAN,qBAAA,GAAEnE,iBAAiB,CAACL,OAAO,cAAAwE,qBAAA,uBAAzBA,qBAAA,CAA2BM;IAAiB;EAErD,CAAC,EACD,CAAChF,UAAU,EAAEsB,oBAAoB,CACnC,CAAC;EAED,MAAM2D,YAAY,GAAG,IAAAtE,kBAAW,EAC7BuE,IAAiB,IAAK;IACrB,MAAMC,WAAW,GAAGV,kBAAkB,CAACS,IAAI,CAAC;IAC5C3B,YAAY,CACVS,SAAS,CAAC,CAACmB,WAAW,CAACnE,WAAW,EAAEmE,WAAW,CAAClE,WAAW,CAAC,CAAC,EAC7DkE,WACF,CAAC;EACH,CAAC,EACD,CAACV,kBAAkB,EAAElB,YAAY,CACnC,CAAC;EAED,MAAM6B,iBAAiB,GAAG,IAAAzE,kBAAW,EAClC0E,QAAiB,IAAK;IACrB/B,WAAW,CAAC+B,QAAQ,EAAElE,SAAS,EAAEsD,kBAAkB,CAAC,CAAC,CAAC;EACxD,CAAC,EACD,CAACA,kBAAkB,EAAEnB,WAAW,CAClC,CAAC;EAUD,IAAA7C,cAAO,EAAC,MAAM;IACZ,MAAM,CAACO,WAAW,EAAEC,WAAW,CAAC,GAAGC,UAAU,CAACrC,KAAK,CAACb,KAAK,IAAIA,KAAK,CAAC;IACnEmC,SAAS,CAACD,OAAO,GAAGe,WAAW;IAE/B,IAAItB,IAAI,KAAKU,OAAO,CAACH,OAAO,IAAI,CAACI,SAAS,CAACJ,OAAO,EAAE;MAClD,IAAI,CAACJ,cAAc,CAACI,OAAO,IAAIc,WAAW,EAAE;QAC1ClB,cAAc,CAACI,OAAO,GAAGc,WAAW,IAAIvC,kBAAkB;MAC5D;MACA4B,OAAO,CAACH,OAAO,GAAGP,IAAI;MAEtBwE,oBAAoB,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CAACnG,KAAK,EAAEa,KAAK,CAACb,KAAK,EAAE2B,IAAI,EAAEwE,oBAAoB,CAAC,CAAC;EAEpD,MAAMmB,uBAAuB,GAAG,IAAA3E,kBAAW,EACzC4E,KAAA,IAIM;IAAA,IAAAC,iBAAA;IAAA,IAJL;MACCN;IAGF,CAAC,GAAAK,KAAA;IACC,MAAMvE,WAAW,GAAIlB,cAAc,CAACI,OAAO,GACzC,CAAAgF,IAAI,aAAJA,IAAI,wBAAAM,iBAAA,GAAJN,IAAI,CAAEO,WAAW,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAmBE,IAAI,CAAC,CAAC,KAAI1F,UAAW;IAC1CO,iBAAiB,CAACL,OAAO,GAAGgF,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEjB,OAAO;IAEzCgB,YAAY,CAAC;MAAEjE;IAAY,CAAC,CAAC;IAC7ByC,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAGzC,WAAW,CAAC;EACpC,CAAC,EACD,CAAChB,UAAU,EAAEiF,YAAY,EAAExB,mBAAmB,CAChD,CAAC;EAED,MAAMkC,kBAAkB,GAAG,IAAAhF,kBAAW,EACnC3C,KAAa,IAAK;IACjB,MAAMiD,WAAW,GAAId,SAAS,CAACD,OAAO,GAAGlC,KAAK,IAAIgC,UAAW;IAE7DiF,YAAY,CAAC;MAAEhE;IAAY,CAAC,CAAC;IAC7ByC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGzC,WAAW,CAAC;EAC/B,CAAC,EACD,CAACjB,UAAU,EAAEiF,YAAY,EAAEvB,cAAc,CAC3C,CAAC;EAED,MAAMkC,YAAY,GAAG,IAAAjF,kBAAW,EAAC,MAAM;IACrCyE,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMS,aAAa,GAAG,IAAAlF,kBAAW,EAAC,MAAM;IACtCyE,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMU,sBAAsB,GAAG,IAAAnF,kBAAW,EACxCoF,KAAA,IAAoB;IAAA,IAAnB;MAAEC;IAAW,CAAC,GAAAD,KAAA;IACb,IAAI,CAACzF,SAAS,CAACJ,OAAO,EAAE;MACtBI,SAAS,CAACJ,OAAO,GAAG,IAAI;MACxBiE,oBAAoB,CAAC,CAAC;MACtB6B,UAAU,CAAC5F,OAAO,CAACF,OAAO,CAAC;IAC7B;IACA2F,aAAa,CAAC,CAAC;EACjB,CAAC,EACD,CAACA,aAAa,EAAE1B,oBAAoB,CACtC,CAAC;EAED,MAAM8B,aAAa,GAAG,IAAAtF,kBAAW,EAC/BuF,KAAA,IAAwD;IAAA,IAAAC,kBAAA;IAAA,IAAvD;MAAEnI,KAAK;MAAEgI,UAAU;MAAEI,oBAAoB;MAAEC;IAAM,CAAC,GAAAH,KAAA;IAEjD,IAAI,QAAOG,KAAK,aAALA,KAAK,wBAAAF,kBAAA,GAALE,KAAK,CAAEC,WAAW,cAAAH,kBAAA,uBAAlBA,kBAAA,CAAoBjB,IAAI,MAAK,WAAW,EAAE;MACnD,MAAMP,MAAM,GAAG,mBAAmB,CAAC4B,IAAI,CAACvI,KAAK,CAAC,GAC1CkD,UAAU,CAAClD,KAAK,CAAC,CAAC,CAAC,CAAC,GACpBA,KAAK;MACT,MAAMiG,OAAO,GAAGxB,kBAAS,CAACqC,IAAI,CAAC0B,KAAA;QAAA,IAAC;UAAElC;QAAI,CAAC,GAAAkC,KAAA;QAAA,OAAKlC,GAAG,KAAKK,MAAM;MAAA,EAAC;MAC3D,IAAIV,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEK,GAAG,EAAE;QAChB,MAAMtD,WAAW,GAAIlB,cAAc,CAACI,OAAO,GAAGmE,iBAAiB,CAC7DJ,OAAO,CAACK,GACV,CAAE;QAEFH,oBAAoB,CAAC,CAAC;QACtB6B,UAAU,CAAC5F,OAAO,CAACF,OAAO,CAAC;QAC3B+E,YAAY,CAAC;UAAEjE;QAAY,CAAC,CAAC;QAI7ByF,MAAM,CAACC,qBAAqB,CAAC,MAAM;UACjCN,oBAAoB,CAAC,CAAC;QACxB,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EACD,CAACnB,YAAY,EAAEd,oBAAoB,CACrC,CAAC;EAED,MAAMwC,SAAS,IAAA3H,qBAAA,GAAGc,cAAc,CAACI,OAAO,cAAAlB,qBAAA,uBAAtBA,qBAAA,CAAwB4H,QAAQ,CAACnI,kBAAkB,CAAC;EAEtE,MAAMoI,eAAgC,GAAArJ,aAAA;IACpCwE,EAAE;IACFG,SAAS,EAAE,IAAA2E,mBAAU,EAAC,8BAA8B,EAAE3E,SAAS,CAAC;IAChEa,KAAK,EAAE1B,oBAAoB,IAAIzC,KAAK,CAACmE,KAAK,GAAG7B,SAAS,GAAG6B,KAAK;IAC9D3D,KAAK,EAAE8B,SAAS;IAChB8B,IAAI,EAAE9B;EAAS,GACZ,IAAA4F,uBAAgB,EAAClI,KAAK,CAAC,CAC3B;EAED,OACE/D,MAAA,CAAAgB,OAAA,CAAAkL,aAAA,CAAC1L,WAAA,CAAAQ,OAAU,EAAK+K,eAAe,EAC7B/L,MAAA,CAAAgB,OAAA,CAAAkL,aAAA,CAAC/L,WAAA,CAAAgM,IAAI,CAACC,UAAU;IAACC,KAAK,EAAC;EAAU,GAC9B,CAAC7F,oBAAoB,IACpBxG,MAAA,CAAAgB,OAAA,CAAAkL,aAAA,CAAC/L,WAAA,CAAAmM,YAAY;IACXjF,SAAS,EAAE,IAAA2E,mBAAU,EACnB,4CAA4C,EAC5C1E,yBACF,CAAE;IACFiF,IAAI,EAAC,OAAO;IACZ9E,WAAW,EAAED,sBAAuB;IACpCgF,eAAe,EAAC,UAAU;IAC1BjI,KAAK,EAAEE,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAIC,uBAAwB;IACnD0F,IAAI,EAAE9E,OAAO,CAACF,OAAQ;IACtBlC,KAAK,EAAE8B,cAAc,CAACI,OAAQ;IAC9BqH,MAAM,EAAEzE,QAAQ,GAAG,OAAO,GAAG3B,SAAU;IACvC4B,QAAQ,EAAEA,QAAS;IACnByE,QAAQ,EAAE1B,sBAAuB;IACjC2B,OAAO,EAAE7B,YAAa;IACtB8B,SAAS,EAAEpC,uBAAwB;IACnCqC,OAAO,EAAE1B,aAAc;IACvB2B,iBAAiB;IACjBC,cAAc;IACdC,cAAc;IACdC,YAAY,EAAC,kBAAkB;IAC/BC,YAAY,EAAEnJ,KAAK,CAACoJ,WAAY;IAChCC,OAAO,EAAElF,KAAK,KAAK,SAAU;IAC7BH,IAAI,EAAEA;EAAK,CACZ,CACF,EAED/H,MAAA,CAAAgB,OAAA,CAAAkL,aAAA,CAAC3L,OAAA,CAAAS,OAAW;IACVqG,SAAS,EAAE,IAAA2E,mBAAU,EACnB,sCAAsC,EACtCzE,oBACF,CAAE;IACFX,IAAI,EAAC,KAAK;IACVqG,YAAY,EAAC,cAAc;IAC3B/H,UAAU,EAAEA,UAAW;IACvBmI,MAAM,EAAC,UAAU;IACjB9I,KAAK,EAAEA,KAAM;IACbkD,WAAW,EACTA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAKoE,SAAS,GAAGjI,kBAAkB,GAAGyC,SAClD;IACDiH,IAAI,EACF5F,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAKmE,SAAS,GAAGhI,WAAW,GAAG0J,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAC7D;IACDC,OAAO,EAAE1C,aAAc;IACvB2C,MAAM,EAAE5C,YAAa;IACrB6C,QAAQ,EAAE9C,kBAAmB;IAC7B3H,KAAK,EAAEmC,SAAS,CAACD,OAAQ;IACzBwI,QAAQ,EAAE3G,QAAS;IACnBY,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjB7B,KAAK,EAAEA,KAAM;IACbgC,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EACH1B,oBAAoB,GAAG,QAAQ,IAAArC,YAAA,GAAGJ,KAAK,CAACmE,KAAK,cAAA/D,YAAA,cAAAA,YAAA,GAAI,SAClD;IACDgE,IAAI,EAAAzF,aAAA,CAAAA,aAAA,KAAOyF,IAAI;MAAE0F,QAAQ,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAK,EAAG;IAClD/H,QAAQ,EAAEA,QAAS;IACnBL,aAAa,EAAEA,aAAc;IAC7B0C,iBAAiB,EAAEA,iBAAkB;IACrCE,oBAAoB,EAClBD,oBAAoB,IAAIC,oBACzB;IACDC,iBAAiB,EAAEA,iBAAkB;IACrCwF,SAAS,EAAC,KAAK;IACfhG,IAAI,EAAEA;EAAK,CACZ,CACc,CACP,CAAC;AAEjB;AAEA,SAAS2B,UAAUA,CAACP,OAAoB,EAAEtE,IAAY,EAAE;EAAA,IAAAmJ,kBAAA;EACtD,OAAO;IACLrD,WAAW,EAAEpB,iBAAiB,CAACJ,OAAO,CAACK,GAAG,CAAC;IAC3CyE,cAAc,EAAE,GAAG9E,OAAO,CAACe,GAAG,KAAKX,iBAAiB,CAACJ,OAAO,CAACK,GAAG,CAAC,GAAG;IACpE0E,OAAO,EAAE,GAAG3E,iBAAiB,CAACJ,OAAO,CAACK,GAAG,CAAC,KAAAwE,kBAAA,GACxC7E,OAAO,CAACgF,IAAI,CAACtJ,IAAI,CAAC,cAAAmJ,kBAAA,cAAAA,kBAAA,GAAI7E,OAAO,CAACgF,IAAI,CAACC,EAAE,EACrC;IACFjF;EACF,CAAC;AACH;AAEA,SAASI,iBAAiBA,CAACrG,KAAa,EAAE;EACxC,OAAO,IAAIA,KAAK,EAAE;AACpB;AAEA,SAASkD,UAAUA,CAAClD,KAAa,EAAE;EACjC,OAAO,CACL,OAAOA,KAAK,KAAK,QAAQ,GACrBA,KAAK,CAACmL,KAAK,CAAC,oBAAoB,CAAC,GACjC,CAAChI,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EACvBiI,KAAK,CAAC,CAAC,CAAC;AACZ;AAEA,SAASpF,SAASA,CAACqF,KAAoB,EAAE;EACvC,OAAOA,KAAK,CAACjM,MAAM,CAACkM,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACxC;AAEA3K,WAAW,CAAC4K,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAA5N,OAAA,GACzB8C,WAAW","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { PropertiesTableProps } from '../../../../shared/types';
|
|
2
2
|
export declare const PhoneNumberProperties: PropertiesTableProps;
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const PhoneNumberSpecificEvents: PropertiesTableProps;
|
|
4
|
+
export declare const PhoneNumberGeneralEvents: PropertiesTableProps;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.PhoneNumberSpecificEvents = exports.PhoneNumberProperties = exports.PhoneNumberGeneralEvents = void 0;
|
|
7
7
|
var _FieldDocs = require("../FieldDocs");
|
|
8
8
|
var _StringDocs = require("../String/StringDocs");
|
|
9
9
|
const PhoneNumberProperties = exports.PhoneNumberProperties = {
|
|
@@ -64,7 +64,12 @@ const PhoneNumberProperties = exports.PhoneNumberProperties = {
|
|
|
64
64
|
status: 'optional'
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
|
-
const
|
|
67
|
+
const PhoneNumberSpecificEvents = exports.PhoneNumberSpecificEvents = {
|
|
68
|
+
onChange: {
|
|
69
|
+
doc: 'Callback on phone number and country code change.',
|
|
70
|
+
type: '(value?: string, additionalArgs?: { countryCode?: string, phoneNumber?: string, iso?: string }) => void',
|
|
71
|
+
status: 'optional'
|
|
72
|
+
},
|
|
68
73
|
onCountryCodeChange: {
|
|
69
74
|
doc: 'Callback on country code change.',
|
|
70
75
|
type: '(value?: string) => void',
|
|
@@ -76,7 +81,7 @@ const phoneNumberSpecificEvents = exports.phoneNumberSpecificEvents = {
|
|
|
76
81
|
status: 'optional'
|
|
77
82
|
}
|
|
78
83
|
};
|
|
79
|
-
const
|
|
84
|
+
const PhoneNumberGeneralEvents = exports.PhoneNumberGeneralEvents = (0, _FieldDocs.getFieldEventsWithTypes)({
|
|
80
85
|
type: 'string',
|
|
81
86
|
optional: true
|
|
82
87
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumberDocs.js","names":["_FieldDocs","require","_StringDocs","PhoneNumberProperties","exports","countries","doc","type","status","filterCountries","pattern","omitCountryCodeField","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","countryCodeLabel","numberMask","width","size","stringProperties","
|
|
1
|
+
{"version":3,"file":"PhoneNumberDocs.js","names":["_FieldDocs","require","_StringDocs","PhoneNumberProperties","exports","countries","doc","type","status","filterCountries","pattern","omitCountryCodeField","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","countryCodeLabel","numberMask","width","size","stringProperties","PhoneNumberSpecificEvents","onChange","onCountryCodeChange","onNumberChange","PhoneNumberGeneralEvents","getFieldEventsWithTypes","optional"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\nimport { stringProperties } from '../String/StringDocs'\n\nexport const PhoneNumberProperties: PropertiesTableProps = {\n countries: {\n doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCountries: {\n doc: 'Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.',\n type: 'function',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"^[49]+\"`.',\n type: 'string',\n status: 'optional',\n },\n omitCountryCodeField: {\n doc: 'If `true` is given, then everything related to country code is removed.',\n type: 'boolean',\n status: 'optional',\n },\n countryCodeFieldClassName: {\n doc: 'Class name for the country code component.',\n type: 'string',\n status: 'optional',\n },\n numberFieldClassName: {\n doc: 'Class name for the number component.',\n type: 'string',\n status: 'optional',\n },\n countryCodePlaceholder: {\n doc: 'Placeholder for the country code field.',\n type: 'string',\n status: 'optional',\n },\n countryCodeLabel: {\n doc: 'Label to show above / before the country code field.',\n type: 'string',\n status: 'optional',\n },\n numberMask: {\n doc: 'See property `mask` of the [InputMasked](/uilib/components/input-masked/properties) component.',\n type: 'Various',\n status: 'optional',\n },\n width: {\n doc: '`large` for predefined standard width, `stretch` for fill available width.',\n type: 'string | false',\n status: 'optional',\n },\n size: stringProperties.size,\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const PhoneNumberSpecificEvents: PropertiesTableProps = {\n onChange: {\n doc: 'Callback on phone number and country code change.',\n type: '(value?: string, additionalArgs?: { countryCode?: string, phoneNumber?: string, iso?: string }) => void',\n status: 'optional',\n },\n onCountryCodeChange: {\n doc: 'Callback on country code change.',\n type: '(value?: string) => void',\n status: 'optional',\n },\n onNumberChange: {\n doc: 'Callback on phone number change.',\n type: '(value?: string) => void',\n status: 'optional',\n },\n}\n\nexport const PhoneNumberGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object' }\n)\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,qBAA2C,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACzDE,SAAS,EAAE;IACTC,GAAG,EAAE,sPAAsP;IAC3PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,+JAA+J;IACpKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,yBAAyB,EAAE;IACzBN,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,oBAAoB,EAAE;IACpBP,GAAG,EAAE,sCAAsC;IAC3CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,sBAAsB,EAAE;IACtBR,GAAG,EAAE,yCAAyC;IAC9CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,KAAK,EAAE;IACLX,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,gBAAgB;IACtBC,MAAM,EAAE;EACV,CAAC;EACDU,IAAI,EAAEC,4BAAgB,CAACD,IAAI;EAC3B,yCAAyC,EAAE;IACzCZ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,MAAMY,yBAA+C,GAAAhB,OAAA,CAAAgB,yBAAA,GAAG;EAC7DC,QAAQ,EAAE;IACRf,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,yGAAyG;IAC/GC,MAAM,EAAE;EACV,CAAC;EACDc,mBAAmB,EAAE;IACnBhB,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACV,CAAC;EACDe,cAAc,EAAE;IACdjB,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,MAAMgB,wBAAwB,GAAApB,OAAA,CAAAoB,wBAAA,GAAG,IAAAC,kCAAuB,EAC7D;EAAElB,IAAI,EAAE,QAAQ;EAAEmB,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEnB,IAAI,EAAE;AAAS,CACnB,CAAC","ignoreList":[]}
|
|
@@ -9,12 +9,12 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
|
|
|
9
9
|
space?: import("../../../../shared/types").SpaceTypeAll;
|
|
10
10
|
left?: import("../../../../shared/types").SpaceType;
|
|
11
11
|
right?: import("../../../../shared/types").SpaceType;
|
|
12
|
-
error?: import("../../types").
|
|
12
|
+
error?: import("../../types").ErrorProp<unknown>;
|
|
13
13
|
label?: import("react").ReactNode;
|
|
14
14
|
path?: string;
|
|
15
15
|
'aria-hidden'?: boolean | "true" | "false";
|
|
16
16
|
value?: unknown;
|
|
17
|
-
info?: import("../../types").
|
|
17
|
+
info?: import("../../types").InfoProp<unknown>;
|
|
18
18
|
'aria-labelledby'?: string;
|
|
19
19
|
'aria-describedby'?: string;
|
|
20
20
|
'aria-details'?: string;
|
|
@@ -152,7 +152,7 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
|
|
|
152
152
|
layout?: "horizontal" | "vertical";
|
|
153
153
|
translations?: import("../../../../shared/Context").Translations | import("../../../../shared/Context").TranslationCustomLocales;
|
|
154
154
|
valueType?: string | number | boolean | (string | number | boolean)[];
|
|
155
|
-
warning?: import("../../types").
|
|
155
|
+
warning?: import("../../types").WarningProp<unknown>;
|
|
156
156
|
emptyValue?: unknown;
|
|
157
157
|
validateInitially?: boolean;
|
|
158
158
|
continuousValidation?: boolean;
|
|
@@ -6,7 +6,7 @@ export type { UploadFile, UploadFileNative };
|
|
|
6
6
|
export type UploadValue = Array<UploadFile | UploadFileNative>;
|
|
7
7
|
export type Props = Omit<FieldProps<UploadValue, UploadValue | undefined>, 'name'> & SpacingProps & {
|
|
8
8
|
width?: Omit<FieldBlockWidth, 'medium' | 'small'>;
|
|
9
|
-
} & Pick<Partial<UploadProps>, 'title' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates'> & {
|
|
9
|
+
} & Pick<Partial<UploadProps>, 'title' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates' | 'disableDragAndDrop'> & {
|
|
10
10
|
fileHandler?: (newFiles: UploadValue) => UploadValue | Promise<UploadValue>;
|
|
11
11
|
};
|
|
12
12
|
declare function UploadComponent(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
@@ -93,7 +93,8 @@ function UploadComponent(props) {
|
|
|
93
93
|
onFileDelete,
|
|
94
94
|
onFileClick,
|
|
95
95
|
download,
|
|
96
|
-
allowDuplicates
|
|
96
|
+
allowDuplicates,
|
|
97
|
+
disableDragAndDrop
|
|
97
98
|
} = rest;
|
|
98
99
|
const {
|
|
99
100
|
files,
|
|
@@ -167,6 +168,7 @@ function UploadComponent(props) {
|
|
|
167
168
|
filesAmountLimit: filesAmountLimit,
|
|
168
169
|
download: download,
|
|
169
170
|
allowDuplicates: allowDuplicates,
|
|
171
|
+
disableDragAndDrop: disableDragAndDrop,
|
|
170
172
|
fileMaxSize: fileMaxSize,
|
|
171
173
|
skeleton: skeleton,
|
|
172
174
|
onChange: changeHandler,
|