@lifesg/web-frontend-engine 1.19.16 → 1.19.17
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.6311ed18.js → file-upload-manager.92166f18.js} +2 -2
- package/chunks/{file-upload-manager.6311ed18.js.map → file-upload-manager.92166f18.js.map} +1 -1
- package/chunks/{index.37b3d4e8.js → index.58d43dbb.js} +6 -6
- package/chunks/{index.37b3d4e8.js.map → index.58d43dbb.js.map} +1 -1
- package/chunks/{index.d49e32ea.js → index.be8ad57b.js} +2 -2
- package/chunks/{index.d49e32ea.js.map → index.be8ad57b.js.map} +1 -1
- package/chunks/{index.23cbde7d.js → index.d4dbff90.js} +2 -2
- package/chunks/{index.23cbde7d.js.map → index.d4dbff90.js.map} +1 -1
- package/chunks/{location-modal.b266d701.js → location-modal.0395a6f9.js} +2 -2
- package/chunks/{location-modal.b266d701.js.map → location-modal.0395a6f9.js.map} +1 -1
- package/cjs/chunks/{file-upload-manager.850bb116.js → file-upload-manager.b483cbd3.js} +2 -2
- package/cjs/chunks/{file-upload-manager.850bb116.js.map → file-upload-manager.b483cbd3.js.map} +1 -1
- package/cjs/chunks/{index.bc6ce3d3.js → index.20f9dfab.js} +6 -6
- package/cjs/chunks/{index.bc6ce3d3.js.map → index.20f9dfab.js.map} +1 -1
- package/cjs/chunks/{index.06945e3c.js → index.6d530cde.js} +2 -2
- package/cjs/chunks/{index.06945e3c.js.map → index.6d530cde.js.map} +1 -1
- package/cjs/chunks/{index.fd2f5fdf.js → index.affd04db.js} +2 -2
- package/cjs/chunks/{index.fd2f5fdf.js.map → index.affd04db.js.map} +1 -1
- package/cjs/chunks/{location-modal.48300b71.js → location-modal.99b9bb33.js} +2 -2
- package/cjs/chunks/{location-modal.48300b71.js.map → location-modal.99b9bb33.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.58d43dbb.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:b,uploadRule:R,value:U}=g,{files:T,setFiles:E,setCurrentFileIds:D}=e(s),h=a(U),{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"===b.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===U&&T.length&&E([])}),[T,h,E,U]);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:R?.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"===b.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{errorMessage:s,fileType:a}=i?await A({...e,rawFile:i}):N({mime:e.uploadResponse?.mimeType,ext:e.uploadResponse?.ext});let r=i?.size||e.uploadResponse?.fileSize||0;isNaN(r)&&(r=0);const{errorMessage:l}=v(r),m=i?await O(e,a?.mime):void 0;E((d=>{const c=[...d];return c[t]={...e,fileItem:{errorMessage:s||l,id:e.fileItem?.id||o(),name:p.deduplicateFileName(T.map((({fileItem:e})=>e.name)),t,i?.name||e.rawFile.name),progress:1,size:r,type:a?.mime||e.uploadResponse?.mimeType,thumbnailImageDataUrl:m},rawFile:i,status:n.UPLOADED},c}))},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",b?.sessionId||z.current||""),i.append("fileId",e.fileItem.id),i.append("slot",e.slot.toString()),"base64"===b.type?i.append("dataURL",e.dataURL):"multipart"===b.type&&i.append("file",e.rawFile,e.fileItem?.name);try{const s=await new d("",void 0,void 0,!0).post(b.url,i,{headers:{"Content-Type":"base64"===b.type?"application/json":"multipart/form-data",...b.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.92166f18.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload-manager.6311ed18.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 { errorMessage, fileType } = rawFile\n\t\t\t? await readFile({ ...fileToInject, rawFile })\n\t\t\t: validateFileType({\n\t\t\t\t\tmime: fileToInject.uploadResponse?.[\"mimeType\"],\n\t\t\t\t\text: fileToInject.uploadResponse?.[\"ext\"],\n\t\t\t });\n\n\t\tlet size = rawFile?.size || fileToInject.uploadResponse?.[\"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 || fileToInject.uploadResponse?.[\"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","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.92166f18.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 { errorMessage, fileType } = rawFile\n\t\t\t? await readFile({ ...fileToInject, rawFile })\n\t\t\t: validateFileType({\n\t\t\t\t\tmime: fileToInject.uploadResponse?.[\"mimeType\"],\n\t\t\t\t\text: fileToInject.uploadResponse?.[\"ext\"],\n\t\t\t });\n\n\t\tlet size = rawFile?.size || fileToInject.uploadResponse?.[\"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 || fileToInject.uploadResponse?.[\"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","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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"}
|
|
@@ -294,7 +294,7 @@ function AN(e){return"[object Object]"===Object.prototype.toString.call(e)}Objec
|
|
|
294
294
|
height: auto;
|
|
295
295
|
`,HI=({id:t,lat:n,lng:r,address:i,staticMapPinColor:a={r:28,g:118,b:213},className:c,onClick:l,disabled:d})=>{const f=s(!1),[p,h]=o(""),m=s([0,0]);u((()=>(window.addEventListener("resize",g),n&&r&&g(),()=>{window.removeEventListener("resize",g)})),[n,r]);const g=()=>{if(!n||!r)return;const e=window.matchMedia(`(max-width: ${A.mobileL}px)`).matches;if(f.current!==e||m.current[0]!==n||m.current[1]!==r){f.current=e;const t=e?BI.mobile:BI.desktop,i=15,o=t.height+i;h(UI.getStaticMapUrl(n,r,t.width,o,a)),m.current=[n,r]}};return n&&r?e(VI,{id:TA.generateId(t,"static-map"),"data-testid":TA.generateId(t,"static-map"),className:c,onClick:l,"aria-disabled":d,children:e(GI,{alt:i||"Location Map",src:p,onError:e=>{e.currentTarget.src="https://assets.life.gov.sg/web-frontend-engine/img/map/static_map_placeholder.png"}})}):null},YI=({id:t,message:n,className:r})=>n?e(WI,{type:"warning","data-testid":TA.generateId(t,"warning"),className:r,children:n}):null,WI=M(k)`
|
|
296
296
|
margin: -1rem 0rem 2rem;
|
|
297
|
-
`,qI=["required","length","min","max","matches","email","url","uuid","positive","negative","integer","lessThan","moreThan","when","filled","empty","equals","notEquals","includes","excludes","uinfin","equalsField","withinDays"];var KI;!function(e){const t=[],n={};e.buildSchema=(t,n)=>{const i={},[a,o]=r(t);return Object.keys(a).forEach((n=>{const{schema:r,validationRules:a}=t[n];i[n]=e.buildFieldSchema(r,a)})),XM().meta({yupId:n}).shape(i,o)};const r=e=>{const t=[],n={...e};return Object.entries(n).forEach((([e,{validationRules:r}])=>{const[a,o]=i(e,n,r);t.push(...o),n[e].validationRules=a})),[n,t]},i=(e,t,n)=>{const r=[],a=n?.filter((e=>!("when"in e)))||[];return n?.filter((e=>"when"in e)).forEach((n=>{const o={...n,when:n.when?{...n.when}:void 0};Object.keys(o.when).forEach((n=>{r.push([e,n]),o.when[n]={...o.when[n],yupSchema:t[n].schema.clone()};const[a,s]=i(e,t,o.when[n].then);o.when[n].then=a,r.push(...s)})),a.push(o)})),[a,r]};e.buildFieldSchema=(n,r)=>{const i=r.filter((e=>wE(qI,Object.keys(e)).length>0||wE(t,Object.keys(e)).length>0));return e.mapRules(n,i)},e.mapSchemaType=e=>{switch(e){case"string":return zx().typeError("Only string values are allowed");case"number":return Px().typeError("Only number values are allowed");case"boolean":return Cx().strict().typeError("Only boolean values are allowed");case"array":return eT().typeError("Only array values are allowed");case"object":return XM().typeError("Only object values are allowed");default:return Ox()}},e.mapRules=(n,r)=>(r.forEach((r=>{const i=Object.keys(r).filter((e=>qI.includes(e)))?.[0];switch(!0){case r.required:n=n.required(r.errorMessage||Sm.COMMON.FIELD_REQUIRED);break;case!!r.email:case!!r.url:case!!r.uuid:case!!r.positive:case!!r.negative:case!!r.integer:try{n=n[i](r.errorMessage)}catch(e){console.warn(`error applying "${i}" condition to ${n.type} schema`)}break;case r.length>0:case r.min>0:case r.max>0:case!!r.lessThan:case!!r.moreThan:try{n=n[i](r[i],r.errorMessage)}catch(e){console.warn(`error applying "${i}" condition to ${n.type} schema`)}break;case!!r.matches:{const e=r.matches.match(/\/(.*)\/([a-z]+)?/);try{n=n.matches(new RegExp(e[1],e[2]),r.errorMessage)}catch(e){console.warn(`error applying "${i}" condition to ${n.type} schema`)}}break;case!!r.when:Object.keys(r.when).forEach((t=>{const i=r.when[t].is,a=e.mapRules(n,r.when[t].then),o=r.when[t].otherwise&&e.mapRules(n,r.when[t].otherwise);n=Array.isArray(i)&&i.every((e=>"object"==typeof e))?n.when(t,(n=>{const s=e.mapRules(r.when[t].yupSchema?.clone(),i);let u=!1;try{s.validateSync(n),u=!0}catch(e){}return u?a:o})):n.when(t,{is:i,then:a,otherwise:o})}))}const a=Object.keys(r).filter((e=>t.includes(e)))?.[0];a&&(n[a]?n=n[a](r[a],r.errorMessage):console.warn(`error applying "${a}" condition to ${n.type} schema`)),n&&(n=n.transform((e=>{if(null!==e&&""!==e&&("object"!=typeof e||0!==Object.keys(e).length))return e})))})),n),e.addCondition=(e,r,i,a,o=!1)=>{if(a){if(n[a]||(n[a]={}),n[a][r]&&!0!==o)return void console.warn(`the validation condition "${r}" is not added because it already exists!`);n[a][r]=i}else if(t.includes(r)&&!0!==o)return void console.warn(`the validation condition "${r}" is not added because it already exists!`);t.includes(r)||t.push(r),rT(iT[e],r,(function(e,t){return this.test({name:r,message:t,test:(t,o)=>{if(!a)return i(t,e,o);const s=o.options.from.length,u=o.options.from[s-1].schema.describe().meta.yupId;return n[u]?.[r]?.(t,e,o)}})}))}}(KI||(KI={}));var JI=Mn,XI=ti;var QI=function(e){return!0===e||!1===e||XI(e)&&"[object Boolean]"==JI(e)},ek=lw;var tk=function(e,t){return ek(e,t)},nk=Mn,rk=ti;var ik,ak=function(e){return"number"==typeof e||rk(e)&&"[object Number]"==nk(e)};!function(e){e.LOCAL_S_PREFIX="S",e.LOCAL_T_PREFIX="T",e.FOREIGN_F_PREFIX="F",e.FOREIGN_G_PREFIX="G",e.FOREIGN_M_PREFIX="M"}(ik||(ik={}));const ok=[2,7,6,5,4,3,2],sk=["J","Z","I","H","G","F","E","D","C","B","A"],uk=["X","W","U","T","R","Q","P","N","M","L","K"],ck=["X","W","U","T","R","Q","P","N","J","L","K"];function lk(e){if("string"==typeof e){const t=function(e){return/^[STFGM]\d{7}[A-Z]$/.test(e)}(e),n=e.charAt(8)===function(e){let t=0;for(let n=0;n<7;++n)t+=Number(e.charAt(n+1))*ok[n];const n=e.charAt(0);n!==ik.LOCAL_T_PREFIX&&n!==ik.FOREIGN_G_PREFIX||(t+=4);n===ik.FOREIGN_M_PREFIX&&(t+=3);let r;r=n===ik.LOCAL_S_PREFIX||n===ik.LOCAL_T_PREFIX?sk[t%11]:n===ik.FOREIGN_M_PREFIX?ck[t%11]:uk[t%11];return r}(e);return t&&n}return!1}KI.addCondition("string","uinfin",(e=>!!xA(e)||lk(e)));const dk=["LP","LL","FC","PF","RF","MQ","MM","NB","CC","CS","MB","FM","GS","GA","GB","DP","CP","NR","CM","CD","MD","HS","VH","CH","MH","CL","XL","CX","RP","TU","TC","FB","FN","PA","PB","SS","MC","SM"];KI.addCondition("string","uen",(e=>!!xA(e)||function(e){if(e.length<9||e.length>10)return!1;if(9===(e=e.toUpperCase()).length){if(e.match(/^\d{8}[A-Z]$/))return!0}else if(10===e.length){if(e.match(/^\d{9}[A-Z]$/))return!0;const t=String.raw`^((R|S|T)([\d]{2})(`+dk.join("|")+String.raw`)([\d]{4})([A-Z]))$`;if(e.match(t))return!0}return!1}(e)));const fk=e=>ak(e)?NA(e):xA(e)&&!QI(e);KI.addCondition("mixed","filled",(e=>!fk(e))),KI.addCondition("mixed","empty",(e=>fk(e))),KI.addCondition("mixed","equals",((e,t)=>!fk(e)&&tk(e,t))),KI.addCondition("mixed","notEquals",((e,t)=>!fk(e)&&!tk(e,t))),KI.addCondition("string","notMatches",((e,t)=>{if(fk(e))return!0;const n=t.match(/\/(.*)\/([a-z]+)?/);return!new RegExp(n[1],n[2]).test(e)})),KI.addCondition("array","includes",((e,t)=>!e?.length||(Array.isArray(t)?t.filter((t=>e.includes(t))).length===t.length:e.includes(t)))),KI.addCondition("array","excludes",((e,t)=>!e?.length||(Array.isArray(t)?e.length&&0===t.filter((t=>e.includes(t))).length:!e.includes(t)))),KI.addCondition("mixed","equalsField",((e,t,n)=>{if("object"==typeof e){if(Array.isArray(e)&&Array.isArray(n.parent[`${t}`])){const r=[...e].sort(),i=[...n.parent[`${t}`]].sort();return tk(r,i)}return tk(e,n.parent[`${t}`])}return tk(e,n.parent[`${t}`])})),KI.addCondition("mixed","notEqualsField",((e,t,n)=>{if("object"==typeof e){if(Array.isArray(e)&&Array.isArray(n.parent[`${t}`])){const r=[...e].sort(),i=[...n.parent[`${t}`]].sort();return!tk(r,i)}return!tk(e,n.parent[`${t}`])}return!tk(e,n.parent[`${t}`])})),KI.addCondition("mixed","withinDays",((e,t)=>!!xA(e)||wm.checkWithinDays(e,t))),KI.addCondition("mixed","beyondDays",((e,t)=>!!xA(e)||wm.checkBeyondDays(e,t)));const pk=({children:t})=>e(DA,{children:e(Us,{children:e(Bs,{children:e(Gs,{children:e(Ps,{children:e(Ys,{children:t})})})})})}),hk=()=>{const{customComponents:e,setCustomComponents:t}=l(Fs),n=d((t=>e?.[t]),[e]);return{customComponents:e,getCustomComponent:n,setCustomComponents:t}},mk="undefined"!=typeof window?(e,t)=>{const n=s(t),r=s(0);return tk(t,n.current)||(n.current=t,r.current+=1),f(e,[r.current])}:zs,gk=()=>{const{eventManagerRef:e}=l(Zs),t=d(((t,n,r,i,a)=>{if("function"==typeof r&&"function"!=typeof i){const[a,o,s,u]=[t,n,r,i];e.current?.addEventListener(`${o}:${a}`,s,u)}else if("function"==typeof i){const[o,s,u,c,l]=[t,n,r,i,a];e.current?.addEventListener(`${u}:${s}`,c,l)}}),[e]),n=d(((t,n,r,i,a)=>{if("function"==typeof r&&"function"!=typeof i){const[a,o,s,u]=[t,n,r,i];e.current?.removeEventListener(`${o}:${a}`,s,u)}else if("function"==typeof i){const[o,s,u,c,l]=[t,n,r,i,a];e.current?.removeEventListener(`${u}:${s}`,c,l)}}),[e]);return{addFieldEventListener:t,dispatchFieldEvent:d(((t,n,r,i)=>{if("string"!=typeof r){const[i,a,o]=[t,n,r];return e.current?.dispatchEvent(new CustomEvent(`${a}:${i}`,{cancelable:!0,detail:{id:a,...o}}))}{const[a,o,s,u]=[t,n,r,i];return e.current?.dispatchEvent(new CustomEvent(`${s}:${o}`,{cancelable:!0,detail:{id:s,...u}}))}}),[e]),removeFieldEventListener:n}};var yk=Hr,_k=Vt;var vk=function(e,t,n){(void 0!==n&&!_k(e[t],n)||void 0===n&&!(t in e))&&yk(e,t,n)},bk=Mn,Ak=Ta,Ek=ti,Sk=Function.prototype,wk=Object.prototype,xk=Sk.toString,Mk=wk.hasOwnProperty,Tk=xk.call(Object);var Ok=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]},Nk=Qr,Ck=ca;var Dk=vk,Lk=pa.exports,Ik=Oo,kk=ha,$k=Uo,Rk=ci,zk=li,Fk=yE,Pk=di.exports,Zk=Dn,Uk=Tn,jk=function(e){if(!Ek(e)||"[object Object]"!=bk(e))return!1;var t=Ak(e);if(null===t)return!0;var n=Mk.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&xk.call(n)==Tk},Bk=Ti,Vk=Ok,Gk=function(e){return Nk(e,Ck(e))};var Hk=function(e,t,n,r,i,a,o){var s=Vk(e,n),u=Vk(t,n),c=o.get(u);if(c)Dk(e,n,c);else{var l=a?a(s,u,n+"",e,t,o):void 0,d=void 0===l;if(d){var f=zk(u),p=!f&&Pk(u),h=!f&&!p&&Bk(u);l=u,f||p||h?zk(s)?l=s:Fk(s)?l=kk(s):p?(d=!1,l=Lk(u,!0)):h?(d=!1,l=Ik(u,!0)):l=[]:jk(u)||Rk(u)?(l=s,Rk(s)?l=Gk(s):Uk(s)&&!Zk(s)||(l=$k(u))):d=!1}d&&(o.set(u,l),i(l,u,r,a,o),o.delete(u)),Dk(e,n,l)}},Yk=Ur,Wk=vk,qk=TS,Kk=Hk,Jk=Tn,Xk=ca,Qk=Ok;var e$=function e(t,n,r,i,a){t!==n&&qk(n,(function(o,s){if(a||(a=new Yk),Jk(o))Kk(t,n,s,r,e,i,a);else{var u=i?i(Qk(t,s),o,s+"",t,n,a):void 0;void 0===u&&(u=o),Wk(t,s,u)}}),Xk)},t$=Vt,n$=Hi,r$=hi,i$=Tn;var a$=function(e,t,n){if(!i$(n))return!1;var r=typeof t;return!!("number"==r?n$(n)&&r$(t,n.length):"string"==r&&t in n)&&t$(n[t],e)},o$=hE,s$=a$;var u$=function(e){return o$((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,o&&s$(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var s=n[r];s&&e(t,s,r,a)}return t}))},c$=e$,l$=u$((function(e,t,n){c$(e,t,n)})),d$=l$;const f$=()=>{const{setFormSchema:e,formSchema:t}=l(js);return{setFormSchema:e,formSchema:t,overrideSchema:d(((e,t)=>{if(xA(t)||"string"==typeof e)return e;let n={};if(Object.keys(e).forEach((e=>{const r=MA.getNestedValueByKey(t,e,{searchIn:["children"]});xA(r)||(n={...n,...r})})),!xA(n)){const t=Cs(e),r=d$(t,n);return MA.removeNil(r)}return e}),[])}},p$=e=>{const t=Be(),{setFormValues:n,formValues:r,formValuesRef:i,registeredFields:a,setRegisteredFields:o}=l(Vs),s=d(((n,r=!1)=>{if("string"!=typeof n){if(Array.isArray(n)){if(r){const r=n.filter((e=>a.includes(e)));return e?.getValues(r)||t?.getValues(r)}return e?.getValues(n)||t?.getValues(n)}{const n=e?.getValues()||t?.getValues();if(r){const e={};return Object.entries(n).forEach((([t,n])=>{a.includes(t)&&(e[t]=n)})),e}return n}}if(!r||r&&a.includes(n))return e?.getValues(n)||t?.getValues(n)}),[t?.getValues,e?.getValues,a]);return{formValues:r,getField:e=>i.current[e],setFields:e=>{i.current={...i.current,...e},n((t=>({...t,...e})))},setField:(e,t)=>{i.current[e]=t,n((n=>({...n,[e]:t})))},resetFields:e=>{i.current={...e},n((()=>({...e})))},registeredFields:a,setRegisteredFields:o,getFormValues:s}},h$=()=>{const{formValidationConfig:e,setFormValidationConfig:t}=l(CA);return{formValidationConfig:e,setFieldValidationConfig:(e,n,r=[])=>{t((t=>({...t,[e]:{schema:n,validationRules:r}})))},removeFieldValidationConfig:e=>t((t=>{const n={...t};return delete n[e],n}))}},m$=()=>{const{addFieldEventListener:e,dispatchFieldEvent:t,removeFieldEventListener:n}=gk(),r=Be(),{setFieldValidationConfig:i,removeFieldValidationConfig:a}=h$();return{event:{addFieldEventListener:e,dispatchFieldEvent:t,removeFieldEventListener:n},formContext:r,validation:{setValidation:i,removeValidation:a}}},g$=()=>{const{submitHandler:e,setSubmitHandler:t,wrapInForm:n,setWrapInForm:r}=l(Hs);return{submitHandler:e,setSubmitHandler:t,wrapInForm:n,setWrapInForm:r}},y$=(e,t)=>{u((()=>{const n=n=>{n.data.type===e&&t(n)};return window.addEventListener("message",n),()=>{window.removeEventListener("message",n)}}),[e,t])},_$=e=>{const t=s();return u((()=>{t.current=e}),[e]),t.current},v$=()=>{const{formValidationConfig:e,warnings:t,setWarnings:n,yupId:r}=l(CA),[i,a]=o(XM()),[s,c]=o(XM()),f=d((()=>{if(e){let t={},n={};Object.entries(e).forEach((([e,r])=>{if(!r.validationRules||0===r.validationRules.length)return void(t=MA.upsert(t,e,{schema:r.schema,validationRules:[]}));const i=r.validationRules.filter((({soft:e})=>e)),a=r.validationRules.filter((({soft:e})=>!e));i.length&&(n=MA.upsert(n,e,{schema:r.schema,validationRules:i})),a.length&&(t=MA.upsert(t,e,{schema:r.schema,validationRules:a}))})),c(KI.buildSchema(n,r)),a(KI.buildSchema(t,r))}}),[e,r]);u((()=>{f()}),[f]);return{warnings:t,softValidationSchema:s,hardValidationSchema:i,rebuildValidationSchema:f,performSoftValidation:(e,t)=>{e.validate(t,{abortEarly:!1}).then((()=>{n({})})).catch((e=>{const t=e;if(xA(t))return;const r=t.inner.reduce(((e,t)=>(e[t.path]=t.message,e)),{});n(r)}))},addWarnings:e=>{n({...t,...e})},yupId:r}},b$=M.div`
|
|
297
|
+
`,qI=["required","length","min","max","matches","email","url","uuid","positive","negative","integer","lessThan","moreThan","when","filled","empty","equals","notEquals","includes","excludes","uinfin","equalsField","withinDays"];var KI;!function(e){const t=[],n={};e.buildSchema=(t,n)=>{const i={},[a,o]=r(t);return Object.keys(a).forEach((n=>{const{schema:r,validationRules:a}=t[n];i[n]=e.buildFieldSchema(r,a)})),XM().meta({yupId:n}).shape(i,o)};const r=e=>{const t=[],n={...e};return Object.entries(n).forEach((([e,{validationRules:r}])=>{const[a,o]=i(e,n,r);t.push(...o),n[e].validationRules=a})),[n,t]},i=(e,t,n)=>{const r=[],a=n?.filter((e=>!("when"in e)))||[];return n?.filter((e=>"when"in e)).forEach((n=>{const o={...n,when:n.when?{...n.when}:void 0};Object.keys(o.when).forEach((n=>{if(!t[n])return void console.warn(`field "${n}" was not found, when condition on "${e}" was not applied`);r.push([e,n]),o.when[n]={...o.when[n],yupSchema:t[n].schema.clone()};const[a,s]=i(e,t,o.when[n].then);o.when[n].then=a,r.push(...s)})),a.push(o)})),[a,r]};e.buildFieldSchema=(n,r)=>{const i=r.filter((e=>wE(qI,Object.keys(e)).length>0||wE(t,Object.keys(e)).length>0));return e.mapRules(n,i)},e.mapSchemaType=e=>{switch(e){case"string":return zx().typeError("Only string values are allowed");case"number":return Px().typeError("Only number values are allowed");case"boolean":return Cx().strict().typeError("Only boolean values are allowed");case"array":return eT().typeError("Only array values are allowed");case"object":return XM().typeError("Only object values are allowed");default:return Ox()}},e.mapRules=(n,r)=>(r.forEach((r=>{const i=Object.keys(r).filter((e=>qI.includes(e)))?.[0];switch(!0){case r.required:n=n.required(r.errorMessage||Sm.COMMON.FIELD_REQUIRED);break;case!!r.email:case!!r.url:case!!r.uuid:case!!r.positive:case!!r.negative:case!!r.integer:try{n=n[i](r.errorMessage)}catch(e){console.warn(`error applying "${i}" condition to ${n.type} schema`)}break;case r.length>0:case r.min>0:case r.max>0:case!!r.lessThan:case!!r.moreThan:try{n=n[i](r[i],r.errorMessage)}catch(e){console.warn(`error applying "${i}" condition to ${n.type} schema`)}break;case!!r.matches:{const e=r.matches.match(/\/(.*)\/([a-z]+)?/);try{n=n.matches(new RegExp(e[1],e[2]),r.errorMessage)}catch(e){console.warn(`error applying "${i}" condition to ${n.type} schema`)}}break;case!!r.when:Object.keys(r.when).forEach((t=>{const i=r.when[t]?.yupSchema;if(!i)return void console.warn(`[mapRules] Unexpected: yupSchema missing for field "${t}" in when condition. `);const a=r.when[t].is,o=e.mapRules(n,r.when[t].then),s=r.when[t].otherwise&&e.mapRules(n,r.when[t].otherwise);n=Array.isArray(a)&&a.every((e=>"object"==typeof e))?n.when(t,(t=>{const n=e.mapRules(i.clone(),a);let r=!1;try{n.validateSync(t),r=!0}catch(e){}return r?o:s})):n.when(t,{is:a,then:o,otherwise:s})}))}const a=Object.keys(r).filter((e=>t.includes(e)))?.[0];a&&(n[a]?n=n[a](r[a],r.errorMessage):console.warn(`error applying "${a}" condition to ${n.type} schema`)),n&&(n=n.transform((e=>{if(null!==e&&""!==e&&("object"!=typeof e||0!==Object.keys(e).length))return e})))})),n),e.addCondition=(e,r,i,a,o=!1)=>{if(a){if(n[a]||(n[a]={}),n[a][r]&&!0!==o)return void console.warn(`the validation condition "${r}" is not added because it already exists!`);n[a][r]=i}else if(t.includes(r)&&!0!==o)return void console.warn(`the validation condition "${r}" is not added because it already exists!`);t.includes(r)||t.push(r),rT(iT[e],r,(function(e,t){return this.test({name:r,message:t,test:(t,o)=>{if(!a)return i(t,e,o);const s=o.options.from.length,u=o.options.from[s-1].schema.describe().meta.yupId;return n[u]?.[r]?.(t,e,o)}})}))}}(KI||(KI={}));var JI=Mn,XI=ti;var QI=function(e){return!0===e||!1===e||XI(e)&&"[object Boolean]"==JI(e)},ek=lw;var tk=function(e,t){return ek(e,t)},nk=Mn,rk=ti;var ik,ak=function(e){return"number"==typeof e||rk(e)&&"[object Number]"==nk(e)};!function(e){e.LOCAL_S_PREFIX="S",e.LOCAL_T_PREFIX="T",e.FOREIGN_F_PREFIX="F",e.FOREIGN_G_PREFIX="G",e.FOREIGN_M_PREFIX="M"}(ik||(ik={}));const ok=[2,7,6,5,4,3,2],sk=["J","Z","I","H","G","F","E","D","C","B","A"],uk=["X","W","U","T","R","Q","P","N","M","L","K"],ck=["X","W","U","T","R","Q","P","N","J","L","K"];function lk(e){if("string"==typeof e){const t=function(e){return/^[STFGM]\d{7}[A-Z]$/.test(e)}(e),n=e.charAt(8)===function(e){let t=0;for(let n=0;n<7;++n)t+=Number(e.charAt(n+1))*ok[n];const n=e.charAt(0);n!==ik.LOCAL_T_PREFIX&&n!==ik.FOREIGN_G_PREFIX||(t+=4);n===ik.FOREIGN_M_PREFIX&&(t+=3);let r;r=n===ik.LOCAL_S_PREFIX||n===ik.LOCAL_T_PREFIX?sk[t%11]:n===ik.FOREIGN_M_PREFIX?ck[t%11]:uk[t%11];return r}(e);return t&&n}return!1}KI.addCondition("string","uinfin",(e=>!!xA(e)||lk(e)));const dk=["LP","LL","FC","PF","RF","MQ","MM","NB","CC","CS","MB","FM","GS","GA","GB","DP","CP","NR","CM","CD","MD","HS","VH","CH","MH","CL","XL","CX","RP","TU","TC","FB","FN","PA","PB","SS","MC","SM"];KI.addCondition("string","uen",(e=>!!xA(e)||function(e){if(e.length<9||e.length>10)return!1;if(9===(e=e.toUpperCase()).length){if(e.match(/^\d{8}[A-Z]$/))return!0}else if(10===e.length){if(e.match(/^\d{9}[A-Z]$/))return!0;const t=String.raw`^((R|S|T)([\d]{2})(`+dk.join("|")+String.raw`)([\d]{4})([A-Z]))$`;if(e.match(t))return!0}return!1}(e)));const fk=e=>ak(e)?NA(e):xA(e)&&!QI(e);KI.addCondition("mixed","filled",(e=>!fk(e))),KI.addCondition("mixed","empty",(e=>fk(e))),KI.addCondition("mixed","equals",((e,t)=>!fk(e)&&tk(e,t))),KI.addCondition("mixed","notEquals",((e,t)=>!fk(e)&&!tk(e,t))),KI.addCondition("string","notMatches",((e,t)=>{if(fk(e))return!0;const n=t.match(/\/(.*)\/([a-z]+)?/);return!new RegExp(n[1],n[2]).test(e)})),KI.addCondition("array","includes",((e,t)=>!e?.length||(Array.isArray(t)?t.filter((t=>e.includes(t))).length===t.length:e.includes(t)))),KI.addCondition("array","excludes",((e,t)=>!e?.length||(Array.isArray(t)?e.length&&0===t.filter((t=>e.includes(t))).length:!e.includes(t)))),KI.addCondition("mixed","equalsField",((e,t,n)=>{if("object"==typeof e){if(Array.isArray(e)&&Array.isArray(n.parent[`${t}`])){const r=[...e].sort(),i=[...n.parent[`${t}`]].sort();return tk(r,i)}return tk(e,n.parent[`${t}`])}return tk(e,n.parent[`${t}`])})),KI.addCondition("mixed","notEqualsField",((e,t,n)=>{if("object"==typeof e){if(Array.isArray(e)&&Array.isArray(n.parent[`${t}`])){const r=[...e].sort(),i=[...n.parent[`${t}`]].sort();return!tk(r,i)}return!tk(e,n.parent[`${t}`])}return!tk(e,n.parent[`${t}`])})),KI.addCondition("mixed","withinDays",((e,t)=>!!xA(e)||wm.checkWithinDays(e,t))),KI.addCondition("mixed","beyondDays",((e,t)=>!!xA(e)||wm.checkBeyondDays(e,t)));const pk=({children:t})=>e(DA,{children:e(Us,{children:e(Bs,{children:e(Gs,{children:e(Ps,{children:e(Ys,{children:t})})})})})}),hk=()=>{const{customComponents:e,setCustomComponents:t}=l(Fs),n=d((t=>e?.[t]),[e]);return{customComponents:e,getCustomComponent:n,setCustomComponents:t}},mk="undefined"!=typeof window?(e,t)=>{const n=s(t),r=s(0);return tk(t,n.current)||(n.current=t,r.current+=1),f(e,[r.current])}:zs,gk=()=>{const{eventManagerRef:e}=l(Zs),t=d(((t,n,r,i,a)=>{if("function"==typeof r&&"function"!=typeof i){const[a,o,s,u]=[t,n,r,i];e.current?.addEventListener(`${o}:${a}`,s,u)}else if("function"==typeof i){const[o,s,u,c,l]=[t,n,r,i,a];e.current?.addEventListener(`${u}:${s}`,c,l)}}),[e]),n=d(((t,n,r,i,a)=>{if("function"==typeof r&&"function"!=typeof i){const[a,o,s,u]=[t,n,r,i];e.current?.removeEventListener(`${o}:${a}`,s,u)}else if("function"==typeof i){const[o,s,u,c,l]=[t,n,r,i,a];e.current?.removeEventListener(`${u}:${s}`,c,l)}}),[e]);return{addFieldEventListener:t,dispatchFieldEvent:d(((t,n,r,i)=>{if("string"!=typeof r){const[i,a,o]=[t,n,r];return e.current?.dispatchEvent(new CustomEvent(`${a}:${i}`,{cancelable:!0,detail:{id:a,...o}}))}{const[a,o,s,u]=[t,n,r,i];return e.current?.dispatchEvent(new CustomEvent(`${s}:${o}`,{cancelable:!0,detail:{id:s,...u}}))}}),[e]),removeFieldEventListener:n}};var yk=Hr,_k=Vt;var vk=function(e,t,n){(void 0!==n&&!_k(e[t],n)||void 0===n&&!(t in e))&&yk(e,t,n)},bk=Mn,Ak=Ta,Ek=ti,Sk=Function.prototype,wk=Object.prototype,xk=Sk.toString,Mk=wk.hasOwnProperty,Tk=xk.call(Object);var Ok=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]},Nk=Qr,Ck=ca;var Dk=vk,Lk=pa.exports,Ik=Oo,kk=ha,$k=Uo,Rk=ci,zk=li,Fk=yE,Pk=di.exports,Zk=Dn,Uk=Tn,jk=function(e){if(!Ek(e)||"[object Object]"!=bk(e))return!1;var t=Ak(e);if(null===t)return!0;var n=Mk.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&xk.call(n)==Tk},Bk=Ti,Vk=Ok,Gk=function(e){return Nk(e,Ck(e))};var Hk=function(e,t,n,r,i,a,o){var s=Vk(e,n),u=Vk(t,n),c=o.get(u);if(c)Dk(e,n,c);else{var l=a?a(s,u,n+"",e,t,o):void 0,d=void 0===l;if(d){var f=zk(u),p=!f&&Pk(u),h=!f&&!p&&Bk(u);l=u,f||p||h?zk(s)?l=s:Fk(s)?l=kk(s):p?(d=!1,l=Lk(u,!0)):h?(d=!1,l=Ik(u,!0)):l=[]:jk(u)||Rk(u)?(l=s,Rk(s)?l=Gk(s):Uk(s)&&!Zk(s)||(l=$k(u))):d=!1}d&&(o.set(u,l),i(l,u,r,a,o),o.delete(u)),Dk(e,n,l)}},Yk=Ur,Wk=vk,qk=TS,Kk=Hk,Jk=Tn,Xk=ca,Qk=Ok;var e$=function e(t,n,r,i,a){t!==n&&qk(n,(function(o,s){if(a||(a=new Yk),Jk(o))Kk(t,n,s,r,e,i,a);else{var u=i?i(Qk(t,s),o,s+"",t,n,a):void 0;void 0===u&&(u=o),Wk(t,s,u)}}),Xk)},t$=Vt,n$=Hi,r$=hi,i$=Tn;var a$=function(e,t,n){if(!i$(n))return!1;var r=typeof t;return!!("number"==r?n$(n)&&r$(t,n.length):"string"==r&&t in n)&&t$(n[t],e)},o$=hE,s$=a$;var u$=function(e){return o$((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,o&&s$(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var s=n[r];s&&e(t,s,r,a)}return t}))},c$=e$,l$=u$((function(e,t,n){c$(e,t,n)})),d$=l$;const f$=()=>{const{setFormSchema:e,formSchema:t}=l(js);return{setFormSchema:e,formSchema:t,overrideSchema:d(((e,t)=>{if(xA(t)||"string"==typeof e)return e;let n={};if(Object.keys(e).forEach((e=>{const r=MA.getNestedValueByKey(t,e,{searchIn:["children"]});xA(r)||(n={...n,...r})})),!xA(n)){const t=Cs(e),r=d$(t,n);return MA.removeNil(r)}return e}),[])}},p$=e=>{const t=Be(),{setFormValues:n,formValues:r,formValuesRef:i,registeredFields:a,setRegisteredFields:o}=l(Vs),s=d(((n,r=!1)=>{if("string"!=typeof n){if(Array.isArray(n)){if(r){const r=n.filter((e=>a.includes(e)));return e?.getValues(r)||t?.getValues(r)}return e?.getValues(n)||t?.getValues(n)}{const n=e?.getValues()||t?.getValues();if(r){const e={};return Object.entries(n).forEach((([t,n])=>{a.includes(t)&&(e[t]=n)})),e}return n}}if(!r||r&&a.includes(n))return e?.getValues(n)||t?.getValues(n)}),[t?.getValues,e?.getValues,a]);return{formValues:r,getField:e=>i.current[e],setFields:e=>{i.current={...i.current,...e},n((t=>({...t,...e})))},setField:(e,t)=>{i.current[e]=t,n((n=>({...n,[e]:t})))},resetFields:e=>{i.current={...e},n((()=>({...e})))},registeredFields:a,setRegisteredFields:o,getFormValues:s}},h$=()=>{const{formValidationConfig:e,setFormValidationConfig:t}=l(CA);return{formValidationConfig:e,setFieldValidationConfig:(e,n,r=[])=>{t((t=>({...t,[e]:{schema:n,validationRules:r}})))},removeFieldValidationConfig:e=>t((t=>{const n={...t};return delete n[e],n}))}},m$=()=>{const{addFieldEventListener:e,dispatchFieldEvent:t,removeFieldEventListener:n}=gk(),r=Be(),{setFieldValidationConfig:i,removeFieldValidationConfig:a}=h$();return{event:{addFieldEventListener:e,dispatchFieldEvent:t,removeFieldEventListener:n},formContext:r,validation:{setValidation:i,removeValidation:a}}},g$=()=>{const{submitHandler:e,setSubmitHandler:t,wrapInForm:n,setWrapInForm:r}=l(Hs);return{submitHandler:e,setSubmitHandler:t,wrapInForm:n,setWrapInForm:r}},y$=(e,t)=>{u((()=>{const n=n=>{n.data.type===e&&t(n)};return window.addEventListener("message",n),()=>{window.removeEventListener("message",n)}}),[e,t])},_$=e=>{const t=s();return u((()=>{t.current=e}),[e]),t.current},v$=()=>{const{formValidationConfig:e,warnings:t,setWarnings:n,yupId:r}=l(CA),[i,a]=o(XM()),[s,c]=o(XM()),f=d((()=>{if(e){let t={},n={};Object.entries(e).forEach((([e,r])=>{if(!r.validationRules||0===r.validationRules.length)return void(t=MA.upsert(t,e,{schema:r.schema,validationRules:[]}));const i=r.validationRules.filter((({soft:e})=>e)),a=r.validationRules.filter((({soft:e})=>!e));i.length&&(n=MA.upsert(n,e,{schema:r.schema,validationRules:i})),a.length&&(t=MA.upsert(t,e,{schema:r.schema,validationRules:a}))})),c(KI.buildSchema(n,r)),a(KI.buildSchema(t,r))}}),[e,r]);u((()=>{f()}),[f]);return{warnings:t,softValidationSchema:s,hardValidationSchema:i,rebuildValidationSchema:f,performSoftValidation:(e,t)=>{e.validate(t,{abortEarly:!1}).then((()=>{n({})})).catch((e=>{const t=e;if(xA(t))return;const r=t.inner.reduce(((e,t)=>(e[t.path]=t.message,e)),{});n(r)}))},addWarnings:e=>{n({...t,...e})},yupId:r}},b$=M.div`
|
|
298
298
|
flex: 1;
|
|
299
299
|
padding: 2rem 0;
|
|
300
300
|
`,A$=M(z)`
|
|
@@ -434,7 +434,7 @@ function AN(e){return"[object Object]"===Object.prototype.toString.call(e)}Objec
|
|
|
434
434
|
cursor: pointer;
|
|
435
435
|
`,NF=M(k)`
|
|
436
436
|
margin-top: 0.5rem;
|
|
437
|
-
`;var CF=ci,DF=li,LF=mn?mn.isConcatSpreadable:void 0;var IF=Ma,kF=function(e){return DF(e)||CF(e)||!!(LF&&e&&e[LF])};var $F=function e(t,n,r,i,a){var o=-1,s=t.length;for(r||(r=kF),a||(a=[]);++o<s;){var u=t[o];n>0&&r(u)?n>1?e(u,n-1,r,i,a):IF(a,u):i||(a[a.length]=u)}return a};var RF=qa,zF=function(){},FF=RF&&1/zS(new RF([,-0]))[1]==1/0?function(e){return new RF(e)}:zF,PF=RA,ZF=VA,UF=GA,jF=HA,BF=FF,VF=zS;var GF=function(e,t,n){var r=-1,i=ZF,a=e.length,o=!0,s=[],u=s;if(n)o=!1,i=UF;else if(a>=200){var c=t?null:BF(e);if(c)return VF(c);o=!1,i=jF,u=new PF}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},HF=Q$,YF=$F,WF=GF;var qF=function(e,t,n){var r=e.length;if(r<2)return r?WF(e[0]):[];for(var i=-1,a=Array(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=HF(a[i]||o,e[s],t,n));return WF(YF(a,1),t,n)},KF=ma,JF=qF,XF=yE,QF=hE((function(e){return JF(KF(e,XF))}));const eP=a({files:[],setFiles:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),tP=({children:t})=>{const[n,r]=o([]),[i,a]=o([]),s=c((()=>({files:n,setFiles:r,currentFileIds:i,setCurrentFileIds:a})),[n,i]);return e(eP.Provider,{value:s,children:t})};var nP,rP;!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}}(nP||(nP={})),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"}(rP||(rP={}));const iP=y((()=>import("./file-upload-manager.
|
|
437
|
+
`;var CF=ci,DF=li,LF=mn?mn.isConcatSpreadable:void 0;var IF=Ma,kF=function(e){return DF(e)||CF(e)||!!(LF&&e&&e[LF])};var $F=function e(t,n,r,i,a){var o=-1,s=t.length;for(r||(r=kF),a||(a=[]);++o<s;){var u=t[o];n>0&&r(u)?n>1?e(u,n-1,r,i,a):IF(a,u):i||(a[a.length]=u)}return a};var RF=qa,zF=function(){},FF=RF&&1/zS(new RF([,-0]))[1]==1/0?function(e){return new RF(e)}:zF,PF=RA,ZF=VA,UF=GA,jF=HA,BF=FF,VF=zS;var GF=function(e,t,n){var r=-1,i=ZF,a=e.length,o=!0,s=[],u=s;if(n)o=!1,i=UF;else if(a>=200){var c=t?null:BF(e);if(c)return VF(c);o=!1,i=jF,u=new PF}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},HF=Q$,YF=$F,WF=GF;var qF=function(e,t,n){var r=e.length;if(r<2)return r?WF(e[0]):[];for(var i=-1,a=Array(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=HF(a[i]||o,e[s],t,n));return WF(YF(a,1),t,n)},KF=ma,JF=qF,XF=yE,QF=hE((function(e){return JF(KF(e,XF))}));const eP=a({files:[],setFiles:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),tP=({children:t})=>{const[n,r]=o([]),[i,a]=o([]),s=c((()=>({files:n,setFiles:r,currentFileIds:i,setCurrentFileIds:a})),[n,i]);return e(eP.Provider,{value:s,children:t})};var nP,rP;!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}}(nP||(nP={})),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"}(rP||(rP={}));const iP=y((()=>import("./file-upload-manager.92166f18.js"))),aP=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(eP),T=s({}),O=s({}),N=s({}),C=s({}),{setFieldValidationConfig:D}=h$(),{dispatchFieldEvent:L}=gk(),{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:nP.findAvailableSlot(n)}),I(i)):k(i,{type:"max",message:O.current.errorMessage||Sm.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,eT().of(XM().shape({dataURL:zx(),fileId:zx(),fileName:zx(),fileUrl:zx(),uploadResponse:XM()})).test("is-empty-array",e?.errorMessage||Sm.UPLOAD().REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",N.current.errorMessage||Sm.UPLOAD().MAX_FILE_SIZE(N.current.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&N.current.maxSizeInKb)||w.filter((e=>e.status===rP.UPLOADED)).every((e=>{if("base64"===v.type&&e.dataURL)return Em.getFilesizeFromBase64(e.dataURL)<=1024*N.current.maxSizeInKb;if("multipart"===v.type){let t=e.rawFile?.size||e.uploadResponse?.fileSize;return isNaN(t)&&(t=0),t<=1024*N.current.maxSizeInKb}})))).test("max-files",O.current.errorMessage||Sm.UPLOAD().MAX_FILES(O.current.max),(e=>!(e&&Array.isArray(e)&&O.current.max)||e.length<=O.current.max)),b)}),[b,w.map((e=>e.status)).join(",")]),u((()=>{if(!c&&!f){const e=Array.isArray(p)?p:[];if(!(QF(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:rP.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($I,{children:t}):null;return t(n,{children:[e(_,{fallback:null,children:e(iP,{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!==rP.INJECTED&&t!==rP.INJECTING)).map((({fileItem:e})=>e)),id:i,maxFiles:O.current.max,onChange:e=>{F(e.map((e=>({addedFrom:"input",rawFile:e,slot:null,status:rP.NONE}))),w)},onDelete:e=>{M(w.map((t=>t.fileItem.id!==e.id?t:{...t,status:rP.TO_DELETE}))),I(i)},title:P(y),warning:P(S||A)})]})},oP=a({images:[],setImages:()=>null,errorCount:0,setErrorCount:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),sP=({children:t})=>{const[n,r]=o([]),[i,a]=o(0),[s,u]=o([]);return e(oP.Provider,{value:{images:n,setImages:r,errorCount:i,setErrorCount:a,currentFileIds:s,setCurrentFileIds:u},children:t})};var uP;!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}}(uP||(uP={}));const cP=["jpg","gif","png","heic","heif","webp"];var lP;!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"}(lP||(lP={}));var dP,fP={exports:{}},pP={exports:{}},hP={};var mP,gP,yP,_P,vP,bP,AP,EP,SP,wP,xP,MP,TP,OP,NP={};
|
|
438
438
|
/** @license React v16.13.1
|
|
439
439
|
* react-is.development.js
|
|
440
440
|
*
|
|
@@ -928,7 +928,7 @@ object-assign
|
|
|
928
928
|
stroke: ${x.Primary};
|
|
929
929
|
stroke-width: 1;
|
|
930
930
|
}
|
|
931
|
-
`,HU=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(zU,{id:TA.generateId(u),children:[c.map(((n,r)=>n.status===lP.NONE?e(jU,{children:[...Array(4)].map(((t,n)=>e(UU,{},`dot-${n}`)))},r):n.status>lP.NONE||n.status===lP.ERROR_CUSTOM_MUTED?e(FU,{id:TA.generateId(u,`item-${r+1}`),"data-testid":TA.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(BU,{isSelected:a===r})},r):"reviewModal"===n.addedFrom||n.status<lP.NONE?t(FU,{id:TA.generateId(u,`item-${r+1}`),"data-testid":TA.generateId(u,`item-${r+1}`),type:"button","aria-label":`error with ${n.name}`,onClick:()=>d(r),error:!0,children:[e(BU,{isSelected:a===r}),e(PU,{})]},r):void 0)),(c.filter((({status:e,addedFrom:t})=>e>=lP.NONE||e===lP.ERROR_CUSTOM_MUTED||"reviewModal"===t)).length<l||!l)&&t(n,{children:[e(VU,{id:TA.generateId(u,"file-input"),"data-testid":TA.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(GU,{type:"button",id:TA.generateId(u,"add-image-button"),"data-testid":TA.generateId(u,"add-image-button"),"aria-label":"add image",onClick:y,theme:m||ie,children:e(ae,{})})]})]})},YU=y((()=>import("./index.
|
|
931
|
+
`,HU=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(zU,{id:TA.generateId(u),children:[c.map(((n,r)=>n.status===lP.NONE?e(jU,{children:[...Array(4)].map(((t,n)=>e(UU,{},`dot-${n}`)))},r):n.status>lP.NONE||n.status===lP.ERROR_CUSTOM_MUTED?e(FU,{id:TA.generateId(u,`item-${r+1}`),"data-testid":TA.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(BU,{isSelected:a===r})},r):"reviewModal"===n.addedFrom||n.status<lP.NONE?t(FU,{id:TA.generateId(u,`item-${r+1}`),"data-testid":TA.generateId(u,`item-${r+1}`),type:"button","aria-label":`error with ${n.name}`,onClick:()=>d(r),error:!0,children:[e(BU,{isSelected:a===r}),e(PU,{})]},r):void 0)),(c.filter((({status:e,addedFrom:t})=>e>=lP.NONE||e===lP.ERROR_CUSTOM_MUTED||"reviewModal"===t)).length<l||!l)&&t(n,{children:[e(VU,{id:TA.generateId(u,"file-input"),"data-testid":TA.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(GU,{type:"button",id:TA.generateId(u,"add-image-button"),"data-testid":TA.generateId(u,"add-image-button"),"aria-label":"add image",onClick:y,theme:m||ie,children:e(ae,{})})]})]})},YU=y((()=>import("./index.be8ad57b.js"))),WU=[{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"}],qU=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(oP),{dispatchFieldEvent:M,addFieldEventListener:T,removeFieldEventListener:O}=gk(),N=_$(b),[C,L]=o(w.length-1),[I,k]=o(!1),[$,R]=o(),z=!!w?.find((({status:e})=>e===lP.NONE)),[F,P]=o(WU[0].color),[Z,U]=o(!1),j=s(null),B=!!w?.find((({addedFrom:e,status:t})=>"reviewModal"===e&&t<=lP.NONE))||!w.length,V=d((e=>{e.detail.removePendingImages&&x((e=>e.filter((({status:e})=>e===lP.UPLOADED||e===lP.ERROR_CUSTOM_MUTED)))),y()}),[y,x]),G=e=>{!m||e.length+w.filter((({status:e,addedFrom:t})=>e>=lP.NONE||"reviewModal"===t)).length<=m?e.forEach((e=>{x((t=>{const n=uP.findAvailableSlot(t);return[...t,{id:Mm(),file:e,name:e.name,dimensions:p,status:lP.NONE,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))})):x((t=>{const n=uP.findAvailableSlot(t);return[...t,{id:Mm(),file:e[0],name:e[0].name,dimensions:p,status:lP.ERROR_EXCEED,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))},H=e=>{e&&(x((e=>e.map(((e,t)=>({...e,...t===C?{status:lP.TO_DELETE}:{}}))))),L(Math.max(0,C-1))),R(null)},Y=d((()=>{x((e=>e.filter((({status:e})=>e>=lP.NONE||e===lP.ERROR_CUSTOM_MUTED)).map((e=>{const t={...e};return e.drawingDataURL&&(t.dataURL=e.drawingDataURL),e.status<lP.UPLOAD_READY&&e.status>lP.NONE&&(t.status=lP.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(WU[0].color)},K=async()=>{const{dataURL:e,drawing:t}=j.current?.export()||{},n=await sA.dataUrlToImage(e),r=await sA.resampleImage(n,{scale:96/n.width,type:Em.fileExtensionToMimeType(v)}),i=await Em.fileToDataUrl(r);x((n=>{const r=[...n];return r[C]={...r[C],thumbnailDataURL:i,drawingDataURL:e,drawing:t,status:f?lP.TO_RECOMPRESS:lP.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:TA.generateId(h,void 0,b?"show":"hide"),className:c?`${c}-review`:void 0,show:b,children:e(gU,{className:c?`${c}-review-modal-box`:void 0,imageReviewModalStyles:S,showCloseButton:!1,children:b?t(n,{children:[e(yU,{className:c?`${c}-header`:void 0,$drawActive:I,children:t(n,I?{children:[e(AU,{id:TA.generateId(h,"clear-drawing-button"),"data-testid":TA.generateId(h,"clear-drawing-button"),onClick:()=>R("clear-drawing"),children:"Clear"}),e(AU,{id:TA.generateId(h,"save-drawing"),"data-testid":TA.generateId(h,"save-drawing"),onClick:K,children:"Save"})]}:{children:[e(_U,{id:TA.generateId(h,"close-button"),"data-testid":TA.generateId(h,"close-button"),"aria-label":"exit review modal",onClick:()=>R("exit"),children:e(X,{type:"cross"})}),e(vU,{weight:"semibold",children:"Review photos"})]})}),t(EU,{children:[w.length>0&&e(NU,{className:c?`${c}-editor`:void 0,children:e(_,{fallback:null,children:e(YU,{baseImageDataURL:w[C]?.dataURL,drawing:w[C]?.drawing,color:I?F:void 0,erase:!!I&&Z,ref:j,maxSizeInKb:g})})}),w.length>0&&e(SU,{children:"Loading Preview..."}),!I&&w[C]?.status>=lP.NONE&&t(wU,{children:[t(xU,{id:TA.generateId(h,"draw-button"),"data-testid":TA.generateId(h,"draw-button"),onClick:q,disabled:z,children:[e(TU,{$disabled:z}),e(MU,{weight:"semibold",$disabled:z,children:"Draw"})]}),t(xU,{id:TA.generateId(h,"delete-button"),"data-testid":TA.generateId(h,"delete-button"),onClick:()=>R("delete"),disabled:z,children:[e(OU,{$disabled:z}),e(MU,{weight:"semibold",$disabled:z,children:"Delete"})]})]}),w[C]?.status<lP.NONE&&e(hU,{id:`${h}-photo-error`,image:w[C],accepts:i,maxSizeInKb:g,onClickOk:()=>H(!0),maxFilesErrorMessage:E,maxFiles:m})]}),e(CU,{className:c?`${c}-footer`:void 0,children:t(n,I?{children:[e(LU,{id:TA.generateId(h,"eraser-button"),"data-testid":TA.generateId(h,"eraser-button"),"aria-label":"eraser",onClick:J,children:e(IU,{$eraseMode:Z})}),e($U,{children:WU.map((({color:t,colorScheme:n,label:r},i)=>e(RU,{id:TA.generateId(h,`palette-color-${i}`),"aria-label":`${r} brush`,$color:t,$colorScheme:n,onClick:()=>(e=>{Q(),P(e)})(t),children:F===t&&e(kU,{$colorScheme:n})},t)))})]}:{children:[e(HU,{id:`${h}-image-thumbnails`,activeFileIndex:C,accepts:i,capture:a,maxFiles:m,images:w,onClickThumbnail:L,onSelectFile:G,multiple:A}),e(DU,{id:TA.generateId(h,"save-button"),"data-testid":TA.generateId(h,"save-button"),onClick:W,disabled:B,children:"Save"})]})}),e(mU,{images:w,show:$,onDecideClearDrawing:e=>{e&&j.current.clearDrawing(),R(null)},onDecideDelete:H,onDecideExit:e=>{e&&(x(w.filter((({addedFrom:e,status:t})=>t>=lP.UPLOADED||t<lP.NONE&&"dragInput"===e)).map((e=>({...e,drawingDataURL:void 0,drawing:void 0})))),y()),R(null)}})]}):e(n,{})})})},KU=y((()=>import("./index.d4dbff90.js"))),JU=r=>{const{schema:{buttonLabel:i,capture:a,className:s,compress:c,description:d,dimensions:f={width:1e3,height:1e3},editImage:p,label:h,outputType:m="jpg",uploadOnAddingFile:g,validation:y,multiple:v,imageReviewModalStyles:b},id:A,isDirty:E,isTouched:S,value:w,warning:x,...M}=r,{images:T,setImages:O,currentFileIds:N}=l(oP),C=_$(T),[D,L]=o([...cP]),[I,k]=o(0),[$,R]=o(0),[z,F]=o(!1),[P,Z]=o(!1),{setFieldValidationConfig:U}=h$(),{dispatchFieldEvent:j}=gk();u((()=>{j("mount",A)}),[j,A]),u((()=>{if(!E&&!S){const e=Array.isArray(w)?w:[];if(!(QF(e.map((({fileId:e})=>e)),N).length>0))return;const t=[];e.forEach((({fileId:e,fileName:n,dataURL:r,uploadResponse:i},a)=>{const o={id:e||Mm(),file:{},name:n,dimensions:{width:10,height:10},dataURL:r,status:lP.INJECTED,addedFrom:"schema",uploadProgress:100,slot:a,uploadResponse:i};t.push(o)})),O(t)}}),[E,S,N,O,w]),u((()=>{const e=y?.find((e=>"required"in e)),t=y?.find((e=>"fileType"in e)),n=y?.find((e=>"maxSizeInKb"in e));t?.fileType&&t?.fileType!==D&&L(t?.fileType),n?.maxSizeInKb&&n?.maxSizeInKb!==$&&R(n?.maxSizeInKb);const r=y?.find((e=>"length"in e)),i=y?.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&&I!==a.maxFiles&&k(a.maxFiles),U(A,eT().of(XM().shape({fileName:zx(),dataURL:zx()})).test("is-empty-array",e?.errorMessage||Sm.UPLOAD("photo").REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",n?.errorMessage||Sm.UPLOAD("photo").MAX_FILE_SIZE(n?.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&n?.maxSizeInKb)||e.every((e=>Em.getFilesizeFromBase64(e.dataURL)<=1024*n?.maxSizeInKb)))),y)}),[y]),u((()=>{T.some((e=>e.status===lP.NONE))||(T.some(((e,t)=>{const n=C?.[t];if(e.status!==n?.status||e.dataURL!==n.dataURL)switch(e.status){case lP.COMPRESSED:case lP.CONVERTED:if(p&&!P)return OA.isMobileView()?Z(!0):F(!0),!0}})),0===T.length&&Z(!1))}),[T.map((e=>e.status)).join(","),T.map((e=>e.dataURL)).join(",")]);const B=(e=!1)=>{e?p&&(document.body.classList.remove("lifesg-ds-overlay-open"),Z(!0)):O((e=>e.map((e=>e.status<lP.UPLOAD_READY&&e.status>lP.NONE?{...e,status:lP.UPLOAD_READY}:e)))),F(!1)};return t(n,{children:[e(_,{fallback:null,children:e(KU,{accepts:D,compress:!!c,dimensions:f,editImage:p,id:A,maxSizeInKb:$,outputType:m,upload:g,value:w})}),e(sU,{id:A,capture:a,className:s,label:h,description:d,buttonLabel:i,accepts:D,maxFiles:I,maxSizeInKb:$,dimensions:f,errorMessage:M.error?.message,validation:y,multiple:v,warning:x}),e(yT,{id:`${A}-review-prompt`,title:"Review photos?",size:"large",show:z,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:()=>B(!0)},{id:"skip",title:"Skip",buttonStyle:"secondary",onClick:()=>B()}]}),(()=>{const t=y?.find((e=>"max"in e));return e(qU,{accepts:D,dimensions:f,id:A,className:s,maxFiles:I,maxFilesErrorMessage:t?.errorMessage,maxSizeInKb:$,onExit:()=>Z(!1),outputType:m,show:P,multiple:v,capture:a,imageReviewModalStyles:b})})()]})},XU=T`
|
|
932
932
|
border: 1px solid ${x.Accent.Light[1]};
|
|
933
933
|
box-shadow: none;
|
|
934
934
|
`,QU=T`
|
|
@@ -1011,7 +1011,7 @@ object-assign
|
|
|
1011
1011
|
${e=>T`
|
|
1012
1012
|
margin-left: ${e.$readOnly?"0.25rem":"0.75rem"};
|
|
1013
1013
|
`}
|
|
1014
|
-
`,ij=n=>{const{id:r,"data-testid":i,className:a,disabled:o,readOnly:s,onFocus:u,value:c,placeholder:l,error:d}=n;return t(tj,{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(nj,l&&!c?{$placeholder:!0,$disabled:o,children:l}:{$disabled:o,children:c}),e(rj,{$disabled:o,$readOnly:s,"aria-hidden":"true",children:e(se,{})})]})},aj=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:TA.generateId(n,"location-input"),"data-testid":TA.generateId(n,"location-input"),label:r,errorMessage:u,children:e(ij,{id:TA.generateId(n,"location-input-base"),"data-testid":TA.generateId(n,"location-input-base"),disabled:c,readOnly:l,placeholder:a,onFocus:o,value:s,error:!!u,className:i})})},oj=y((()=>import("./location-modal.
|
|
1014
|
+
`,ij=n=>{const{id:r,"data-testid":i,className:a,disabled:o,readOnly:s,onFocus:u,value:c,placeholder:l,error:d}=n;return t(tj,{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(nj,l&&!c?{$placeholder:!0,$disabled:o,children:l}:{$disabled:o,children:c}),e(rj,{$disabled:o,$readOnly:s,"aria-hidden":"true",children:e(se,{})})]})},aj=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:TA.generateId(n,"location-input"),"data-testid":TA.generateId(n,"location-input"),label:r,errorMessage:u,children:e(ij,{id:TA.generateId(n,"location-input-base"),"data-testid":TA.generateId(n,"location-input-base"),disabled:c,readOnly:l,placeholder:a,onFocus:o,value:s,error:!!u,className:i})})},oj=y((()=>import("./location-modal.0395a6f9.js")));class sj extends Error{code;message;constructor(e){super(),Object.assign(this,e)}}const uj=M(S.BodySmall)`
|
|
1015
1015
|
cursor: ${e=>e.disabled?"not-allowed":"pointer"};
|
|
1016
1016
|
`,cj=M(le)`
|
|
1017
1017
|
margin-right: 5px;
|
|
@@ -1047,9 +1047,9 @@ object-assign
|
|
|
1047
1047
|
gap: 1rem;
|
|
1048
1048
|
`,gj=M.div`
|
|
1049
1049
|
${({$color:e})=>e&&`color: ${e};`}
|
|
1050
|
-
`;var yj;!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"}(yj||(yj={}));var _j=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}=gk(),p=t=>{if(!t)return null;const n=Z[t];return e(n,{})};return t(H$,{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}=h$();u((()=>{const e=m?.find((e=>"required"in e));E(s,eT().of(zx()).test("is-empty-array",e?.errorMessage||Sm.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=rR(r,e,n?.value):(r.push(e),r=rR(r,n?.value)),c({target:{value:r}})},w=e=>b.includes(e),x=()=>{const e=Mm();return`${s}-${e}`},M=t=>"string"==typeof t?e($I,{inline:!0,children:t}):e(Sj,{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(sR,{$layoutType:d?.layoutType??"horizontal",className:l?`${l}-checkbox-container`:void 0,children:h.map(((t,n)=>{const r=x();return e(uR,{type:"checkbox","data-testid":TA.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(Sj,{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(oR,{className:l?`${l}-checkbox-container`:void 0,children:[e(aR,{...g,"data-testid":TA.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(iR,{as:"label",htmlFor:i,disabled:f??n.disabled,children:M(n.label)})]},r)}))}),e(YI,{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}=h$();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,eT().of(zx()).test("is-empty-array",e?.errorMessage||Sm.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(gR,{"data-testid":TA.generateId(s,"chips"),$showTextarea:E,children:[f.map(((e,t)=>p(sT,{...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(sT,{...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(cR,{id:t,schema:r,Field:mR}):e(n,{})})()]}),e(YI,{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=_$(f),[M,T]=o(f),[O]=o((()=>{const e=new Map;return yR.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:$}=h$();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,zx().test("singaporeNumber",r||Sm.CONTACT.INVALID_SINGAPORE_NUMBER,(e=>!e||!t||bF.isSingaporeNumber(e,t))).test("internationalNumber",r||Sm.CONTACT.INVALID_INTERNATIONAL_NUMBER,(e=>!(e&&!t&&n)||bF.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}=bF.getParsedPhoneNumber(v||""),n=e.replace(/\+/g,""),r=(e=>{for(const[t,,,n]of yR)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),bF.formatPhoneNumber(e.countryCode,e.number)||""};return t(n,{children:[e(W.PhoneNumberInput,{..._,...A,"data-testid":TA.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(YI,{id:c,message:b})]})},DateField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{label:d,useCurrentDate:f,dateFormat:p=AF,validation:h,...m},value:g,warning:y,..._}=r,{setValue:v}=Be(),[b,A]=o(g||""),[E,S]=o(),{setFieldValidationConfig:w}=h$();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=wm.toLocalDateOrTime(a?.minDate,p,"date"),f=wm.toLocalDateOrTime(o?.maxDate,p,"date");w(s,zx().test("is-date",e?.errorMessage||Sm.DATE.INVALID,(e=>!e||""===e||!!T(e)&&!!wm.toLocalDateOrTime(e,p,"date"))).test("future",t?.errorMessage||Sm.DATE.MUST_BE_FUTURE,(e=>{if(!T(e)||!t?.future)return!0;const n=wm.toLocalDateOrTime(e,p,"date");return!!n?.isAfter(Rf.now())})).test("past",n?.errorMessage||Sm.DATE.MUST_BE_PAST,(e=>{if(!T(e)||!n?.past)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!!t?.isBefore(Rf.now())})).test("not-future",r?.errorMessage||Sm.DATE.CANNOT_BE_FUTURE,(e=>{if(!T(e)||!r?.notFuture)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(Rf.now())})).test("not-past",i?.errorMessage||Sm.DATE.CANNOT_BE_PAST,(e=>{if(!T(e)||!i?.notPast)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(Rf.now())})).test("min-date",a?.errorMessage||Sm.DATE.MIN_DATE(wm.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!d)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(d)})).test("max-date",o?.errorMessage||Sm.DATE.MAX_DATE(wm.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!f)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(f)})).test("excluded-dates",u?.errorMessage||Sm.DATE.DISABLED_DATES,(e=>!T(e)||!u||!u.excludedDates.includes(e))).test("within-days",c?.errorMessage||c?.withinDays&&Sm.DATE.WITHIN_DAYS(c?.withinDays),(e=>!T(e)||!c||wm.checkWithinDays(e,{...c.withinDays,dateFormat:p}))).test("beyond-days",l?.errorMessage||l?.beyondDays&&Sm.DATE.BEYOND_DAYS(l?.beyondDays),(e=>!T(e)||!l||wm.checkBeyondDays(e,{...l.beyondDays,dateFormat:p}))),h);const m=c?.withinDays&&wm.calculateDisabledWithinDaysRange({...c.withinDays,dateFormat:p}),g=l?.beyondDays&&wm.calculateDisabledBeyondDaysRange({...l.beyondDays,dateFormat:p}),y=M([d,t?.future&&Rf.now().plusDays(1),i?.notPast&&Rf.now(),m?.startDate,g?.startDate]),_=x([f,n?.past&&Rf.now().minusDays(1),r?.notFuture&&Rf.now(),m?.endDate,g?.endDate]),v=[...u?.excludedDates||[]];(y||_||v)&&S((e=>({...e,minDate:y?.format(EF),maxDate:_?.format(EF),disabledDates:v})))}),[h]),u((()=>{if(p)if(g)if(T(g)){const e=wm.toLocalDateOrTime(g,p,"date");A(wm.formatDateTime(e?.toString(),AF,"date",Sm.DATE.INVALID))}else A(Sm.DATE.INVALID);else if(!c)if(f){const e=wm.formatDateTime(Rf.now().toString(),p,"date");v(s,e);const t=wm.formatDateTime(Rf.now().toString(),AF,"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!==Sm.DATE.INVALID;return t(n,{children:[e(W.DateInput,{...m,..._,...E,id:s,"data-testid":TA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:e=>{l({target:{value:wm.formatDateTime(e,p,"date",Sm.DATE.INVALID)}})},value:b}),e(YI,{id:s,message:y})]})},DateRangeField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{dateFormat:d=wF,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}=h$();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=wm.toLocalDateOrTime(a?.minDate,d,"date"),m=wm.toLocalDateOrTime(o?.maxDate,d,"date");x(s,XM().shape({from:zx(),to:zx()}).test("is-empty-string",u?.errorMessage||Sm.DATE_RANGE.REQUIRED,(e=>!e||!u||e.from?.length>0&&e.to?.length>0)).test("is-date",e?.errorMessage||Sm.DATE_RANGE.INVALID,(e=>!(!RI.exports.isEmpty(e?.from)&&!RI.exports.isEmpty(e?.to))||O(e.from)&&O(e.to)&&!!wm.toLocalDateOrTime(e.from,d,"date")&&!!wm.toLocalDateOrTime(e.to,d,"date"))).test("number-of-days",l?.errorMessage||Sm.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=wm.toLocalDateOrTime(e.from,d,"date");return wm.toLocalDateOrTime(e.to,d,"date").equals(t.plusDays(l?.numberOfDays-1))})).test("future",t?.errorMessage||Sm.DATE_RANGE.MUST_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!t?.future)return!0;const n=wm.toLocalDateOrTime(e.from,d,"date"),r=wm.toLocalDateOrTime(e.to,d,"date");return!!n?.isAfter(Rf.now())&&!!r?.isAfter(Rf.now())})).test("past",n?.errorMessage||Sm.DATE_RANGE.MUST_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!n?.past)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),r=wm.toLocalDateOrTime(e.to,d,"date");return!!t?.isBefore(Rf.now())&&!!r?.isBefore(Rf.now())})).test("not-future",r?.errorMessage||Sm.DATE_RANGE.CANNOT_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!r?.notFuture)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(Rf.now())&&!n?.isAfter(Rf.now())})).test("not-past",i?.errorMessage||Sm.DATE_RANGE.CANNOT_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!i?.notPast)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(Rf.now())&&!n?.isBefore(Rf.now())})).test("min-date",a?.errorMessage||Sm.DATE_RANGE.MIN_DATE(wm.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=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(f)&&!n?.isBefore(f)})).test("max-date",o?.errorMessage||Sm.DATE_RANGE.MAX_DATE(wm.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=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(m)&&!n?.isAfter(m)})).test("excluded-dates",c?.errorMessage||Sm.DATE_RANGE.DISABLED_DATES,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!c)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");try{const e=c.excludedDates.map((e=>wm.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&&Rf.now().plusDays(1),i?.notPast&&Rf.now()]),y=M([m,n?.past&&Rf.now().minusDays(1),r?.notFuture&&Rf.now()]),_=c?.excludedDates,v=l?.numberOfDays;(g||y||_||v)&&w((e=>({...e,minDate:g?.format(xF),maxDate:y?.format(xF),disabledDates:_,numberOfDays:v})))}),[p]),u((()=>{N(SF.START)}),[g.from,d,c]),u((()=>{N(SF.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!==Sm.DATE_RANGE.INVALID,N=e=>{const t=e===SF.START?g.from:g.to,n=e===SF.START?b:E;if(d)if(t)if(O(t)){const e=wm.toLocalDateOrTime(t,d,"date");n(wm.formatDateTime(e?.toString(),wF,"date",Sm.DATE_RANGE.INVALID))}else n(Sm.DATE_RANGE.INVALID);else c||n(void 0)};return t(n,{children:[e(W.DateRangeInput,{...m,..._,...S,id:s,"data-testid":TA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:(e,t)=>{l({target:{value:{from:wm.formatDateTime(e,d,"date",Sm.DATE_RANGE.INVALID),to:wm.formatDateTime(t,d,"date",Sm.DATE_RANGE.INVALID)}}})},value:v,valueEnd:A,variant:h}),e(YI,{id:s,message:y})]})},get TDateRangeInputType(){return SF},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}=h$(),M=s(null),{clearErrors:T}=Be();u((()=>{const e=p?.find((e=>"upload"in e&&e.upload));M.current=e,x(a,XM().shape({fileId:zx().required(),dataURL:zx(),fileUrl:zx(),uploadResponse:Ox().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=Mm();if(_(e),E(0),xA(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 Em.dataUrlToBlob(t),i=Em.blobToFile(r,{name:e,lastModified:Date.now()});n.append("file",i,e)}const r=await new Ol("",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 Ol("",void 0,void 0,!1,{responseType:"blob"}).get(t,{signal:n.signal}),i=await Em.getType(new File([r],e)),a=new File([r],e,{type:i.mime}),o=await Em.fileToDataUrl(a);_(o),E(0)}catch(e){if(e instanceof fl)return;E((e=>e+1))}})(),n};return t(MF,{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(TF,{children:[M.current?.errorMessage||Sm.ESIGNATURE.UPLOAD,e(OF,{type:"button",onClick:()=>O(y),children:"Please try again."}),v>=3&&e(NF,{type:"warning","data-testid":"upload-refresh-alert",children:"Refresh this page if you cannot upload your signature."})]}):A>0&&N(m)?t(TF,{children:["Failed to load.",e(OF,{type:"button",onClick:()=>D(m.fileId,m.fileUrl),children:"Please try again."}),A>=3&&e(NF,{type:"warning","data-testid":"load-refresh-alert",children:"Refresh this page if your signature failed to load."})]}):e(TF,{children:r?.message}):null,e(YI,{id:a,message:g})]})},ErrorField:t=>{const{id:n,schema:{children:r}}=t,{setFieldValidationConfig:i}=h$();return u((()=>{i(n,Ox().test((()=>!1)),[])}),[]),r?e(Sj,{children:r}):null},FileUploadInner:aP,FileUpload:t=>e(tP,{children:e(aP,{...t})}),get EFileStatus(){return rP},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}=h$(),{setValue:m}=Be();return u((()=>{let e;switch(l){case"null":e=Ox();break;case"number":e=Px();break;case"boolean":e=Cx();break;default:e=zx()}h(n,e,c)}),[c,l]),u((()=>{"null"===l&&null!==p?m(n,null):NA(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}=h$();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,XM({from:Px(),to:Px()}).test("is-required",e?.errorMessage||Sm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!NA(t.from)&&!NA(t.to))).test("is-bin",t?.errorMessage||Sm.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||Sm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Sm.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":TA.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(YI,{id:s,message:b})]})},ImageUploadInner:JU,ImageUpload:t=>e(sP,{children:e(JU,{...t})}),ACCEPTED_FILE_TYPES:cP,get EImageStatus(){return lP},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}=h$(),{dispatchFieldEvent:P,addFieldEventListener:Z,removeFieldEventListener:U}=gk();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,XM({address:zx(),blockNo:zx(),building:zx(),lat:Px(),lng:Px(),postalCode:zx(),roadName:zx(),x:Px(),y:Px()}).test("is-required",e?.errorMessage||Sm.COMMON.FIELD_REQUIRED,(t=>!e?.required||!!t&&!!t.lat&&!!t.lng)).test("must-have-postal-code",t?.errorMessage||Sm.LOCATION.MUST_HAVE_POSTAL_CODE,(t=>!e||!b||UI.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":TA.generateId(a),className:s,children:[e(aj,{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:TA.generateId(a,"edit-button"),"data-testid":TA.generateId(a,"edit-button"),styleType:"secondary",onClick:()=>{!P("click-edit-button",a)||R(!0)},type:"button",children:"Edit"}),!!I?.lat&&!!I?.lng&&e(HI,{id:a,className:`${s}-static-map`,lat:I.lat,lng:I.lng,staticMapPinColor:S,onClick:B,disabled:l}),e(_,{fallback:null,children:oj&&e(oj,{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(YI,{id:a,message:k})]})},GeolocationPositionErrorWrapper:sj,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}=h$();u((()=>{w(s,zx(),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":TA.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(YI,{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}=h$();u((()=>{const e=f?.find((e=>"required"in e));b(s,eT().of(zx()).test("is-empty-array",e?.errorMessage||Sm.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":TA.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(YI,{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}=h$(),[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,XM().test("is-required",e?.errorMessage||Sm.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":TA.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(YI,{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}=h$();u((()=>{S(s,zx(),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=Mm();return`${s}-${e}`},T=t=>"string"==typeof t?e($I,{inline:!0,children:t}):e(Sj,{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(pj,{className:l?`${l} ${l}-radio-container`:void 0,$layoutType:d?.layoutType??"horizontal",children:m.map(((t,n)=>{const r=M();return p(hj,{...y,key:n,type:"radio",id:r,className:l?`${l}-radio`:void 0,"data-testid":TA.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(Sj,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&T(t.subLabel)},T(t.label))}))});case"image-button":return m.length>0&&e(fj,{className:l?`${l} ${l}-radio-container`:void 0,children:m.map(((e,t)=>{const n=M();return p(lj,{...y,type:"button",key:t,id:n,className:l?`${l}-radio`:void 0,"data-testid":TA.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(dj,{className:l?`${l}-radio-container`:void 0,children:[e(cj,{...y,className:l,id:i,"data-testid":TA.generateId(s,"radio"),disabled:f??n.disabled,name:i,value:n.value,checked:x(n.value),onChange:()=>w(n.value)}),e(uj,{as:"label",htmlFor:i,disabled:f??n.disabled,children:T(n.label)})]},r)}))}})()}),e(YI,{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}=h$();u((()=>{const e=f?.find((e=>"required"in e));E(s,XM().shape({from:zx(),to:zx()}).test("is-empty-string",e?.errorMessage||Sm.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":TA.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(YI,{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}=p$(),{formSchema:{defaultValues:d}}=f$();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]=[]:F$(n)||ak(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}=h$();u((()=>{b(s,zx(),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":TA.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(YI,{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}=h$();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,XM({from:Px(),to:Px()}).test("is-required",e?.errorMessage||Sm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!NA(t.from)&&!NA(t.to))).test("is-bin",t?.errorMessage||Sm.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||Sm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Sm.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":TA.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(YI,{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}=h$();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,Px().test("is-incremental",n?.errorMessage||Sm.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":TA.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(YI,{id:s,message:_})]})},SubmitButton:t=>{const{id:n,schema:{disabled:r,label:i,...a},...s}=t,{submitHandler:c,wrapInForm:l}=g$(),{setFieldValidationConfig:d}=h$(),{hardValidationSchema:f}=v$(),p=et({disabled:"invalid-form"!==r}),[h,m]=o(!0===r);u((()=>{d(n,Ox())}),[]),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}=h$();u((()=>{b(s,Cx().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(mj,{className:l,role:"radiogroup","aria-label":"string"==typeof p?p:kI(p.mainLabel,{allowedTags:[]}),children:[e(q,{...m,type:"yes",id:S("yes"),"data-testid":TA.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":TA.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(YI,{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}=h$(),M=s(null),T=s(0);u((()=>{switch(_){case"numeric-field":{x(c,Px(),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,zx().email(e?.errorMessage||Sm.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,zx(),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":TA.generateId(c,_),ref:M,type:(()=>{switch(_){case"numeric-field":return"number";case"email-field":return"email";default:return"text"}})(),label:a,onPaste:e=>m?.preventCopyAndPaste?e.preventDefault():null,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)},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(gj,{as:i,$color:r})}}}}})()}),e(YI,{id:c,message:p})]})},Textarea:mR,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}=h$();u((()=>{A(s,zx(),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=wm.formatDateTime(Pf.now().toString().toUpperCase(),e,"time");b(t),c({target:{value:t}})};return t(n,{children:[e(W.Timepicker,{...m,..._,id:s,"data-testid":TA.generateId(s,"time"),label:a,errorMessage:i?.message,value:v,placeholder:f,format:l?"24hr":"12hr",onChange:e=>{c({target:{value:e}})}}),e(YI,{id:s,message:y})]})},get EFieldType(){return yj},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:_}=h$();u((()=>{const e=d?.find((e=>"unitNumberFormat"in e));_(s,zx().matches(/^([a-zA-Z0-9]{1,3}-[a-zA-Z0-9]{1,5})$/,{excludeEmptyString:!0,message:e?.errorMessage||Sm.UNIT_NUMBER.INVALID}),d)}),[d]),u((()=>{y(p||"")}),[p]);return t(n,{children:[e(W.UnitNumberInput,{...f,...m,id:s,"data-testid":TA.generateId(s,"unit-number"),label:i,value:g,onChange:e=>{c({target:{value:e}})},errorMessage:a?.message}),e(YI,{id:s,message:h})]})}});const vj=({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":TA.generateId(t,"grid_item"),desktopCols:n??12,tabletCols:a,mobileCols:o,...s,children:r})}return e(n,{children:r})},bj=({id:t,renderRules:r,children:i,schema:a})=>{const{formValidationConfig:s,removeFieldValidationConfig:u}=h$(),[c,l]=o(void 0),{formValues:d}=p$(),{unregister:f}=Be();zs((()=>{if(xA(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(xA(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:Ox().test("shown",(()=>!1)),validationRules:[]});const r=s?.[e]?.schema.type;if(r){let i=KI.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=KI.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;!xA(t)&&Tn(t)&&Object.entries(t).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))}))}))}return xA(n)||!Tn(n)||Object.entries(n).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))})),r};return xA(r)||c?e(n,{children:i}):null},Aj=Object.keys(yj),Ej=Object.keys(x$),Sj=t=>{const{id:r,schema:i,children:a}=t,{showIf:s,uiType:u,children:c,...l}=i||{},{warnings:d}=v$(),[f,p]=o(null),{control:h}=Be(),{getCustomComponent:m}=hk(),{formSchema:{overrides:y},overrideSchema:_}=f$();mk((()=>{const t=_(c||a,y);if("object"==typeof t){const n=[];Object.keys(t).forEach((r=>{const i=t[r];if(xA(i)||"object"!=typeof i)return;let a=e(g,{children:Sm.GENERIC.UNSUPPORTED},r);if("referenceKey"in i){const t=i.referenceKey.toUpperCase();a=m(i.referenceKey)||G$[V$[t]]?v(r,i)(b):G$[B$[t]]?v(r,i)(A):e(g,{},r)}else"uiType"in i&&(Aj.includes(i.uiType.toUpperCase())?a=v(r,i)(b):Ej.includes(i.uiType.toUpperCase())&&(a=v(r,i)(A)));n.push(a)})),p(n)}else p("string"==typeof t?t:Sm.GENERIC.UNSUPPORTED)}),[c||a,y,h,d,m]);const v=(t,n)=>r=>e(bj,{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=_j[yj[n.uiType?.toUpperCase()]]:"referenceKey"in n&&(r=G$[V$[n.referenceKey?.toUpperCase()]]||m(n.referenceKey)),r?e(vj,{id:t,childSchema:n,children:e(cR,{id:t,schema:n,Field:r,warning:d?.[t]})}):null},A=(t,n)=>{let r;return"uiType"in n?r=M$[x$[n.uiType?.toUpperCase()]]||Sj:"referenceKey"in n&&(r=G$[B$[n.referenceKey?.toUpperCase()]]),e(vj,{id:t,childSchema:n,children:e(r,{schema:n,id:t})})};return u?e(u,{...l,id:r,"data-testid":TA.generateId(r,u),children:f}):e(n,{children:f})},wj=M($.Container)`
|
|
1050
|
+
`;var yj;!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"}(yj||(yj={}));var _j=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}=gk(),p=t=>{if(!t)return null;const n=Z[t];return e(n,{})};return t(H$,{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}=h$();u((()=>{const e=m?.find((e=>"required"in e));E(s,eT().of(zx()).test("is-empty-array",e?.errorMessage||Sm.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=rR(r,e,n?.value):(r.push(e),r=rR(r,n?.value)),c({target:{value:r}})},w=e=>b.includes(e),x=()=>{const e=Mm();return`${s}-${e}`},M=t=>"string"==typeof t?e($I,{inline:!0,children:t}):e(Sj,{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(sR,{$layoutType:d?.layoutType??"horizontal",className:l?`${l}-checkbox-container`:void 0,children:h.map(((t,n)=>{const r=x();return e(uR,{type:"checkbox","data-testid":TA.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(Sj,{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(oR,{className:l?`${l}-checkbox-container`:void 0,children:[e(aR,{...g,"data-testid":TA.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(iR,{as:"label",htmlFor:i,disabled:f??n.disabled,children:M(n.label)})]},r)}))}),e(YI,{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}=h$();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,eT().of(zx()).test("is-empty-array",e?.errorMessage||Sm.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(gR,{"data-testid":TA.generateId(s,"chips"),$showTextarea:E,children:[f.map(((e,t)=>p(sT,{...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(sT,{...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(cR,{id:t,schema:r,Field:mR}):e(n,{})})()]}),e(YI,{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=_$(f),[M,T]=o(f),[O]=o((()=>{const e=new Map;return yR.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:$}=h$();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,zx().test("singaporeNumber",r||Sm.CONTACT.INVALID_SINGAPORE_NUMBER,(e=>!e||!t||bF.isSingaporeNumber(e,t))).test("internationalNumber",r||Sm.CONTACT.INVALID_INTERNATIONAL_NUMBER,(e=>!(e&&!t&&n)||bF.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}=bF.getParsedPhoneNumber(v||""),n=e.replace(/\+/g,""),r=(e=>{for(const[t,,,n]of yR)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),bF.formatPhoneNumber(e.countryCode,e.number)||""};return t(n,{children:[e(W.PhoneNumberInput,{..._,...A,"data-testid":TA.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(YI,{id:c,message:b})]})},DateField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{label:d,useCurrentDate:f,dateFormat:p=AF,validation:h,...m},value:g,warning:y,..._}=r,{setValue:v}=Be(),[b,A]=o(g||""),[E,S]=o(),{setFieldValidationConfig:w}=h$();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=wm.toLocalDateOrTime(a?.minDate,p,"date"),f=wm.toLocalDateOrTime(o?.maxDate,p,"date");w(s,zx().test("is-date",e?.errorMessage||Sm.DATE.INVALID,(e=>!e||""===e||!!T(e)&&!!wm.toLocalDateOrTime(e,p,"date"))).test("future",t?.errorMessage||Sm.DATE.MUST_BE_FUTURE,(e=>{if(!T(e)||!t?.future)return!0;const n=wm.toLocalDateOrTime(e,p,"date");return!!n?.isAfter(Rf.now())})).test("past",n?.errorMessage||Sm.DATE.MUST_BE_PAST,(e=>{if(!T(e)||!n?.past)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!!t?.isBefore(Rf.now())})).test("not-future",r?.errorMessage||Sm.DATE.CANNOT_BE_FUTURE,(e=>{if(!T(e)||!r?.notFuture)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(Rf.now())})).test("not-past",i?.errorMessage||Sm.DATE.CANNOT_BE_PAST,(e=>{if(!T(e)||!i?.notPast)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(Rf.now())})).test("min-date",a?.errorMessage||Sm.DATE.MIN_DATE(wm.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!d)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(d)})).test("max-date",o?.errorMessage||Sm.DATE.MAX_DATE(wm.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!f)return!0;const t=wm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(f)})).test("excluded-dates",u?.errorMessage||Sm.DATE.DISABLED_DATES,(e=>!T(e)||!u||!u.excludedDates.includes(e))).test("within-days",c?.errorMessage||c?.withinDays&&Sm.DATE.WITHIN_DAYS(c?.withinDays),(e=>!T(e)||!c||wm.checkWithinDays(e,{...c.withinDays,dateFormat:p}))).test("beyond-days",l?.errorMessage||l?.beyondDays&&Sm.DATE.BEYOND_DAYS(l?.beyondDays),(e=>!T(e)||!l||wm.checkBeyondDays(e,{...l.beyondDays,dateFormat:p}))),h);const m=c?.withinDays&&wm.calculateDisabledWithinDaysRange({...c.withinDays,dateFormat:p}),g=l?.beyondDays&&wm.calculateDisabledBeyondDaysRange({...l.beyondDays,dateFormat:p}),y=M([d,t?.future&&Rf.now().plusDays(1),i?.notPast&&Rf.now(),m?.startDate,g?.startDate]),_=x([f,n?.past&&Rf.now().minusDays(1),r?.notFuture&&Rf.now(),m?.endDate,g?.endDate]),v=[...u?.excludedDates||[]];(y||_||v)&&S((e=>({...e,minDate:y?.format(EF),maxDate:_?.format(EF),disabledDates:v})))}),[h]),u((()=>{if(p)if(g)if(T(g)){const e=wm.toLocalDateOrTime(g,p,"date");A(wm.formatDateTime(e?.toString(),AF,"date",Sm.DATE.INVALID))}else A(Sm.DATE.INVALID);else if(!c)if(f){const e=wm.formatDateTime(Rf.now().toString(),p,"date");v(s,e);const t=wm.formatDateTime(Rf.now().toString(),AF,"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!==Sm.DATE.INVALID;return t(n,{children:[e(W.DateInput,{...m,..._,...E,id:s,"data-testid":TA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:e=>{l({target:{value:wm.formatDateTime(e,p,"date",Sm.DATE.INVALID)}})},value:b}),e(YI,{id:s,message:y})]})},DateRangeField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{dateFormat:d=wF,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}=h$();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=wm.toLocalDateOrTime(a?.minDate,d,"date"),m=wm.toLocalDateOrTime(o?.maxDate,d,"date");x(s,XM().shape({from:zx(),to:zx()}).test("is-empty-string",u?.errorMessage||Sm.DATE_RANGE.REQUIRED,(e=>!e||!u||e.from?.length>0&&e.to?.length>0)).test("is-date",e?.errorMessage||Sm.DATE_RANGE.INVALID,(e=>!(!RI.exports.isEmpty(e?.from)&&!RI.exports.isEmpty(e?.to))||O(e.from)&&O(e.to)&&!!wm.toLocalDateOrTime(e.from,d,"date")&&!!wm.toLocalDateOrTime(e.to,d,"date"))).test("number-of-days",l?.errorMessage||Sm.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=wm.toLocalDateOrTime(e.from,d,"date");return wm.toLocalDateOrTime(e.to,d,"date").equals(t.plusDays(l?.numberOfDays-1))})).test("future",t?.errorMessage||Sm.DATE_RANGE.MUST_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!t?.future)return!0;const n=wm.toLocalDateOrTime(e.from,d,"date"),r=wm.toLocalDateOrTime(e.to,d,"date");return!!n?.isAfter(Rf.now())&&!!r?.isAfter(Rf.now())})).test("past",n?.errorMessage||Sm.DATE_RANGE.MUST_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!n?.past)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),r=wm.toLocalDateOrTime(e.to,d,"date");return!!t?.isBefore(Rf.now())&&!!r?.isBefore(Rf.now())})).test("not-future",r?.errorMessage||Sm.DATE_RANGE.CANNOT_BE_FUTURE,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!r?.notFuture)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(Rf.now())&&!n?.isAfter(Rf.now())})).test("not-past",i?.errorMessage||Sm.DATE_RANGE.CANNOT_BE_PAST,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!i?.notPast)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(Rf.now())&&!n?.isBefore(Rf.now())})).test("min-date",a?.errorMessage||Sm.DATE_RANGE.MIN_DATE(wm.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=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isBefore(f)&&!n?.isBefore(f)})).test("max-date",o?.errorMessage||Sm.DATE_RANGE.MAX_DATE(wm.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=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");return!t?.isAfter(m)&&!n?.isAfter(m)})).test("excluded-dates",c?.errorMessage||Sm.DATE_RANGE.DISABLED_DATES,(e=>{if("week"===h)return!0;if(!O(e.from)||!O(e.to)||!c)return!0;const t=wm.toLocalDateOrTime(e.from,d,"date"),n=wm.toLocalDateOrTime(e.to,d,"date");try{const e=c.excludedDates.map((e=>wm.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&&Rf.now().plusDays(1),i?.notPast&&Rf.now()]),y=M([m,n?.past&&Rf.now().minusDays(1),r?.notFuture&&Rf.now()]),_=c?.excludedDates,v=l?.numberOfDays;(g||y||_||v)&&w((e=>({...e,minDate:g?.format(xF),maxDate:y?.format(xF),disabledDates:_,numberOfDays:v})))}),[p]),u((()=>{N(SF.START)}),[g.from,d,c]),u((()=>{N(SF.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!==Sm.DATE_RANGE.INVALID,N=e=>{const t=e===SF.START?g.from:g.to,n=e===SF.START?b:E;if(d)if(t)if(O(t)){const e=wm.toLocalDateOrTime(t,d,"date");n(wm.formatDateTime(e?.toString(),wF,"date",Sm.DATE_RANGE.INVALID))}else n(Sm.DATE_RANGE.INVALID);else c||n(void 0)};return t(n,{children:[e(W.DateRangeInput,{...m,..._,...S,id:s,"data-testid":TA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:(e,t)=>{l({target:{value:{from:wm.formatDateTime(e,d,"date",Sm.DATE_RANGE.INVALID),to:wm.formatDateTime(t,d,"date",Sm.DATE_RANGE.INVALID)}}})},value:v,valueEnd:A,variant:h}),e(YI,{id:s,message:y})]})},get TDateRangeInputType(){return SF},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}=h$(),M=s(null),{clearErrors:T}=Be();u((()=>{const e=p?.find((e=>"upload"in e&&e.upload));M.current=e,x(a,XM().shape({fileId:zx().required(),dataURL:zx(),fileUrl:zx(),uploadResponse:Ox().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=Mm();if(_(e),E(0),xA(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 Em.dataUrlToBlob(t),i=Em.blobToFile(r,{name:e,lastModified:Date.now()});n.append("file",i,e)}const r=await new Ol("",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 Ol("",void 0,void 0,!1,{responseType:"blob"}).get(t,{signal:n.signal}),i=await Em.getType(new File([r],e)),a=new File([r],e,{type:i.mime}),o=await Em.fileToDataUrl(a);_(o),E(0)}catch(e){if(e instanceof fl)return;E((e=>e+1))}})(),n};return t(MF,{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(TF,{children:[M.current?.errorMessage||Sm.ESIGNATURE.UPLOAD,e(OF,{type:"button",onClick:()=>O(y),children:"Please try again."}),v>=3&&e(NF,{type:"warning","data-testid":"upload-refresh-alert",children:"Refresh this page if you cannot upload your signature."})]}):A>0&&N(m)?t(TF,{children:["Failed to load.",e(OF,{type:"button",onClick:()=>D(m.fileId,m.fileUrl),children:"Please try again."}),A>=3&&e(NF,{type:"warning","data-testid":"load-refresh-alert",children:"Refresh this page if your signature failed to load."})]}):e(TF,{children:r?.message}):null,e(YI,{id:a,message:g})]})},ErrorField:t=>{const{id:n,schema:{children:r}}=t,{setFieldValidationConfig:i}=h$();return u((()=>{i(n,Ox().test((()=>!1)),[])}),[]),r?e(Sj,{children:r}):null},FileUploadInner:aP,FileUpload:t=>e(tP,{children:e(aP,{...t})}),get EFileStatus(){return rP},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}=h$(),{setValue:m}=Be();return u((()=>{let e;switch(l){case"null":e=Ox();break;case"number":e=Px();break;case"boolean":e=Cx();break;default:e=zx()}h(n,e,c)}),[c,l]),u((()=>{"null"===l&&null!==p?m(n,null):NA(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}=h$();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,XM({from:Px(),to:Px()}).test("is-required",e?.errorMessage||Sm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!NA(t.from)&&!NA(t.to))).test("is-bin",t?.errorMessage||Sm.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||Sm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Sm.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":TA.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(YI,{id:s,message:b})]})},ImageUploadInner:JU,ImageUpload:t=>e(sP,{children:e(JU,{...t})}),ACCEPTED_FILE_TYPES:cP,get EImageStatus(){return lP},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}=h$(),{dispatchFieldEvent:P,addFieldEventListener:Z,removeFieldEventListener:U}=gk();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,XM({address:zx(),blockNo:zx(),building:zx(),lat:Px(),lng:Px(),postalCode:zx(),roadName:zx(),x:Px(),y:Px()}).test("is-required",e?.errorMessage||Sm.COMMON.FIELD_REQUIRED,(t=>!e?.required||!!t&&!!t.lat&&!!t.lng)).test("must-have-postal-code",t?.errorMessage||Sm.LOCATION.MUST_HAVE_POSTAL_CODE,(t=>!e||!b||UI.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":TA.generateId(a),className:s,children:[e(aj,{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:TA.generateId(a,"edit-button"),"data-testid":TA.generateId(a,"edit-button"),styleType:"secondary",onClick:()=>{!P("click-edit-button",a)||R(!0)},type:"button",children:"Edit"}),!!I?.lat&&!!I?.lng&&e(HI,{id:a,className:`${s}-static-map`,lat:I.lat,lng:I.lng,staticMapPinColor:S,onClick:B,disabled:l}),e(_,{fallback:null,children:oj&&e(oj,{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(YI,{id:a,message:k})]})},GeolocationPositionErrorWrapper:sj,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}=h$();u((()=>{w(s,zx(),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":TA.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(YI,{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}=h$();u((()=>{const e=f?.find((e=>"required"in e));b(s,eT().of(zx()).test("is-empty-array",e?.errorMessage||Sm.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":TA.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(YI,{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}=h$(),[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,XM().test("is-required",e?.errorMessage||Sm.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":TA.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(YI,{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}=h$();u((()=>{S(s,zx(),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=Mm();return`${s}-${e}`},T=t=>"string"==typeof t?e($I,{inline:!0,children:t}):e(Sj,{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(pj,{className:l?`${l} ${l}-radio-container`:void 0,$layoutType:d?.layoutType??"horizontal",children:m.map(((t,n)=>{const r=M();return p(hj,{...y,key:n,type:"radio",id:r,className:l?`${l}-radio`:void 0,"data-testid":TA.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(Sj,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&T(t.subLabel)},T(t.label))}))});case"image-button":return m.length>0&&e(fj,{className:l?`${l} ${l}-radio-container`:void 0,children:m.map(((e,t)=>{const n=M();return p(lj,{...y,type:"button",key:t,id:n,className:l?`${l}-radio`:void 0,"data-testid":TA.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(dj,{className:l?`${l}-radio-container`:void 0,children:[e(cj,{...y,className:l,id:i,"data-testid":TA.generateId(s,"radio"),disabled:f??n.disabled,name:i,value:n.value,checked:x(n.value),onChange:()=>w(n.value)}),e(uj,{as:"label",htmlFor:i,disabled:f??n.disabled,children:T(n.label)})]},r)}))}})()}),e(YI,{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}=h$();u((()=>{const e=f?.find((e=>"required"in e));E(s,XM().shape({from:zx(),to:zx()}).test("is-empty-string",e?.errorMessage||Sm.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":TA.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(YI,{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}=p$(),{formSchema:{defaultValues:d}}=f$();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]=[]:F$(n)||ak(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}=h$();u((()=>{b(s,zx(),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":TA.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(YI,{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}=h$();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,XM({from:Px(),to:Px()}).test("is-required",e?.errorMessage||Sm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!NA(t.from)&&!NA(t.to))).test("is-bin",t?.errorMessage||Sm.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||Sm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Sm.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":TA.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(YI,{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}=h$();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,Px().test("is-incremental",n?.errorMessage||Sm.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":TA.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(YI,{id:s,message:_})]})},SubmitButton:t=>{const{id:n,schema:{disabled:r,label:i,...a},...s}=t,{submitHandler:c,wrapInForm:l}=g$(),{setFieldValidationConfig:d}=h$(),{hardValidationSchema:f}=v$(),p=et({disabled:"invalid-form"!==r}),[h,m]=o(!0===r);u((()=>{d(n,Ox())}),[]),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}=h$();u((()=>{b(s,Cx().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(mj,{className:l,role:"radiogroup","aria-label":"string"==typeof p?p:kI(p.mainLabel,{allowedTags:[]}),children:[e(q,{...m,type:"yes",id:S("yes"),"data-testid":TA.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":TA.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(YI,{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}=h$(),M=s(null),T=s(0);u((()=>{switch(_){case"numeric-field":{x(c,Px(),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,zx().email(e?.errorMessage||Sm.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,zx(),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":TA.generateId(c,_),ref:M,type:(()=>{switch(_){case"numeric-field":return"number";case"email-field":return"email";default:return"text"}})(),label:a,onPaste:e=>m?.preventCopyAndPaste?e.preventDefault():null,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(gj,{as:i,$color:r})}}}}})()}),e(YI,{id:c,message:p})]})},Textarea:mR,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}=h$();u((()=>{A(s,zx(),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=wm.formatDateTime(Pf.now().toString().toUpperCase(),e,"time");b(t),c({target:{value:t}})};return t(n,{children:[e(W.Timepicker,{...m,..._,id:s,"data-testid":TA.generateId(s,"time"),label:a,errorMessage:i?.message,value:v,placeholder:f,format:l?"24hr":"12hr",onChange:e=>{c({target:{value:e}})}}),e(YI,{id:s,message:y})]})},get EFieldType(){return yj},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:_}=h$();u((()=>{const e=d?.find((e=>"unitNumberFormat"in e));_(s,zx().matches(/^([a-zA-Z0-9]{1,3}-[a-zA-Z0-9]{1,5})$/,{excludeEmptyString:!0,message:e?.errorMessage||Sm.UNIT_NUMBER.INVALID}),d)}),[d]),u((()=>{y(p||"")}),[p]);return t(n,{children:[e(W.UnitNumberInput,{...f,...m,id:s,"data-testid":TA.generateId(s,"unit-number"),label:i,value:g,onChange:e=>{c({target:{value:e}})},errorMessage:a?.message}),e(YI,{id:s,message:h})]})}});const vj=({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":TA.generateId(t,"grid_item"),desktopCols:n??12,tabletCols:a,mobileCols:o,...s,children:r})}return e(n,{children:r})},bj=({id:t,renderRules:r,children:i,schema:a})=>{const{formValidationConfig:s,removeFieldValidationConfig:u}=h$(),[c,l]=o(void 0),{formValues:d}=p$(),{unregister:f}=Be();zs((()=>{if(xA(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(xA(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:Ox().test("shown",(()=>!1)),validationRules:[]});const r=s?.[e]?.schema.type;if(r){let i=KI.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=KI.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;!xA(t)&&Tn(t)&&Object.entries(t).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))}))}))}return xA(n)||!Tn(n)||Object.entries(n).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))})),r};return xA(r)||c?e(n,{children:i}):null},Aj=Object.keys(yj),Ej=Object.keys(x$),Sj=t=>{const{id:r,schema:i,children:a}=t,{showIf:s,uiType:u,children:c,...l}=i||{},{warnings:d}=v$(),[f,p]=o(null),{control:h}=Be(),{getCustomComponent:m}=hk(),{formSchema:{overrides:y},overrideSchema:_}=f$();mk((()=>{const t=_(c||a,y);if("object"==typeof t){const n=[];Object.keys(t).forEach((r=>{const i=t[r];if(xA(i)||"object"!=typeof i)return;let a=e(g,{children:Sm.GENERIC.UNSUPPORTED},r);if("referenceKey"in i){const t=i.referenceKey.toUpperCase();a=m(i.referenceKey)||G$[V$[t]]?v(r,i)(b):G$[B$[t]]?v(r,i)(A):e(g,{},r)}else"uiType"in i&&(Aj.includes(i.uiType.toUpperCase())?a=v(r,i)(b):Ej.includes(i.uiType.toUpperCase())&&(a=v(r,i)(A)));n.push(a)})),p(n)}else p("string"==typeof t?t:Sm.GENERIC.UNSUPPORTED)}),[c||a,y,h,d,m]);const v=(t,n)=>r=>e(bj,{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=_j[yj[n.uiType?.toUpperCase()]]:"referenceKey"in n&&(r=G$[V$[n.referenceKey?.toUpperCase()]]||m(n.referenceKey)),r?e(vj,{id:t,childSchema:n,children:e(cR,{id:t,schema:n,Field:r,warning:d?.[t]})}):null},A=(t,n)=>{let r;return"uiType"in n?r=M$[x$[n.uiType?.toUpperCase()]]||Sj:"referenceKey"in n&&(r=G$[B$[n.referenceKey?.toUpperCase()]]),e(vj,{id:t,childSchema:n,children:e(r,{schema:n,id:t})})};return u?e(u,{...l,id:r,"data-testid":TA.generateId(r,u),children:f}):e(n,{children:f})},wj=M($.Container)`
|
|
1051
1051
|
gap: 2rem;
|
|
1052
1052
|
`,xj=M.div`
|
|
1053
1053
|
flex: 1;
|
|
1054
1054
|
`,Mj=t=>{const{sectionSchema:{children:n,layoutType:r},...i}=t;switch(r){case"grid":return e($.Section,{children:e(wj,{type:"grid",children:e(Sj,{...i,children:n})})});case"contain":return e($.Content,{children:e(xj,{children:e(Sj,{...i,children:n})})});default:return e(Sj,{...i,children:n})}},Tj=()=>{const{formSchema:{sections:r,overrides:i},overrideSchema:a}=f$();return e(n,{children:(()=>{const o=a(r,i);return o?Object.entries(o).map((([t,n],r)=>e(Mj,{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"}),"."]})})()})},Oj=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}=gk(),{setCustomComponents:M}=hk(),{setSubmitHandler:T,setWrapInForm:O}=g$(),{addWarnings:N,performSoftValidation:C,softValidationSchema:D,hardValidationSchema:L,rebuildValidationSchema:I,yupId:k}=v$(),$=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}=f$(),{reset:z,handleSubmit:F,getValues:P,setValue:Z,setError:U,trigger:j,formState:B,clearErrors:V}=$,{resetFields:G,setFields:H,getFormValues:Y,registeredFields:W}=p$($),q=s(W),{checkIsFormValid:K}=((e,t)=>{const{data:n,onChange:r,onValueChange:i}=e,{stripUnknown:a}=n||{},{hardValidationSchema:c}=v$(),{formValidationConfig:l}=h$(),{watch:f,getValues:p,formState:h,clearErrors:m}=t,{setFields:g,setField:y,getFormValues:_}=p$(t),[v,b]=o({}),[A,E]=o(!1),S=_$(l),w=_$(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&&tk(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);tk(t,n)||E(!0)}}),[l]),u((()=>{A&&w!==c&&O.current().then((()=>E(!1)))}),[A,c]),u((()=>{const e=h.errors;if(e&&!xA(e)){const e=f((e=>{const t=Object.fromEntries(Object.entries(h.errors).filter((([e,t])=>"api"===t.type)));t&&!xA(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)=>{KI.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?TA.generateId(v,"frontend-engine"):ne,className:re,noValidate:!0,onSubmit:F(X,Q),ref:a,children:e(Tj,{})})}):t(n,{children:["Missing ",e("code",{children:"data"})," prop, unable to render Frontend Engine."]})})),Nj=h(((t,n)=>e(pk,{children:e(Oj,{...t,ref:n})})));export{Ol as A,mT as D,rP as E,eP as F,sj as G,sA as I,UI as L,jI as O,yT as P,$I as S,TA as T,OA as W,Be as a,gk as b,Sm as c,Em as d,oP as e,lP as f,Mm as g,Ut as h,PI as i,ZI as j,xm as k,RI as l,m$ as m,Nj as n,x$ as o,yj as p,_$ as u};
|
|
1055
|
-
//# sourceMappingURL=index.
|
|
1055
|
+
//# sourceMappingURL=index.58d43dbb.js.map
|