@lifesg/web-frontend-engine 1.19.20 → 1.19.21
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/chunks/{file-upload-manager.072099ea.js → file-upload-manager.1921fbad.js} +2 -2
- package/chunks/{file-upload-manager.072099ea.js.map → file-upload-manager.1921fbad.js.map} +1 -1
- package/chunks/{index.0dbde68f.js → index.26df19ea.js} +5 -5
- package/chunks/{index.0dbde68f.js.map → index.26df19ea.js.map} +1 -1
- package/chunks/{index.2cd8e0dd.js → index.977447f6.js} +2 -2
- package/chunks/{index.2cd8e0dd.js.map → index.977447f6.js.map} +1 -1
- package/chunks/{index.2a176c7d.js → index.c7765648.js} +2 -2
- package/chunks/{index.2a176c7d.js.map → index.c7765648.js.map} +1 -1
- package/chunks/{location-modal.54ab5d47.js → location-modal.d71a86e7.js} +2 -2
- package/chunks/{location-modal.54ab5d47.js.map → location-modal.d71a86e7.js.map} +1 -1
- package/cjs/chunks/{file-upload-manager.b0dc7ccd.js → file-upload-manager.40a495d7.js} +2 -2
- package/cjs/chunks/{file-upload-manager.b0dc7ccd.js.map → file-upload-manager.40a495d7.js.map} +1 -1
- package/cjs/chunks/{index.bb56604f.js → index.56c92603.js} +5 -5
- package/cjs/chunks/{index.bb56604f.js.map → index.56c92603.js.map} +1 -1
- package/cjs/chunks/{index.b96b1565.js → index.70d271b4.js} +2 -2
- package/cjs/chunks/{index.b96b1565.js.map → index.70d271b4.js.map} +1 -1
- package/cjs/chunks/{index.e6c89bb0.js → index.c6117cf7.js} +2 -2
- package/cjs/chunks/{index.e6c89bb0.js.map → index.c6117cf7.js.map} +1 -1
- package/cjs/chunks/{location-modal.c6e65d41.js → location-modal.cb34554b.js} +2 -2
- package/cjs/chunks/{location-modal.c6e65d41.js.map → location-modal.cb34554b.js.map} +1 -1
- package/cjs/index.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useContext as e,useRef as t,useEffect as i}from"react";import{F as s,u as a,a as r,b as l,g as o,E as n,c as m,d as p,A as d,I as c}from"./index.
|
|
2
|
-
//# sourceMappingURL=file-upload-manager.
|
|
1
|
+
import{useContext as e,useRef as t,useEffect as i}from"react";import{F as s,u as a,a as r,b as l,g as o,E as n,c as m,d as p,A as d,I as c}from"./index.26df19ea.js";import"react/jsx-runtime";import"@lifesg/react-design-system/text";import"@lifesg/react-design-system/markup";import"react-dom/server";import"@lifesg/react-design-system/media";import"@lifesg/react-design-system/color";import"styled-components";import"@lifesg/react-design-system/button";import"@lifesg/react-design-system/modal";import"@lifesg/react-design-system/alert";import"@lifesg/react-design-system/layout";import"@lifesg/react-design-system/box-container";import"@lifesg/react-design-system/divider";import"@lifesg/react-design-system/text-list";import"@lifesg/react-design-system/popover-v2";import"@lifesg/react-icons";import"@lifesg/react-design-system/tab";import"@lifesg/react-icons/plus-circle-fill";import"@lifesg/react-design-system/button-with-icon";import"@lifesg/react-design-system/error-display";import"@lifesg/react-design-system/filter";import"@lifesg/react-design-system/uneditable-section";import"@lifesg/react-design-system/timeline";import"@lifesg/react-design-system/form";import"@lifesg/react-design-system/toggle";import"@lifesg/react-design-system/checkbox";import"@lifesg/react-design-system/file-upload";import"@lifesg/react-icons/cross";import"@lifesg/react-design-system/icon-button";import"@lifesg/react-icons/bin";import"@lifesg/react-icons/eraser";import"@lifesg/react-icons/pencil";import"@lifesg/react-icons/pencil-stroke";import"@lifesg/react-design-system";import"@lifesg/react-icons/plus";import"@lifesg/react-icons/exclamation-triangle";import"@lifesg/react-icons/pin-fill";import"@lifesg/react-design-system/design-token";import"@lifesg/react-design-system/image-button";import"@lifesg/react-design-system/radio-button";const f=["image/jpeg","image/gif","image/png"],g=g=>{const{compressImages:u,fileTypeRule:y,hideThumbnail:w,id:I,maxFileSizeRule:F,upload:U,uploadRule:b,value:R}=g,{files:T,setFiles:E,setCurrentFileIds:D}=e(s),h=a(R),{setValue:L}=r(),{dispatchFieldEvent:x}=l(),z=t();i((()=>{z.current=o()}),[]),i((()=>{T.forEach((async(e,t)=>{try{switch(e.status){case n.INJECTED:await P(e,t);break;case n.NONE:await S(e,t);break;case n.UPLOAD_READY:await _(e,t);break;case n.TO_DELETE:k(t)}}catch(e){M(t)}}));const e=T.filter((({status:e})=>e===n.UPLOADED)),t=e.filter((({addedFrom:e})=>"schema"!==e)).length>0,i=T.filter((({status:e})=>e===n.TO_DELETE)).length>0,s=t||i;D(e.map((({fileItem:e})=>e.id))),L(I,e.map((({dataURL:e,fileItem:t,fileUrl:i,uploadResponse:s})=>({..."base64"===U.type?{dataURL:e}:{},fileId:t.id,fileName:t.name,fileUrl:i,uploadResponse:s}))),{shouldDirty:s,shouldTouch:t})}),[T.map((({fileItem:e,status:t})=>`${e?.id}-${t}`)).join(",")]),i((()=>{void 0!==h&&void 0===R&&T.length&&E([])}),[T,h,E,R]);const M=e=>{E((t=>{const i=[...t],s=t[e];return i[e]={...s,fileItem:{...s.fileItem,id:s.fileItem?.id||o(),name:s.rawFile.name,errorMessage:b?.errorMessage||m.UPLOAD().GENERIC},status:n.ERROR_GENERIC},i}))},O=async(e,t)=>{if(!0!==w&&f.includes(t||e.fileItem?.type)){const t=await c.dataUrlToImage(e.dataURL),i=await c.resampleImage(t,{width:94,height:94,crop:!0});return await p.fileToDataUrl(i)}return""},A=async e=>{const{addedFrom:t,dataURL:i,rawFile:s}=e,a=await p.getType(s),r=N(a);if(r?.status<0)return r;const l="base64"===U.type?p.getFilesizeFromBase64(i):s.size,{errorMessage:o,status:m}=v(l);return m<0?{errorMessage:o,fileType:a,status:m}:"schema"===t?{fileType:a,status:n.UPLOADED}:{fileType:a,status:n.UPLOAD_READY}},N=e=>!y.fileType?.length||y.fileType?.includes(e.ext)?{}:{errorMessage:y.errorMessage||m.UPLOAD().FILE_TYPE(y.fileType||[]),fileType:e,status:n.ERROR_FORMAT},v=e=>{if(F.maxSizeInKb>0){if(e>1024*F.maxSizeInKb)return{errorMessage:F.errorMessage||m.UPLOAD().MAX_FILE_SIZE(F.maxSizeInKb),status:n.ERROR_SIZE}}return{}},P=async(e,t)=>{let i;if(E((e=>{const i=[...e];return i[t]={...e[t],status:n.INJECTING},i})),e.dataURL){const t=await p.dataUrlToBlob(e.dataURL);i=new File([t],e.rawFile.name)}else if(e.fileUrl){const t=await new d("",void 0,void 0,!1,{responseType:"blob"}).get(e.fileUrl),s=await p.getType(new File([t],e.rawFile.name));i=new File([t],e.rawFile.name,{type:s.mime}),e.dataURL=await p.fileToDataUrl(i)}const s=e.uploadResponse?.data||e.uploadResponse,{errorMessage:a,fileType:r}=i?await A({...e,rawFile:i}):N({mime:s?.mimeType,ext:s?.ext});let l=i?.size||s?.fileSize||0;isNaN(l)&&(l=0);const{errorMessage:m}=v(l),c=i?await O(e,r?.mime):void 0;E((d=>{const f=[...d];return f[t]={...e,fileItem:{errorMessage:a||m,id:e.fileItem?.id||o(),name:p.deduplicateFileName(T.map((({fileItem:e})=>e.name)),t,i?.name||e.rawFile.name),progress:1,size:l,type:r?.mime||s?.mimeType,thumbnailImageDataUrl:c},rawFile:i,status:n.UPLOADED},f}))},S=async(e,t)=>{const i=await C(e),s=await p.fileToDataUrl(i.rawFile),{errorMessage:a,fileType:r,status:l}=await A({dataURL:s,...i});E((e=>{const n=[...e];return n[t]={...i,dataURL:s,fileItem:{errorMessage:a,id:o(),name:p.deduplicateFileName(T.map((({fileItem:e})=>e?.name)),t,p.sanitizeFileName(i.rawFile.name)),size:i.rawFile.size,type:r.mime,progress:0},status:l},n}))},_=async(e,t)=>{E((e=>{const i=[...e];return i[t]={...e[t],status:n.UPLOADING},i}));const i=new FormData;i.append("sessionId",U?.sessionId||z.current||""),i.append("fileId",e.fileItem.id),i.append("slot",e.slot.toString()),"base64"===U.type?i.append("dataURL",e.dataURL):"multipart"===U.type&&i.append("file",e.rawFile,e.fileItem?.name);try{const s=await new d("",void 0,void 0,!0).post(U.url,i,{headers:{"Content-Type":"base64"===U.type?"application/json":"multipart/form-data",...U.headers},onUploadProgress:e=>{const{loaded:i,total:s}=e;E((e=>{if(!e[t])return e;const a=[...e];return a[t]={...e[t],fileItem:{...e[t].fileItem,progress:i/s}},a}))}}),a=await O(e);E((e=>{if(!e[t])return e;const i=[...e];return i[t]={...e[t],fileItem:{...e[t].fileItem,progress:1,thumbnailImageDataUrl:a},fileUrl:s?.data?.fileUrl,status:n.UPLOADED,uploadResponse:s},i}))}catch(t){throw x("upload-error",I,{fileId:e.fileItem.id,errorData:t?.response?.data}),t}},k=e=>{E((t=>t.filter(((t,i)=>i!==e))))},C=async e=>{if(F.maxSizeInKb>0&&u){const t=1024*F.maxSizeInKb;if(e.rawFile.size>t){const t=await p.getType(e.rawFile);if(f.includes(t.mime)){let t=await c.compressImage(e.rawFile,{fileSize:F.maxSizeInKb});return t instanceof Blob&&(t=p.blobToFile(t,{name:e.rawFile.name,lastModified:e.rawFile.lastModified})),{...e,rawFile:t}}}}return e};return null};export{g as default};
|
|
2
|
+
//# sourceMappingURL=file-upload-manager.1921fbad.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload-manager.072099ea.js","sources":["../../src/components/fields/file-upload/file-upload-manager.ts"],"sourcesContent":["import { AxiosError } from \"axios\";\nimport { useContext, useEffect, useRef } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { AxiosApiClient, FileHelper, ImageHelper, generateRandomId } from \"../../../utils\";\nimport { useFieldEvent, usePrevious } from \"../../../utils/hooks\";\nimport { ERROR_MESSAGES } from \"../../shared\";\nimport { FileUploadContext } from \"./file-upload-context\";\nimport {\n\tEFileStatus,\n\tIFile,\n\tIFileUploadSchema,\n\tIFileUploadValidationRule,\n\tIFileUploadValue,\n\tTUploadErrorDetail,\n} from \"./types\";\n\ninterface IProps {\n\tcompressImages: boolean;\n\tfileTypeRule: IFileUploadValidationRule;\n\thideThumbnail?: boolean | undefined;\n\tid: string;\n\tmaxFileSizeRule: IFileUploadValidationRule;\n\tupload: IFileUploadSchema[\"uploadOnAddingFile\"];\n\tuploadRule: IFileUploadValidationRule;\n\tvalue: IFileUploadValue[];\n}\n\nconst RESIZEABLE_IMAGE_TYPES = [\"image/jpeg\", \"image/gif\", \"image/png\"];\n\nconst FileUploadManager = (props: IProps) => {\n\t// =============================================================================\n\t// CONST, STATE, REFS\n\t// =============================================================================\n\tconst { compressImages, fileTypeRule, hideThumbnail, id, maxFileSizeRule, upload, uploadRule, value } = props;\n\tconst { files, setFiles, setCurrentFileIds } = useContext(FileUploadContext);\n\tconst previousValue = usePrevious(value);\n\tconst { setValue } = useFormContext();\n\tconst { dispatchFieldEvent } = useFieldEvent();\n\tconst sessionId = useRef<string>();\n\n\t// =============================================================================\n\t// EFFECTS\n\t// =============================================================================\n\tuseEffect(() => {\n\t\tsessionId.current = generateRandomId();\n\t}, []);\n\n\tuseEffect(\n\t\t() => {\n\t\t\t// handle file status\n\t\t\tfiles.forEach(async (file, index) => {\n\t\t\t\ttry {\n\t\t\t\t\tswitch (file.status) {\n\t\t\t\t\t\tcase EFileStatus.INJECTED:\n\t\t\t\t\t\t\tawait injectFile(file, index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase EFileStatus.NONE:\n\t\t\t\t\t\t\tawait parseFile(file, index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase EFileStatus.UPLOAD_READY:\n\t\t\t\t\t\t\tawait uploadFile(file, index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase EFileStatus.TO_DELETE:\n\t\t\t\t\t\t\tdeleteFile(index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\thandleGenericError(index);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// track / update values\n\t\t\tconst uploadedFiles = files.filter(({ status }) => status === EFileStatus.UPLOADED);\n\t\t\tconst notPrefilledFiles = uploadedFiles.filter(({ addedFrom }) => addedFrom !== \"schema\");\n\t\t\tconst hasNotPrefilledFiles = notPrefilledFiles.length > 0;\n\t\t\tconst gotDeleteFiles = files.filter(({ status }) => status === EFileStatus.TO_DELETE).length > 0;\n\n\t\t\t/**\n\t\t\t * should dirty if\n\t\t\t * - it is dirty in the first place\n\t\t\t * - there are non-prefilled files\n\t\t\t * - user deleted file (differentiated from reset)\n\t\t\t */\n\t\t\tconst shouldDirty = hasNotPrefilledFiles || gotDeleteFiles;\n\n\t\t\tsetCurrentFileIds(uploadedFiles.map(({ fileItem }) => fileItem.id));\n\n\t\t\tsetValue(\n\t\t\t\tid,\n\t\t\t\tuploadedFiles.map(({ dataURL, fileItem, fileUrl, uploadResponse }) => ({\n\t\t\t\t\t...(upload.type === \"base64\" ? { dataURL } : {}),\n\t\t\t\t\tfileId: fileItem.id,\n\t\t\t\t\tfileName: fileItem.name,\n\t\t\t\t\tfileUrl,\n\t\t\t\t\tuploadResponse,\n\t\t\t\t})),\n\t\t\t\t{ shouldDirty, shouldTouch: hasNotPrefilledFiles }\n\t\t\t);\n\t\t}, // eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[files.map(({ fileItem, status }) => `${fileItem?.id}-${status}`).join(\",\")]\n\t);\n\n\t// for reset\n\tuseEffect(() => {\n\t\tif (previousValue !== undefined && value === undefined && files.length) {\n\t\t\tsetFiles([]);\n\t\t}\n\t}, [files, previousValue, setFiles, value]);\n\n\t// =============================================================================\n\t// HELPER FUNCTIONS\n\t// =============================================================================\n\n\tconst handleGenericError = (index: number) => {\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tconst file = prev[index];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...file,\n\t\t\t\tfileItem: {\n\t\t\t\t\t...file.fileItem,\n\t\t\t\t\tid: file.fileItem?.id || generateRandomId(),\n\t\t\t\t\tname: file.rawFile.name,\n\t\t\t\t\terrorMessage: uploadRule?.errorMessage || ERROR_MESSAGES.UPLOAD().GENERIC,\n\t\t\t\t},\n\t\t\t\tstatus: EFileStatus.ERROR_GENERIC,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\t};\n\n\tconst generateThumbnail = async (file: IFile, fileType?: string | undefined) => {\n\t\tif (hideThumbnail !== true && RESIZEABLE_IMAGE_TYPES.includes(fileType || file.fileItem?.type)) {\n\t\t\tconst image = await ImageHelper.dataUrlToImage(file.dataURL);\n\t\t\tconst thumbnail = await ImageHelper.resampleImage(image, { width: 94, height: 94, crop: true });\n\t\t\treturn await FileHelper.fileToDataUrl(thumbnail);\n\t\t}\n\t\treturn \"\";\n\t};\n\n\tconst readFile = async (fileToRead: IFile) => {\n\t\tconst { addedFrom, dataURL, rawFile } = fileToRead;\n\t\tconst fileType = await FileHelper.getType(rawFile);\n\t\tconst fileTypeResult = validateFileType(fileType);\n\n\t\tif (fileTypeResult?.status < 0) {\n\t\t\treturn fileTypeResult;\n\t\t}\n\n\t\tconst fileSize = upload.type === \"base64\" ? FileHelper.getFilesizeFromBase64(dataURL) : rawFile.size;\n\t\tconst { errorMessage, status } = validateFileSize(fileSize);\n\t\tif (status < 0) {\n\t\t\treturn { errorMessage, fileType, status };\n\t\t}\n\n\t\tif (addedFrom === \"schema\") {\n\t\t\treturn {\n\t\t\t\tfileType,\n\t\t\t\tstatus: EFileStatus.UPLOADED,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tfileType,\n\t\t\tstatus: EFileStatus.UPLOAD_READY,\n\t\t};\n\t};\n\n\tconst validateFileType = (fileType: { mime: string; ext: string }) => {\n\t\tconst validFileType = fileTypeRule.fileType?.length ? fileTypeRule.fileType?.includes(fileType.ext) : true;\n\n\t\tif (!validFileType) {\n\t\t\treturn {\n\t\t\t\terrorMessage:\n\t\t\t\t\tfileTypeRule.errorMessage || ERROR_MESSAGES.UPLOAD().FILE_TYPE(fileTypeRule.fileType || []),\n\t\t\t\tfileType,\n\t\t\t\tstatus: EFileStatus.ERROR_FORMAT,\n\t\t\t};\n\t\t}\n\n\t\treturn {};\n\t};\n\n\tconst validateFileSize = (fileSizeInKb: number) => {\n\t\tif (maxFileSizeRule.maxSizeInKb > 0) {\n\t\t\tconst maxSizeInB = maxFileSizeRule.maxSizeInKb * 1024;\n\t\t\tif (fileSizeInKb > maxSizeInB) {\n\t\t\t\treturn {\n\t\t\t\t\terrorMessage:\n\t\t\t\t\t\tmaxFileSizeRule.errorMessage ||\n\t\t\t\t\t\tERROR_MESSAGES.UPLOAD().MAX_FILE_SIZE(maxFileSizeRule.maxSizeInKb),\n\t\t\t\t\tstatus: EFileStatus.ERROR_SIZE,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {};\n\t};\n\n\t// =============================================================================\n\t// FILE STATUS HANDLERS\n\t// =============================================================================\n\tconst injectFile = async (fileToInject: IFile, index: number) => {\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...prev[index],\n\t\t\t\tstatus: EFileStatus.INJECTING,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\n\t\tlet rawFile: File;\n\t\tif (fileToInject.dataURL) {\n\t\t\tconst blob = await FileHelper.dataUrlToBlob(fileToInject.dataURL);\n\t\t\trawFile = new File([blob], fileToInject.rawFile.name);\n\t\t} else if (fileToInject.fileUrl) {\n\t\t\tconst response: Blob = await new AxiosApiClient(\"\", undefined, undefined, false, {\n\t\t\t\tresponseType: \"blob\",\n\t\t\t}).get(fileToInject.fileUrl);\n\t\t\tconst fileType = await FileHelper.getType(new File([response], fileToInject.rawFile.name));\n\t\t\trawFile = new File([response], fileToInject.rawFile.name, { type: fileType.mime });\n\t\t\tfileToInject.dataURL = await FileHelper.fileToDataUrl(rawFile);\n\t\t}\n\n\t\t// rawFile may not be available because some use cases is not able to return dataURL / fileUrl due to security concerns\n\t\t// in such cases, we will rely on the uploadResponse for file info\n\t\tconst uploadData = fileToInject.uploadResponse?.[\"data\"] || fileToInject.uploadResponse;\n\t\tconst { errorMessage, fileType } = rawFile\n\t\t\t? await readFile({ ...fileToInject, rawFile })\n\t\t\t: validateFileType({\n\t\t\t\t\tmime: uploadData?.[\"mimeType\"],\n\t\t\t\t\text: uploadData?.[\"ext\"],\n\t\t\t });\n\n\t\tlet size = rawFile?.size || uploadData?.[\"fileSize\"] || 0;\n\t\tif (isNaN(size)) {\n\t\t\tsize = 0;\n\t\t}\n\t\tconst { errorMessage: filesizeErrorMessage } = validateFileSize(size);\n\n\t\tconst thumbnailImageDataUrl = rawFile ? await generateThumbnail(fileToInject, fileType?.mime) : undefined;\n\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...fileToInject,\n\t\t\t\tfileItem: {\n\t\t\t\t\terrorMessage: errorMessage || filesizeErrorMessage,\n\t\t\t\t\tid: fileToInject.fileItem?.id || generateRandomId(),\n\t\t\t\t\tname: FileHelper.deduplicateFileName(\n\t\t\t\t\t\tfiles.map(({ fileItem }) => fileItem.name),\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\trawFile?.name || fileToInject.rawFile.name\n\t\t\t\t\t),\n\t\t\t\t\tprogress: 1,\n\t\t\t\t\tsize,\n\t\t\t\t\ttype: fileType?.mime || uploadData?.[\"mimeType\"],\n\t\t\t\t\tthumbnailImageDataUrl,\n\t\t\t\t},\n\t\t\t\trawFile,\n\t\t\t\tstatus: EFileStatus.UPLOADED,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\t};\n\n\tconst parseFile = async (fileToParse: IFile, index: number) => {\n\t\tconst compressedFile = await compressImageFile(fileToParse);\n\t\tconst dataURL = await FileHelper.fileToDataUrl(compressedFile.rawFile);\n\t\tconst { errorMessage, fileType, status } = await readFile({ dataURL, ...compressedFile });\n\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...compressedFile,\n\t\t\t\tdataURL,\n\t\t\t\tfileItem: {\n\t\t\t\t\terrorMessage,\n\t\t\t\t\tid: generateRandomId(),\n\t\t\t\t\tname: FileHelper.deduplicateFileName(\n\t\t\t\t\t\tfiles.map(({ fileItem }) => fileItem?.name),\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tFileHelper.sanitizeFileName(compressedFile.rawFile.name)\n\t\t\t\t\t),\n\t\t\t\t\tsize: compressedFile.rawFile.size,\n\t\t\t\t\ttype: fileType.mime,\n\t\t\t\t\tprogress: 0,\n\t\t\t\t},\n\t\t\t\tstatus,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\t};\n\n\tconst uploadFile = async (fileToUpload: IFile, index: number) => {\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...prev[index],\n\t\t\t\tstatus: EFileStatus.UPLOADING,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\n\t\tconst formData = new FormData();\n\t\tformData.append(\"sessionId\", upload?.sessionId || sessionId.current || \"\");\n\t\tformData.append(\"fileId\", fileToUpload.fileItem.id);\n\t\tformData.append(\"slot\", fileToUpload.slot.toString());\n\t\tif (upload.type === \"base64\") {\n\t\t\tformData.append(\"dataURL\", fileToUpload.dataURL);\n\t\t} else if (upload.type === \"multipart\") {\n\t\t\tformData.append(\"file\", fileToUpload.rawFile, fileToUpload.fileItem?.name);\n\t\t}\n\n\t\ttry {\n\t\t\tconst response = await new AxiosApiClient(\"\", undefined, undefined, true).post(upload.url, formData, {\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": upload.type === \"base64\" ? \"application/json\" : \"multipart/form-data\",\n\t\t\t\t\t...upload.headers,\n\t\t\t\t},\n\t\t\t\tonUploadProgress: (progressEvent) => {\n\t\t\t\t\tconst { loaded, total } = progressEvent;\n\t\t\t\t\tsetFiles((prev) => {\n\t\t\t\t\t\tif (!prev[index]) return prev;\n\t\t\t\t\t\tconst updatedFiles = [...prev];\n\t\t\t\t\t\tupdatedFiles[index] = {\n\t\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\t\tfileItem: {\n\t\t\t\t\t\t\t\t...prev[index].fileItem,\n\t\t\t\t\t\t\t\tprogress: loaded / total,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn updatedFiles;\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst thumbnailImageDataUrl = await generateThumbnail(fileToUpload);\n\t\t\tsetFiles((prev) => {\n\t\t\t\tif (!prev[index]) return prev;\n\t\t\t\tconst updatedFiles = [...prev];\n\t\t\t\tupdatedFiles[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tfileItem: {\n\t\t\t\t\t\t...prev[index].fileItem,\n\t\t\t\t\t\tprogress: 1,\n\t\t\t\t\t\tthumbnailImageDataUrl,\n\t\t\t\t\t},\n\t\t\t\t\tfileUrl: response?.[\"data\"]?.[\"fileUrl\"],\n\t\t\t\t\tstatus: EFileStatus.UPLOADED,\n\t\t\t\t\tuploadResponse: response,\n\t\t\t\t};\n\t\t\t\treturn updatedFiles;\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tdispatchFieldEvent<TUploadErrorDetail>(\"upload-error\", id, {\n\t\t\t\tfileId: fileToUpload.fileItem.id,\n\t\t\t\terrorData: (err as AxiosError)?.response?.data,\n\t\t\t});\n\n\t\t\tthrow err;\n\t\t}\n\t};\n\n\tconst deleteFile = (index: number) => {\n\t\tsetFiles((prev) => prev.filter((_file, i) => i !== index));\n\t};\n\n\tconst compressImageFile = async (fileToCompress: IFile) => {\n\t\tif (maxFileSizeRule.maxSizeInKb > 0 && compressImages) {\n\t\t\tconst maxSizeInB = maxFileSizeRule.maxSizeInKb * 1024;\n\t\t\tif (fileToCompress.rawFile.size > maxSizeInB) {\n\t\t\t\tconst fileType = await FileHelper.getType(fileToCompress.rawFile);\n\t\t\t\tif (RESIZEABLE_IMAGE_TYPES.includes(fileType.mime)) {\n\t\t\t\t\tlet fileOrBlob = await ImageHelper.compressImage(fileToCompress.rawFile, {\n\t\t\t\t\t\tfileSize: maxFileSizeRule.maxSizeInKb,\n\t\t\t\t\t});\n\t\t\t\t\tif (fileOrBlob instanceof Blob) {\n\t\t\t\t\t\tfileOrBlob = FileHelper.blobToFile(fileOrBlob, {\n\t\t\t\t\t\t\tname: fileToCompress.rawFile.name,\n\t\t\t\t\t\t\tlastModified: fileToCompress.rawFile.lastModified,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...fileToCompress,\n\t\t\t\t\t\trawFile: fileOrBlob,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fileToCompress;\n\t};\n\n\t// =============================================================================\n\t// RENDER FUNCTIONS\n\t// =============================================================================\n\treturn null;\n};\n\nexport default FileUploadManager;\n"],"names":["RESIZEABLE_IMAGE_TYPES","FileUploadManager","props","compressImages","fileTypeRule","hideThumbnail","id","maxFileSizeRule","upload","uploadRule","value","files","setFiles","setCurrentFileIds","useContext","FileUploadContext","previousValue","usePrevious","setValue","useFormContext","dispatchFieldEvent","useFieldEvent","sessionId","useRef","useEffect","current","generateRandomId","forEach","async","file","index","status","EFileStatus","INJECTED","injectFile","NONE","parseFile","UPLOAD_READY","uploadFile","TO_DELETE","deleteFile","err","handleGenericError","uploadedFiles","filter","UPLOADED","hasNotPrefilledFiles","addedFrom","length","gotDeleteFiles","shouldDirty","map","fileItem","dataURL","fileUrl","uploadResponse","type","fileId","fileName","name","shouldTouch","join","undefined","prev","updatedFiles","rawFile","errorMessage","ERROR_MESSAGES","UPLOAD","GENERIC","ERROR_GENERIC","generateThumbnail","fileType","includes","image","ImageHelper","dataUrlToImage","thumbnail","resampleImage","width","height","crop","FileHelper","fileToDataUrl","readFile","fileToRead","getType","fileTypeResult","validateFileType","fileSize","getFilesizeFromBase64","size","validateFileSize","ext","FILE_TYPE","ERROR_FORMAT","fileSizeInKb","maxSizeInKb","MAX_FILE_SIZE","ERROR_SIZE","fileToInject","INJECTING","blob","dataUrlToBlob","File","response","AxiosApiClient","responseType","get","mime","uploadData","isNaN","filesizeErrorMessage","thumbnailImageDataUrl","deduplicateFileName","progress","fileToParse","compressedFile","compressImageFile","sanitizeFileName","fileToUpload","UPLOADING","formData","FormData","append","slot","toString","post","url","headers","onUploadProgress","progressEvent","loaded","total","errorData","data","_file","i","fileToCompress","maxSizeInB","fileOrBlob","compressImage","Blob","blobToFile","lastModified"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-upload-manager.1921fbad.js","sources":["../../src/components/fields/file-upload/file-upload-manager.ts"],"sourcesContent":["import { AxiosError } from \"axios\";\nimport { useContext, useEffect, useRef } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { AxiosApiClient, FileHelper, ImageHelper, generateRandomId } from \"../../../utils\";\nimport { useFieldEvent, usePrevious } from \"../../../utils/hooks\";\nimport { ERROR_MESSAGES } from \"../../shared\";\nimport { FileUploadContext } from \"./file-upload-context\";\nimport {\n\tEFileStatus,\n\tIFile,\n\tIFileUploadSchema,\n\tIFileUploadValidationRule,\n\tIFileUploadValue,\n\tTUploadErrorDetail,\n} from \"./types\";\n\ninterface IProps {\n\tcompressImages: boolean;\n\tfileTypeRule: IFileUploadValidationRule;\n\thideThumbnail?: boolean | undefined;\n\tid: string;\n\tmaxFileSizeRule: IFileUploadValidationRule;\n\tupload: IFileUploadSchema[\"uploadOnAddingFile\"];\n\tuploadRule: IFileUploadValidationRule;\n\tvalue: IFileUploadValue[];\n}\n\nconst RESIZEABLE_IMAGE_TYPES = [\"image/jpeg\", \"image/gif\", \"image/png\"];\n\nconst FileUploadManager = (props: IProps) => {\n\t// =============================================================================\n\t// CONST, STATE, REFS\n\t// =============================================================================\n\tconst { compressImages, fileTypeRule, hideThumbnail, id, maxFileSizeRule, upload, uploadRule, value } = props;\n\tconst { files, setFiles, setCurrentFileIds } = useContext(FileUploadContext);\n\tconst previousValue = usePrevious(value);\n\tconst { setValue } = useFormContext();\n\tconst { dispatchFieldEvent } = useFieldEvent();\n\tconst sessionId = useRef<string>();\n\n\t// =============================================================================\n\t// EFFECTS\n\t// =============================================================================\n\tuseEffect(() => {\n\t\tsessionId.current = generateRandomId();\n\t}, []);\n\n\tuseEffect(\n\t\t() => {\n\t\t\t// handle file status\n\t\t\tfiles.forEach(async (file, index) => {\n\t\t\t\ttry {\n\t\t\t\t\tswitch (file.status) {\n\t\t\t\t\t\tcase EFileStatus.INJECTED:\n\t\t\t\t\t\t\tawait injectFile(file, index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase EFileStatus.NONE:\n\t\t\t\t\t\t\tawait parseFile(file, index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase EFileStatus.UPLOAD_READY:\n\t\t\t\t\t\t\tawait uploadFile(file, index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase EFileStatus.TO_DELETE:\n\t\t\t\t\t\t\tdeleteFile(index);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\thandleGenericError(index);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// track / update values\n\t\t\tconst uploadedFiles = files.filter(({ status }) => status === EFileStatus.UPLOADED);\n\t\t\tconst notPrefilledFiles = uploadedFiles.filter(({ addedFrom }) => addedFrom !== \"schema\");\n\t\t\tconst hasNotPrefilledFiles = notPrefilledFiles.length > 0;\n\t\t\tconst gotDeleteFiles = files.filter(({ status }) => status === EFileStatus.TO_DELETE).length > 0;\n\n\t\t\t/**\n\t\t\t * should dirty if\n\t\t\t * - it is dirty in the first place\n\t\t\t * - there are non-prefilled files\n\t\t\t * - user deleted file (differentiated from reset)\n\t\t\t */\n\t\t\tconst shouldDirty = hasNotPrefilledFiles || gotDeleteFiles;\n\n\t\t\tsetCurrentFileIds(uploadedFiles.map(({ fileItem }) => fileItem.id));\n\n\t\t\tsetValue(\n\t\t\t\tid,\n\t\t\t\tuploadedFiles.map(({ dataURL, fileItem, fileUrl, uploadResponse }) => ({\n\t\t\t\t\t...(upload.type === \"base64\" ? { dataURL } : {}),\n\t\t\t\t\tfileId: fileItem.id,\n\t\t\t\t\tfileName: fileItem.name,\n\t\t\t\t\tfileUrl,\n\t\t\t\t\tuploadResponse,\n\t\t\t\t})),\n\t\t\t\t{ shouldDirty, shouldTouch: hasNotPrefilledFiles }\n\t\t\t);\n\t\t}, // eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[files.map(({ fileItem, status }) => `${fileItem?.id}-${status}`).join(\",\")]\n\t);\n\n\t// for reset\n\tuseEffect(() => {\n\t\tif (previousValue !== undefined && value === undefined && files.length) {\n\t\t\tsetFiles([]);\n\t\t}\n\t}, [files, previousValue, setFiles, value]);\n\n\t// =============================================================================\n\t// HELPER FUNCTIONS\n\t// =============================================================================\n\n\tconst handleGenericError = (index: number) => {\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tconst file = prev[index];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...file,\n\t\t\t\tfileItem: {\n\t\t\t\t\t...file.fileItem,\n\t\t\t\t\tid: file.fileItem?.id || generateRandomId(),\n\t\t\t\t\tname: file.rawFile.name,\n\t\t\t\t\terrorMessage: uploadRule?.errorMessage || ERROR_MESSAGES.UPLOAD().GENERIC,\n\t\t\t\t},\n\t\t\t\tstatus: EFileStatus.ERROR_GENERIC,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\t};\n\n\tconst generateThumbnail = async (file: IFile, fileType?: string | undefined) => {\n\t\tif (hideThumbnail !== true && RESIZEABLE_IMAGE_TYPES.includes(fileType || file.fileItem?.type)) {\n\t\t\tconst image = await ImageHelper.dataUrlToImage(file.dataURL);\n\t\t\tconst thumbnail = await ImageHelper.resampleImage(image, { width: 94, height: 94, crop: true });\n\t\t\treturn await FileHelper.fileToDataUrl(thumbnail);\n\t\t}\n\t\treturn \"\";\n\t};\n\n\tconst readFile = async (fileToRead: IFile) => {\n\t\tconst { addedFrom, dataURL, rawFile } = fileToRead;\n\t\tconst fileType = await FileHelper.getType(rawFile);\n\t\tconst fileTypeResult = validateFileType(fileType);\n\n\t\tif (fileTypeResult?.status < 0) {\n\t\t\treturn fileTypeResult;\n\t\t}\n\n\t\tconst fileSize = upload.type === \"base64\" ? FileHelper.getFilesizeFromBase64(dataURL) : rawFile.size;\n\t\tconst { errorMessage, status } = validateFileSize(fileSize);\n\t\tif (status < 0) {\n\t\t\treturn { errorMessage, fileType, status };\n\t\t}\n\n\t\tif (addedFrom === \"schema\") {\n\t\t\treturn {\n\t\t\t\tfileType,\n\t\t\t\tstatus: EFileStatus.UPLOADED,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tfileType,\n\t\t\tstatus: EFileStatus.UPLOAD_READY,\n\t\t};\n\t};\n\n\tconst validateFileType = (fileType: { mime: string; ext: string }) => {\n\t\tconst validFileType = fileTypeRule.fileType?.length ? fileTypeRule.fileType?.includes(fileType.ext) : true;\n\n\t\tif (!validFileType) {\n\t\t\treturn {\n\t\t\t\terrorMessage:\n\t\t\t\t\tfileTypeRule.errorMessage || ERROR_MESSAGES.UPLOAD().FILE_TYPE(fileTypeRule.fileType || []),\n\t\t\t\tfileType,\n\t\t\t\tstatus: EFileStatus.ERROR_FORMAT,\n\t\t\t};\n\t\t}\n\n\t\treturn {};\n\t};\n\n\tconst validateFileSize = (fileSizeInKb: number) => {\n\t\tif (maxFileSizeRule.maxSizeInKb > 0) {\n\t\t\tconst maxSizeInB = maxFileSizeRule.maxSizeInKb * 1024;\n\t\t\tif (fileSizeInKb > maxSizeInB) {\n\t\t\t\treturn {\n\t\t\t\t\terrorMessage:\n\t\t\t\t\t\tmaxFileSizeRule.errorMessage ||\n\t\t\t\t\t\tERROR_MESSAGES.UPLOAD().MAX_FILE_SIZE(maxFileSizeRule.maxSizeInKb),\n\t\t\t\t\tstatus: EFileStatus.ERROR_SIZE,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {};\n\t};\n\n\t// =============================================================================\n\t// FILE STATUS HANDLERS\n\t// =============================================================================\n\tconst injectFile = async (fileToInject: IFile, index: number) => {\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...prev[index],\n\t\t\t\tstatus: EFileStatus.INJECTING,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\n\t\tlet rawFile: File;\n\t\tif (fileToInject.dataURL) {\n\t\t\tconst blob = await FileHelper.dataUrlToBlob(fileToInject.dataURL);\n\t\t\trawFile = new File([blob], fileToInject.rawFile.name);\n\t\t} else if (fileToInject.fileUrl) {\n\t\t\tconst response: Blob = await new AxiosApiClient(\"\", undefined, undefined, false, {\n\t\t\t\tresponseType: \"blob\",\n\t\t\t}).get(fileToInject.fileUrl);\n\t\t\tconst fileType = await FileHelper.getType(new File([response], fileToInject.rawFile.name));\n\t\t\trawFile = new File([response], fileToInject.rawFile.name, { type: fileType.mime });\n\t\t\tfileToInject.dataURL = await FileHelper.fileToDataUrl(rawFile);\n\t\t}\n\n\t\t// rawFile may not be available because some use cases is not able to return dataURL / fileUrl due to security concerns\n\t\t// in such cases, we will rely on the uploadResponse for file info\n\t\tconst uploadData = fileToInject.uploadResponse?.[\"data\"] || fileToInject.uploadResponse;\n\t\tconst { errorMessage, fileType } = rawFile\n\t\t\t? await readFile({ ...fileToInject, rawFile })\n\t\t\t: validateFileType({\n\t\t\t\t\tmime: uploadData?.[\"mimeType\"],\n\t\t\t\t\text: uploadData?.[\"ext\"],\n\t\t\t });\n\n\t\tlet size = rawFile?.size || uploadData?.[\"fileSize\"] || 0;\n\t\tif (isNaN(size)) {\n\t\t\tsize = 0;\n\t\t}\n\t\tconst { errorMessage: filesizeErrorMessage } = validateFileSize(size);\n\n\t\tconst thumbnailImageDataUrl = rawFile ? await generateThumbnail(fileToInject, fileType?.mime) : undefined;\n\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...fileToInject,\n\t\t\t\tfileItem: {\n\t\t\t\t\terrorMessage: errorMessage || filesizeErrorMessage,\n\t\t\t\t\tid: fileToInject.fileItem?.id || generateRandomId(),\n\t\t\t\t\tname: FileHelper.deduplicateFileName(\n\t\t\t\t\t\tfiles.map(({ fileItem }) => fileItem.name),\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\trawFile?.name || fileToInject.rawFile.name\n\t\t\t\t\t),\n\t\t\t\t\tprogress: 1,\n\t\t\t\t\tsize,\n\t\t\t\t\ttype: fileType?.mime || uploadData?.[\"mimeType\"],\n\t\t\t\t\tthumbnailImageDataUrl,\n\t\t\t\t},\n\t\t\t\trawFile,\n\t\t\t\tstatus: EFileStatus.UPLOADED,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\t};\n\n\tconst parseFile = async (fileToParse: IFile, index: number) => {\n\t\tconst compressedFile = await compressImageFile(fileToParse);\n\t\tconst dataURL = await FileHelper.fileToDataUrl(compressedFile.rawFile);\n\t\tconst { errorMessage, fileType, status } = await readFile({ dataURL, ...compressedFile });\n\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...compressedFile,\n\t\t\t\tdataURL,\n\t\t\t\tfileItem: {\n\t\t\t\t\terrorMessage,\n\t\t\t\t\tid: generateRandomId(),\n\t\t\t\t\tname: FileHelper.deduplicateFileName(\n\t\t\t\t\t\tfiles.map(({ fileItem }) => fileItem?.name),\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tFileHelper.sanitizeFileName(compressedFile.rawFile.name)\n\t\t\t\t\t),\n\t\t\t\t\tsize: compressedFile.rawFile.size,\n\t\t\t\t\ttype: fileType.mime,\n\t\t\t\t\tprogress: 0,\n\t\t\t\t},\n\t\t\t\tstatus,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\t};\n\n\tconst uploadFile = async (fileToUpload: IFile, index: number) => {\n\t\tsetFiles((prev) => {\n\t\t\tconst updatedFiles = [...prev];\n\t\t\tupdatedFiles[index] = {\n\t\t\t\t...prev[index],\n\t\t\t\tstatus: EFileStatus.UPLOADING,\n\t\t\t};\n\t\t\treturn updatedFiles;\n\t\t});\n\n\t\tconst formData = new FormData();\n\t\tformData.append(\"sessionId\", upload?.sessionId || sessionId.current || \"\");\n\t\tformData.append(\"fileId\", fileToUpload.fileItem.id);\n\t\tformData.append(\"slot\", fileToUpload.slot.toString());\n\t\tif (upload.type === \"base64\") {\n\t\t\tformData.append(\"dataURL\", fileToUpload.dataURL);\n\t\t} else if (upload.type === \"multipart\") {\n\t\t\tformData.append(\"file\", fileToUpload.rawFile, fileToUpload.fileItem?.name);\n\t\t}\n\n\t\ttry {\n\t\t\tconst response = await new AxiosApiClient(\"\", undefined, undefined, true).post(upload.url, formData, {\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": upload.type === \"base64\" ? \"application/json\" : \"multipart/form-data\",\n\t\t\t\t\t...upload.headers,\n\t\t\t\t},\n\t\t\t\tonUploadProgress: (progressEvent) => {\n\t\t\t\t\tconst { loaded, total } = progressEvent;\n\t\t\t\t\tsetFiles((prev) => {\n\t\t\t\t\t\tif (!prev[index]) return prev;\n\t\t\t\t\t\tconst updatedFiles = [...prev];\n\t\t\t\t\t\tupdatedFiles[index] = {\n\t\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\t\tfileItem: {\n\t\t\t\t\t\t\t\t...prev[index].fileItem,\n\t\t\t\t\t\t\t\tprogress: loaded / total,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn updatedFiles;\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst thumbnailImageDataUrl = await generateThumbnail(fileToUpload);\n\t\t\tsetFiles((prev) => {\n\t\t\t\tif (!prev[index]) return prev;\n\t\t\t\tconst updatedFiles = [...prev];\n\t\t\t\tupdatedFiles[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tfileItem: {\n\t\t\t\t\t\t...prev[index].fileItem,\n\t\t\t\t\t\tprogress: 1,\n\t\t\t\t\t\tthumbnailImageDataUrl,\n\t\t\t\t\t},\n\t\t\t\t\tfileUrl: response?.[\"data\"]?.[\"fileUrl\"],\n\t\t\t\t\tstatus: EFileStatus.UPLOADED,\n\t\t\t\t\tuploadResponse: response,\n\t\t\t\t};\n\t\t\t\treturn updatedFiles;\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tdispatchFieldEvent<TUploadErrorDetail>(\"upload-error\", id, {\n\t\t\t\tfileId: fileToUpload.fileItem.id,\n\t\t\t\terrorData: (err as AxiosError)?.response?.data,\n\t\t\t});\n\n\t\t\tthrow err;\n\t\t}\n\t};\n\n\tconst deleteFile = (index: number) => {\n\t\tsetFiles((prev) => prev.filter((_file, i) => i !== index));\n\t};\n\n\tconst compressImageFile = async (fileToCompress: IFile) => {\n\t\tif (maxFileSizeRule.maxSizeInKb > 0 && compressImages) {\n\t\t\tconst maxSizeInB = maxFileSizeRule.maxSizeInKb * 1024;\n\t\t\tif (fileToCompress.rawFile.size > maxSizeInB) {\n\t\t\t\tconst fileType = await FileHelper.getType(fileToCompress.rawFile);\n\t\t\t\tif (RESIZEABLE_IMAGE_TYPES.includes(fileType.mime)) {\n\t\t\t\t\tlet fileOrBlob = await ImageHelper.compressImage(fileToCompress.rawFile, {\n\t\t\t\t\t\tfileSize: maxFileSizeRule.maxSizeInKb,\n\t\t\t\t\t});\n\t\t\t\t\tif (fileOrBlob instanceof Blob) {\n\t\t\t\t\t\tfileOrBlob = FileHelper.blobToFile(fileOrBlob, {\n\t\t\t\t\t\t\tname: fileToCompress.rawFile.name,\n\t\t\t\t\t\t\tlastModified: fileToCompress.rawFile.lastModified,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...fileToCompress,\n\t\t\t\t\t\trawFile: fileOrBlob,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fileToCompress;\n\t};\n\n\t// =============================================================================\n\t// RENDER FUNCTIONS\n\t// =============================================================================\n\treturn null;\n};\n\nexport default FileUploadManager;\n"],"names":["RESIZEABLE_IMAGE_TYPES","FileUploadManager","props","compressImages","fileTypeRule","hideThumbnail","id","maxFileSizeRule","upload","uploadRule","value","files","setFiles","setCurrentFileIds","useContext","FileUploadContext","previousValue","usePrevious","setValue","useFormContext","dispatchFieldEvent","useFieldEvent","sessionId","useRef","useEffect","current","generateRandomId","forEach","async","file","index","status","EFileStatus","INJECTED","injectFile","NONE","parseFile","UPLOAD_READY","uploadFile","TO_DELETE","deleteFile","err","handleGenericError","uploadedFiles","filter","UPLOADED","hasNotPrefilledFiles","addedFrom","length","gotDeleteFiles","shouldDirty","map","fileItem","dataURL","fileUrl","uploadResponse","type","fileId","fileName","name","shouldTouch","join","undefined","prev","updatedFiles","rawFile","errorMessage","ERROR_MESSAGES","UPLOAD","GENERIC","ERROR_GENERIC","generateThumbnail","fileType","includes","image","ImageHelper","dataUrlToImage","thumbnail","resampleImage","width","height","crop","FileHelper","fileToDataUrl","readFile","fileToRead","getType","fileTypeResult","validateFileType","fileSize","getFilesizeFromBase64","size","validateFileSize","ext","FILE_TYPE","ERROR_FORMAT","fileSizeInKb","maxSizeInKb","MAX_FILE_SIZE","ERROR_SIZE","fileToInject","INJECTING","blob","dataUrlToBlob","File","response","AxiosApiClient","responseType","get","mime","uploadData","isNaN","filesizeErrorMessage","thumbnailImageDataUrl","deduplicateFileName","progress","fileToParse","compressedFile","compressImageFile","sanitizeFileName","fileToUpload","UPLOADING","formData","FormData","append","slot","toString","post","url","headers","onUploadProgress","progressEvent","loaded","total","errorData","data","_file","i","fileToCompress","maxSizeInB","fileOrBlob","compressImage","Blob","blobToFile","lastModified"],"mappings":"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"}
|
|
@@ -436,7 +436,7 @@ function vN(e){return"[object Object]"===Object.prototype.toString.call(e)}Objec
|
|
|
436
436
|
cursor: pointer;
|
|
437
437
|
`,OF=M(k)`
|
|
438
438
|
margin-top: 0.5rem;
|
|
439
|
-
`;var NF=ci,CF=li,DF=mn?mn.isConcatSpreadable:void 0;var LF=Ma,IF=function(e){return CF(e)||NF(e)||!!(DF&&e&&e[DF])};var kF=function e(t,n,r,i,a){var o=-1,s=t.length;for(r||(r=IF),a||(a=[]);++o<s;){var u=t[o];n>0&&r(u)?n>1?e(u,n-1,r,i,a):LF(a,u):i||(a[a.length]=u)}return a};var $F=qa,RF=function(){},zF=$F&&1/$S(new $F([,-0]))[1]==1/0?function(e){return new $F(e)}:RF,FF=kA,PF=jA,ZF=BA,UF=VA,jF=zF,BF=$S;var VF=function(e,t,n){var r=-1,i=PF,a=e.length,o=!0,s=[],u=s;if(n)o=!1,i=ZF;else if(a>=200){var c=t?null:jF(e);if(c)return BF(c);o=!1,i=UF,u=new FF}else u=t?[]:s;e:for(;++r<a;){var l=e[r],d=t?t(l):l;if(l=n||0!==l?l:0,o&&d==d){for(var f=u.length;f--;)if(u[f]===d)continue e;t&&u.push(d),s.push(l)}else i(u,d,n)||(u!==s&&u.push(d),s.push(l))}return s},GF=X$,HF=kF,YF=VF;var WF=function(e,t,n){var r=e.length;if(r<2)return r?YF(e[0]):[];for(var i=-1,a=Array(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=GF(a[i]||o,e[s],t,n));return YF(HF(a,1),t,n)},qF=ma,KF=WF,JF=mE,XF=fE((function(e){return KF(qF(e,JF))}));const QF=a({files:[],setFiles:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),eP=({children:t})=>{const[n,r]=o([]),[i,a]=o([]),s=c((()=>({files:n,setFiles:r,currentFileIds:i,setCurrentFileIds:a})),[n,i]);return e(QF.Provider,{value:s,children:t})};var tP,nP;!function(e){e.findAvailableSlot=e=>{const t=e.reduce(((e,{slot:t})=>t>e?t:e),0),n=Math.max(t,e.length),r=Array(n).fill(0).map(((e,t)=>t)),i=e.map((({slot:e})=>e));return r.filter((e=>!i.includes(e)))[0]??n}}(tP||(tP={})),function(e){e[e.INJECTED=-99]="INJECTED",e[e.INJECTING=-98]="INJECTING",e[e.TO_DELETE=-4]="TO_DELETE",e[e.ERROR_FORMAT=-3]="ERROR_FORMAT",e[e.ERROR_GENERIC=-2]="ERROR_GENERIC",e[e.ERROR_SIZE=-1]="ERROR_SIZE",e[e.NONE=0]="NONE",e[e.UPLOAD_READY=4]="UPLOAD_READY",e[e.UPLOADING=5]="UPLOADING",e[e.UPLOADED=6]="UPLOADED"}(nP||(nP={}));const rP=y((()=>import("./file-upload-manager.
|
|
439
|
+
`;var NF=ci,CF=li,DF=mn?mn.isConcatSpreadable:void 0;var LF=Ma,IF=function(e){return CF(e)||NF(e)||!!(DF&&e&&e[DF])};var kF=function e(t,n,r,i,a){var o=-1,s=t.length;for(r||(r=IF),a||(a=[]);++o<s;){var u=t[o];n>0&&r(u)?n>1?e(u,n-1,r,i,a):LF(a,u):i||(a[a.length]=u)}return a};var $F=qa,RF=function(){},zF=$F&&1/$S(new $F([,-0]))[1]==1/0?function(e){return new $F(e)}:RF,FF=kA,PF=jA,ZF=BA,UF=VA,jF=zF,BF=$S;var VF=function(e,t,n){var r=-1,i=PF,a=e.length,o=!0,s=[],u=s;if(n)o=!1,i=ZF;else if(a>=200){var c=t?null:jF(e);if(c)return BF(c);o=!1,i=UF,u=new FF}else u=t?[]:s;e:for(;++r<a;){var l=e[r],d=t?t(l):l;if(l=n||0!==l?l:0,o&&d==d){for(var f=u.length;f--;)if(u[f]===d)continue e;t&&u.push(d),s.push(l)}else i(u,d,n)||(u!==s&&u.push(d),s.push(l))}return s},GF=X$,HF=kF,YF=VF;var WF=function(e,t,n){var r=e.length;if(r<2)return r?YF(e[0]):[];for(var i=-1,a=Array(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=GF(a[i]||o,e[s],t,n));return YF(HF(a,1),t,n)},qF=ma,KF=WF,JF=mE,XF=fE((function(e){return KF(qF(e,JF))}));const QF=a({files:[],setFiles:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),eP=({children:t})=>{const[n,r]=o([]),[i,a]=o([]),s=c((()=>({files:n,setFiles:r,currentFileIds:i,setCurrentFileIds:a})),[n,i]);return e(QF.Provider,{value:s,children:t})};var tP,nP;!function(e){e.findAvailableSlot=e=>{const t=e.reduce(((e,{slot:t})=>t>e?t:e),0),n=Math.max(t,e.length),r=Array(n).fill(0).map(((e,t)=>t)),i=e.map((({slot:e})=>e));return r.filter((e=>!i.includes(e)))[0]??n}}(tP||(tP={})),function(e){e[e.INJECTED=-99]="INJECTED",e[e.INJECTING=-98]="INJECTING",e[e.TO_DELETE=-4]="TO_DELETE",e[e.ERROR_FORMAT=-3]="ERROR_FORMAT",e[e.ERROR_GENERIC=-2]="ERROR_GENERIC",e[e.ERROR_SIZE=-1]="ERROR_SIZE",e[e.NONE=0]="NONE",e[e.UPLOAD_READY=4]="UPLOAD_READY",e[e.UPLOADING=5]="UPLOADING",e[e.UPLOADED=6]="UPLOADED"}(nP||(nP={}));const rP=y((()=>import("./file-upload-manager.1921fbad.js"))),iP=r=>{const{id:i,error:a,isDirty:c,isTouched:f,value:p,schema:{compressImages:h,description:m,hideThumbnail:g,label:y,uploadOnAddingFile:v,validation:b,warning:A,...E},warning:S}=r,{files:w,currentFileIds:x,setFiles:M}=l(QF),T=s({}),O=s({}),N=s({}),C=s({}),{setFieldValidationConfig:D}=p$(),{dispatchFieldEvent:L}=mk(),{clearErrors:I,setError:k}=Be(),[$,R]=o(),z=s(w),F=d(((e,t)=>{const n=[...t],r=n.length;e.forEach(((e,t)=>{!O.current.max||r+t<O.current.max?(n.push({...e,slot:tP.findAvailableSlot(n)}),I(i)):k(i,{type:"max",message:O.current.errorMessage||Am.UPLOAD().MAX_FILES(O.current.max)})})),M(n)}),[I,i,k,M]);u((()=>{z.current=w}),[w]),u((()=>{L("mount",i)}),[L,i]),u((()=>{const e=b?.find((e=>"required"in e)),t=b?.find((e=>"fileType"in e)),n=b?.find((e=>"maxSizeInKb"in e)),r=b?.find((e=>"upload"in e&&e.upload));T.current=t?.fileType?t:{},N.current=n?.maxSizeInKb>0?n:{},C.current=r||{};const a=b?.find((e=>"length"in e)),o=b?.find((e=>"max"in e));O.current=a?{max:a.length,errorMessage:a.errorMessage}:o?{max:o.max,errorMessage:o.errorMessage}:{},D(i,XM().of(KM().shape({dataURL:$x(),fileId:$x(),fileName:$x(),fileUrl:$x(),uploadResponse:KM()})).test("is-empty-array",e?.errorMessage||Am.UPLOAD().REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",N.current.errorMessage||Am.UPLOAD().MAX_FILE_SIZE(N.current.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&N.current.maxSizeInKb)||w.filter((e=>e.status===nP.UPLOADED)).every((e=>{if("base64"===v.type&&e.dataURL)return bm.getFilesizeFromBase64(e.dataURL)<=1024*N.current.maxSizeInKb;if("multipart"===v.type){const t=e.uploadResponse?.data||e.uploadResponse;let n=e.rawFile?.size||t?.fileSize;return isNaN(n)&&(n=0),n<=1024*N.current.maxSizeInKb}})))).test("max-files",O.current.errorMessage||Am.UPLOAD().MAX_FILES(O.current.max),(e=>!(e&&Array.isArray(e)&&O.current.max)||e.length<=O.current.max)).test("no-interim-statuses",Am.UPLOAD().UPLOADING,(()=>{const e=new Set([nP.INJECTED,nP.INJECTING,nP.NONE,nP.UPLOAD_READY,nP.UPLOADING]);return!z.current.some((t=>e.has(t.status)))})),b)}),[b,w.map((e=>e.status)).join(",")]),u((()=>{if(!c&&!f){const e=Array.isArray(p)?p:[];if(!(XF(e.map((({fileId:e})=>e)),x).length>0))return;const t=[];e.forEach((({dataURL:e,fileId:n,fileName:r,fileUrl:i,uploadResponse:a})=>{t.push({addedFrom:"schema",dataURL:e,fileItem:{id:n},uploadResponse:a,fileUrl:i,rawFile:{name:r},slot:null,status:nP.INJECTED})})),F(t,[])}}),[F,c,f,x,p]),u((()=>{if(a?.message)try{const{message:e,fileErrors:t}=JSON.parse(a.message);t&&M(z.current.map((e=>{const n=t[e.fileItem.id];return n?{...e,fileItem:{...e.fileItem,errorMessage:n}}:e}))),e&&R(e)}catch(e){R(a.message)}else R(void 0)}),[a?.message,M]);const P=t=>t?e(kI,{children:t}):null;return t(n,{children:[e(_,{fallback:null,children:e(rP,{compressImages:!!h,fileTypeRule:T.current,hideThumbnail:g,id:i,maxFileSizeRule:N.current,upload:v,uploadRule:C.current,value:p})}),e(J,{...E,accept:T.current.fileType?.map((e=>`.${e}`)).join(","),description:P(m),errorMessage:P($),fileItems:w.filter((({fileItem:e,status:t})=>!!e&&t!==nP.INJECTED&&t!==nP.INJECTING)).map((({fileItem:e})=>e)),id:i,maxFiles:O.current.max,onChange:e=>{F(e.map((e=>({addedFrom:"input",rawFile:e,slot:null,status:nP.NONE}))),w)},onDelete:e=>{M(w.map((t=>t.fileItem.id!==e.id?t:{...t,status:nP.TO_DELETE}))),I(i)},title:P(y),warning:P(S||A)})]})},aP=a({images:[],setImages:()=>null,errorCount:0,setErrorCount:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),oP=({children:t})=>{const[n,r]=o([]),[i,a]=o(0),[s,u]=o([]);return e(aP.Provider,{value:{images:n,setImages:r,errorCount:i,setErrorCount:a,currentFileIds:s,setCurrentFileIds:u},children:t})};var sP;!function(e){e.findAvailableSlot=e=>{const t=e.reduce(((e,{slot:t})=>t>e?t:e),0),n=Math.max(t,e.length),r=Array(n).fill(0).map(((e,t)=>t)),i=e.map((({slot:e})=>e));return r.filter((e=>!i.includes(e)))[0]??n}}(sP||(sP={}));const uP=["jpg","gif","png","heic","heif","webp"];var cP;!function(e){e[e.INJECTED=-99]="INJECTED",e[e.ERROR_CUSTOM_MUTED=-7]="ERROR_CUSTOM_MUTED",e[e.ERROR_EXCEED=-6]="ERROR_EXCEED",e[e.ERROR_CUSTOM=-5]="ERROR_CUSTOM",e[e.TO_DELETE=-4]="TO_DELETE",e[e.ERROR_FORMAT=-3]="ERROR_FORMAT",e[e.ERROR_GENERIC=-2]="ERROR_GENERIC",e[e.ERROR_SIZE=-1]="ERROR_SIZE",e[e.NONE=0]="NONE",e[e.TO_RECOMPRESS=1]="TO_RECOMPRESS",e[e.COMPRESSED=2]="COMPRESSED",e[e.RECOMPRESSED=2]="RECOMPRESSED",e[e.CONVERTED=2]="CONVERTED",e[e.EDITED=3]="EDITED",e[e.UPLOAD_READY=4]="UPLOAD_READY",e[e.UPLOADING=5]="UPLOADING",e[e.UPLOADED=6]="UPLOADED",e[e.PENDING=7]="PENDING"}(cP||(cP={}));var lP,dP={exports:{}},fP={exports:{}},pP={};var hP,mP,gP,yP,_P,vP,bP,AP,EP,SP,wP,xP,MP,TP,OP={};
|
|
440
440
|
/** @license React v16.13.1
|
|
441
441
|
* react-is.development.js
|
|
442
442
|
*
|
|
@@ -930,7 +930,7 @@ object-assign
|
|
|
930
930
|
stroke: ${x.Primary};
|
|
931
931
|
stroke-width: 1;
|
|
932
932
|
}
|
|
933
|
-
`,GU=r=>{const{accepts:i,activeFileIndex:a,capture:o,id:u="image-thumbnails",images:c,maxFiles:l,onClickThumbnail:d,onSelectFile:f,multiple:p}=r,h=s(null),m=N(),g=async e=>{const t=Array.from(e.target.files||[]);t.length&&setTimeout((()=>{f(t)}),100)},y=()=>h?.current?.click();return t(RU,{id:xA.generateId(u),children:[c.map(((n,r)=>n.status===cP.NONE?e(UU,{children:[...Array(4)].map(((t,n)=>e(ZU,{},`dot-${n}`)))},r):n.status>cP.NONE||n.status===cP.ERROR_CUSTOM_MUTED?e(zU,{id:xA.generateId(u,`item-${r+1}`),"data-testid":xA.generateId(u,`item-${r+1}`),src:n.thumbnailDataURL||n.dataURL||"https://assets.life.gov.sg/web-frontend-engine/img/icons/photo-placeholder-add.svg",type:"button","aria-label":`thumbnail of ${n.name}`,onClick:()=>d(r),children:e(jU,{isSelected:a===r})},r):"reviewModal"===n.addedFrom||n.status<cP.NONE?t(zU,{id:xA.generateId(u,`item-${r+1}`),"data-testid":xA.generateId(u,`item-${r+1}`),type:"button","aria-label":`error with ${n.name}`,onClick:()=>d(r),error:!0,children:[e(jU,{isSelected:a===r}),e(FU,{})]},r):void 0)),(c.filter((({status:e,addedFrom:t})=>e>=cP.NONE||e===cP.ERROR_CUSTOM_MUTED||"reviewModal"===t)).length<l||!l)&&t(n,{children:[e(BU,{id:xA.generateId(u,"file-input"),"data-testid":xA.generateId(u,"file-input"),type:"file","aria-hidden":"true",tabIndex:-1,capture:o,ref:h,accept:i.map((e=>`.${e}`)).join(", "),onChange:g,multiple:p,value:""}),e(VU,{type:"button",id:xA.generateId(u,"add-image-button"),"data-testid":xA.generateId(u,"add-image-button"),"aria-label":"add image",onClick:y,theme:m||ie,children:e(ae,{})})]})]})},HU=y((()=>import("./index.
|
|
933
|
+
`,GU=r=>{const{accepts:i,activeFileIndex:a,capture:o,id:u="image-thumbnails",images:c,maxFiles:l,onClickThumbnail:d,onSelectFile:f,multiple:p}=r,h=s(null),m=N(),g=async e=>{const t=Array.from(e.target.files||[]);t.length&&setTimeout((()=>{f(t)}),100)},y=()=>h?.current?.click();return t(RU,{id:xA.generateId(u),children:[c.map(((n,r)=>n.status===cP.NONE?e(UU,{children:[...Array(4)].map(((t,n)=>e(ZU,{},`dot-${n}`)))},r):n.status>cP.NONE||n.status===cP.ERROR_CUSTOM_MUTED?e(zU,{id:xA.generateId(u,`item-${r+1}`),"data-testid":xA.generateId(u,`item-${r+1}`),src:n.thumbnailDataURL||n.dataURL||"https://assets.life.gov.sg/web-frontend-engine/img/icons/photo-placeholder-add.svg",type:"button","aria-label":`thumbnail of ${n.name}`,onClick:()=>d(r),children:e(jU,{isSelected:a===r})},r):"reviewModal"===n.addedFrom||n.status<cP.NONE?t(zU,{id:xA.generateId(u,`item-${r+1}`),"data-testid":xA.generateId(u,`item-${r+1}`),type:"button","aria-label":`error with ${n.name}`,onClick:()=>d(r),error:!0,children:[e(jU,{isSelected:a===r}),e(FU,{})]},r):void 0)),(c.filter((({status:e,addedFrom:t})=>e>=cP.NONE||e===cP.ERROR_CUSTOM_MUTED||"reviewModal"===t)).length<l||!l)&&t(n,{children:[e(BU,{id:xA.generateId(u,"file-input"),"data-testid":xA.generateId(u,"file-input"),type:"file","aria-hidden":"true",tabIndex:-1,capture:o,ref:h,accept:i.map((e=>`.${e}`)).join(", "),onChange:g,multiple:p,value:""}),e(VU,{type:"button",id:xA.generateId(u,"add-image-button"),"data-testid":xA.generateId(u,"add-image-button"),"aria-label":"add image",onClick:y,theme:m||ie,children:e(ae,{})})]})]})},HU=y((()=>import("./index.c7765648.js"))),YU=[{color:"#282828",label:"black"},{color:"#FFF",colorScheme:"light",label:"white"},{color:"#017cd3",label:"blue"},{color:"#fb0101",label:"red"},{color:"#22910c",label:"green"},{color:"#f8e821",label:"yellow"}],WU=r=>{const{accepts:i,capture:a,className:c,compress:f,dimensions:p,id:h="image-review",maxFiles:m,maxSizeInKb:g,onExit:y,outputType:v,show:b,multiple:A,maxFilesErrorMessage:E,imageReviewModalStyles:S}=r,{images:w,setImages:x}=l(aP),{dispatchFieldEvent:M,addFieldEventListener:T,removeFieldEventListener:O}=mk(),N=y$(b),[C,L]=o(w.length-1),[I,k]=o(!1),[$,R]=o(),z=!!w?.find((({status:e})=>e===cP.NONE)),[F,P]=o(YU[0].color),[Z,U]=o(!1),j=s(null),B=!!w?.find((({addedFrom:e,status:t})=>"reviewModal"===e&&t<=cP.NONE))||!w.length,V=d((e=>{e.detail.removePendingImages&&x((e=>e.filter((({status:e})=>e===cP.UPLOADED||e===cP.ERROR_CUSTOM_MUTED)))),y()}),[y,x]),G=e=>{!m||e.length+w.filter((({status:e,addedFrom:t})=>e>=cP.NONE||"reviewModal"===t)).length<=m?e.forEach((e=>{x((t=>{const n=sP.findAvailableSlot(t);return[...t,{id:wm(),file:e,name:e.name,dimensions:p,status:cP.NONE,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))})):x((t=>{const n=sP.findAvailableSlot(t);return[...t,{id:wm(),file:e[0],name:e[0].name,dimensions:p,status:cP.ERROR_EXCEED,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))},H=e=>{e&&(x((e=>e.map(((e,t)=>({...e,...t===C?{status:cP.TO_DELETE}:{}}))))),L(Math.max(0,C-1))),R(null)},Y=d((()=>{x((e=>e.filter((({status:e})=>e>=cP.NONE||e===cP.ERROR_CUSTOM_MUTED)).map((e=>{const t={...e};return e.drawingDataURL&&(t.dataURL=e.drawingDataURL),e.status<cP.UPLOAD_READY&&e.status>cP.NONE&&(t.status=cP.UPLOAD_READY),t.drawingDataURL=void 0,t.drawing=void 0,t}))))}),[x]),W=()=>{!M("save-review-images",h,{images:w,retry:W})||(Y(),y())},q=()=>{k(!0),P(YU[0].color)},K=async()=>{const{dataURL:e,drawing:t}=j.current?.export()||{},n=await aA.dataUrlToImage(e),r=await aA.resampleImage(n,{scale:96/n.width,type:bm.fileExtensionToMimeType(v)}),i=await bm.fileToDataUrl(r);x((n=>{const r=[...n];return r[C]={...r[C],thumbnailDataURL:i,drawingDataURL:e,drawing:t,status:f?cP.TO_RECOMPRESS:cP.EDITED},r})),k(!1),Q()},J=()=>{Q(),U(!0)},Q=()=>{P(""),U(!1)};u((()=>{const e={"trigger-save-review-images":Y,"dismiss-review-modal":V};return Object.entries(e).forEach((([e,t])=>{T(e,h,t)})),()=>{Object.entries(e).forEach((([e,t])=>{O(e,h,t)}))}}),[T,V,Y,h,O]),u((()=>{L(w.length-1)}),[w.length]),u((()=>{b?M("show-review-modal",h):N&&M("hide-review-modal",h)}),[b]);return e(D,{id:xA.generateId(h,void 0,b?"show":"hide"),className:c?`${c}-review`:void 0,show:b,children:e(mU,{className:c?`${c}-review-modal-box`:void 0,imageReviewModalStyles:S,showCloseButton:!1,children:b?t(n,{children:[e(gU,{className:c?`${c}-header`:void 0,$drawActive:I,children:t(n,I?{children:[e(bU,{id:xA.generateId(h,"clear-drawing-button"),"data-testid":xA.generateId(h,"clear-drawing-button"),onClick:()=>R("clear-drawing"),children:"Clear"}),e(bU,{id:xA.generateId(h,"save-drawing"),"data-testid":xA.generateId(h,"save-drawing"),onClick:K,children:"Save"})]}:{children:[e(yU,{id:xA.generateId(h,"close-button"),"data-testid":xA.generateId(h,"close-button"),"aria-label":"exit review modal",onClick:()=>R("exit"),children:e(X,{type:"cross"})}),e(_U,{weight:"semibold",children:"Review photos"})]})}),t(AU,{children:[w.length>0&&e(OU,{className:c?`${c}-editor`:void 0,children:e(_,{fallback:null,children:e(HU,{baseImageDataURL:w[C]?.dataURL,drawing:w[C]?.drawing,color:I?F:void 0,erase:!!I&&Z,ref:j,maxSizeInKb:g})})}),w.length>0&&e(EU,{children:"Loading Preview..."}),!I&&w[C]?.status>=cP.NONE&&t(SU,{children:[t(wU,{id:xA.generateId(h,"draw-button"),"data-testid":xA.generateId(h,"draw-button"),onClick:q,disabled:z,children:[e(MU,{$disabled:z}),e(xU,{weight:"semibold",$disabled:z,children:"Draw"})]}),t(wU,{id:xA.generateId(h,"delete-button"),"data-testid":xA.generateId(h,"delete-button"),onClick:()=>R("delete"),disabled:z,children:[e(TU,{$disabled:z}),e(xU,{weight:"semibold",$disabled:z,children:"Delete"})]})]}),w[C]?.status<cP.NONE&&e(pU,{id:`${h}-photo-error`,image:w[C],accepts:i,maxSizeInKb:g,onClickOk:()=>H(!0),maxFilesErrorMessage:E,maxFiles:m})]}),e(NU,{className:c?`${c}-footer`:void 0,children:t(n,I?{children:[e(DU,{id:xA.generateId(h,"eraser-button"),"data-testid":xA.generateId(h,"eraser-button"),"aria-label":"eraser",onClick:J,children:e(LU,{$eraseMode:Z})}),e(kU,{children:YU.map((({color:t,colorScheme:n,label:r},i)=>e($U,{id:xA.generateId(h,`palette-color-${i}`),"aria-label":`${r} brush`,$color:t,$colorScheme:n,onClick:()=>(e=>{Q(),P(e)})(t),children:F===t&&e(IU,{$colorScheme:n})},t)))})]}:{children:[e(GU,{id:`${h}-image-thumbnails`,activeFileIndex:C,accepts:i,capture:a,maxFiles:m,images:w,onClickThumbnail:L,onSelectFile:G,multiple:A}),e(CU,{id:xA.generateId(h,"save-button"),"data-testid":xA.generateId(h,"save-button"),onClick:W,disabled:B,children:"Save"})]})}),e(hU,{images:w,show:$,onDecideClearDrawing:e=>{e&&j.current.clearDrawing(),R(null)},onDecideDelete:H,onDecideExit:e=>{e&&(x(w.filter((({addedFrom:e,status:t})=>t>=cP.UPLOADED||t<cP.NONE&&"dragInput"===e)).map((e=>({...e,drawingDataURL:void 0,drawing:void 0})))),y()),R(null)}})]}):e(n,{})})})},qU=y((()=>import("./index.977447f6.js"))),KU=r=>{const{schema:{buttonLabel:i,capture:a,className:s,compress:c,crop:d,description:f,dimensions:p={width:1e3,height:1e3},editImage:h,label:m,outputType:g="jpg",uploadOnAddingFile:y,validation:v,multiple:b,imageReviewModalStyles:A},id:E,isDirty:S,isTouched:w,value:x,warning:M,...T}=r,{images:O,setImages:N,currentFileIds:C}=l(aP),D=y$(O),[L,I]=o([...uP]),[k,$]=o(0),[R,z]=o(0),[F,P]=o(!1),[Z,U]=o(!1),{setFieldValidationConfig:j}=p$(),{dispatchFieldEvent:B}=mk();u((()=>{B("mount",E)}),[B,E]),u((()=>{if(!S&&!w){const e=Array.isArray(x)?x:[];if(!(XF(e.map((({fileId:e})=>e)),C).length>0))return;const t=[];e.forEach((({fileId:e,fileName:n,dataURL:r,uploadResponse:i},a)=>{const o={id:e||wm(),file:{},name:n,dimensions:{width:10,height:10},dataURL:r,status:cP.INJECTED,addedFrom:"schema",uploadProgress:100,slot:a,uploadResponse:i};t.push(o)})),N(t)}}),[S,w,C,N,x]),u((()=>{const e=v?.find((e=>"required"in e)),t=v?.find((e=>"fileType"in e)),n=v?.find((e=>"maxSizeInKb"in e));t?.fileType&&t?.fileType!==L&&I(t?.fileType),n?.maxSizeInKb&&n?.maxSizeInKb!==R&&z(n?.maxSizeInKb);const r=v?.find((e=>"length"in e)),i=v?.find((e=>"max"in e));let a;r?a={maxFiles:r.length,errorMessage:r.errorMessage}:i&&(a={maxFiles:i.max,errorMessage:i.errorMessage}),a?.maxFiles&&k!==a.maxFiles&&$(a.maxFiles),j(E,XM().of(KM().shape({fileName:$x(),dataURL:$x()})).test("is-empty-array",e?.errorMessage||Am.UPLOAD("photo").REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",n?.errorMessage||Am.UPLOAD("photo").MAX_FILE_SIZE(n?.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&n?.maxSizeInKb)||e.every((e=>bm.getFilesizeFromBase64(e.dataURL)<=1024*n?.maxSizeInKb)))),v)}),[v]),u((()=>{O.some((e=>e.status===cP.NONE))||(O.some(((e,t)=>{const n=D?.[t];if(e.status!==n?.status||e.dataURL!==n.dataURL)switch(e.status){case cP.COMPRESSED:case cP.CONVERTED:if(h&&!Z)return MA.isMobileView()?U(!0):P(!0),!0}})),0===O.length&&U(!1))}),[O.map((e=>e.status)).join(","),O.map((e=>e.dataURL)).join(",")]);const V=(e=!1)=>{e?h&&(document.body.classList.remove("lifesg-ds-overlay-open"),U(!0)):N((e=>e.map((e=>e.status<cP.UPLOAD_READY&&e.status>cP.NONE?{...e,status:cP.UPLOAD_READY}:e)))),P(!1)};return t(n,{children:[e(_,{fallback:null,children:e(qU,{accepts:L,compress:!!c,crop:!!d,dimensions:p,editImage:h,id:E,maxSizeInKb:R,outputType:g,upload:y,value:x})}),e(oU,{id:E,capture:a,className:s,label:m,description:f,buttonLabel:i,accepts:L,maxFiles:k,maxSizeInKb:R,dimensions:p,errorMessage:T.error?.message,validation:v,multiple:b,warning:M}),e(mT,{id:`${E}-review-prompt`,title:"Review photos?",size:"large",show:F,description:"This lets you check if you've selected the correct photos, and draw on them to highlight the issue.",buttons:[{id:"ok",title:"Ok",onClick:()=>V(!0)},{id:"skip",title:"Skip",buttonStyle:"secondary",onClick:()=>V()}]}),(()=>{const t=v?.find((e=>"max"in e));return e(WU,{accepts:L,dimensions:p,id:E,className:s,maxFiles:k,maxFilesErrorMessage:t?.errorMessage,maxSizeInKb:R,onExit:()=>U(!1),outputType:g,show:Z,multiple:b,capture:a,imageReviewModalStyles:A})})()]})},JU=T`
|
|
934
934
|
border: 1px solid ${x.Accent.Light[1]};
|
|
935
935
|
box-shadow: none;
|
|
936
936
|
`,XU=T`
|
|
@@ -1013,7 +1013,7 @@ object-assign
|
|
|
1013
1013
|
${e=>T`
|
|
1014
1014
|
margin-left: ${e.$readOnly?"0.25rem":"0.75rem"};
|
|
1015
1015
|
`}
|
|
1016
|
-
`,rj=n=>{const{id:r,"data-testid":i,className:a,disabled:o,readOnly:s,onFocus:u,value:c,placeholder:l,error:d}=n;return t(ej,{id:r,"data-testid":i,type:"button",className:a,disabled:o,$readOnly:s,$error:d,onFocus:u,onClick:e=>{o||e.currentTarget.focus()},tabIndex:o?-1:0,"aria-disabled":o||void 0,"aria-haspopup":"dialog","aria-readonly":s,children:[e(tj,l&&!c?{$placeholder:!0,$disabled:o,children:l}:{$disabled:o,children:c}),e(nj,{$disabled:o,$readOnly:s,"aria-hidden":"true",children:e(se,{})})]})},ij=t=>{const{id:n,label:r,className:i,locationInputPlaceholder:a="",onFocus:o,value:s,errorMessage:u,disabled:c,readOnly:l}=t;return e(W.CustomField,{id:xA.generateId(n,"location-input"),"data-testid":xA.generateId(n,"location-input"),label:r,errorMessage:u,children:e(rj,{id:xA.generateId(n,"location-input-base"),"data-testid":xA.generateId(n,"location-input-base"),disabled:c,readOnly:l,placeholder:a,onFocus:o,value:s,error:!!u,className:i})})},aj=y((()=>import("./location-modal.
|
|
1016
|
+
`,rj=n=>{const{id:r,"data-testid":i,className:a,disabled:o,readOnly:s,onFocus:u,value:c,placeholder:l,error:d}=n;return t(ej,{id:r,"data-testid":i,type:"button",className:a,disabled:o,$readOnly:s,$error:d,onFocus:u,onClick:e=>{o||e.currentTarget.focus()},tabIndex:o?-1:0,"aria-disabled":o||void 0,"aria-haspopup":"dialog","aria-readonly":s,children:[e(tj,l&&!c?{$placeholder:!0,$disabled:o,children:l}:{$disabled:o,children:c}),e(nj,{$disabled:o,$readOnly:s,"aria-hidden":"true",children:e(se,{})})]})},ij=t=>{const{id:n,label:r,className:i,locationInputPlaceholder:a="",onFocus:o,value:s,errorMessage:u,disabled:c,readOnly:l}=t;return e(W.CustomField,{id:xA.generateId(n,"location-input"),"data-testid":xA.generateId(n,"location-input"),label:r,errorMessage:u,children:e(rj,{id:xA.generateId(n,"location-input-base"),"data-testid":xA.generateId(n,"location-input-base"),disabled:c,readOnly:l,placeholder:a,onFocus:o,value:s,error:!!u,className:i})})},aj=y((()=>import("./location-modal.d71a86e7.js")));class oj extends Error{code;message;constructor(e){super(),Object.assign(this,e)}}const sj=M(S.BodySmall)`
|
|
1017
1017
|
cursor: ${e=>e.disabled?"not-allowed":"pointer"};
|
|
1018
1018
|
`,uj=M(le)`
|
|
1019
1019
|
margin-right: 5px;
|
|
@@ -1049,9 +1049,9 @@ object-assign
|
|
|
1049
1049
|
gap: 1rem;
|
|
1050
1050
|
`,mj=M.div`
|
|
1051
1051
|
${({$color:e})=>e&&`color: ${e};`}
|
|
1052
|
-
`;var gj;!function(e){e.BUTTON="ButtonField",e.CHECKBOX="CheckboxGroup",e.CHIPS="Chips",e["CONTACT-FIELD"]="ContactField",e["DATE-FIELD"]="DateField",e["DATE-RANGE-FIELD"]="DateRangeField",e["EMAIL-FIELD"]="TextField",e["E-SIGNATURE-FIELD"]="ESignatureField",e["ERROR-FIELD"]="ErrorField",e["FILE-UPLOAD"]="FileUpload",e["HIDDEN-FIELD"]="HiddenField",e["HISTOGRAM-SLIDER"]="HistogramSlider",e["IMAGE-UPLOAD"]="ImageUpload",e["LOCATION-FIELD"]="LocationField",e["MASKED-FIELD"]="MaskedField",e["MULTI-SELECT"]="MultiSelect",e["NESTED-MULTI-SELECT"]="NestedMultiSelect",e["RANGE-SELECT"]="RangeSelect",e["NUMERIC-FIELD"]="TextField",e.RADIO="RadioButtonGroup",e.RESET="ResetButton",e.SELECT="Select",e["SELECT-HISTOGRAM"]="SelectHistogram",e.SLIDER="Slider",e.SUBMIT="SubmitButton",e.SWITCH="Switch",e.TEXTAREA="Textarea",e["TEXT-FIELD"]="TextField",e["TIME-FIELD"]="TimeField",e["UNIT-NUMBER-FIELD"]="UnitNumberField"}(gj||(gj={}));var yj=Object.freeze({__proto__:null,ButtonField:n=>{const{schema:{label:r,uiType:i,startIcon:a,endIcon:o,href:s,target:u,...c},id:l,...d}=n,{dispatchFieldEvent:f}=mk(),p=t=>{if(!t)return null;const n=Z[t];return e(n,{})};return t(G$,{type:"button",...c,...d,onClick:e=>{f("click",l,e),s&&(e=>{try{return!!new URL(e)}catch{return!1}})(s)&&(u?window.open(s,u,"noopener noreferrer"):window.location.href=s)},children:[p(a),r,p(o)]})},CheckboxGroup:r=>{const{formattedLabel:i,error:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:p,options:h,validation:m,...g},value:y,warning:_}=r,{setValue:v}=Be(),[b,A]=o(y||[]),{setFieldValidationConfig:E}=p$();u((()=>{const e=m?.find((e=>"required"in e));E(s,XM().of($x()).test("is-empty-array",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m)}),[m]),Rs((()=>{const e=y?.filter((e=>h.find((t=>t.value===e))));v(s,e)}),[h]),u((()=>{A(y||[])}),[y]);const S=(e,t)=>{const n=h.find((e=>!0===e.none));let r=[...b];t?r=r.includes(e)?[]:[e]:r.includes(e)?r=nR(r,e,n?.value):(r.push(e),r=nR(r,n?.value)),c({target:{value:r}})},w=e=>b.includes(e),x=()=>{const e=wm();return`${s}-${e}`},M=t=>"string"==typeof t?e(kI,{inline:!0,children:t}):e(Ej,{children:t});return t(n,{children:[e(W.CustomField,{id:s,label:i,errorMessage:a?.message,children:"toggle"===d?.styleType?h.length>0&&"toggle"===d.styleType&&e(oR,{$layoutType:d?.layoutType??"horizontal",className:l?`${l}-checkbox-container`:void 0,children:h.map(((t,n)=>{const r=x();return e(sR,{type:"checkbox","data-testid":xA.generateId(s,"toggle"),id:r,className:l,disabled:f??t.disabled,name:r,indicator:d?.indicator,styleType:!1===d?.border?"no-border":"default",checked:w(t.value),onChange:()=>S(t.value,t.none),error:!!a?.message,compositeSection:t.children?{children:e(Ej,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&M(t.subLabel),children:M(t.label)},n)}))}):h.length>0&&h.map(((n,r)=>{const i=x();return t(aR,{className:l?`${l}-checkbox-container`:void 0,children:[e(iR,{...g,"data-testid":xA.generateId(s,"checkbox"),id:i,className:l,disabled:f??n.disabled,name:i,value:n.value,checked:w(n.value),onChange:()=>S(n.value)}),e(rR,{as:"label",htmlFor:i,disabled:f??n.disabled,children:M(n.label)})]},r)}))}),e(HI,{id:s,message:_})]})},Chips:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{disabled:l,label:d,options:f,textarea:h,validation:m,...g},value:y,warning:_,...v}=r,[b,A]=o(y||[]),[E,S]=o(!1),[w,x]=o(!0),{setValue:M,unregister:T}=Be(),{setFieldValidationConfig:O,removeFieldValidationConfig:N}=p$();u((()=>{E||T(D())}),[]),u((()=>{const e=m?.find((e=>"required"in e)),t=m?.find((e=>"max"in e)),n=m?.find((e=>"length"in e));O(s,XM().of($x()).test("is-empty-array",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m),1!==t?.max&&1!==n?.length||x(!1)}),[m]),Rs((()=>{const e=[...f.map((e=>e.value)),h?.label],t=y?.filter((t=>e.includes(t)));M(s,t)}),[f]),u((()=>{y?.includes(L())?I(!0):I(),A(y||[])}),[y]);const C=e=>b.includes(e),D=()=>`${s}-textarea`,L=()=>"string"==typeof h?.label?h?.label:h?.label?.mainLabel,I=(e=!1)=>{S(e),e||N(D())},k=e=>{let t=[...b];if(t.includes(e))return t=t.filter((t=>t!==e)),void c({target:{value:t}});w?t.push(e):t=[e],c({target:{value:t}})};return t(n,{children:[t(W.CustomField,{label:a,errorMessage:i?.message,...v,children:[t(mR,{"data-testid":xA.generateId(s,"chips"),$showTextarea:E,children:[f.map(((e,t)=>p(aT,{...g,key:t,onClick:()=>k(e.value),isActive:C(e.value),disabled:l??e.disabled},e.label))),(()=>{if(!h?.label)return;const t=L();return e(aT,{...g,onClick:()=>{k(t)},isActive:C(t),children:t})})()]}),(()=>{if(!h?.label)return e(n,{});const t=D(),r={uiType:"textarea",className:g.className?`${g.className}-textarea`:void 0,...h};return E?e(uR,{id:t,schema:r,Field:hR}):e(n,{})})()]}),e(HI,{id:s,message:_})]})},ContactField:r=>{const{isDirty:i,formattedLabel:a,error:s,id:c,name:l,onChange:d,schema:{defaultCountry:f,disabled:p,enableSearch:h,label:m,placeholder:g,validation:y,..._},value:v,warning:b,...A}=r,{resetField:E}=Be(),[S,w]=o(v||""),x=y$(f),[M,T]=o(f),[O]=o((()=>{const e=new Map;return gR.forEach((t=>{const[n,...r]=t,i=r.find((e=>/^\d+$/.test(e)));e.set(n,i)})),e})()),[N,C]=o(),[D,L]=o(),[I,k]=o(void 0),{setFieldValidationConfig:$}=p$();u((()=>{const e=y?.find((e=>"contactNumber"in e)),t=e?.contactNumber?.singaporeNumber,n=e?.contactNumber?.internationalNumber,r=e?.errorMessage;O.has(n)?(T(n),k(!0)):["default","house","mobile"].includes(t)?(T("Singapore"),k(!0)):k(!1),L(t),$(c,$x().test("singaporeNumber",r||Am.CONTACT.INVALID_SINGAPORE_NUMBER,(e=>!e||!t||vF.isSingaporeNumber(e,t))).test("internationalNumber",r||Am.CONTACT.INVALID_INTERNATIONAL_NUMBER,(e=>!(e&&!t&&n)||vF.isInternationalNumber(N?.name,e))),y)}),[y,N]),u((()=>{const e=M||"Singapore";C({name:e,prefix:O.get(e)})}),[M,O]),u((()=>{const e=y?.find((e=>"contactNumber"in e)),t=e?.contactNumber?.singaporeNumber,n=e?.contactNumber?.internationalNumber;!f||x===f||O.has(n)||["default","house","mobile"].includes(t)||T(f)}),[y,f]),u((()=>{if(void 0!==I&&!i){const{prefix:e,number:t}=vF.getParsedPhoneNumber(v||""),n=e.replace(/\+/g,""),r=(e=>{for(const[t,,,n]of gR)if(t===e)return n})(M||"Singapore");if(!I||I&&n===r){const n=R({countryCode:e||r,number:t});E(c,{defaultValue:n,keepDirty:!0})}else{const e=R({countryCode:"",number:""});E(c,{defaultValue:e,keepDirty:!0})}}}),[v,i,I,M]);const R=e=>{const{countryCode:t,number:n}=e,r=t.replace(/\+/g,"");if(!1===I&&r!==N?.prefix){const e=((e,t)=>{for(const[n,r]of t.entries())if(r===e)return n})(r,O);e&&C({name:e,prefix:t})}return w(n),vF.formatPhoneNumber(e.countryCode,e.number)||""};return t(n,{children:[e(W.PhoneNumberInput,{..._,...A,"data-testid":xA.generateId(c,"contact"),disabled:p,enableSearch:h,errorMessage:s?.message,fixedCountry:I,id:c,label:a,name:l,placeholder:(()=>{if(g)return g;if(D){return`Enter ${"mobile"===D?"mobile":"home"} number`}return"Enter contact number"})(),value:(()=>{if(!N)return;const{prefix:e}=N;return{number:S,countryCode:e}})(),onChange:e=>{const t=R(e);d({target:{value:t}})}}),e(HI,{id:c,message:b})]})},DateField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{label:d,useCurrentDate:f,dateFormat:p=bF,validation:h,...m},value:g,warning:y,..._}=r,{setValue:v}=Be(),[b,A]=o(g||""),[E,S]=o(),{setFieldValidationConfig:w}=p$();u((()=>{const e=h?.find((e=>"dateFormat"in e&&e.dateFormat)),t=h?.find((e=>"future"in e)),n=h?.find((e=>"past"in e)),r=h?.find((e=>"notFuture"in e)),i=h?.find((e=>"notPast"in e)),a=h?.find((e=>"minDate"in e)),o=h?.find((e=>"maxDate"in e)),u=h?.find((e=>"excludedDates"in e)),c=h?.find((e=>"withinDays"in e)),l=h?.find((e=>"beyondDays"in e)),d=Em.toLocalDateOrTime(a?.minDate,p,"date"),f=Em.toLocalDateOrTime(o?.maxDate,p,"date");w(s,$x().test("is-date",e?.errorMessage||Am.DATE.INVALID,(e=>!e||""===e||!!T(e)&&!!Em.toLocalDateOrTime(e,p,"date"))).test("future",t?.errorMessage||Am.DATE.MUST_BE_FUTURE,(e=>{if(!T(e)||!t?.future)return!0;const n=Em.toLocalDateOrTime(e,p,"date");return!!n?.isAfter(kf.now())})).test("past",n?.errorMessage||Am.DATE.MUST_BE_PAST,(e=>{if(!T(e)||!n?.past)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!!t?.isBefore(kf.now())})).test("not-future",r?.errorMessage||Am.DATE.CANNOT_BE_FUTURE,(e=>{if(!T(e)||!r?.notFuture)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isAfter(kf.now())})).test("not-past",i?.errorMessage||Am.DATE.CANNOT_BE_PAST,(e=>{if(!T(e)||!i?.notPast)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isBefore(kf.now())})).test("min-date",a?.errorMessage||Am.DATE.MIN_DATE(Em.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!d)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isBefore(d)})).test("max-date",o?.errorMessage||Am.DATE.MAX_DATE(Em.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!f)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isAfter(f)})).test("excluded-dates",u?.errorMessage||Am.DATE.DISABLED_DATES,(e=>!T(e)||!u||!u.excludedDates.includes(e))).test("within-days",c?.errorMessage||c?.withinDays&&Am.DATE.WITHIN_DAYS(c?.withinDays),(e=>!T(e)||!c||Em.checkWithinDays(e,{...c.withinDays,dateFormat:p}))).test("beyond-days",l?.errorMessage||l?.beyondDays&&Am.DATE.BEYOND_DAYS(l?.beyondDays),(e=>!T(e)||!l||Em.checkBeyondDays(e,{...l.beyondDays,dateFormat:p}))),h);const m=c?.withinDays&&Em.calculateDisabledWithinDaysRange({...c.withinDays,dateFormat:p}),g=l?.beyondDays&&Em.calculateDisabledBeyondDaysRange({...l.beyondDays,dateFormat:p}),y=M([d,t?.future&&kf.now().plusDays(1),i?.notPast&&kf.now(),m?.startDate,g?.startDate]),_=x([f,n?.past&&kf.now().minusDays(1),r?.notFuture&&kf.now(),m?.endDate,g?.endDate]),v=[...u?.excludedDates||[]];(y||_||v)&&S((e=>({...e,minDate:y?.format(AF),maxDate:_?.format(AF),disabledDates:v})))}),[h]),u((()=>{if(p)if(g)if(T(g)){const e=Em.toLocalDateOrTime(g,p,"date");A(Em.formatDateTime(e?.toString(),bF,"date",Am.DATE.INVALID))}else A(Am.DATE.INVALID);else if(!c)if(f){const e=Em.formatDateTime(kf.now().toString(),p,"date");v(s,e);const t=Em.formatDateTime(kf.now().toString(),bF,"date");A(t)}else A(void 0)}),[f,g,p,c]);const x=e=>e.filter((e=>e)).sort(((e,t)=>e.isAfter(t)?1:-1))?.[0],M=e=>e.filter((e=>e)).sort(((e,t)=>e.isBefore(t)?1:-1))?.[0],T=e=>e&&e!==Am.DATE.INVALID;return t(n,{children:[e(W.DateInput,{...m,..._,...E,id:s,"data-testid":xA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:e=>{l({target:{value:Em.formatDateTime(e,p,"date",Am.DATE.INVALID)}})},value:b}),e(HI,{id:s,message:y})]})},DateRangeField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{dateFormat:d=SF,label:f,validation:p,variant:h,...m},value:g={from:void 0,to:void 0},warning:y,..._}=r,[v,b]=o(g.from||""),[A,E]=o(g.to||""),[S,w]=o(),{setFieldValidationConfig:x}=p$();u((()=>{const e=p?.find((e=>"dateFormat"in e&&e.dateFormat)),t=p?.find((e=>"future"in e)),n=p?.find((e=>"past"in e)),r=p?.find((e=>"notFuture"in e)),i=p?.find((e=>"notPast"in e)),a=p?.find((e=>"minDate"in e)),o=p?.find((e=>"maxDate"in e)),u=p?.find((e=>"required"in e)),c=p?.find((e=>"excludedDates"in e)),l=p?.find((e=>"numberOfDays"in e)),f=Em.toLocalDateOrTime(a?.minDate,d,"date"),m=Em.toLocalDateOrTime(o?.maxDate,d,"date");x(s,KM().shape({from:$x(),to:$x()}).test("is-empty-string",u?.errorMessage||Am.DATE_RANGE.REQUIRED,(e=>!e||!u||e.from?.length>0&&e.to?.length>0)).test("is-date",e?.errorMessage||Am.DATE_RANGE.INVALID,(e=>!(!$I.exports.isEmpty(e?.from)&&!$I.exports.isEmpty(e?.to))||O(e.from)&&O(e.to)&&!!Em.toLocalDateOrTime(e.from,d,"date")&&!!Em.toLocalDateOrTime(e.to,d,"date"))).test("number-of-days",l?.errorMessage||Am.DATE_RANGE.MUST_HAVE_NUMBER_OF_DAYS(l?.numberOfDays),(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!l?.numberOfDays)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date");return Em.toLocalDateOrTime(e.to,d,"date").equals(t.plusDays(l?.numberOfDays-1))})).test("future",t?.errorMessage||Am.DATE_RANGE.MUST_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!t?.future)return!0;const n=Em.toLocalDateOrTime(e.from,d,"date"),r=Em.toLocalDateOrTime(e.to,d,"date");return!!n?.isAfter(kf.now())&&!!r?.isAfter(kf.now())})).test("past",n?.errorMessage||Am.DATE_RANGE.MUST_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!n?.past)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),r=Em.toLocalDateOrTime(e.to,d,"date");return!!t?.isBefore(kf.now())&&!!r?.isBefore(kf.now())})).test("not-future",r?.errorMessage||Am.DATE_RANGE.CANNOT_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!r?.notFuture)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(kf.now())&&!n?.isAfter(kf.now())})).test("not-past",i?.errorMessage||Am.DATE_RANGE.CANNOT_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!i?.notPast)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(kf.now())&&!n?.isBefore(kf.now())})).test("min-date",a?.errorMessage||Am.DATE_RANGE.MIN_DATE(Em.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!f)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(f)&&!n?.isBefore(f)})).test("max-date",o?.errorMessage||Am.DATE_RANGE.MAX_DATE(Em.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!m)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(m)&&!n?.isAfter(m)})).test("excluded-dates",c?.errorMessage||Am.DATE_RANGE.DISABLED_DATES,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!c)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");try{const e=c.excludedDates.map((e=>Em.toLocalDateOrTime(e,d,"date")));for(const r of e)if(t.isEqual(r)||n.isEqual(r))return!1;return!0}catch{return!1}})),p);const g=T([f,t?.future&&kf.now().plusDays(1),i?.notPast&&kf.now()]),y=M([m,n?.past&&kf.now().minusDays(1),r?.notFuture&&kf.now()]),_=c?.excludedDates,v=l?.numberOfDays;(g||y||_||v)&&w((e=>({...e,minDate:g?.format(wF),maxDate:y?.format(wF),disabledDates:_,numberOfDays:v})))}),[p]),u((()=>{N(EF.START)}),[g.from,d,c]),u((()=>{N(EF.END)}),[g.to,d,c]);const M=e=>e.filter((e=>e)).sort(((e,t)=>e.isAfter(t)?1:-1))?.[0],T=e=>e.filter((e=>e)).sort(((e,t)=>e.isBefore(t)?1:-1))?.[0],O=e=>e&&e!==Am.DATE_RANGE.INVALID,N=e=>{const t=e===EF.START?g.from:g.to,n=e===EF.START?b:E;if(d)if(t)if(O(t)){const e=Em.toLocalDateOrTime(t,d,"date");n(Em.formatDateTime(e?.toString(),SF,"date",Am.DATE_RANGE.INVALID))}else n(Am.DATE_RANGE.INVALID);else c||n(void 0)};return t(n,{children:[e(W.DateRangeInput,{...m,..._,...S,id:s,"data-testid":xA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:(e,t)=>{l({target:{value:{from:Em.formatDateTime(e,d,"date",Am.DATE_RANGE.INVALID),to:Em.formatDateTime(t,d,"date",Am.DATE_RANGE.INVALID)}}})},value:v,valueEnd:A,variant:h}),e(HI,{id:s,message:y})]})},get TDateRangeInputType(){return EF},ESignatureField:n=>{const{error:r,formattedLabel:i,id:a,onChange:c,schema:{label:l,uiType:d,upload:f,validation:p,...h},value:m,warning:g}=n,[y,_]=o(null),[v,b]=o(0),[A,E]=o(0),[S,w]=o(null),{setFieldValidationConfig:x}=p$(),M=s(null),{clearErrors:T}=Be();u((()=>{const e=p?.find((e=>"upload"in e&&e.upload));M.current=e,x(a,KM().shape({fileId:$x().required(),dataURL:$x(),fileUrl:$x(),uploadResponse:Mx().nullable()}).default(void 0),p)}),[p]),u((()=>{if(E(0),N(m)){if(m.dataURL)_(m.dataURL);else if(m.fileUrl){const e=D(m.fileId,m.fileUrl);return()=>e.abort()}}else _(null)}),[m]);const O=async e=>{const t=wm();if(_(e),E(0),SA(f))c({target:{value:{fileId:t,dataURL:e}}});else try{const n=await C(t,e);c({target:{value:{fileId:t,..."base64"===f.type&&{dataURL:e},fileUrl:n?.data?.fileUrl,uploadResponse:n}}}),T(a),b(0)}catch(e){b((e=>e+1)),w(null)}},N=e=>!!e,C=async(e,t)=>{w(0);const n=new FormData;if(n.append("fileId",e),f.sessionId&&n.append("sessionId",f.sessionId),"base64"===f.type)n.append("dataURL",t);else if("multipart"===f.type){const r=await bm.dataUrlToBlob(t),i=bm.blobToFile(r,{name:e,lastModified:Date.now()});n.append("file",i,e)}const r=await new Ml("",void 0,void 0,!0).post(f.url,n,{headers:{"Content-Type":"base64"===f.type?"application/json":"multipart/form-data",...f.headers},onUploadProgress:e=>{const{loaded:t,total:n}=e;w(t/n)}});return w(null),r},D=(e,t)=>{const n=new AbortController;return(async()=>{try{const r=await new Ml("",void 0,void 0,!1,{responseType:"blob"}).get(t,{signal:n.signal}),i=await bm.getType(new File([r],e)),a=new File([r],e,{type:i.mime}),o=await bm.fileToDataUrl(a);_(o),E(0)}catch(e){if(e instanceof ll)return;E((e=>e+1))}})(),n};return t(xF,{children:[e(W.ESignature,{...h,id:a,label:i,onChange:O,value:y,...null!==S&&{loadingProgress:S}}),(r?.message||v||A)&&null===S?v>0?t(MF,{children:[M.current?.errorMessage||Am.ESIGNATURE.UPLOAD,e(TF,{type:"button",onClick:()=>O(y),children:"Please try again."}),v>=3&&e(OF,{type:"warning","data-testid":"upload-refresh-alert",children:"Refresh this page if you cannot upload your signature."})]}):A>0&&N(m)?t(MF,{children:["Failed to load.",e(TF,{type:"button",onClick:()=>D(m.fileId,m.fileUrl),children:"Please try again."}),A>=3&&e(OF,{type:"warning","data-testid":"load-refresh-alert",children:"Refresh this page if your signature failed to load."})]}):e(MF,{children:r?.message}):null,e(HI,{id:a,message:g})]})},ErrorField:t=>{const{id:n,schema:{children:r}}=t,{setFieldValidationConfig:i}=p$();return u((()=>{i(n,Mx().test((()=>!1)),[])}),[]),r?e(Ej,{children:r}):null},FileUploadInner:iP,FileUpload:t=>e(eP,{children:e(iP,{...t})}),get EFileStatus(){return nP},HiddenField:t=>{const{id:n,name:r,onBlur:i,onChange:a,schema:{showIf:o,uiType:s,validation:c,valueType:l,value:d,...f},value:p}=t,{setFieldValidationConfig:h}=p$(),{setValue:m}=Be();return u((()=>{let e;switch(l){case"null":e=Mx();break;case"number":e=zx();break;case"boolean":e=Ox();break;default:e=$x()}h(n,e,c)}),[c,l]),u((()=>{"null"===l&&null!==p?m(n,null):TA(d)||p===d||m(n,d)}),[m,n,l,d,p]),e("input",{onBlur:i,onChange:a,...f,type:"hidden",id:n,"data-testid":n,name:r,value:d??p??""})},HistogramSlider:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,bins:d,interval:f,validation:p,disabled:h,readOnly:m,className:g,ariaLabels:y,customOptions:_},value:v,warning:b}=r,{resetField:A}=Be(),[E,S]=o(void 0),{setFieldValidationConfig:w}=p$();u((()=>{if(v)S([v.from,v.to]);else{const e=Math.min(...d.map((e=>e.minValue))),t=Math.max(...d.map((e=>e.minValue)))+f;A(s,{defaultValue:{from:e,to:t},keepDirty:!0}),S([e,t])}}),[v]),u((()=>{const e=p?.find((e=>"required"in e)),t=p?.find((e=>"bin"in e&&e.bin)),n=p?.find((e=>"incremental"in e&&e.incremental)),r=p?.find((e=>"withinRange"in e&&e.withinRange));w(s,KM({from:zx(),to:zx()}).test("is-required",e?.errorMessage||Am.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!TA(t.from)&&!TA(t.to))).test("is-bin",t?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...d.map((e=>e.minValue)));return Number.isInteger((t-r)/f)&&Number.isInteger((n-r)/f)})).test("is-incremental",n?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...d.map((e=>e.minValue))),i=Math.max(...d.map((e=>e.minValue)))+f;return!(t<r||n>i)})),p)}),[p,d,f]);return t(n,{children:[e(W.HistogramSlider,{..._,id:s,"data-testid":xA.generateId(s,"histogram-slider"),label:a,errorMessage:i?.message,onChangeEnd:e=>{const[t,n]=e;c({target:{value:{from:t,to:n}}})},value:E,bins:d,interval:f,disabled:h,readOnly:m,className:g,ariaLabels:y}),e(HI,{id:s,message:b})]})},ImageUploadInner:KU,ImageUpload:t=>e(oP,{children:e(KU,{...t})}),ACCEPTED_FILE_TYPES:uP,get EImageStatus(){return cP},LocationField:n=>{const{error:r,formattedLabel:i,id:a,schema:{className:s="location",convertLatLngToXYEndpoint:c,disabled:l,gettingCurrentLocationFetchMessage:d,interactiveMapPinIconUrl:f,label:p,locationInputPlaceholder:h,locationListTitle:m,locationModalStyles:g,mapBannerText:y,mapPanZoom:v,mustHavePostalCode:b,readOnly:A,reverseGeoCodeEndpoint:E,staticMapPinColor:S,validation:w,hasExplicitEdit:x,locationSelectionMode:M="default",disableSearch:T,addressFieldPlaceholder:O,searchBarIcon:N,bufferRadius:D,pinsOnlyIndicateCurrentLocation:L},value:I,warning:k}=n,[$,R]=o(!1),{setValue:z}=Be(),{setFieldValidationConfig:F}=p$(),{dispatchFieldEvent:P,addFieldEventListener:Z,removeFieldEventListener:U}=mk();u((()=>(Z("show-location-modal",a,V),()=>{U("show-location-modal",a,V)})),[]),u((()=>{const e=w?.find((e=>"required"in e)),t=w?.find((e=>"postalCode"in e));F(a,KM({address:$x(),blockNo:$x(),building:$x(),lat:zx(),lng:zx(),postalCode:$x(),roadName:$x(),x:zx(),y:zx()}).test("is-required",e?.errorMessage||Am.COMMON.FIELD_REQUIRED,(t=>!e?.required||!!t&&!!t.lat&&!!t.lng)).test("must-have-postal-code",t?.errorMessage||Am.LOCATION.MUST_HAVE_POSTAL_CODE,(t=>!e||!b||ZI.hasGotAddressValue(t.postalCode))),w)}),[w]);const j=(e,t=!0)=>{z(a,e,{shouldDirty:t})},B=()=>{A||l||(R(!0),P("show-location-modal",a))},V=()=>{R(!0)};return t("div",{id:a,"data-testid":xA.generateId(a),className:s,children:[e(ij,{id:a,label:i,className:s,locationInputPlaceholder:h,onChange:e=>e.currentTarget.blur(),onFocus:B,value:I?.address||"",errorMessage:r?.message,disabled:"explicit"===x&&I?.address||l,readOnly:A}),x&&I?.address&&e(C.Default,{id:xA.generateId(a,"edit-button"),"data-testid":xA.generateId(a,"edit-button"),styleType:"secondary",onClick:()=>{!P("click-edit-button",a)||R(!0)},type:"button",children:"Edit"}),!!I?.lat&&!!I?.lng&&e(GI,{id:a,className:`${s}-static-map`,lat:I.lat,lng:I.lng,staticMapPinColor:S,onClick:B,disabled:l}),e(_,{fallback:null,children:aj&&e(aj,{id:a,className:s,showLocationModal:$,onClose:()=>{R(!1),P("hide-location-modal",a)},formValues:I,onConfirm:j,updateFormValues:j,mapPanZoom:v,reverseGeoCodeEndpoint:E,convertLatLngToXYEndpoint:c,interactiveMapPinIconUrl:f,gettingCurrentLocationFetchMessage:d,mustHavePostalCode:b,locationModalStyles:g,locationListTitle:m,mapBannerText:y,locationSelectionMode:M,disableSearch:T,addressFieldPlaceholder:O,searchBarIcon:N,bufferRadius:D,pinsOnlyIndicateCurrentLocation:L})}),e(HI,{id:a,message:k})]})},GeolocationPositionErrorWrapper:oj,MaskedField:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,value:l,schema:{label:d,uiType:f,validation:p,maskRegex:h,iconMask:m,iconUnmask:g,...y},warning:_,...v}=r,[b,A]=o(l||""),[E,S]=o({}),{setFieldValidationConfig:w}=p$();u((()=>{w(s,$x(),p);const e=p?.find((e=>"max"in e)),t=p?.find((e=>"length"in e)),n={...E};e?.max>0?n.maxLength=e.max:t?.length>0&&(n.maxLength=t.length),S(n)}),[p]),u((()=>{l!==b&&A(l||"")}),[l]);const x=t=>{if(!t)return;const n=Z[t];return e(n,{"data-testid":t})};return t(n,{children:[e(W.MaskedInput,{...y,...v,...E,id:s,"data-testid":xA.generateId(s,f),label:a,onChange:e=>{c(e)},value:b,errorMessage:i?.message,maskRegex:(()=>{if(h)try{const e=h.match(/\/(.*)\/([a-z]+)?/);return new RegExp(e[1],e[2])}catch(e){console.warn(`invalid regex pattern: ${h}`)}})(),iconMask:x(m),iconUnmask:x(g)}),e(HI,{id:s,message:_})]})},MultiSelect:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,options:d=[],validation:f,...p},value:h,warning:m,...g}=r,{setValue:y}=Be(),[_,v]=o(h||[]),{setFieldValidationConfig:b}=p$();u((()=>{const e=f?.find((e=>"required"in e));b(s,XM().of($x()).test("is-empty-array",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),f)}),[f]),zs((()=>{const e=h?.filter((e=>d.find((t=>t.value===e))));y(s,e)}),[d]),u((()=>{v(h||[])}),[h]);return t(n,{children:[e(W.MultiSelect,{...p,...g,id:s,"data-testid":xA.generateId(s),label:a,options:d,onSelectOptions:e=>{const t=e.map((e=>e.value));c({target:{value:t}})},selectedOptions:d.filter((e=>_.includes(e.value))),valueExtractor:e=>e.value,listExtractor:e=>e.label,errorMessage:i?.message}),e(HI,{id:s,message:m})]})},NestedMultiSelect:r=>{const{schema:{label:i,validation:a,options:s=[],...c},id:l,value:f,formattedLabel:p,onChange:h,onBlur:m,error:g,warning:y,..._}=r,{setValue:v}=Be(),{setFieldValidationConfig:b}=p$(),[A,E]=o(f),[S,w]=o([]),x=d((e=>{const t=[],n=(e,r)=>{for(const i in e){const a=[...r,i],o=e[i];"string"==typeof o?t.push(a):n(o,a)}};return n(e,[]),t}),[]);u((()=>{const e=a?.find((e=>"required"in e));b(l,KM().test("is-required",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!e?.required||!!t&&!!Object.keys(t).length)),a)}),[a]),zs((()=>{const e=(t,n)=>{const r={};for(const i of t){const{key:t,subItems:a}=i,o=n[t];if(o){const n="string"==typeof o?o:e(a||[],o);Object.keys(n).length?r[t]=n:delete r[t]}}return r},t=f?e(s,f):f;v(l,t)}),[s]),u((()=>{E(f);const e=x(f);w(e)}),[x,A,f]);return t(n,{children:[e(W.NestedMultiSelect,{...c,..._,id:l,"data-testid":xA.generateId(l),label:p,options:s,onSelectOptions:(e,t)=>{const n=((e,t)=>{const n={};return e.forEach(((e,r)=>{e.reduce(((n,i,a)=>(a===e.length-1?n[i]=t[r]:n[i]||(n[i]={}),n[i])),n)})),n})(e,t);h({target:{value:n}})},selectedKeyPaths:S,errorMessage:g?.message,onBlur:m}),e(HI,{id:l,message:y})]})},RadioButtonGroup:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:h,options:m,validation:g,...y},value:_,warning:v}=r,{setValue:b}=Be(),[A,E]=o(_||""),{setFieldValidationConfig:S}=p$();u((()=>{S(s,$x(),g)}),[g]),Rs((()=>{m.find((e=>e.value===_))||b(s,"")}),[m]),u((()=>{E(_||"")}),[_]);const w=e=>{c({target:{value:e}})},x=e=>A===e,M=()=>{const e=wm();return`${s}-${e}`},T=t=>"string"==typeof t?e(kI,{inline:!0,children:t}):e(Ej,{children:t});return t(n,{children:[e(W.CustomField,{id:s,label:a,errorMessage:i?.message,children:(()=>{switch(d?.styleType){case"toggle":return m.length>0&&"toggle"===d.styleType&&e(fj,{className:l?`${l} ${l}-radio-container`:void 0,$layoutType:d?.layoutType??"horizontal",children:m.map(((t,n)=>{const r=M();return p(pj,{...y,key:n,type:"radio",id:r,className:l?`${l}-radio`:void 0,"data-testid":xA.generateId(s,"radio"),disabled:f??t.disabled,name:r,indicator:d?.indicator,styleType:!1===d?.border?"no-border":"default",checked:x(t.value),onChange:()=>w(t.value),error:!!i?.message,compositeSection:t.children?{children:e(Ej,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&T(t.subLabel)},T(t.label))}))});case"image-button":return m.length>0&&e(dj,{className:l?`${l} ${l}-radio-container`:void 0,children:m.map(((e,t)=>{const n=M();return p(cj,{...y,type:"button",key:t,id:n,className:l?`${l}-radio`:void 0,"data-testid":xA.generateId(s,"radio"),disabled:f??e.disabled,name:n,selected:x(e.value),onClick:()=>w(e.value),imgSrc:e.imgSrc,error:!!i?.message},e.label)}))});default:return m.length>0&&m.map(((n,r)=>{const i=M();return t(lj,{className:l?`${l}-radio-container`:void 0,children:[e(uj,{...y,className:l,id:i,"data-testid":xA.generateId(s,"radio"),disabled:f??n.disabled,name:i,value:n.value,checked:x(n.value),onChange:()=>w(n.value)}),e(sj,{as:"label",htmlFor:i,disabled:f??n.disabled,children:T(n.label)})]},r)}))}})()}),e(HI,{id:s,message:v})]})},RangeSelect:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,options:d,validation:f,...p},value:h={from:void 0,to:void 0},warning:m,...g}=r,{setValue:y}=Be(),[_,v]=o(h.from||""),[b,A]=o(h.to||""),{setFieldValidationConfig:E}=p$();u((()=>{const e=f?.find((e=>"required"in e));E(s,KM().shape({from:$x(),to:$x()}).test("is-empty-string",e?.errorMessage||Am.COMMON.REQUIRED_OPTIONS,(t=>!t||!e?.required||t.from?.length>0&&t.to?.length>0)),f)}),[f]),Rs((()=>{const e={};d.from.find((e=>e.value===h.from))||(e.from=""),d.to.find((e=>e.value===h.to))||(e.to=""),y(s,{...h,...e})}),[d]),u((()=>{A(h.from),v(h.to)}),[h]);return t(n,{children:[e(W.RangeSelect,{...p,...g,id:s,onHideOptions:()=>{h.from&&h.to||c({target:{value:{from:void 0,to:void 0}}})},"data-testid":xA.generateId(s),label:a,options:d,onSelectOption:e=>{void 0===e.from&&void 0===e.to&&c({target:{value:{from:void 0,to:void 0}}}),e.from&&c({target:{value:{from:e.from.value,to:void 0}}}),e.to&&c({target:{value:{to:e.to.value,from:b}}})},selectedOptions:{from:d.from.find((({value:e})=>e===b)),to:d.to.find((({value:e})=>e===_))},valueToStringFunction:e=>`${e.from} - ${e.to}`,valueExtractor:e=>({from:e.value,to:e.value}),displayValueExtractor:e=>e.label,listExtractor:e=>e.label,errorMessage:i?.message}),e(HI,{id:s,message:m})]})},ResetButton:t=>{const{id:n,schema:{disabled:r,ignoreDefaultValues:i,label:a,...o},...s}=t,{reset:u,getValues:c}=Be(),{resetFields:l}=f$(),{formSchema:{defaultValues:d}}=d$();return e(C.Default,{...o,...s,disabled:r,"data-testid":n,id:n,type:"reset",onClick:()=>{if(i){const e=c();Object.entries(e).forEach((([t,n])=>{li(n)?e[t]=[]:z$(n)||ik(n)?e[t]="":ti(n)&&(e[t]={})})),u(e),l(e)}else u(),l(d)},children:a})},Select:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,options:d,validation:f,...p},value:h,warning:m,...g}=r,{setValue:y}=Be(),[_,v]=o(h||""),{setFieldValidationConfig:b}=p$();u((()=>{b(s,$x(),f)}),[f]),Rs((()=>{d.find((e=>e.value===h))||y(s,"")}),[d]),u((()=>{v(h||"")}),[h]);return t(n,{children:[e(W.Select,{...p,...g,id:s,"data-testid":xA.generateId(s,"select"),label:a,errorMessage:i?.message,options:d,onSelectOption:(e,t)=>{c({target:{value:t}})},selectedOption:d.find((({value:e})=>e===_)),displayValueExtractor:e=>e.label,valueExtractor:e=>e.value,listExtractor:e=>e.label}),e(HI,{id:s,message:m})]})},SelectHistogram:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,validation:d,disabled:f,readOnly:p,className:h,histogramSlider:m,customOptions:g},value:y,warning:_,...v}=r,{bins:b,interval:A,...E}=m,{resetField:S}=Be(),[w,x]=o([0,0]),{setFieldValidationConfig:M}=p$();u((()=>{if(y)x([y.from,y.to]);else{const e=Math.min(...b.map((e=>e.minValue))),t=Math.max(...b.map((e=>e.minValue)))+A;S(s,{defaultValue:{from:e,to:t},keepDirty:!0}),x([e,t])}}),[y]),u((()=>{const e=d?.find((e=>"required"in e)),t=d?.find((e=>"bin"in e&&e.bin)),n=d?.find((e=>"incremental"in e&&e.incremental)),r=d?.find((e=>"withinRange"in e&&e.withinRange));M(s,KM({from:zx(),to:zx()}).test("is-required",e?.errorMessage||Am.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!TA(t.from)&&!TA(t.to))).test("is-bin",t?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...b.map((e=>e.minValue)));return Number.isInteger((t-r)/A)&&Number.isInteger((n-r)/A)})).test("is-incremental",n?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...b.map((e=>e.minValue))),i=Math.max(...b.map((e=>e.minValue)))+A;return!(t<r||n>i)})),d)}),[d,b,A]);return t(n,{children:[e(W.SelectHistogram,{...v,id:s,"data-testid":xA.generateId(s,"select-histogram"),label:a,errorMessage:i?.message,onChangeEnd:e=>{const[t,n]=e;c({target:{value:{from:t,to:n}}})},disabled:f,readOnly:p,className:h,rangeLabelPrefix:g?.rangeLabelPrefix,rangeLabelSuffix:g?.rangeLabelSuffix,value:w,histogramSlider:{bins:b,interval:A,...E}}),e(HI,{id:s,message:_})]})},Slider:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,customOptions:d,validation:f,disabled:p,readOnly:h,className:m,ariaLabel:g},value:y,warning:_}=r,[v,b]=o(),{setFieldValidationConfig:A}=p$();u((()=>{const e=f?.find((e=>"min"in e)),t=f?.find((e=>"max"in e)),n=f?.find((e=>"increment"in e));A(s,zx().test("is-incremental",n?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(t=>{if("number"!=typeof t||!n)return!0;const r=n.increment,i=(e?.min??0)-t;return Number.isInteger(i/r)})),f),(e||t||n)&&b({min:e?.min,max:t?.max,step:n?.increment})}),[f]);return t(n,{children:[e(W.Slider,{...d,...v,id:s,"data-testid":xA.generateId(s,"slider"),label:a,errorMessage:i?.message,onChangeEnd:e=>{c({target:{value:e}})},value:y,disabled:p,readOnly:h,className:m,ariaLabel:g}),e(HI,{id:s,message:_})]})},SubmitButton:t=>{const{id:n,schema:{disabled:r,label:i,...a},...s}=t,{submitHandler:c,wrapInForm:l}=m$(),{setFieldValidationConfig:d}=p$(),{hardValidationSchema:f}=_$(),p=et({disabled:"invalid-form"!==r}),[h,m]=o(!0===r);u((()=>{d(n,Mx())}),[]),u((()=>{"invalid-form"!==r&&m(!!r)}),[r]),Rs((()=>{(async()=>{if("invalid-form"===r)try{await f.validate(p),m(!1)}catch(e){m(!0)}})()}),[p,f]);return e(C.Default,{...a,...s,disabled:h,"data-testid":n,id:n,onClick:e=>{l||(e.preventDefault(),c?.())},type:"submit",children:i})},Switch:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:p,validation:h,...m},value:g,warning:y}=r,[_,v]=o(g||void 0),{setFieldValidationConfig:b}=p$();u((()=>{b(s,Ox().strict(),h)}),[h]),u((()=>{v(g)}),[g]);const A=e=>{c({target:{value:e}})},E=e=>_===e,S=e=>`${s}-${e}`;return t(n,{children:[e(W.CustomField,{id:s,label:a,errorMessage:i?.message,children:t(hj,{className:l,role:"radiogroup","aria-label":"string"==typeof p?p:II(p.mainLabel,{allowedTags:[]}),children:[e(q,{...m,type:"yes",id:S("yes"),"data-testid":xA.generateId(s,"switch-yes"),disabled:f,styleType:!1===d?.border?"no-border":"default",checked:E(!0),onChange:()=>A(!0),indicator:!0,name:s,error:!!i?.message,children:"Yes"}),e(q,{...m,type:"no",id:S("no"),"data-testid":xA.generateId(s,"switch-no"),disabled:f,styleType:!1===d?.border?"no-border":"default",checked:E(!1),onChange:()=>A(!1),indicator:!0,name:s,error:!!i?.message,children:"No"})]})}),e(HI,{id:s,message:y})]})},TextField:r=>{const{error:i,formattedLabel:a,id:c,onChange:l,value:d,schema:f,warning:p,...h}=r,{customOptions:m,inputMode:g,label:y,uiType:_,validation:v,...b}=f,[A,E]=o(d||""),[S,w]=o({}),{setFieldValidationConfig:x}=p$(),M=s(null),T=s(0);u((()=>{switch(_){case"numeric-field":{x(c,zx(),v);const e=v?.find((e=>"min"in e)),t=v?.find((e=>"max"in e)),n={...S};e?.min>0&&(n.min=e.min),t?.max>0&&(n.max=t.max),w(n);break}case"email-field":{const e=v?.find((e=>e.email));x(c,$x().email(e?.errorMessage||Am.EMAIL.INVALID),v);const t=v?.find((e=>"max"in e)),n=v?.find((e=>"length"in e)),r={...S};t?.max>0?r.maxLength=t.max:n?.length>0&&(r.maxLength=n.length),w(r);break}case"text-field":{x(c,$x(),v);const e=v?.find((e=>"max"in e)),t=v?.find((e=>"length"in e)),n={...S};e?.max>0?n.maxLength=e.max:t?.length>0&&(n.maxLength=t.length),w(n);break}}}),[v]),u((()=>{d!==A&&E(d||"")}),[d]),u((()=>{"text-field"===_&&document?.activeElement===M.current&&M.current.selectionEnd!==T.current&&M.current.setSelectionRange(T.current,T.current)}),[A]),u((()=>{"text-field"===f.uiType&&"uppercase"===f.customOptions?.textTransform&&A&&E((e=>e?.toString().toUpperCase()))}),["text-field"===f.uiType&&f.customOptions?.textTransform]);const O=()=>!!m?.addOn,N=O()?W.InputGroup:W.Input;return t(n,{children:[e(N,{...b,...h,...S,id:c,"data-testid":xA.generateId(c,_),ref:M,type:(()=>{switch(_){case"numeric-field":return"number";case"email-field":return"email";default:return"text"}})(),label:a,onPaste:e=>{const t=e.clipboardData.getData("text");(m?.preventCopyAndPaste||"numeric-field"===_&&/e/i.test(t))&&e.preventDefault()},onDrop:e=>m?.preventDragAndDrop?e.preventDefault():null,inputMode:(()=>{if(g)return g;switch(_){case"numeric-field":return"numeric";case"email-field":return"email";case"text-field":return"text";default:return"none"}})(),onChange:e=>{if("numeric-field"===_){const t=!isNaN(parseFloat(e.target.value))?+e.target.value:void 0;return l({target:{value:t}}),void E(t)}"text-field"===f.uiType?(T.current=e.target.selectionEnd,"uppercase"===f.customOptions?.textTransform&&(e.target.value=e.target.value.toUpperCase()),l(e)):l(e),E(e.target.value)},onKeyDown:e=>{"numeric-field"===_&&"e"===e.key.toLowerCase()&&e.preventDefault()},value:A,errorMessage:i?.message,addon:(()=>{if(O()){if("label"===m.addOn.type)return{type:"label",position:m.addOn.position,attributes:{value:m.addOn.value}};if("icon"===m.addOn.type){const{icon:t,position:n,color:r}=m.addOn,i=Z[t];return{type:"custom",position:n,attributes:{children:e(mj,{as:i,$color:r})}}}}})()}),e(HI,{id:c,message:p})]})},Textarea:hR,TimeField:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{is24HourFormat:l,label:d,placeholder:f,useCurrentTime:p,validation:h,...m},value:g,warning:y,..._}=r,[v,b]=o(g||""),{setFieldValidationConfig:A}=p$();u((()=>{A(s,$x(),h)}),[h]),u((()=>{if(p&&!g){const e=l?"H:mm":"h:mma";setTimeout((()=>E(e)))}else b(g)}),[g,p,l]);const E=e=>{const t=Em.formatDateTime(zf.now().toString().toUpperCase(),e,"time");b(t),c({target:{value:t}})};return t(n,{children:[e(W.Timepicker,{...m,..._,id:s,"data-testid":xA.generateId(s,"time"),label:a,errorMessage:i?.message,value:v,placeholder:f,format:l?"24hr":"12hr",onChange:e=>{c({target:{value:e}})}}),e(HI,{id:s,message:y})]})},get EFieldType(){return gj},UnitNumberField:r=>{const{formattedLabel:i,error:a,id:s,onChange:c,schema:{label:l,validation:d,...f},value:p,warning:h,...m}=r,[g,y]=o(p||""),{setFieldValidationConfig:_}=p$();u((()=>{const e=d?.find((e=>"unitNumberFormat"in e));_(s,$x().matches(/^([a-zA-Z0-9]{1,3}-[a-zA-Z0-9]{1,5})$/,{excludeEmptyString:!0,message:e?.errorMessage||Am.UNIT_NUMBER.INVALID}),d)}),[d]),u((()=>{y(p||"")}),[p]);return t(n,{children:[e(W.UnitNumberInput,{...f,...m,id:s,"data-testid":xA.generateId(s,"unit-number"),label:i,value:g,onChange:e=>{c({target:{value:e}})},errorMessage:a?.message}),e(HI,{id:s,message:h})]})}});const _j=({id:t,children:r,childSchema:i})=>{if("columns"in i){const{desktop:n,tablet:a,mobile:o,...s}=i.columns||{};return e($.ColDiv,{"data-testid":xA.generateId(t,"grid_item"),desktopCols:n??12,tabletCols:a,mobileCols:o,...s,children:r})}return e(n,{children:r})},vj=({id:t,renderRules:r,children:i,schema:a})=>{const{formValidationConfig:s,removeFieldValidationConfig:u}=p$(),[c,l]=o(void 0),{formValues:d}=f$(),{unregister:f}=Be();zs((()=>{if(SA(r))return;const e=p();if(e!==c){if(!e){[t,...h(a)].forEach((e=>{u(e),f(e)}))}l(e)}}),[s,d,r]);const p=()=>{if(SA(r))return!0;let e=!1;return r.forEach((t=>{if(!e){const n={};Object.entries(t).forEach((([e,t])=>{if(t.find((e=>e.shown))&&!s?.[e])return void(n[e]={schema:Mx().test("shown",(()=>!1)),validationRules:[]});const r=s?.[e]?.schema.type;if(r){let i=qI.mapSchemaType(r);"number"===r&&(i=i.nullable().transform(((e,t)=>!isNaN(parseFloat(t?.toString()))?+t:void 0))),n[e]={schema:i,validationRules:t}}}));const r=qI.buildSchema(n);try{r.validateSync(d),e=!0}catch(e){}}})),e},h=e=>{const n=e.children,r=[];switch(e.uiType){case"chips":r.push(t+"-textarea");break;case"checkbox":case"radio":e.options.forEach((e=>{const t=e.children;!SA(t)&&Tn(t)&&Object.entries(t).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))}))}))}return SA(n)||!Tn(n)||Object.entries(n).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))})),r};return SA(r)||c?e(n,{children:i}):null},bj=Object.keys(gj),Aj=Object.keys(w$),Ej=t=>{const{id:r,schema:i,children:a}=t,{showIf:s,uiType:u,children:c,...l}=i||{},{warnings:d}=_$(),[f,p]=o(null),{control:h}=Be(),{getCustomComponent:m}=pk(),{formSchema:{overrides:y},overrideSchema:_}=d$();hk((()=>{const t=_(c||a,y);if("object"==typeof t){const n=[];Object.keys(t).forEach((r=>{const i=t[r];if(SA(i)||"object"!=typeof i)return;let a=e(g,{children:Am.GENERIC.UNSUPPORTED},r);if("referenceKey"in i){const t=i.referenceKey.toUpperCase();a=m(i.referenceKey)||V$[B$[t]]?v(r,i)(b):V$[j$[t]]?v(r,i)(A):e(g,{},r)}else"uiType"in i&&(bj.includes(i.uiType.toUpperCase())?a=v(r,i)(b):Aj.includes(i.uiType.toUpperCase())&&(a=v(r,i)(A)));n.push(a)})),p(n)}else p("string"==typeof t?t:Am.GENERIC.UNSUPPORTED)}),[c||a,y,h,d,m]);const v=(t,n)=>r=>e(vj,{id:t,...n&&"showIf"in n&&{renderRules:n.showIf},schema:n,children:r(t,n)},t),b=(t,n)=>{let r;return"uiType"in n?r=yj[gj[n.uiType?.toUpperCase()]]:"referenceKey"in n&&(r=V$[B$[n.referenceKey?.toUpperCase()]]||m(n.referenceKey)),r?e(_j,{id:t,childSchema:n,children:e(uR,{id:t,schema:n,Field:r,warning:d?.[t]})}):null},A=(t,n)=>{let r;return"uiType"in n?r=x$[w$[n.uiType?.toUpperCase()]]||Ej:"referenceKey"in n&&(r=V$[j$[n.referenceKey?.toUpperCase()]]),e(_j,{id:t,childSchema:n,children:e(r,{schema:n,id:t})})};return u?e(u,{...l,id:r,"data-testid":xA.generateId(r,u),children:f}):e(n,{children:f})},Sj=M($.Container)`
|
|
1052
|
+
`;var gj;!function(e){e.BUTTON="ButtonField",e.CHECKBOX="CheckboxGroup",e.CHIPS="Chips",e["CONTACT-FIELD"]="ContactField",e["DATE-FIELD"]="DateField",e["DATE-RANGE-FIELD"]="DateRangeField",e["EMAIL-FIELD"]="TextField",e["E-SIGNATURE-FIELD"]="ESignatureField",e["ERROR-FIELD"]="ErrorField",e["FILE-UPLOAD"]="FileUpload",e["HIDDEN-FIELD"]="HiddenField",e["HISTOGRAM-SLIDER"]="HistogramSlider",e["IMAGE-UPLOAD"]="ImageUpload",e["LOCATION-FIELD"]="LocationField",e["MASKED-FIELD"]="MaskedField",e["MULTI-SELECT"]="MultiSelect",e["NESTED-MULTI-SELECT"]="NestedMultiSelect",e["RANGE-SELECT"]="RangeSelect",e["NUMERIC-FIELD"]="TextField",e.RADIO="RadioButtonGroup",e.RESET="ResetButton",e.SELECT="Select",e["SELECT-HISTOGRAM"]="SelectHistogram",e.SLIDER="Slider",e.SUBMIT="SubmitButton",e.SWITCH="Switch",e.TEXTAREA="Textarea",e["TEXT-FIELD"]="TextField",e["TIME-FIELD"]="TimeField",e["UNIT-NUMBER-FIELD"]="UnitNumberField"}(gj||(gj={}));var yj=Object.freeze({__proto__:null,ButtonField:n=>{const{schema:{label:r,uiType:i,startIcon:a,endIcon:o,href:s,target:u,...c},id:l,...d}=n,{dispatchFieldEvent:f}=mk(),p=t=>{if(!t)return null;const n=Z[t];return e(n,{})};return t(G$,{type:"button",...c,...d,onClick:e=>{f("click",l,e),s&&(e=>{try{return!!new URL(e)}catch{return!1}})(s)&&(u?window.open(s,u,"noopener noreferrer"):window.location.href=s)},children:[p(a),r,p(o)]})},CheckboxGroup:r=>{const{formattedLabel:i,error:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:p,options:h,validation:m,...g},value:y,warning:_}=r,{setValue:v}=Be(),[b,A]=o(y||[]),{setFieldValidationConfig:E}=p$();u((()=>{const e=m?.find((e=>"required"in e));E(s,XM().of($x()).test("is-empty-array",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m)}),[m]),Rs((()=>{const e=y?.filter((e=>h.find((t=>t.value===e))));v(s,e)}),[h]),u((()=>{A(y||[])}),[y]);const S=(e,t)=>{const n=h.find((e=>!0===e.none));let r=[...b];t?r=r.includes(e)?[]:[e]:r.includes(e)?r=nR(r,e,n?.value):(r.push(e),r=nR(r,n?.value)),c({target:{value:r}})},w=e=>b.includes(e),x=()=>{const e=wm();return`${s}-${e}`},M=t=>"string"==typeof t?e(kI,{inline:!0,children:t}):e(Ej,{children:t});return t(n,{children:[e(W.CustomField,{id:s,label:i,errorMessage:a?.message,children:"toggle"===d?.styleType?h.length>0&&"toggle"===d.styleType&&e(oR,{$layoutType:d?.layoutType??"horizontal",className:l?`${l}-checkbox-container`:void 0,children:h.map(((t,n)=>{const r=x();return e(sR,{type:"checkbox","data-testid":xA.generateId(s,"toggle"),id:r,className:l,disabled:f??t.disabled,name:r,indicator:d?.indicator,styleType:!1===d?.border?"no-border":"default",checked:w(t.value),onChange:()=>S(t.value,t.none),error:!!a?.message,compositeSection:t.children?{children:e(Ej,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&M(t.subLabel),children:M(t.label)},n)}))}):h.length>0&&h.map(((n,r)=>{const i=x();return t(aR,{className:l?`${l}-checkbox-container`:void 0,children:[e(iR,{...g,"data-testid":xA.generateId(s,"checkbox"),id:i,className:l,disabled:f??n.disabled,name:i,value:n.value,checked:w(n.value),onChange:()=>S(n.value)}),e(rR,{as:"label",htmlFor:i,disabled:f??n.disabled,children:M(n.label)})]},r)}))}),e(HI,{id:s,message:_})]})},Chips:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{disabled:l,label:d,options:f,textarea:h,validation:m,...g},value:y,warning:_,...v}=r,[b,A]=o(y||[]),[E,S]=o(!1),[w,x]=o(!0),{setValue:M,unregister:T}=Be(),{setFieldValidationConfig:O,removeFieldValidationConfig:N}=p$();u((()=>{E||T(D())}),[]),u((()=>{const e=m?.find((e=>"required"in e)),t=m?.find((e=>"max"in e)),n=m?.find((e=>"length"in e));O(s,XM().of($x()).test("is-empty-array",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m),1!==t?.max&&1!==n?.length||x(!1)}),[m]),Rs((()=>{const e=[...f.map((e=>e.value)),h?.label],t=y?.filter((t=>e.includes(t)));M(s,t)}),[f]),u((()=>{y?.includes(L())?I(!0):I(),A(y||[])}),[y]);const C=e=>b.includes(e),D=()=>`${s}-textarea`,L=()=>"string"==typeof h?.label?h?.label:h?.label?.mainLabel,I=(e=!1)=>{S(e),e||N(D())},k=e=>{let t=[...b];if(t.includes(e))return t=t.filter((t=>t!==e)),void c({target:{value:t}});w?t.push(e):t=[e],c({target:{value:t}})};return t(n,{children:[t(W.CustomField,{label:a,errorMessage:i?.message,...v,children:[t(mR,{"data-testid":xA.generateId(s,"chips"),$showTextarea:E,children:[f.map(((e,t)=>p(aT,{...g,key:t,onClick:()=>k(e.value),isActive:C(e.value),disabled:l??e.disabled},e.label))),(()=>{if(!h?.label)return;const t=L();return e(aT,{...g,onClick:()=>{k(t)},isActive:C(t),children:t})})()]}),(()=>{if(!h?.label)return e(n,{});const t=D(),r={uiType:"textarea",className:g.className?`${g.className}-textarea`:void 0,...h};return E?e(uR,{id:t,schema:r,Field:hR}):e(n,{})})()]}),e(HI,{id:s,message:_})]})},ContactField:r=>{const{isDirty:i,formattedLabel:a,error:s,id:c,name:l,onChange:d,schema:{defaultCountry:f,disabled:p,enableSearch:h,label:m,placeholder:g,validation:y,..._},value:v,warning:b,...A}=r,{resetField:E}=Be(),[S,w]=o(v||""),x=y$(f),[M,T]=o(f),[O]=o((()=>{const e=new Map;return gR.forEach((t=>{const[n,...r]=t,i=r.find((e=>/^\d+$/.test(e)));e.set(n,i)})),e})()),[N,C]=o(),[D,L]=o(),[I,k]=o(void 0),{setFieldValidationConfig:$}=p$();u((()=>{const e=y?.find((e=>"contactNumber"in e)),t=e?.contactNumber?.singaporeNumber,n=e?.contactNumber?.internationalNumber,r=e?.errorMessage;O.has(n)?(T(n),k(!0)):["default","house","mobile"].includes(t)?(T("Singapore"),k(!0)):k(!1),L(t),$(c,$x().test("singaporeNumber",r||Am.CONTACT.INVALID_SINGAPORE_NUMBER,(e=>!e||!t||vF.isSingaporeNumber(e,t))).test("internationalNumber",r||Am.CONTACT.INVALID_INTERNATIONAL_NUMBER,(e=>!(e&&!t&&n)||vF.isInternationalNumber(N?.name,e))),y)}),[y,N]),u((()=>{const e=M||"Singapore";C({name:e,prefix:O.get(e)})}),[M,O]),u((()=>{const e=y?.find((e=>"contactNumber"in e)),t=e?.contactNumber?.singaporeNumber,n=e?.contactNumber?.internationalNumber;!f||x===f||O.has(n)||["default","house","mobile"].includes(t)||T(f)}),[y,f]),u((()=>{if(void 0!==I&&!i){const{prefix:e,number:t}=vF.getParsedPhoneNumber(v||""),n=e.replace(/\+/g,""),r=(e=>{for(const[t,,,n]of gR)if(t===e)return n})(M||"Singapore");if(!I||I&&n===r){const n=R({countryCode:e||r,number:t});E(c,{defaultValue:n,keepDirty:!0})}else{const e=R({countryCode:"",number:""});E(c,{defaultValue:e,keepDirty:!0})}}}),[v,i,I,M]);const R=e=>{const{countryCode:t,number:n}=e,r=t.replace(/\+/g,"");if(!1===I&&r!==N?.prefix){const e=((e,t)=>{for(const[n,r]of t.entries())if(r===e)return n})(r,O);e&&C({name:e,prefix:t})}return w(n),vF.formatPhoneNumber(e.countryCode,e.number)||""};return t(n,{children:[e(W.PhoneNumberInput,{..._,...A,"data-testid":xA.generateId(c,"contact"),disabled:p,enableSearch:h,errorMessage:s?.message,fixedCountry:I,id:c,label:a,name:l,placeholder:(()=>{if(g)return g;if(D){return`Enter ${"mobile"===D?"mobile":"home"} number`}return"Enter contact number"})(),value:(()=>{if(!N)return;const{prefix:e}=N;return{number:S,countryCode:e}})(),onChange:e=>{const t=R(e);d({target:{value:t}})}}),e(HI,{id:c,message:b})]})},DateField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{label:d,useCurrentDate:f,dateFormat:p=bF,validation:h,...m},value:g,warning:y,..._}=r,{setValue:v}=Be(),[b,A]=o(g||""),[E,S]=o(),{setFieldValidationConfig:w}=p$();u((()=>{const e=h?.find((e=>"dateFormat"in e&&e.dateFormat)),t=h?.find((e=>"future"in e)),n=h?.find((e=>"past"in e)),r=h?.find((e=>"notFuture"in e)),i=h?.find((e=>"notPast"in e)),a=h?.find((e=>"minDate"in e)),o=h?.find((e=>"maxDate"in e)),u=h?.find((e=>"excludedDates"in e)),c=h?.find((e=>"withinDays"in e)),l=h?.find((e=>"beyondDays"in e)),d=Em.toLocalDateOrTime(a?.minDate,p,"date"),f=Em.toLocalDateOrTime(o?.maxDate,p,"date");w(s,$x().test("is-date",e?.errorMessage||Am.DATE.INVALID,(e=>!e||""===e||!!T(e)&&!!Em.toLocalDateOrTime(e,p,"date"))).test("future",t?.errorMessage||Am.DATE.MUST_BE_FUTURE,(e=>{if(!T(e)||!t?.future)return!0;const n=Em.toLocalDateOrTime(e,p,"date");return!!n?.isAfter(kf.now())})).test("past",n?.errorMessage||Am.DATE.MUST_BE_PAST,(e=>{if(!T(e)||!n?.past)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!!t?.isBefore(kf.now())})).test("not-future",r?.errorMessage||Am.DATE.CANNOT_BE_FUTURE,(e=>{if(!T(e)||!r?.notFuture)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isAfter(kf.now())})).test("not-past",i?.errorMessage||Am.DATE.CANNOT_BE_PAST,(e=>{if(!T(e)||!i?.notPast)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isBefore(kf.now())})).test("min-date",a?.errorMessage||Am.DATE.MIN_DATE(Em.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!d)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isBefore(d)})).test("max-date",o?.errorMessage||Am.DATE.MAX_DATE(Em.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!f)return!0;const t=Em.toLocalDateOrTime(e,p,"date");return!t?.isAfter(f)})).test("excluded-dates",u?.errorMessage||Am.DATE.DISABLED_DATES,(e=>!T(e)||!u||!u.excludedDates.includes(e))).test("within-days",c?.errorMessage||c?.withinDays&&Am.DATE.WITHIN_DAYS(c?.withinDays),(e=>!T(e)||!c||Em.checkWithinDays(e,{...c.withinDays,dateFormat:p}))).test("beyond-days",l?.errorMessage||l?.beyondDays&&Am.DATE.BEYOND_DAYS(l?.beyondDays),(e=>!T(e)||!l||Em.checkBeyondDays(e,{...l.beyondDays,dateFormat:p}))),h);const m=c?.withinDays&&Em.calculateDisabledWithinDaysRange({...c.withinDays,dateFormat:p}),g=l?.beyondDays&&Em.calculateDisabledBeyondDaysRange({...l.beyondDays,dateFormat:p}),y=M([d,t?.future&&kf.now().plusDays(1),i?.notPast&&kf.now(),m?.startDate,g?.startDate]),_=x([f,n?.past&&kf.now().minusDays(1),r?.notFuture&&kf.now(),m?.endDate,g?.endDate]),v=[...u?.excludedDates||[]];(y||_||v)&&S((e=>({...e,minDate:y?.format(AF),maxDate:_?.format(AF),disabledDates:v})))}),[h]),u((()=>{if(p)if(g)if(T(g)){const e=Em.toLocalDateOrTime(g,p,"date");A(Em.formatDateTime(e?.toString(),bF,"date",Am.DATE.INVALID))}else A(Am.DATE.INVALID);else if(!c)if(f){const e=Em.formatDateTime(kf.now().toString(),p,"date");v(s,e);const t=Em.formatDateTime(kf.now().toString(),bF,"date");A(t)}else A(void 0)}),[f,g,p,c]);const x=e=>e.filter((e=>e)).sort(((e,t)=>e.isAfter(t)?1:-1))?.[0],M=e=>e.filter((e=>e)).sort(((e,t)=>e.isBefore(t)?1:-1))?.[0],T=e=>e&&e!==Am.DATE.INVALID;return t(n,{children:[e(W.DateInput,{...m,..._,...E,id:s,"data-testid":xA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:e=>{l({target:{value:Em.formatDateTime(e,p,"date",Am.DATE.INVALID)}})},value:b}),e(HI,{id:s,message:y})]})},DateRangeField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{dateFormat:d=SF,label:f,validation:p,variant:h,...m},value:g={from:void 0,to:void 0},warning:y,..._}=r,[v,b]=o(g.from||""),[A,E]=o(g.to||""),[S,w]=o(),{setFieldValidationConfig:x}=p$();u((()=>{const e=p?.find((e=>"dateFormat"in e&&e.dateFormat)),t=p?.find((e=>"future"in e)),n=p?.find((e=>"past"in e)),r=p?.find((e=>"notFuture"in e)),i=p?.find((e=>"notPast"in e)),a=p?.find((e=>"minDate"in e)),o=p?.find((e=>"maxDate"in e)),u=p?.find((e=>"required"in e)),c=p?.find((e=>"excludedDates"in e)),l=p?.find((e=>"numberOfDays"in e)),f=Em.toLocalDateOrTime(a?.minDate,d,"date"),m=Em.toLocalDateOrTime(o?.maxDate,d,"date");x(s,KM().shape({from:$x(),to:$x()}).test("is-empty-string",u?.errorMessage||Am.DATE_RANGE.REQUIRED,(e=>!e||!u||e.from?.length>0&&e.to?.length>0)).test("is-date",e?.errorMessage||Am.DATE_RANGE.INVALID,(e=>!(!$I.exports.isEmpty(e?.from)&&!$I.exports.isEmpty(e?.to))||O(e.from)&&O(e.to)&&!!Em.toLocalDateOrTime(e.from,d,"date")&&!!Em.toLocalDateOrTime(e.to,d,"date"))).test("number-of-days",l?.errorMessage||Am.DATE_RANGE.MUST_HAVE_NUMBER_OF_DAYS(l?.numberOfDays),(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!l?.numberOfDays)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date");return Em.toLocalDateOrTime(e.to,d,"date").equals(t.plusDays(l?.numberOfDays-1))})).test("future",t?.errorMessage||Am.DATE_RANGE.MUST_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!t?.future)return!0;const n=Em.toLocalDateOrTime(e.from,d,"date"),r=Em.toLocalDateOrTime(e.to,d,"date");return!!n?.isAfter(kf.now())&&!!r?.isAfter(kf.now())})).test("past",n?.errorMessage||Am.DATE_RANGE.MUST_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!n?.past)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),r=Em.toLocalDateOrTime(e.to,d,"date");return!!t?.isBefore(kf.now())&&!!r?.isBefore(kf.now())})).test("not-future",r?.errorMessage||Am.DATE_RANGE.CANNOT_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!r?.notFuture)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(kf.now())&&!n?.isAfter(kf.now())})).test("not-past",i?.errorMessage||Am.DATE_RANGE.CANNOT_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!i?.notPast)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(kf.now())&&!n?.isBefore(kf.now())})).test("min-date",a?.errorMessage||Am.DATE_RANGE.MIN_DATE(Em.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!f)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(f)&&!n?.isBefore(f)})).test("max-date",o?.errorMessage||Am.DATE_RANGE.MAX_DATE(Em.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!m)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(m)&&!n?.isAfter(m)})).test("excluded-dates",c?.errorMessage||Am.DATE_RANGE.DISABLED_DATES,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!c)return!0;const t=Em.toLocalDateOrTime(e.from,d,"date"),n=Em.toLocalDateOrTime(e.to,d,"date");try{const e=c.excludedDates.map((e=>Em.toLocalDateOrTime(e,d,"date")));for(const r of e)if(t.isEqual(r)||n.isEqual(r))return!1;return!0}catch{return!1}})),p);const g=T([f,t?.future&&kf.now().plusDays(1),i?.notPast&&kf.now()]),y=M([m,n?.past&&kf.now().minusDays(1),r?.notFuture&&kf.now()]),_=c?.excludedDates,v=l?.numberOfDays;(g||y||_||v)&&w((e=>({...e,minDate:g?.format(wF),maxDate:y?.format(wF),disabledDates:_,numberOfDays:v})))}),[p]),u((()=>{N(EF.START)}),[g.from,d,c]),u((()=>{N(EF.END)}),[g.to,d,c]);const M=e=>e.filter((e=>e)).sort(((e,t)=>e.isAfter(t)?1:-1))?.[0],T=e=>e.filter((e=>e)).sort(((e,t)=>e.isBefore(t)?1:-1))?.[0],O=e=>e&&e!==Am.DATE_RANGE.INVALID,N=e=>{const t=e===EF.START?g.from:g.to,n=e===EF.START?b:E;if(d)if(t)if(O(t)){const e=Em.toLocalDateOrTime(t,d,"date");n(Em.formatDateTime(e?.toString(),SF,"date",Am.DATE_RANGE.INVALID))}else n(Am.DATE_RANGE.INVALID);else c||n(void 0)};return t(n,{children:[e(W.DateRangeInput,{...m,..._,...S,id:s,"data-testid":xA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:(e,t)=>{l({target:{value:{from:Em.formatDateTime(e,d,"date",Am.DATE_RANGE.INVALID),to:Em.formatDateTime(t,d,"date",Am.DATE_RANGE.INVALID)}}})},value:v,valueEnd:A,variant:h}),e(HI,{id:s,message:y})]})},get TDateRangeInputType(){return EF},ESignatureField:n=>{const{error:r,formattedLabel:i,id:a,onChange:c,schema:{label:l,uiType:d,upload:f,validation:p,...h},value:m,warning:g}=n,[y,_]=o(null),[v,b]=o(0),[A,E]=o(0),[S,w]=o(null),{setFieldValidationConfig:x}=p$(),M=s(null),{clearErrors:T}=Be();u((()=>{const e=p?.find((e=>"upload"in e&&e.upload));M.current=e,x(a,KM().shape({fileId:$x().required(),dataURL:$x(),fileUrl:$x(),uploadResponse:Mx().nullable()}).default(void 0),p)}),[p]),u((()=>{if(E(0),N(m)){if(m.dataURL)_(m.dataURL);else if(m.fileUrl){const e=D(m.fileId,m.fileUrl);return()=>e.abort()}}else _(null)}),[m]);const O=async e=>{if(!e)return _(null),E(0),b(0),w(null),void c({target:{value:null}});const t=wm();if(_(e),E(0),SA(f))c({target:{value:{fileId:t,dataURL:e}}});else try{const n=await C(t,e);c({target:{value:{fileId:t,..."base64"===f.type&&{dataURL:e},fileUrl:n?.data?.fileUrl,uploadResponse:n}}}),T(a),b(0)}catch(e){b((e=>e+1)),w(null)}},N=e=>!!e,C=async(e,t)=>{w(0);const n=new FormData;if(n.append("fileId",e),f.sessionId&&n.append("sessionId",f.sessionId),"base64"===f.type)n.append("dataURL",t);else if("multipart"===f.type){const r=await bm.dataUrlToBlob(t),i=bm.blobToFile(r,{name:e,lastModified:Date.now()});n.append("file",i,e)}const r=await new Ml("",void 0,void 0,!0).post(f.url,n,{headers:{"Content-Type":"base64"===f.type?"application/json":"multipart/form-data",...f.headers},onUploadProgress:e=>{const{loaded:t,total:n}=e;w(t/n)}});return w(null),r},D=(e,t)=>{const n=new AbortController;return(async()=>{try{const r=await new Ml("",void 0,void 0,!1,{responseType:"blob"}).get(t,{signal:n.signal}),i=await bm.getType(new File([r],e)),a=new File([r],e,{type:i.mime}),o=await bm.fileToDataUrl(a);_(o),E(0)}catch(e){if(e instanceof ll)return;E((e=>e+1))}})(),n};return t(xF,{children:[e(W.ESignature,{...h,id:a,label:i,onChange:O,value:y,...null!==S&&{loadingProgress:S}}),(r?.message||v||A)&&null===S?v>0?t(MF,{children:[M.current?.errorMessage||Am.ESIGNATURE.UPLOAD,e(TF,{type:"button",onClick:()=>O(y),children:"Please try again."}),v>=3&&e(OF,{type:"warning","data-testid":"upload-refresh-alert",children:"Refresh this page if you cannot upload your signature."})]}):A>0&&N(m)?t(MF,{children:["Failed to load.",e(TF,{type:"button",onClick:()=>D(m.fileId,m.fileUrl),children:"Please try again."}),A>=3&&e(OF,{type:"warning","data-testid":"load-refresh-alert",children:"Refresh this page if your signature failed to load."})]}):e(MF,{children:r?.message}):null,e(HI,{id:a,message:g})]})},ErrorField:t=>{const{id:n,schema:{children:r}}=t,{setFieldValidationConfig:i}=p$();return u((()=>{i(n,Mx().test((()=>!1)),[])}),[]),r?e(Ej,{children:r}):null},FileUploadInner:iP,FileUpload:t=>e(eP,{children:e(iP,{...t})}),get EFileStatus(){return nP},HiddenField:t=>{const{id:n,name:r,onBlur:i,onChange:a,schema:{showIf:o,uiType:s,validation:c,valueType:l,value:d,...f},value:p}=t,{setFieldValidationConfig:h}=p$(),{setValue:m}=Be();return u((()=>{let e;switch(l){case"null":e=Mx();break;case"number":e=zx();break;case"boolean":e=Ox();break;default:e=$x()}h(n,e,c)}),[c,l]),u((()=>{"null"===l&&null!==p?m(n,null):TA(d)||p===d||m(n,d)}),[m,n,l,d,p]),e("input",{onBlur:i,onChange:a,...f,type:"hidden",id:n,"data-testid":n,name:r,value:d??p??""})},HistogramSlider:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,bins:d,interval:f,validation:p,disabled:h,readOnly:m,className:g,ariaLabels:y,customOptions:_},value:v,warning:b}=r,{resetField:A}=Be(),[E,S]=o(void 0),{setFieldValidationConfig:w}=p$();u((()=>{if(v)S([v.from,v.to]);else{const e=Math.min(...d.map((e=>e.minValue))),t=Math.max(...d.map((e=>e.minValue)))+f;A(s,{defaultValue:{from:e,to:t},keepDirty:!0}),S([e,t])}}),[v]),u((()=>{const e=p?.find((e=>"required"in e)),t=p?.find((e=>"bin"in e&&e.bin)),n=p?.find((e=>"incremental"in e&&e.incremental)),r=p?.find((e=>"withinRange"in e&&e.withinRange));w(s,KM({from:zx(),to:zx()}).test("is-required",e?.errorMessage||Am.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!TA(t.from)&&!TA(t.to))).test("is-bin",t?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...d.map((e=>e.minValue)));return Number.isInteger((t-r)/f)&&Number.isInteger((n-r)/f)})).test("is-incremental",n?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...d.map((e=>e.minValue))),i=Math.max(...d.map((e=>e.minValue)))+f;return!(t<r||n>i)})),p)}),[p,d,f]);return t(n,{children:[e(W.HistogramSlider,{..._,id:s,"data-testid":xA.generateId(s,"histogram-slider"),label:a,errorMessage:i?.message,onChangeEnd:e=>{const[t,n]=e;c({target:{value:{from:t,to:n}}})},value:E,bins:d,interval:f,disabled:h,readOnly:m,className:g,ariaLabels:y}),e(HI,{id:s,message:b})]})},ImageUploadInner:KU,ImageUpload:t=>e(oP,{children:e(KU,{...t})}),ACCEPTED_FILE_TYPES:uP,get EImageStatus(){return cP},LocationField:n=>{const{error:r,formattedLabel:i,id:a,schema:{className:s="location",convertLatLngToXYEndpoint:c,disabled:l,gettingCurrentLocationFetchMessage:d,interactiveMapPinIconUrl:f,label:p,locationInputPlaceholder:h,locationListTitle:m,locationModalStyles:g,mapBannerText:y,mapPanZoom:v,mustHavePostalCode:b,readOnly:A,reverseGeoCodeEndpoint:E,staticMapPinColor:S,validation:w,hasExplicitEdit:x,locationSelectionMode:M="default",disableSearch:T,addressFieldPlaceholder:O,searchBarIcon:N,bufferRadius:D,pinsOnlyIndicateCurrentLocation:L},value:I,warning:k}=n,[$,R]=o(!1),{setValue:z}=Be(),{setFieldValidationConfig:F}=p$(),{dispatchFieldEvent:P,addFieldEventListener:Z,removeFieldEventListener:U}=mk();u((()=>(Z("show-location-modal",a,V),()=>{U("show-location-modal",a,V)})),[]),u((()=>{const e=w?.find((e=>"required"in e)),t=w?.find((e=>"postalCode"in e));F(a,KM({address:$x(),blockNo:$x(),building:$x(),lat:zx(),lng:zx(),postalCode:$x(),roadName:$x(),x:zx(),y:zx()}).test("is-required",e?.errorMessage||Am.COMMON.FIELD_REQUIRED,(t=>!e?.required||!!t&&!!t.lat&&!!t.lng)).test("must-have-postal-code",t?.errorMessage||Am.LOCATION.MUST_HAVE_POSTAL_CODE,(t=>!e||!b||ZI.hasGotAddressValue(t.postalCode))),w)}),[w]);const j=(e,t=!0)=>{z(a,e,{shouldDirty:t})},B=()=>{A||l||(R(!0),P("show-location-modal",a))},V=()=>{R(!0)};return t("div",{id:a,"data-testid":xA.generateId(a),className:s,children:[e(ij,{id:a,label:i,className:s,locationInputPlaceholder:h,onChange:e=>e.currentTarget.blur(),onFocus:B,value:I?.address||"",errorMessage:r?.message,disabled:"explicit"===x&&I?.address||l,readOnly:A}),x&&I?.address&&e(C.Default,{id:xA.generateId(a,"edit-button"),"data-testid":xA.generateId(a,"edit-button"),styleType:"secondary",onClick:()=>{!P("click-edit-button",a)||R(!0)},type:"button",children:"Edit"}),!!I?.lat&&!!I?.lng&&e(GI,{id:a,className:`${s}-static-map`,lat:I.lat,lng:I.lng,staticMapPinColor:S,onClick:B,disabled:l}),e(_,{fallback:null,children:aj&&e(aj,{id:a,className:s,showLocationModal:$,onClose:()=>{R(!1),P("hide-location-modal",a)},formValues:I,onConfirm:j,updateFormValues:j,mapPanZoom:v,reverseGeoCodeEndpoint:E,convertLatLngToXYEndpoint:c,interactiveMapPinIconUrl:f,gettingCurrentLocationFetchMessage:d,mustHavePostalCode:b,locationModalStyles:g,locationListTitle:m,mapBannerText:y,locationSelectionMode:M,disableSearch:T,addressFieldPlaceholder:O,searchBarIcon:N,bufferRadius:D,pinsOnlyIndicateCurrentLocation:L})}),e(HI,{id:a,message:k})]})},GeolocationPositionErrorWrapper:oj,MaskedField:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,value:l,schema:{label:d,uiType:f,validation:p,maskRegex:h,iconMask:m,iconUnmask:g,...y},warning:_,...v}=r,[b,A]=o(l||""),[E,S]=o({}),{setFieldValidationConfig:w}=p$();u((()=>{w(s,$x(),p);const e=p?.find((e=>"max"in e)),t=p?.find((e=>"length"in e)),n={...E};e?.max>0?n.maxLength=e.max:t?.length>0&&(n.maxLength=t.length),S(n)}),[p]),u((()=>{l!==b&&A(l||"")}),[l]);const x=t=>{if(!t)return;const n=Z[t];return e(n,{"data-testid":t})};return t(n,{children:[e(W.MaskedInput,{...y,...v,...E,id:s,"data-testid":xA.generateId(s,f),label:a,onChange:e=>{c(e)},value:b,errorMessage:i?.message,maskRegex:(()=>{if(h)try{const e=h.match(/\/(.*)\/([a-z]+)?/);return new RegExp(e[1],e[2])}catch(e){console.warn(`invalid regex pattern: ${h}`)}})(),iconMask:x(m),iconUnmask:x(g)}),e(HI,{id:s,message:_})]})},MultiSelect:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,options:d=[],validation:f,...p},value:h,warning:m,...g}=r,{setValue:y}=Be(),[_,v]=o(h||[]),{setFieldValidationConfig:b}=p$();u((()=>{const e=f?.find((e=>"required"in e));b(s,XM().of($x()).test("is-empty-array",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),f)}),[f]),zs((()=>{const e=h?.filter((e=>d.find((t=>t.value===e))));y(s,e)}),[d]),u((()=>{v(h||[])}),[h]);return t(n,{children:[e(W.MultiSelect,{...p,...g,id:s,"data-testid":xA.generateId(s),label:a,options:d,onSelectOptions:e=>{const t=e.map((e=>e.value));c({target:{value:t}})},selectedOptions:d.filter((e=>_.includes(e.value))),valueExtractor:e=>e.value,listExtractor:e=>e.label,errorMessage:i?.message}),e(HI,{id:s,message:m})]})},NestedMultiSelect:r=>{const{schema:{label:i,validation:a,options:s=[],...c},id:l,value:f,formattedLabel:p,onChange:h,onBlur:m,error:g,warning:y,..._}=r,{setValue:v}=Be(),{setFieldValidationConfig:b}=p$(),[A,E]=o(f),[S,w]=o([]),x=d((e=>{const t=[],n=(e,r)=>{for(const i in e){const a=[...r,i],o=e[i];"string"==typeof o?t.push(a):n(o,a)}};return n(e,[]),t}),[]);u((()=>{const e=a?.find((e=>"required"in e));b(l,KM().test("is-required",e?.errorMessage||Am.COMMON.REQUIRED_OPTION,(t=>!e?.required||!!t&&!!Object.keys(t).length)),a)}),[a]),zs((()=>{const e=(t,n)=>{const r={};for(const i of t){const{key:t,subItems:a}=i,o=n[t];if(o){const n="string"==typeof o?o:e(a||[],o);Object.keys(n).length?r[t]=n:delete r[t]}}return r},t=f?e(s,f):f;v(l,t)}),[s]),u((()=>{E(f);const e=x(f);w(e)}),[x,A,f]);return t(n,{children:[e(W.NestedMultiSelect,{...c,..._,id:l,"data-testid":xA.generateId(l),label:p,options:s,onSelectOptions:(e,t)=>{const n=((e,t)=>{const n={};return e.forEach(((e,r)=>{e.reduce(((n,i,a)=>(a===e.length-1?n[i]=t[r]:n[i]||(n[i]={}),n[i])),n)})),n})(e,t);h({target:{value:n}})},selectedKeyPaths:S,errorMessage:g?.message,onBlur:m}),e(HI,{id:l,message:y})]})},RadioButtonGroup:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:h,options:m,validation:g,...y},value:_,warning:v}=r,{setValue:b}=Be(),[A,E]=o(_||""),{setFieldValidationConfig:S}=p$();u((()=>{S(s,$x(),g)}),[g]),Rs((()=>{m.find((e=>e.value===_))||b(s,"")}),[m]),u((()=>{E(_||"")}),[_]);const w=e=>{c({target:{value:e}})},x=e=>A===e,M=()=>{const e=wm();return`${s}-${e}`},T=t=>"string"==typeof t?e(kI,{inline:!0,children:t}):e(Ej,{children:t});return t(n,{children:[e(W.CustomField,{id:s,label:a,errorMessage:i?.message,children:(()=>{switch(d?.styleType){case"toggle":return m.length>0&&"toggle"===d.styleType&&e(fj,{className:l?`${l} ${l}-radio-container`:void 0,$layoutType:d?.layoutType??"horizontal",children:m.map(((t,n)=>{const r=M();return p(pj,{...y,key:n,type:"radio",id:r,className:l?`${l}-radio`:void 0,"data-testid":xA.generateId(s,"radio"),disabled:f??t.disabled,name:r,indicator:d?.indicator,styleType:!1===d?.border?"no-border":"default",checked:x(t.value),onChange:()=>w(t.value),error:!!i?.message,compositeSection:t.children?{children:e(Ej,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&T(t.subLabel)},T(t.label))}))});case"image-button":return m.length>0&&e(dj,{className:l?`${l} ${l}-radio-container`:void 0,children:m.map(((e,t)=>{const n=M();return p(cj,{...y,type:"button",key:t,id:n,className:l?`${l}-radio`:void 0,"data-testid":xA.generateId(s,"radio"),disabled:f??e.disabled,name:n,selected:x(e.value),onClick:()=>w(e.value),imgSrc:e.imgSrc,error:!!i?.message},e.label)}))});default:return m.length>0&&m.map(((n,r)=>{const i=M();return t(lj,{className:l?`${l}-radio-container`:void 0,children:[e(uj,{...y,className:l,id:i,"data-testid":xA.generateId(s,"radio"),disabled:f??n.disabled,name:i,value:n.value,checked:x(n.value),onChange:()=>w(n.value)}),e(sj,{as:"label",htmlFor:i,disabled:f??n.disabled,children:T(n.label)})]},r)}))}})()}),e(HI,{id:s,message:v})]})},RangeSelect:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,options:d,validation:f,...p},value:h={from:void 0,to:void 0},warning:m,...g}=r,{setValue:y}=Be(),[_,v]=o(h.from||""),[b,A]=o(h.to||""),{setFieldValidationConfig:E}=p$();u((()=>{const e=f?.find((e=>"required"in e));E(s,KM().shape({from:$x(),to:$x()}).test("is-empty-string",e?.errorMessage||Am.COMMON.REQUIRED_OPTIONS,(t=>!t||!e?.required||t.from?.length>0&&t.to?.length>0)),f)}),[f]),Rs((()=>{const e={};d.from.find((e=>e.value===h.from))||(e.from=""),d.to.find((e=>e.value===h.to))||(e.to=""),y(s,{...h,...e})}),[d]),u((()=>{A(h.from),v(h.to)}),[h]);return t(n,{children:[e(W.RangeSelect,{...p,...g,id:s,onHideOptions:()=>{h.from&&h.to||c({target:{value:{from:void 0,to:void 0}}})},"data-testid":xA.generateId(s),label:a,options:d,onSelectOption:e=>{void 0===e.from&&void 0===e.to&&c({target:{value:{from:void 0,to:void 0}}}),e.from&&c({target:{value:{from:e.from.value,to:void 0}}}),e.to&&c({target:{value:{to:e.to.value,from:b}}})},selectedOptions:{from:d.from.find((({value:e})=>e===b)),to:d.to.find((({value:e})=>e===_))},valueToStringFunction:e=>`${e.from} - ${e.to}`,valueExtractor:e=>({from:e.value,to:e.value}),displayValueExtractor:e=>e.label,listExtractor:e=>e.label,errorMessage:i?.message}),e(HI,{id:s,message:m})]})},ResetButton:t=>{const{id:n,schema:{disabled:r,ignoreDefaultValues:i,label:a,...o},...s}=t,{reset:u,getValues:c}=Be(),{resetFields:l}=f$(),{formSchema:{defaultValues:d}}=d$();return e(C.Default,{...o,...s,disabled:r,"data-testid":n,id:n,type:"reset",onClick:()=>{if(i){const e=c();Object.entries(e).forEach((([t,n])=>{li(n)?e[t]=[]:z$(n)||ik(n)?e[t]="":ti(n)&&(e[t]={})})),u(e),l(e)}else u(),l(d)},children:a})},Select:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,options:d,validation:f,...p},value:h,warning:m,...g}=r,{setValue:y}=Be(),[_,v]=o(h||""),{setFieldValidationConfig:b}=p$();u((()=>{b(s,$x(),f)}),[f]),Rs((()=>{d.find((e=>e.value===h))||y(s,"")}),[d]),u((()=>{v(h||"")}),[h]);return t(n,{children:[e(W.Select,{...p,...g,id:s,"data-testid":xA.generateId(s,"select"),label:a,errorMessage:i?.message,options:d,onSelectOption:(e,t)=>{c({target:{value:t}})},selectedOption:d.find((({value:e})=>e===_)),displayValueExtractor:e=>e.label,valueExtractor:e=>e.value,listExtractor:e=>e.label}),e(HI,{id:s,message:m})]})},SelectHistogram:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,validation:d,disabled:f,readOnly:p,className:h,histogramSlider:m,customOptions:g},value:y,warning:_,...v}=r,{bins:b,interval:A,...E}=m,{resetField:S}=Be(),[w,x]=o([0,0]),{setFieldValidationConfig:M}=p$();u((()=>{if(y)x([y.from,y.to]);else{const e=Math.min(...b.map((e=>e.minValue))),t=Math.max(...b.map((e=>e.minValue)))+A;S(s,{defaultValue:{from:e,to:t},keepDirty:!0}),x([e,t])}}),[y]),u((()=>{const e=d?.find((e=>"required"in e)),t=d?.find((e=>"bin"in e&&e.bin)),n=d?.find((e=>"incremental"in e&&e.incremental)),r=d?.find((e=>"withinRange"in e&&e.withinRange));M(s,KM({from:zx(),to:zx()}).test("is-required",e?.errorMessage||Am.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!TA(t.from)&&!TA(t.to))).test("is-bin",t?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...b.map((e=>e.minValue)));return Number.isInteger((t-r)/A)&&Number.isInteger((n-r)/A)})).test("is-incremental",n?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(e=>{if(!e||"number"!=typeof e.from||"number"!=typeof e.to)return!0;const{from:t,to:n}=e,r=Math.min(...b.map((e=>e.minValue))),i=Math.max(...b.map((e=>e.minValue)))+A;return!(t<r||n>i)})),d)}),[d,b,A]);return t(n,{children:[e(W.SelectHistogram,{...v,id:s,"data-testid":xA.generateId(s,"select-histogram"),label:a,errorMessage:i?.message,onChangeEnd:e=>{const[t,n]=e;c({target:{value:{from:t,to:n}}})},disabled:f,readOnly:p,className:h,rangeLabelPrefix:g?.rangeLabelPrefix,rangeLabelSuffix:g?.rangeLabelSuffix,value:w,histogramSlider:{bins:b,interval:A,...E}}),e(HI,{id:s,message:_})]})},Slider:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{label:l,customOptions:d,validation:f,disabled:p,readOnly:h,className:m,ariaLabel:g},value:y,warning:_}=r,[v,b]=o(),{setFieldValidationConfig:A}=p$();u((()=>{const e=f?.find((e=>"min"in e)),t=f?.find((e=>"max"in e)),n=f?.find((e=>"increment"in e));A(s,zx().test("is-incremental",n?.errorMessage||Am.SLIDER.MUST_BE_INCREMENTAL,(t=>{if("number"!=typeof t||!n)return!0;const r=n.increment,i=(e?.min??0)-t;return Number.isInteger(i/r)})),f),(e||t||n)&&b({min:e?.min,max:t?.max,step:n?.increment})}),[f]);return t(n,{children:[e(W.Slider,{...d,...v,id:s,"data-testid":xA.generateId(s,"slider"),label:a,errorMessage:i?.message,onChangeEnd:e=>{c({target:{value:e}})},value:y,disabled:p,readOnly:h,className:m,ariaLabel:g}),e(HI,{id:s,message:_})]})},SubmitButton:t=>{const{id:n,schema:{disabled:r,label:i,...a},...s}=t,{submitHandler:c,wrapInForm:l}=m$(),{setFieldValidationConfig:d}=p$(),{hardValidationSchema:f}=_$(),p=et({disabled:"invalid-form"!==r}),[h,m]=o(!0===r);u((()=>{d(n,Mx())}),[]),u((()=>{"invalid-form"!==r&&m(!!r)}),[r]),Rs((()=>{(async()=>{if("invalid-form"===r)try{await f.validate(p),m(!1)}catch(e){m(!0)}})()}),[p,f]);return e(C.Default,{...a,...s,disabled:h,"data-testid":n,id:n,onClick:e=>{l||(e.preventDefault(),c?.())},type:"submit",children:i})},Switch:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:p,validation:h,...m},value:g,warning:y}=r,[_,v]=o(g||void 0),{setFieldValidationConfig:b}=p$();u((()=>{b(s,Ox().strict(),h)}),[h]),u((()=>{v(g)}),[g]);const A=e=>{c({target:{value:e}})},E=e=>_===e,S=e=>`${s}-${e}`;return t(n,{children:[e(W.CustomField,{id:s,label:a,errorMessage:i?.message,children:t(hj,{className:l,role:"radiogroup","aria-label":"string"==typeof p?p:II(p.mainLabel,{allowedTags:[]}),children:[e(q,{...m,type:"yes",id:S("yes"),"data-testid":xA.generateId(s,"switch-yes"),disabled:f,styleType:!1===d?.border?"no-border":"default",checked:E(!0),onChange:()=>A(!0),indicator:!0,name:s,error:!!i?.message,children:"Yes"}),e(q,{...m,type:"no",id:S("no"),"data-testid":xA.generateId(s,"switch-no"),disabled:f,styleType:!1===d?.border?"no-border":"default",checked:E(!1),onChange:()=>A(!1),indicator:!0,name:s,error:!!i?.message,children:"No"})]})}),e(HI,{id:s,message:y})]})},TextField:r=>{const{error:i,formattedLabel:a,id:c,onChange:l,value:d,schema:f,warning:p,...h}=r,{customOptions:m,inputMode:g,label:y,uiType:_,validation:v,...b}=f,[A,E]=o(d||""),[S,w]=o({}),{setFieldValidationConfig:x}=p$(),M=s(null),T=s(0);u((()=>{switch(_){case"numeric-field":{x(c,zx(),v);const e=v?.find((e=>"min"in e)),t=v?.find((e=>"max"in e)),n={...S};e?.min>0&&(n.min=e.min),t?.max>0&&(n.max=t.max),w(n);break}case"email-field":{const e=v?.find((e=>e.email));x(c,$x().email(e?.errorMessage||Am.EMAIL.INVALID),v);const t=v?.find((e=>"max"in e)),n=v?.find((e=>"length"in e)),r={...S};t?.max>0?r.maxLength=t.max:n?.length>0&&(r.maxLength=n.length),w(r);break}case"text-field":{x(c,$x(),v);const e=v?.find((e=>"max"in e)),t=v?.find((e=>"length"in e)),n={...S};e?.max>0?n.maxLength=e.max:t?.length>0&&(n.maxLength=t.length),w(n);break}}}),[v]),u((()=>{d!==A&&E(d||"")}),[d]),u((()=>{"text-field"===_&&document?.activeElement===M.current&&M.current.selectionEnd!==T.current&&M.current.setSelectionRange(T.current,T.current)}),[A]),u((()=>{"text-field"===f.uiType&&"uppercase"===f.customOptions?.textTransform&&A&&E((e=>e?.toString().toUpperCase()))}),["text-field"===f.uiType&&f.customOptions?.textTransform]);const O=()=>!!m?.addOn,N=O()?W.InputGroup:W.Input;return t(n,{children:[e(N,{...b,...h,...S,id:c,"data-testid":xA.generateId(c,_),ref:M,type:(()=>{switch(_){case"numeric-field":return"number";case"email-field":return"email";default:return"text"}})(),label:a,onPaste:e=>{const t=e.clipboardData.getData("text");(m?.preventCopyAndPaste||"numeric-field"===_&&/e/i.test(t))&&e.preventDefault()},onDrop:e=>m?.preventDragAndDrop?e.preventDefault():null,inputMode:(()=>{if(g)return g;switch(_){case"numeric-field":return"numeric";case"email-field":return"email";case"text-field":return"text";default:return"none"}})(),onChange:e=>{if("numeric-field"===_){const t=!isNaN(parseFloat(e.target.value))?+e.target.value:void 0;return l({target:{value:t}}),void E(t)}"text-field"===f.uiType?(T.current=e.target.selectionEnd,"uppercase"===f.customOptions?.textTransform&&(e.target.value=e.target.value.toUpperCase()),l(e)):l(e),E(e.target.value)},onKeyDown:e=>{"numeric-field"===_&&"e"===e.key.toLowerCase()&&e.preventDefault()},value:A,errorMessage:i?.message,addon:(()=>{if(O()){if("label"===m.addOn.type)return{type:"label",position:m.addOn.position,attributes:{value:m.addOn.value}};if("icon"===m.addOn.type){const{icon:t,position:n,color:r}=m.addOn,i=Z[t];return{type:"custom",position:n,attributes:{children:e(mj,{as:i,$color:r})}}}}})()}),e(HI,{id:c,message:p})]})},Textarea:hR,TimeField:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{is24HourFormat:l,label:d,placeholder:f,useCurrentTime:p,validation:h,...m},value:g,warning:y,..._}=r,[v,b]=o(g||""),{setFieldValidationConfig:A}=p$();u((()=>{A(s,$x(),h)}),[h]),u((()=>{if(p&&!g){const e=l?"H:mm":"h:mma";setTimeout((()=>E(e)))}else b(g)}),[g,p,l]);const E=e=>{const t=Em.formatDateTime(zf.now().toString().toUpperCase(),e,"time");b(t),c({target:{value:t}})};return t(n,{children:[e(W.Timepicker,{...m,..._,id:s,"data-testid":xA.generateId(s,"time"),label:a,errorMessage:i?.message,value:v,placeholder:f,format:l?"24hr":"12hr",onChange:e=>{c({target:{value:e}})}}),e(HI,{id:s,message:y})]})},get EFieldType(){return gj},UnitNumberField:r=>{const{formattedLabel:i,error:a,id:s,onChange:c,schema:{label:l,validation:d,...f},value:p,warning:h,...m}=r,[g,y]=o(p||""),{setFieldValidationConfig:_}=p$();u((()=>{const e=d?.find((e=>"unitNumberFormat"in e));_(s,$x().matches(/^([a-zA-Z0-9]{1,3}-[a-zA-Z0-9]{1,5})$/,{excludeEmptyString:!0,message:e?.errorMessage||Am.UNIT_NUMBER.INVALID}),d)}),[d]),u((()=>{y(p||"")}),[p]);return t(n,{children:[e(W.UnitNumberInput,{...f,...m,id:s,"data-testid":xA.generateId(s,"unit-number"),label:i,value:g,onChange:e=>{c({target:{value:e}})},errorMessage:a?.message}),e(HI,{id:s,message:h})]})}});const _j=({id:t,children:r,childSchema:i})=>{if("columns"in i){const{desktop:n,tablet:a,mobile:o,...s}=i.columns||{};return e($.ColDiv,{"data-testid":xA.generateId(t,"grid_item"),desktopCols:n??12,tabletCols:a,mobileCols:o,...s,children:r})}return e(n,{children:r})},vj=({id:t,renderRules:r,children:i,schema:a})=>{const{formValidationConfig:s,removeFieldValidationConfig:u}=p$(),[c,l]=o(void 0),{formValues:d}=f$(),{unregister:f}=Be();zs((()=>{if(SA(r))return;const e=p();if(e!==c){if(!e){[t,...h(a)].forEach((e=>{u(e),f(e)}))}l(e)}}),[s,d,r]);const p=()=>{if(SA(r))return!0;let e=!1;return r.forEach((t=>{if(!e){const n={};Object.entries(t).forEach((([e,t])=>{if(t.find((e=>e.shown))&&!s?.[e])return void(n[e]={schema:Mx().test("shown",(()=>!1)),validationRules:[]});const r=s?.[e]?.schema.type;if(r){let i=qI.mapSchemaType(r);"number"===r&&(i=i.nullable().transform(((e,t)=>!isNaN(parseFloat(t?.toString()))?+t:void 0))),n[e]={schema:i,validationRules:t}}}));const r=qI.buildSchema(n);try{r.validateSync(d),e=!0}catch(e){}}})),e},h=e=>{const n=e.children,r=[];switch(e.uiType){case"chips":r.push(t+"-textarea");break;case"checkbox":case"radio":e.options.forEach((e=>{const t=e.children;!SA(t)&&Tn(t)&&Object.entries(t).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))}))}))}return SA(n)||!Tn(n)||Object.entries(n).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))})),r};return SA(r)||c?e(n,{children:i}):null},bj=Object.keys(gj),Aj=Object.keys(w$),Ej=t=>{const{id:r,schema:i,children:a}=t,{showIf:s,uiType:u,children:c,...l}=i||{},{warnings:d}=_$(),[f,p]=o(null),{control:h}=Be(),{getCustomComponent:m}=pk(),{formSchema:{overrides:y},overrideSchema:_}=d$();hk((()=>{const t=_(c||a,y);if("object"==typeof t){const n=[];Object.keys(t).forEach((r=>{const i=t[r];if(SA(i)||"object"!=typeof i)return;let a=e(g,{children:Am.GENERIC.UNSUPPORTED},r);if("referenceKey"in i){const t=i.referenceKey.toUpperCase();a=m(i.referenceKey)||V$[B$[t]]?v(r,i)(b):V$[j$[t]]?v(r,i)(A):e(g,{},r)}else"uiType"in i&&(bj.includes(i.uiType.toUpperCase())?a=v(r,i)(b):Aj.includes(i.uiType.toUpperCase())&&(a=v(r,i)(A)));n.push(a)})),p(n)}else p("string"==typeof t?t:Am.GENERIC.UNSUPPORTED)}),[c||a,y,h,d,m]);const v=(t,n)=>r=>e(vj,{id:t,...n&&"showIf"in n&&{renderRules:n.showIf},schema:n,children:r(t,n)},t),b=(t,n)=>{let r;return"uiType"in n?r=yj[gj[n.uiType?.toUpperCase()]]:"referenceKey"in n&&(r=V$[B$[n.referenceKey?.toUpperCase()]]||m(n.referenceKey)),r?e(_j,{id:t,childSchema:n,children:e(uR,{id:t,schema:n,Field:r,warning:d?.[t]})}):null},A=(t,n)=>{let r;return"uiType"in n?r=x$[w$[n.uiType?.toUpperCase()]]||Ej:"referenceKey"in n&&(r=V$[j$[n.referenceKey?.toUpperCase()]]),e(_j,{id:t,childSchema:n,children:e(r,{schema:n,id:t})})};return u?e(u,{...l,id:r,"data-testid":xA.generateId(r,u),children:f}):e(n,{children:f})},Sj=M($.Container)`
|
|
1053
1053
|
gap: 2rem;
|
|
1054
1054
|
`,wj=M.div`
|
|
1055
1055
|
flex: 1;
|
|
1056
1056
|
`,xj=t=>{const{sectionSchema:{children:n,layoutType:r},...i}=t;switch(r){case"grid":return e($.Section,{children:e(Sj,{type:"grid",children:e(Ej,{...i,children:n})})});case"contain":return e($.Content,{children:e(wj,{children:e(Ej,{...i,children:n})})});default:return e(Ej,{...i,children:n})}},Mj=()=>{const{formSchema:{sections:r,overrides:i},overrideSchema:a}=d$();return e(n,{children:(()=>{const o=a(r,i);return o?Object.entries(o).map((([t,n],r)=>e(xj,{id:t,sectionSchema:n},`section-${r}`))):t(n,{children:["Unable to render Frontend Engine schema, make sure schema is declared within ",e("code",{children:"sections"}),"."]})})()})},Tj=h(((r,a)=>{const{data:c,className:l=null,components:f,onSubmit:p,onSubmitError:h,wrapInForm:g=!0}=r,{className:y=null,defaultValues:_,id:v,stripUnknown:b,revalidationMode:A="onChange",validationMode:E="onTouched"}=c||{},{addFieldEventListener:S,dispatchFieldEvent:w,removeFieldEventListener:x}=mk(),{setCustomComponents:M}=pk(),{setSubmitHandler:T,setWrapInForm:O}=m$(),{addWarnings:N,performSoftValidation:C,softValidationSchema:D,hardValidationSchema:L,rebuildValidationSchema:I,yupId:k}=_$(),$=function(e={}){const t=i.useRef(void 0),n=i.useRef(void 0),[r,a]=i.useState({isDirty:!1,isValidating:!1,isLoading:ut(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,defaultValues:ut(e.defaultValues)?void 0:e.defaultValues});t.current||(t.current={...zt(e),formState:r});const o=t.current.control;return o._options=e,Ke({subject:o._subjects.state,next:e=>{Ye(e,o._proxyFormState,o._updateFormState,!0)&&a({...o._formState})}}),i.useEffect((()=>o._disableForm(e.disabled)),[o,e.disabled]),i.useEffect((()=>{if(o._proxyFormState.isDirty){const e=o._getDirty();e!==r.isDirty&&o._subjects.state.next({isDirty:e})}}),[o,r.isDirty]),i.useEffect((()=>{e.values&&!wt(e.values,n.current)?(o._reset(e.values,o._options.resetOptions),n.current=e.values,a((e=>({...e})))):o._resetDefaultValues()}),[e.values,o]),i.useEffect((()=>{e.errors&&o._setErrors(e.errors)}),[e.errors,o]),i.useEffect((()=>{o._state.mount||(o._updateValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()})),i.useEffect((()=>{e.shouldUnregister&&o._subjects.values.next({values:o._getWatch()})}),[e.shouldUnregister,o]),t.current.formState=Ge(r,o),t.current}({mode:E,reValidateMode:A,defaultValues:_,resolver:async(e,t,n)=>(C(D,e),await function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),function(r,i,a){try{return Promise.resolve(function(o,s){try{var u=(t.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(e["sync"===n.mode?"validateSync":"validate"](r,Object.assign({abortEarly:!1},t,{context:i}))).then((function(e){return a.shouldUseNativeValidation&&Pt({},a),{values:n.rawValues?r:e,errors:{}}})))}catch(e){return s(e)}return u&&u.then?u.then(void 0,s):u}(0,(function(e){if(!e.inner)throw e;return{values:{},errors:Zt((t=e,n=!a.shouldUseNativeValidation&&"all"===a.criteriaMode,(t.inner||[]).reduce((function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var r=e[t.path].types,i=r&&r[t.type];e[t.path]=nt(t.path,n,e,t.type,i?[].concat(i,t.message):t.message)}return e}),{})),a)};var t,n})))}catch(e){return Promise.reject(e)}}}(L)(e,t,n))}),{setFormSchema:R}=d$(),{reset:z,handleSubmit:F,getValues:P,setValue:Z,setError:U,trigger:j,formState:B,clearErrors:V}=$,{resetFields:G,setFields:H,getFormValues:Y,registeredFields:W}=f$($),q=s(W),{checkIsFormValid:K}=((e,t)=>{const{data:n,onChange:r,onValueChange:i}=e,{stripUnknown:a}=n||{},{hardValidationSchema:c}=_$(),{formValidationConfig:l}=p$(),{watch:f,getValues:p,formState:h,clearErrors:m}=t,{setFields:g,setField:y,getFormValues:_}=f$(t),[v,b]=o({}),[A,E]=o(!1),S=y$(l),w=y$(c),x=s(void 0),M=s(void 0),T=d(((e=!1)=>{if(!e)try{return c.validateSync(p()),!0}catch(e){return!1}return(async()=>{try{return await c.validate(p()),!0}catch(e){return!1}})()}),[p,c]),O=s((async()=>{}));return O.current=async()=>{const e=_(void 0,a),t=await T(!0);i&&Object.keys(l||{}).length&&(M.current===t&&ek(x.current,e)||i(e,t)),x.current=e,M.current=t},u((()=>{const e=f(((e,{name:t})=>{t?y(t,e[t]):g(e)}));return()=>e.unsubscribe()}),[]),u((()=>{if(r&&Object.keys(l||{}).length){const e=f((async()=>{const e=await T(!0);r(_(void 0,a),e)}));return T(!0).then((e=>r(_(void 0,a),e))),()=>e.unsubscribe()}}),[T,r,f,l]),u((()=>{const e=f((async()=>{await O.current()}));return()=>e.unsubscribe()}),[f]),u((()=>{if(S){const e=e=>Object.entries(e).map((([e,{validationRules:t}])=>[e,t])),t=e(S),n=e(l);ek(t,n)||E(!0)}}),[l]),u((()=>{A&&w!==c&&O.current().then((()=>E(!1)))}),[A,c]),u((()=>{const e=h.errors;if(e&&!SA(e)){const e=f((e=>{const t=Object.fromEntries(Object.entries(h.errors).filter((([e,t])=>"api"===t.type)));t&&!SA(t)&&Object.keys(t).forEach((t=>{v[t]!==e[t]&&m(t)})),b(e)}));return()=>e.unsubscribe()}}),[h,f]),{checkIsFormValid:T}})(r,$);m(a,(()=>({addFieldEventListener:S,addCustomValidation:J,dispatchFieldEvent:w,getValues:e=>Y(e,b),isDirty:B.isDirty,isValid:K,validate:j,removeFieldEventListener:x,reset:(e,t)=>{z(e,t),G("function"==typeof e?e($.getValues())??_:e??_)},setErrors:ee,clearErrors:V,setWarnings:te,setValue:Z,submit:F(X,Q)})));const J=(e,t,n,r=!1)=>{qI.addCondition(e,t,n,k,r),I()},X=d((()=>{p?.(Y(void 0,b))}),[Y,p,b]),Q=d((e=>{setTimeout((()=>h?.(e)))}),[h]),ee=e=>{Object.entries(e).forEach((([e,t])=>{q.current.includes(e)&&(Array.isArray(t)?U(e,{type:"api",message:t[0]}):U(e,"object"==typeof t?{type:"api",message:JSON.stringify(t)}:{type:"api",message:t}))}))},te=e=>{const t={};Object.entries(e).forEach((([e,n])=>{q.current.includes(e)&&(t[e]=n)})),N(t)};u((()=>{H(P())}),[]),zs((()=>{z(Cs(_))}),[_]),Rs((()=>{R(c)}),[c||{}]),u((()=>{M(f)}),[f]),u((()=>{T((()=>F(X,Q)))}),[X,Q]),u((()=>{O(g)}),[g]),u((()=>{q.current=W}),[W]);const ne=v?`frontend-engine-${v}`:"frontend-engine",re=[l,y].join(" ").trim(),ie=g?"form":"div";return c?e(Ve,{...$,children:e(ie,{id:ne,"data-testid":v?xA.generateId(v,"frontend-engine"):ne,className:re,noValidate:!0,onSubmit:F(X,Q),ref:a,children:e(Mj,{})})}):t(n,{children:["Missing ",e("code",{children:"data"})," prop, unable to render Frontend Engine."]})})),Oj=h(((t,n)=>e(fk,{children:e(Tj,{...t,ref:n})})));export{Ml as A,pT as D,nP as E,QF as F,oj as G,aA as I,ZI as L,UI as O,mT as P,kI as S,xA as T,MA as W,Be as a,mk as b,Am as c,bm as d,aP as e,cP as f,wm as g,Ut as h,FI as i,PI as j,Sm as k,$I as l,h$ as m,Oj as n,w$ as o,gj as p,y$ as u};
|
|
1057
|
-
//# sourceMappingURL=index.
|
|
1057
|
+
//# sourceMappingURL=index.26df19ea.js.map
|