{"version":3,"file":"static/js/TextField.9d8a4a69.js","mappings":"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","sources":["components/TextField/TextField.styled.ts","components/TextField/TextField.tsx","types/EpiElementDependency.ts","utils/evaluteVisibilityFromDependencies.ts","utils/generateValidationRules.ts"],"sourcesContent":["import { FormHelperText, TextField as MuiTextField } from \"@mui/material\";\nimport { styled } from \"styled-components\";\nimport theme from \"styled-theming\";\n\nimport Icon from \"components/Icon\";\nimport {\n styleBodyL,\n styleBodyM,\n styleBodyS,\n styleBodySSpaced,\n styleLabelM,\n} from \"style/components/Typography\";\nimport { MQ } from \"style/mediaQueries\";\n\nconst labelFocus = theme(\"theme\", {\n undefined: \"--text-on-neutral-secondary\",\n lightgray: \"--text-on-neutral-secondary\",\n blue: \"--text-on-blue-secondary\",\n cyan: \"--text-on-cyan-secondary\",\n black: \"--text-on-blue-secondary\",\n});\n\nconst textPlaceholder = theme(\"theme\", {\n undefined: \"--text-on-neutral-disabled\",\n lightgray: \"--text-on-neutral-disabled\",\n blue: \"--text-on-blue-disabled\",\n cyan: \"--text-on-cyan-disabled\",\n black: \"--text-on-blue-disabled\",\n});\n\nconst textDisabled = theme(\"theme\", {\n undefined: \"--text-on-neutral-disabled\",\n lightgray: \"--text-on-neutral-disabled\",\n blue: \"--text-on-blue-disabled\",\n cyan: \"--text-on-cyan-disabled\",\n black: \"--text-on-blue-disabled\",\n});\n\nconst textError = theme(\"theme\", {\n undefined: \"--text-on-neutral-inverted\",\n lightgray: \"--text-on-neutral-inverted\",\n blue: \"--text-on-coral-primary\",\n cyan: \"--text-on-neutral-inverted\",\n black: \"--text-on-coral-primary\",\n});\n\nconst textColor = theme(\"theme\", {\n undefined: \"--text-on-neutral-primary\",\n lightgray: \"--text-on-neutral-primary\",\n blue: \"--text-on-blue-primary\",\n cyan: \"--text-on-cyan-primary\",\n black: \"--text-on-blue-primary\",\n});\n\nconst borderColor = theme(\"theme\", {\n undefined: \"--field-on-neutral-default-border\",\n lightgray: \"--field-on-neutral-default-border\",\n blue: \"--field-on-blue-default-border\",\n cyan: \"--field-on-cyan-default-border\",\n black: \"--field-on-blue-default-border\",\n});\n\nconst borderHover = theme(\"theme\", {\n undefined: \"--field-on-neutral-hover-border\",\n lightgray: \"--field-on-neutral-hover-border\",\n blue: \"--field-on-blue-hover-border\",\n cyan: \"--field-on-cyan-hover-border\",\n black: \"--field-on-blue-hover-border\",\n});\n\nconst borderError = theme(\"theme\", {\n undefined: \"--field-on-neutral-error-border\",\n lightgray: \"--field-on-neutral-error-border\",\n blue: \"--field-on-blue-error-border\",\n cyan: \"--field-on-cyan-error-border\",\n black: \"--field-on-blue-error-border\",\n});\n\nconst borderDisabled = theme(\"theme\", {\n undefined: \"--field-on-neutral-disabled-border\",\n lightgray: \"--field-on-neutral-disabled-border\",\n blue: \"--field-on-blue-disabled-border\",\n cyan: \"--field-on-cyan-disabled-border\",\n black: \"--field-on-blue-disabled-border\",\n});\n\nexport const FieldWrapper = styled.div`\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n gap: 0;\n grid-column: col-start 1 / span 2;\n width: 100%;\n\n ${MQ.FROM_M} {\n grid-column: ${theme(\"displayOption\", {\n Full: \"auto / span 6\",\n Half: \"auto / span 3\",\n OneThird: \"auto / span 2\",\n TwoThirds: \"auto / span 4\",\n })};\n }\n`;\n\nexport const StyledTextField = styled(MuiTextField)`\n && {\n width: 100%;\n\n .MuiInputLabel {\n &-root {\n ${theme(\"size\", {\n small: styleBodyM,\n medium: styleBodyL,\n })};\n color: var(${textColor});\n padding: 0 0 0 0.875rem;\n transform: ${theme(\"size\", {\n small: \"translate(0, 0.875rem)\",\n medium: \"translate(0, 1.3125rem)\",\n })};\n\n ${MQ.FROM_XL} {\n padding: ${theme(\"size\", {\n small: \"0 0 0 0.875rem\",\n medium: \"0 0 0 1.3125rem\",\n })};\n transform: ${theme(\"size\", {\n small: \"translate(0, 1.3125rem)\",\n medium: \"translate(0, 1.75rem)\",\n })};\n }\n\n &.Mui-error {\n padding-right: 1.3125rem;\n\n ${MQ.FROM_XL} {\n padding-right: 1.3125rem;\n }\n }\n\n &.Mui-adornment {\n padding-right: 1.3125rem;\n\n ${MQ.FROM_XL} {\n padding-right: 1.3125rem;\n }\n }\n\n &.Mui-error.Mui-adornment {\n padding-right: 3.5rem;\n\n ${MQ.FROM_XL} {\n padding-right: 3.9375rem;\n }\n }\n\n &.Mui-focused {\n ${theme(\"size\", {\n small: styleBodySSpaced,\n medium: styleBodyM,\n })};\n color: var(${labelFocus});\n transform: ${theme(\"size\", {\n small: \"translate(0, 0)\",\n medium: \"translate(0, 0.4375rem)\",\n })};\n\n ${MQ.FROM_XL} {\n transform: ${theme(\"size\", {\n small: \"translate(0, 0.4375rem)\",\n medium: \"translate(0, 0.875rem)\",\n })};\n }\n }\n\n &.Mui-disabled {\n color: var(${textDisabled});\n }\n }\n\n &-shrink {\n ${theme(\"size\", {\n small: styleBodySSpaced,\n medium: styleBodyM,\n })};\n color: var(${labelFocus});\n transform: ${theme(\"size\", {\n small: \"translate(0, 0)\",\n medium: \"translate(0, 0.4375rem)\",\n })};\n\n ${MQ.FROM_XL} {\n transform: ${theme(\"size\", {\n small: \"translate(0, 0.4375rem)\",\n medium: \"translate(0, 0.875rem)\",\n })};\n }\n\n /* prettier-ignore */\n &:has(+ .MuiOutlinedInput-root\n .MuiInputBase-input:-webkit-autofill) {\n color: var(--color-black);\n }\n }\n }\n\n .MuiInputBase {\n &-input {\n ${theme(\"size\", {\n small: styleBodyM,\n medium: styleBodyL,\n })};\n color: var(${textColor});\n height: 1.75rem;\n padding: ${theme(\"size\", {\n small: \"1.75rem 0.875rem 0rem\",\n medium: \"2.1875rem 0.875rem 0.4375rem\",\n })};\n\n ${MQ.FROM_XL} {\n height: ${theme(\"size\", {\n small: \"1.75rem\",\n medium: \"2.1875rem\",\n })};\n padding: ${theme(\"size\", {\n small: \"2.1875rem 0.875rem 0.4375rem\",\n medium: \"2.625rem 1.3125rem 0.875rem\",\n })};\n }\n\n &.Mui-disabled {\n -webkit-text-fill-color: var(${textDisabled});\n color: var(${textDisabled});\n }\n\n &::placeholder {\n color: var(${textPlaceholder});\n opacity: 1;\n }\n }\n\n &-root {\n padding-right: 0;\n\n .MuiOutlinedInput {\n &-notchedOutline {\n border-color: var(${borderColor});\n transition: border-color 0.2s ease-in-out;\n top: 0;\n\n legend {\n display: block;\n height: 0;\n overflow: hidden;\n width: 0;\n }\n }\n }\n\n &:hover {\n &:not(.Mui-disabled, .Mui-error) {\n .MuiOutlinedInput {\n &-notchedOutline {\n border-color: var(${borderHover});\n }\n }\n }\n }\n\n &.Mui-error.Mui-focused,\n &.Mui-error {\n .MuiOutlinedInput {\n &-notchedOutline {\n border-top-left-radius: 0;\n border-color: var(${borderError});\n }\n }\n }\n\n &.Mui-focused {\n .MuiOutlinedInput {\n &-notchedOutline {\n border-color: var(${borderHover});\n border-width: 1px;\n box-shadow: 0 0 0 0.4375rem var(--field-focus);\n }\n }\n }\n\n &.Mui-disabled {\n .MuiOutlinedInput {\n &-notchedOutline {\n border-color: var(${borderDisabled});\n }\n }\n }\n }\n }\n\n .MuiFormHelperText {\n &-root {\n ${theme(\"size\", {\n small: styleBodyS,\n medium: styleBodyM,\n })};\n color: var(${labelFocus});\n margin: 0.4375rem 0 0;\n\n &.Mui-disabled {\n color: var(${textDisabled});\n }\n }\n }\n }\n`;\n\nexport const AdornmentWrapper = styled.div`\n ${theme(\"size\", {\n small: styleBodyM,\n medium: styleBodyL,\n })};\n align-items: center;\n color: var(${textPlaceholder});\n display: flex;\n flex-direction: row;\n gap: 0.875rem;\n height: 100%;\n padding-right: 0.875rem;\n\n ${MQ.FROM_XL} {\n gap: ${theme(\"size\", {\n small: \"0.875rem\",\n medium: \"1.3125rem\",\n })};\n padding-right: ${theme(\"size\", {\n small: \"0.875rem\",\n medium: \"1.3125rem\",\n })};\n }\n`;\n\nexport const ErrorIcon = styled(Icon)`\n color: var(${borderError});\n`;\n\nexport const ErrorText = styled(FormHelperText)`\n && {\n ${styleLabelM};\n margin: 0 auto 0 0;\n z-index: 2;\n\n span {\n background-color: var(${borderError});\n border-radius: 0.25rem 0.25rem 0 0;\n color: var(${textError});\n display: block;\n margin-right: 2.625rem;\n padding: 0 0.4375rem;\n }\n }\n`;\n","import {\n ThemeProvider as MuiThemeProvider,\n createTheme,\n} from \"@mui/material/styles\";\nimport { TextFieldVariants } from \"@mui/material/TextField\";\nimport classNames from \"classnames\";\nimport React, { ReactElement, useCallback, useContext, useEffect } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { NumericFormat, PatternFormat } from \"react-number-format\";\nimport { ThemeContext, ThemeProvider } from \"styled-components\";\n\nimport evaluteVisibilityFromDependencies from \"utils/evaluteVisibilityFromDependencies\";\nimport generateValidationRules from \"utils/generateValidationRules\";\n\nimport {\n AdornmentWrapper,\n ErrorIcon,\n ErrorText,\n FieldWrapper,\n StyledTextField,\n} from \"./TextField.styled\";\nimport TextFieldProps from \"./TextFieldProps\";\n\nconst TextField = ({\n id,\n identifier,\n label,\n placeHolder,\n focused,\n disabled,\n type = \"text\",\n predefinedValue,\n autoComplete,\n displayOption = \"Full\",\n inputFormatNumber = false,\n inputFormatPattern,\n description,\n elementName,\n className,\n component,\n validators,\n control,\n endAdornment,\n dependencies,\n inputMode = \"text\",\n pattern,\n size = \"medium\",\n onChange,\n setValue,\n onFocus,\n tabIndex,\n}: TextFieldProps): ReactElement => {\n const formContext = useFormContext();\n const themeContext = useContext(ThemeContext);\n const unregister = formContext?.unregister || undefined;\n\n const isNumeric =\n component === \"NumberElementBlock\" ||\n component === \"CurrencyAmountElementBlock\" ||\n type === \"number\";\n\n const classes = classNames(\n validators?.map((validator) => {\n return validator?.model?.validationCssClass || \"\";\n }),\n );\n\n const rules =\n validators && validators?.length > 0\n ? generateValidationRules(validators)\n : undefined;\n\n const visibleFromDependencies =\n dependencies && control\n ? evaluteVisibilityFromDependencies(dependencies, control)\n : true;\n\n const isPositiveInteger = validators?.some(\n (v) => v.type === \"PositiveIntegerValidator\",\n );\n\n useEffect(() => {\n if (elementName && setValue && unregister)\n if (visibleFromDependencies) setValue(elementName, predefinedValue);\n else unregister(elementName);\n }, [\n elementName,\n predefinedValue,\n setValue,\n unregister,\n visibleFromDependencies,\n ]);\n\n // Set the correct types and input modes for the input\n if (isNumeric) {\n inputMode = \"numeric\";\n type = \"text\";\n pattern = inputFormatNumber ? \"^[0-9 ]*$\" : \"^[0-9]*$\";\n }\n\n if (validators?.some((validator) => validator.type === \"EmailValidator\")) {\n type = \"email\";\n inputMode = \"email\";\n }\n\n const getAdornment = useCallback(\n (error) =>\n error || endAdornment ? (\n \n {error && }\n {endAdornment}\n \n ) : null,\n [endAdornment],\n );\n\n return (\n \n \n {visibleFromDependencies && (\n {\n const elementProps = {\n className: classes,\n id: id || identifier,\n inputRef: ref,\n label: label,\n placeholder: placeHolder,\n focused: focused,\n error: !!error,\n disabled: disabled,\n autoComplete: autoComplete,\n helperText: description,\n inputProps: {\n inputMode: inputMode,\n pattern: pattern,\n tabIndex: tabIndex,\n },\n variant: \"outlined\" as TextFieldVariants,\n type: type,\n InputProps: {\n endAdornment: getAdornment(error),\n },\n InputLabelProps: {\n shrink: field.value ? true : undefined,\n className: endAdornment\n ? \"Mui-adornment\"\n : \"\",\n },\n onFocus: (\n event: React.FocusEvent,\n ) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n onChange: (\n event: React.ChangeEvent,\n ) => {\n field.onChange(event);\n\n if (onChange) {\n onChange(event, event.target.value);\n }\n\n if (isNumeric && setValue && elementName)\n setValue(\n elementName,\n event.target.value.replace(\n /\\D/g,\n \"\",\n ),\n );\n },\n };\n\n return (\n \n {error && (\n \n {error.message}\n \n )}\n {!inputFormatNumber &&\n !inputFormatPattern && (\n \n )}\n {inputFormatNumber &&\n !inputFormatPattern && (\n ,\n ) => {\n if (onChange) {\n onChange(\n event,\n event.target.value,\n );\n }\n }}\n onValueChange={(\n formatValues,\n ) => {\n field.onChange(\n formatValues.value\n ? Number(\n formatValues.value,\n )\n : \"\",\n );\n }}\n />\n )}\n {inputFormatPattern && (\n {\n if (onChange) {\n onChange(\n event,\n event.target.value,\n );\n }\n }}\n onValueChange={(formatValues) => {\n field.onChange(\n formatValues.formattedValue,\n );\n }}\n />\n )}\n \n );\n }}\n />\n )}\n \n \n );\n};\n\nexport default React.memo(TextField);\n","export default interface EpiElementDependency {\n action?: {\n displayName?: string;\n name?: string;\n order?: number;\n clientsideAction?: EpiDependencyAction;\n };\n conditionCombination?: EpiConditionCombination;\n conditions: EpiCondition[];\n}\n\nexport interface EpiCondition {\n fieldName: string;\n operator: EpiConditionOperator;\n fieldValue: string;\n}\n\nexport enum EpiConditionCombination {\n All = \"All\",\n Any = \"Any\",\n}\n\nexport enum EpiDependencyAction {\n Hide = \"hide\",\n Show = \"show\",\n}\n\nexport enum EpiConditionOperator {\n NotApplicable = \"NotApplicable\",\n MatchRegularExpression = \"MatchRegularExpression\",\n Equals = \"Equals\",\n NotEquals = \"NotEquals\",\n Contains = \"Contains\",\n NotContains = \"NotContains\",\n}\n","import { useWatch, Control } from \"react-hook-form\";\n\nimport EpiElementDependency, {\n EpiConditionCombination,\n EpiConditionOperator,\n EpiDependencyAction,\n} from \"types/EpiElementDependency\";\n\nconst evaluateConditionByOperator = (\n operator: EpiConditionOperator,\n targetValue: string | string[],\n conditionValue: string,\n): boolean => {\n if (typeof targetValue === \"undefined\") return false;\n\n if (!Array.isArray(targetValue))\n switch (operator) {\n case EpiConditionOperator.Equals:\n return targetValue === conditionValue;\n case EpiConditionOperator.NotEquals:\n return targetValue !== conditionValue;\n case EpiConditionOperator.Contains:\n return targetValue.includes(conditionValue);\n case EpiConditionOperator.NotContains:\n return !targetValue.includes(conditionValue);\n case EpiConditionOperator.MatchRegularExpression:\n return new RegExp(conditionValue).test(targetValue);\n case EpiConditionOperator.NotApplicable:\n return true;\n default:\n return false;\n }\n else\n switch (operator) {\n case EpiConditionOperator.Equals:\n return targetValue.includes(conditionValue);\n case EpiConditionOperator.NotEquals:\n return !targetValue.includes(conditionValue);\n case EpiConditionOperator.Contains:\n return targetValue.some((value) =>\n value.includes(conditionValue),\n );\n case EpiConditionOperator.NotContains:\n return !targetValue.some((value) =>\n value.includes(conditionValue),\n );\n case EpiConditionOperator.MatchRegularExpression:\n return targetValue.some((value) =>\n new RegExp(conditionValue).test(value),\n );\n case EpiConditionOperator.NotApplicable:\n return true;\n default:\n return false;\n }\n};\n\nconst evaluteVisibleFromDependencies = (\n dependency: EpiElementDependency | undefined,\n control: Control, any>, // eslint-disable-line @typescript-eslint/no-explicit-any\n): boolean => {\n if (dependency && control) {\n const { conditionCombination, action } = dependency;\n const returnValue =\n action?.clientsideAction === EpiDependencyAction.Show;\n\n const conditions = dependency.conditions || [];\n const elementValues = conditions.map(\n (condition) =>\n useWatch({\n control,\n name: condition.fieldName,\n }) || \"\",\n );\n\n if (conditionCombination === EpiConditionCombination.Any)\n return conditions\n .map((condition, index) => {\n const { operator, fieldValue } = condition;\n const elementValue = elementValues[index];\n return evaluateConditionByOperator(\n operator,\n elementValue,\n fieldValue || \"\",\n )\n ? returnValue\n : !returnValue;\n })\n .some(Boolean);\n else\n return conditions.every((condition, index) => {\n const { operator, fieldValue } = condition;\n const elementValue = elementValues[index];\n return evaluateConditionByOperator(\n operator,\n elementValue,\n fieldValue || \"\",\n )\n ? returnValue\n : !returnValue;\n });\n }\n return true;\n};\n\nexport default evaluteVisibleFromDependencies;\n","import { ValidationRule } from \"react-hook-form\";\n\nimport EpiValidator from \"types/EpiValidator\";\n\nconst generateValidationRules = (validationRules: EpiValidator[]) => {\n let rules = { validate: {} } as Rules;\n\n validationRules.forEach((validationRule: EpiValidator, index: number) => {\n switch (validationRule.type) {\n case \"RequiredValidator\":\n rules = {\n ...rules,\n required: {\n value: true,\n message:\n validationRule?.model?.message ||\n \"This field is required\",\n },\n };\n break;\n case \"MaxLengthValidator\":\n rules = {\n ...rules,\n maxLength: {\n value: validationRule?.model?.maxLength || 100,\n message:\n validationRule?.model?.message ||\n \"This field has a too long value\",\n },\n };\n break;\n case \"AllowedExtensionsValidator\":\n rules = {\n ...rules,\n validate: {\n ...rules.validate,\n [`${validationRule.type}-${index}`]: (\n FileList: any[], //eslint-disable-line @typescript-eslint/no-explicit-any\n ): string | boolean => {\n if (FileList && FileList.length > 0) {\n const files = Array.from(FileList);\n const fallbackExtensions = [\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\",\n \"bmp\",\n \"webp\",\n \"svg\",\n \"doc\",\n \"docx\",\n \"xls\",\n \"xlsx\",\n \"pdf\",\n ];\n const allowedExtensions = validationRule?.model\n ?.accept\n ? validationRule.model.accept\n .replaceAll(\".\", \"\")\n .split(\",\")\n : fallbackExtensions;\n const filesExtensions = files.map((file) =>\n file.name.split(\".\").pop().toLowerCase(),\n );\n const isValid = filesExtensions.every(\n (extension) =>\n allowedExtensions.includes(extension),\n );\n if (!isValid) {\n return (\n validationRule?.model?.message ||\n \"This field is invalid\"\n );\n }\n }\n return true;\n },\n },\n };\n break;\n case \"MaxFileSizeValidator\":\n rules = {\n ...rules,\n validate: {\n ...rules.validate,\n [`${validationRule.type}-${index}`]: (\n FileList: any[], //eslint-disable-line @typescript-eslint/no-explicit-any\n ): string | boolean => {\n if (FileList && FileList.length > 0) {\n const files = Array.from(FileList);\n const fallbackSizeInBytes = 104857600;\n const allowedSizeInBytes =\n validationRule?.model?.sizeInBytes ||\n fallbackSizeInBytes;\n const isValid = files.every(\n (file) =>\n Number(file?.size) < allowedSizeInBytes,\n );\n if (!isValid) {\n return (\n validationRule?.model?.message ||\n \"This field is invalid\"\n );\n }\n }\n return true;\n },\n },\n };\n break;\n default:\n if (validationRule?.model?.jsPattern) {\n rules = {\n ...rules,\n pattern: {\n value: new RegExp(validationRule?.model?.jsPattern),\n message:\n validationRule?.model?.message ||\n \"This field is invalid\",\n },\n };\n }\n break;\n }\n });\n return rules;\n};\n\ninterface Rules {\n required?: ValidationRule;\n maxLength?: ValidationRule;\n pattern?: ValidationRule;\n validate: {\n [key: string]: (value: any) => string | boolean; //eslint-disable-line @typescript-eslint/no-explicit-any\n };\n}\n\nexport default generateValidationRules;\n"],"names":["labelFocus","theme","undefined","lightgray","blue","cyan","black","textPlaceholder","textDisabled","textError","textColor","borderColor","borderHover","borderError","borderDisabled","FieldWrapper","styled","div","withConfig","componentId","MQ","FROM_M","Full","Half","OneThird","TwoThirds","StyledTextField","MuiTextField","small","styleBodyM","medium","styleBodyL","FROM_XL","styleBodySSpaced","styleBodyS","AdornmentWrapper","ErrorIcon","Icon","ErrorText","FormHelperText","styleLabelM","TextField","id","identifier","label","placeHolder","focused","disabled","type","predefinedValue","autoComplete","displayOption","inputFormatNumber","inputFormatPattern","description","elementName","className","component","validators","control","endAdornment","dependencies","inputMode","pattern","size","onChange","setValue","onFocus","tabIndex","formContext","useFormContext","themeContext","useContext","ThemeContext","unregister","isNumeric","classes","classNames","map","validator","_validator$model","model","validationCssClass","rules","length","generateValidationRules","visibleFromDependencies","evaluteVisibilityFromDependencies","isPositiveInteger","some","v","useEffect","getAdornment","useCallback","error","_jsxs","children","_jsx","icon","MuiThemeProvider","createTheme","ThemeProvider","Controller","name","defaultValue","render","field","ref","fieldState","elementProps","inputRef","placeholder","helperText","inputProps","variant","InputProps","InputLabelProps","shrink","value","event","target","replace","message","NumericFormat","customInput","thousandSeparator","allowNegative","decimalScale","onValueChange","formatValues","Number","PatternFormat","format","formattedValue","React","EpiConditionCombination","EpiDependencyAction","EpiConditionOperator","evaluateConditionByOperator","operator","targetValue","conditionValue","Array","isArray","Equals","includes","NotEquals","Contains","NotContains","MatchRegularExpression","RegExp","test","NotApplicable","evaluteVisibleFromDependencies","dependency","conditionCombination","action","returnValue","clientsideAction","Show","conditions","elementValues","condition","useWatch","fieldName","Any","index","fieldValue","elementValue","Boolean","every","validationRules","validate","forEach","validationRule","_validationRule$model","_validationRule$model2","_validationRule$model3","_validationRule$model8","required","maxLength","FileList","_validationRule$model4","files","from","fallbackExtensions","allowedExtensions","accept","replaceAll","split","_validationRule$model5","file","pop","toLowerCase","extension","_validationRule$model6","fallbackSizeInBytes","allowedSizeInBytes","sizeInBytes","_validationRule$model7","_validationRule$model9","_validationRule$model10","jsPattern"],"sourceRoot":""}