@lifesg/web-frontend-engine 2.1.0 → 2.1.1

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.
Files changed (23) hide show
  1. package/chunks/{file-upload-manager.49e95386.js → file-upload-manager.0735b7f2.js} +2 -2
  2. package/chunks/{file-upload-manager.49e95386.js.map → file-upload-manager.0735b7f2.js.map} +1 -1
  3. package/chunks/{index.de2d7212.js → index.3cad6b83.js} +2 -2
  4. package/chunks/{index.de2d7212.js.map → index.3cad6b83.js.map} +1 -1
  5. package/chunks/{index.9d79d185.js → index.584be54b.js} +2 -2
  6. package/chunks/{index.9d79d185.js.map → index.584be54b.js.map} +1 -1
  7. package/chunks/{index.04e62ec7.js → index.dbf04818.js} +5 -5
  8. package/chunks/{index.04e62ec7.js.map → index.dbf04818.js.map} +1 -1
  9. package/chunks/{location-modal.fa87096f.js → location-modal.dee579fe.js} +2 -2
  10. package/chunks/{location-modal.fa87096f.js.map → location-modal.dee579fe.js.map} +1 -1
  11. package/cjs/chunks/{file-upload-manager.6b8a7550.js → file-upload-manager.c6f5966c.js} +2 -2
  12. package/cjs/chunks/{file-upload-manager.6b8a7550.js.map → file-upload-manager.c6f5966c.js.map} +1 -1
  13. package/cjs/chunks/{index.18f92268.js → index.6c8071f6.js} +2 -2
  14. package/cjs/chunks/{index.18f92268.js.map → index.6c8071f6.js.map} +1 -1
  15. package/cjs/chunks/{index.223b8bb0.js → index.81b2cede.js} +2 -2
  16. package/cjs/chunks/{index.223b8bb0.js.map → index.81b2cede.js.map} +1 -1
  17. package/cjs/chunks/{index.90d7f479.js → index.e4a38bcc.js} +5 -5
  18. package/cjs/chunks/{index.90d7f479.js.map → index.e4a38bcc.js.map} +1 -1
  19. package/cjs/chunks/{location-modal.10fa4b9d.js → location-modal.7b2f1d69.js} +2 -2
  20. package/cjs/chunks/{location-modal.10fa4b9d.js.map → location-modal.7b2f1d69.js.map} +1 -1
  21. package/cjs/index.js +1 -1
  22. package/index.js +1 -1
  23. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{useContext as e,useRef as t,useEffect as s}from"react";import{e as a,u as i,a as r,b as o,g as n,f as c,d as l,I as m,A as d}from"./index.04e62ec7.js";import"react/jsx-runtime";import"@lifesg/react-design-system/theme";import"styled-components";import"@lifesg/react-design-system/typography";import"@lifesg/react-design-system/button";import"@lifesg/react-design-system/modal";import"@lifesg/react-design-system/markup";import"react-dom/server";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/v2_media";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/checkbox";import"@lifesg/react-design-system/toggle";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-icons/plus";import"@lifesg/react-icons/exclamation-triangle";import"@lifesg/react-icons/pin-fill";import"@lifesg/react-design-system/image-button";import"@lifesg/react-design-system/radio-button";import"@lifesg/react-design-system/v2_layout";const g=g=>{const{accepts:p,compress:u,crop:f,dimensions:E,editImage:R,id:h,maxSizeInKb:y,outputType:w,upload:D,filenameMatches:O,filenameMatchesErrorMessage:I,value:U}=g,{images:L,setImages:T,setErrorCount:M,setCurrentFileIds:b}=e(a),_=i(L),N=i(U),{setValue:v}=r(),S=t(),x=t(0),{dispatchFieldEvent:C,addFieldEventListener:F,removeFieldEventListener:P}=o();s((()=>{const e=e=>{T((t=>{const s=t.findIndex((t=>t.id===e.detail.id)),a={...t[s]};a.status=e.detail.updatedStatus,a.customErrorMessage=e.detail.errorMessage;const i=[...t];return i.splice(s,1,a),i}))};return F("update-image-status",h,e),()=>P("update-image-status",h,e)}),[F,h,P,T]),s((()=>{S.current=n()}),[]),s((()=>{L.forEach(((e,t)=>{const s=_?.[t];if(e.status!==s?.status||e.dataURL!==s.dataURL)switch(e.status){case c.INJECTED:l.dataUrlToBlob(e.dataURL).then((s=>{T((a=>{const i=[...a];return i[t]={...e,file:new File([s],e.name),status:c.NONE},i}))})).catch((()=>{T((e=>e.filter(((e,s)=>s!==t))))}));break;case c.NONE:if(O){const s=k(O);if(s&&!s.test(e.name)){T((s=>{const a=[...s];return a[t]={...e,status:c.ERROR_FILENAME,customErrorMessage:I},a}));break}}l.getType(e.file).then((s=>{const a=s.mime;a&&p.map(l.fileExtensionToMimeType).includes(a)?(T((s=>{const i=[...s];return i[t]={...e,name:l.deduplicateFileName(L.map((({name:e})=>e)),t,l.sanitizeFileName(e.name)),type:a,status:"schema"!==e.addedFrom?e.status:c.UPLOADED},i})),"schema"!==e.addedFrom&&(u?G(t,e):z(t,e))):T((s=>{const a=[...s];return a[t]={...e,status:c.ERROR_FORMAT},a}))}));break;case c.TO_RECOMPRESS:j(t,e);break;case c.COMPRESSED:case c.CONVERTED:case c.RECOMPRESSED:if(!R){const s=!C("upload-ready",h,{imageData:e});T((e=>{const a=[...e];return a[t]={...a[t],status:s?c.PENDING:c.UPLOAD_READY},a}))}break;case c.UPLOAD_READY:B(t,e);break;case c.TO_DELETE:T((e=>e.filter((({status:e})=>e!==c.TO_DELETE))));break;case c.UPLOADED:C("uploaded",h,{imageData:e})}}))}),[L.map((({status:e})=>e)).join(","),L.map((({dataURL:e})=>e)).join(",")]),s((()=>{let e=0;L.forEach((t=>{(t.type&&!p.map(l.fileExtensionToMimeType).includes(t.type)||[c.ERROR_GENERIC,c.ERROR_SIZE,c.ERROR_FILENAME].includes(t.status))&&e++})),M((t=>Math.max(0,t+e-x.current))),x.current=e;const t=L.filter((({status:e})=>e===c.UPLOADED||e===c.ERROR_CUSTOM_MUTED)),s=t.filter((({addedFrom:e})=>"schema"!==e)),a=L.filter((({status:e})=>e===c.TO_DELETE)).length>0,i=s.length>0,r=i||a;b(t.map((({id:e})=>e))),v(h,t.map((({id:e,dataURL:t,drawingDataURL:s,name:a,metadata:i,uploadResponse:r})=>({fileId:e,fileName:a,dataURL:s||t,metadata:i,uploadResponse:r}))),{shouldDirty:r,shouldTouch:i})}),[p,h,L,M,v]),s((()=>{void 0!==N&&void 0===U&&L.length&&T([])}),[void 0===N,void 0===U,L.length]);const A=(e,t)=>{let s=E.width/e;return t*s>E.height&&(s=E.height/t),s},k=e=>{try{const t=e.match(/^\/(.+)\/([gimsuy]*)$/);return t?new RegExp(t[1],t[2]||""):new RegExp(e)}catch{return}},z=async(e,t)=>{try{const s=await m.convertBlob(t.file,l.fileExtensionToMimeType(w)),a=l.getFilesizeFromBase64(s);if(y&&a>1024*y)T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_SIZE},s}));else{const a=await m.getMetadata(t.file);T((t=>{const i=[...t];return i[e]={...t[e],dataURL:s,metadata:a,status:c.CONVERTED},i}))}}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}},G=async(e,t)=>{try{const s=await m.convertBlob(t.file,l.fileExtensionToMimeType(w)),a=await m.dataUrlToImage(s),i={w:a.naturalWidth,h:a.naturalHeight};let r;if(f)r=await m.resampleImage(a,{width:E.width,height:E.height,crop:!0});else{const e=A(i.w,i.h);r=await m.resampleImage(a,{scale:e})}if(y&&(r=await m.compressImage(r,{fileSize:y})),y&&r.size>1024*y)T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_SIZE},s}));else{const s=await m.getMetadata(t.file),a=await l.fileToDataUrl(r);T((t=>{const i=[...t];return i[e]={...t[e],dataURL:a,metadata:s,status:c.COMPRESSED},i}))}}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}},j=async(e,t)=>{if(t.drawingDataURL)try{const s=await m.dataUrlToImage(t.drawingDataURL),a={w:s.naturalWidth,h:s.naturalHeight};let i;if(f)i=await m.resampleImage(s,{width:E.width,height:E.height,crop:!0});else{const e=A(a.w,a.h);i=await m.resampleImage(s,{scale:e})}if(i=await m.compressImage(i,{fileSize:y}),i.size>1024*y){const t=[...L];t[e]={...L[e],status:c.ERROR_SIZE},T(t)}else{const t=await l.fileToDataUrl(i),s=[...L];s[e]={...L[e],drawingDataURL:t,status:c.RECOMPRESSED},T(s)}}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}},B=async(e,t)=>{try{let s;if(T((t=>{const s=[...t];return s[e]={...t[e],status:c.UPLOADING},s})),D?.method&&D?.url){const a=new FormData;a.append("dataURL",t.drawingDataURL||t.dataURL||""),a.append("sessionId",D?.sessionId||S.current||""),a.append("slot",`${t.slot}`),s=await new d("",void 0,void 0,!0)[D.method](D.url,a,{onUploadProgress:t=>{const{loaded:s,total:a}=t,i=Math.floor(100*s/a);T((t=>{const s=[...t];return s[e]={...t[e],uploadProgress:i},s}))}})}T((t=>{const a=[...t];return a[e]={...t[e],uploadResponse:s,status:c.UPLOADED},a}))}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}};return null};export{g as default};
2
- //# sourceMappingURL=index.9d79d185.js.map
1
+ import{useContext as e,useRef as t,useEffect as s}from"react";import{e as a,u as i,a as r,b as o,g as n,f as c,d as l,I as m,A as d}from"./index.dbf04818.js";import"react/jsx-runtime";import"@lifesg/react-design-system/theme";import"styled-components";import"@lifesg/react-design-system/typography";import"@lifesg/react-design-system/button";import"@lifesg/react-design-system/modal";import"@lifesg/react-design-system/markup";import"react-dom/server";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/v2_media";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/checkbox";import"@lifesg/react-design-system/toggle";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-icons/plus";import"@lifesg/react-icons/exclamation-triangle";import"@lifesg/react-icons/pin-fill";import"@lifesg/react-design-system/image-button";import"@lifesg/react-design-system/radio-button";import"@lifesg/react-design-system/v2_layout";const g=g=>{const{accepts:p,compress:u,crop:f,dimensions:E,editImage:R,id:h,maxSizeInKb:y,outputType:w,upload:D,filenameMatches:O,filenameMatchesErrorMessage:I,value:U}=g,{images:L,setImages:T,setErrorCount:M,setCurrentFileIds:b}=e(a),_=i(L),N=i(U),{setValue:v}=r(),S=t(),x=t(0),{dispatchFieldEvent:C,addFieldEventListener:F,removeFieldEventListener:P}=o();s((()=>{const e=e=>{T((t=>{const s=t.findIndex((t=>t.id===e.detail.id)),a={...t[s]};a.status=e.detail.updatedStatus,a.customErrorMessage=e.detail.errorMessage;const i=[...t];return i.splice(s,1,a),i}))};return F("update-image-status",h,e),()=>P("update-image-status",h,e)}),[F,h,P,T]),s((()=>{S.current=n()}),[]),s((()=>{L.forEach(((e,t)=>{const s=_?.[t];if(e.status!==s?.status||e.dataURL!==s.dataURL)switch(e.status){case c.INJECTED:l.dataUrlToBlob(e.dataURL).then((s=>{T((a=>{const i=[...a];return i[t]={...e,file:new File([s],e.name),status:c.NONE},i}))})).catch((()=>{T((e=>e.filter(((e,s)=>s!==t))))}));break;case c.NONE:if(O){const s=k(O);if(s&&!s.test(e.name)){T((s=>{const a=[...s];return a[t]={...e,status:c.ERROR_FILENAME,customErrorMessage:I},a}));break}}l.getType(e.file).then((s=>{const a=s.mime;a&&p.map(l.fileExtensionToMimeType).includes(a)?(T((s=>{const i=[...s];return i[t]={...e,name:l.deduplicateFileName(L.map((({name:e})=>e)),t,l.sanitizeFileName(e.name)),type:a,status:"schema"!==e.addedFrom?e.status:c.UPLOADED},i})),"schema"!==e.addedFrom&&(u?G(t,e):z(t,e))):T((s=>{const a=[...s];return a[t]={...e,status:c.ERROR_FORMAT},a}))}));break;case c.TO_RECOMPRESS:j(t,e);break;case c.COMPRESSED:case c.CONVERTED:case c.RECOMPRESSED:if(!R){const s=!C("upload-ready",h,{imageData:e});T((e=>{const a=[...e];return a[t]={...a[t],status:s?c.PENDING:c.UPLOAD_READY},a}))}break;case c.UPLOAD_READY:B(t,e);break;case c.TO_DELETE:T((e=>e.filter((({status:e})=>e!==c.TO_DELETE))));break;case c.UPLOADED:C("uploaded",h,{imageData:e})}}))}),[L.map((({status:e})=>e)).join(","),L.map((({dataURL:e})=>e)).join(",")]),s((()=>{let e=0;L.forEach((t=>{(t.type&&!p.map(l.fileExtensionToMimeType).includes(t.type)||[c.ERROR_GENERIC,c.ERROR_SIZE,c.ERROR_FILENAME].includes(t.status))&&e++})),M((t=>Math.max(0,t+e-x.current))),x.current=e;const t=L.filter((({status:e})=>e===c.UPLOADED||e===c.ERROR_CUSTOM_MUTED)),s=t.filter((({addedFrom:e})=>"schema"!==e)),a=L.filter((({status:e})=>e===c.TO_DELETE)).length>0,i=s.length>0,r=i||a;b(t.map((({id:e})=>e))),v(h,t.map((({id:e,dataURL:t,drawingDataURL:s,name:a,metadata:i,uploadResponse:r})=>({fileId:e,fileName:a,dataURL:s||t,metadata:i,uploadResponse:r}))),{shouldDirty:r,shouldTouch:i})}),[p,h,L,M,v]),s((()=>{void 0!==N&&void 0===U&&L.length&&T([])}),[void 0===N,void 0===U,L.length]);const A=(e,t)=>{let s=E.width/e;return t*s>E.height&&(s=E.height/t),s},k=e=>{try{const t=e.match(/^\/(.+)\/([gimsuy]*)$/);return t?new RegExp(t[1],t[2]||""):new RegExp(e)}catch{return}},z=async(e,t)=>{try{const s=await m.convertBlob(t.file,l.fileExtensionToMimeType(w)),a=l.getFilesizeFromBase64(s);if(y&&a>1024*y)T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_SIZE},s}));else{const a=await m.getMetadata(t.file);T((t=>{const i=[...t];return i[e]={...t[e],dataURL:s,metadata:a,status:c.CONVERTED},i}))}}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}},G=async(e,t)=>{try{const s=await m.convertBlob(t.file,l.fileExtensionToMimeType(w)),a=await m.dataUrlToImage(s),i={w:a.naturalWidth,h:a.naturalHeight};let r;if(f)r=await m.resampleImage(a,{width:E.width,height:E.height,crop:!0});else{const e=A(i.w,i.h);r=await m.resampleImage(a,{scale:e})}if(y&&(r=await m.compressImage(r,{fileSize:y})),y&&r.size>1024*y)T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_SIZE},s}));else{const s=await m.getMetadata(t.file),a=await l.fileToDataUrl(r);T((t=>{const i=[...t];return i[e]={...t[e],dataURL:a,metadata:s,status:c.COMPRESSED},i}))}}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}},j=async(e,t)=>{if(t.drawingDataURL)try{const s=await m.dataUrlToImage(t.drawingDataURL),a={w:s.naturalWidth,h:s.naturalHeight};let i;if(f)i=await m.resampleImage(s,{width:E.width,height:E.height,crop:!0});else{const e=A(a.w,a.h);i=await m.resampleImage(s,{scale:e})}if(i=await m.compressImage(i,{fileSize:y}),i.size>1024*y){const t=[...L];t[e]={...L[e],status:c.ERROR_SIZE},T(t)}else{const t=await l.fileToDataUrl(i),s=[...L];s[e]={...L[e],drawingDataURL:t,status:c.RECOMPRESSED},T(s)}}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}},B=async(e,t)=>{try{let s;if(T((t=>{const s=[...t];return s[e]={...t[e],status:c.UPLOADING},s})),D?.method&&D?.url){const a=new FormData;a.append("dataURL",t.drawingDataURL||t.dataURL||""),a.append("sessionId",D?.sessionId||S.current||""),a.append("slot",`${t.slot}`),s=await new d("",void 0,void 0,!0)[D.method](D.url,a,{onUploadProgress:t=>{const{loaded:s,total:a}=t,i=Math.floor(100*s/a);T((t=>{const s=[...t];return s[e]={...t[e],uploadProgress:i},s}))}})}T((t=>{const a=[...t];return a[e]={...t[e],uploadResponse:s,status:c.UPLOADED},a}))}catch(t){T((t=>{const s=[...t];return s[e]={...t[e],status:c.ERROR_GENERIC},s}))}};return null};export{g as default};
2
+ //# sourceMappingURL=index.584be54b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.9d79d185.js","sources":["../../src/components/fields/image-upload/image-manager/image-manager.ts"],"sourcesContent":["import { 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 { ImageContext } from \"../image-context\";\nimport {\n\tEImageStatus,\n\tIImage,\n\tISharedImageProps,\n\tIUpdateImageStatus,\n\tTImageUploadOutputFileType,\n\tTUploadMethod,\n} from \"../types\";\n\ninterface IProps extends Omit<ISharedImageProps, \"maxFiles\"> {\n\teditImage: boolean;\n\tcompress: boolean;\n\tcrop: boolean;\n\tdimensions: { width: number; height: number };\n\toutputType: TImageUploadOutputFileType;\n\tupload?: {\n\t\tmethod: TUploadMethod;\n\t\turl: string;\n\t\tsessionId?: string | undefined;\n\t};\n\tfilenameMatches?: string | undefined;\n\tfilenameMatchesErrorMessage?: string | undefined;\n\tvalue: any;\n}\n\n/**\n * manages selected images by listening to images from context provider\n * rename / compress / upload\n */\nexport const ImageManager = (props: IProps) => {\n\t// =============================================================================\n\t// CONST, STATE, REFS\n\t// =============================================================================\n\tconst {\n\t\taccepts,\n\t\tcompress,\n\t\tcrop,\n\t\tdimensions,\n\t\teditImage,\n\t\tid,\n\t\tmaxSizeInKb,\n\t\toutputType,\n\t\tupload,\n\t\tfilenameMatches,\n\t\tfilenameMatchesErrorMessage,\n\t\tvalue,\n\t} = props;\n\tconst { images, setImages, setErrorCount, setCurrentFileIds } = useContext(ImageContext);\n\tconst previousImages = usePrevious(images);\n\tconst previousValue = usePrevious(value);\n\tconst { setValue } = useFormContext();\n\tconst sessionId = useRef<string>();\n\tconst managerErrorCount = useRef(0);\n\n\tconst { dispatchFieldEvent, addFieldEventListener, removeFieldEventListener } = useFieldEvent();\n\n\t// =============================================================================\n\t// EFFECTS\n\t// =============================================================================\n\tuseEffect(() => {\n\t\tconst handleUpdateImageStatus = (e: CustomEvent<IUpdateImageStatus>) => {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst imageIndex = prev.findIndex((image) => image.id === e.detail.id);\n\t\t\t\tconst updatedImage = { ...prev[imageIndex] };\n\t\t\t\tupdatedImage.status = e.detail.updatedStatus;\n\t\t\t\tupdatedImage.customErrorMessage = e.detail.errorMessage;\n\n\t\t\t\tconst newImages = [...prev];\n\t\t\t\tnewImages.splice(imageIndex, 1, updatedImage);\n\t\t\t\treturn newImages;\n\t\t\t});\n\t\t};\n\n\t\taddFieldEventListener(\"update-image-status\", id, handleUpdateImageStatus);\n\t\treturn () => removeFieldEventListener(\"update-image-status\", id, handleUpdateImageStatus);\n\t}, [addFieldEventListener, id, removeFieldEventListener, setImages]);\n\n\t// generate pseudo-random session id\n\tuseEffect(() => {\n\t\tsessionId.current = generateRandomId();\n\t}, []);\n\n\tuseEffect(() => {\n\t\timages.forEach((image, index) => {\n\t\t\tconst previousFile = previousImages?.[index];\n\t\t\tif (image.status !== previousFile?.status || image.dataURL !== previousFile.dataURL) {\n\t\t\t\tswitch (image.status) {\n\t\t\t\t\tcase EImageStatus.INJECTED:\n\t\t\t\t\t\tFileHelper.dataUrlToBlob(image.dataURL)\n\t\t\t\t\t\t\t.then((blob) => {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tfile: new File([blob], image.name),\n\t\t\t\t\t\t\t\t\t\tstatus: EImageStatus.NONE,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\t\tsetImages((prev) => prev.filter((prev, i) => i !== index));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.NONE:\n\t\t\t\t\t\tif (filenameMatches) {\n\t\t\t\t\t\t\tconst pattern = resolveMatchesPattern(filenameMatches);\n\t\t\t\t\t\t\tif (pattern && !pattern.test(image.name)) {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tstatus: EImageStatus.ERROR_FILENAME,\n\t\t\t\t\t\t\t\t\t\tcustomErrorMessage: filenameMatchesErrorMessage,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tFileHelper.getType(image.file).then((fileType) => {\n\t\t\t\t\t\t\tconst mimeType = fileType.mime;\n\t\t\t\t\t\t\tif (mimeType && accepts.map(FileHelper.fileExtensionToMimeType).includes(mimeType)) {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tname: FileHelper.deduplicateFileName(\n\t\t\t\t\t\t\t\t\t\t\timages.map(({ name }) => name),\n\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\tFileHelper.sanitizeFileName(image.name)\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttype: mimeType,\n\t\t\t\t\t\t\t\t\t\tstatus: image.addedFrom !== \"schema\" ? image.status : EImageStatus.UPLOADED,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (image.addedFrom !== \"schema\") {\n\t\t\t\t\t\t\t\t\tcompress ? compressImage(index, image) : convertImage(index, image);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tstatus: EImageStatus.ERROR_FORMAT,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.TO_RECOMPRESS:\n\t\t\t\t\t\trecompressImage(index, image);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.COMPRESSED:\n\t\t\t\t\tcase EImageStatus.CONVERTED:\n\t\t\t\t\tcase EImageStatus.RECOMPRESSED:\n\t\t\t\t\t\tif (!editImage) {\n\t\t\t\t\t\t\tconst shouldPreventDefault = !dispatchFieldEvent(\"upload-ready\", id, { imageData: image });\n\n\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t...updatedImages[index],\n\t\t\t\t\t\t\t\t\tstatus: shouldPreventDefault ? EImageStatus.PENDING : EImageStatus.UPLOAD_READY,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.UPLOAD_READY:\n\t\t\t\t\t\tuploadImage(index, image);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.TO_DELETE:\n\t\t\t\t\t\tsetImages((prev) => prev.filter(({ status }) => status !== EImageStatus.TO_DELETE));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.UPLOADED:\n\t\t\t\t\t\tdispatchFieldEvent(\"uploaded\", id, { imageData: image });\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [images.map(({ status }) => status).join(\",\"), images.map(({ dataURL }) => dataURL).join(\",\")]);\n\n\t// track / update errors and values\n\tuseEffect(() => {\n\t\tlet updatedManagerErrorCount = 0;\n\t\timages.forEach((image) => {\n\t\t\tif (\n\t\t\t\t(image.type && !accepts.map(FileHelper.fileExtensionToMimeType).includes(image.type)) ||\n\t\t\t\t[EImageStatus.ERROR_GENERIC, EImageStatus.ERROR_SIZE, EImageStatus.ERROR_FILENAME].includes(\n\t\t\t\t\timage.status\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tupdatedManagerErrorCount++;\n\t\t\t}\n\t\t});\n\t\tsetErrorCount((prev) => Math.max(0, prev + updatedManagerErrorCount - managerErrorCount.current));\n\t\tmanagerErrorCount.current = updatedManagerErrorCount;\n\n\t\tconst uploadedImages = images.filter(\n\t\t\t({ status }) => status === EImageStatus.UPLOADED || status === EImageStatus.ERROR_CUSTOM_MUTED\n\t\t);\n\t\tconst notPrefilledImages = uploadedImages.filter(({ addedFrom }) => addedFrom !== \"schema\");\n\t\tconst gotDeleteImages = images.filter(({ status }) => status === EImageStatus.TO_DELETE).length > 0;\n\n\t\t/**\n\t\t * should dirty if\n\t\t * - it is dirty in the first place\n\t\t * - there are non-prefilled images\n\t\t * - user deleted image (differentiated from reset)\n\t\t */\n\t\tconst hasNotPrefilledImages = notPrefilledImages.length > 0;\n\t\tconst shouldDirty = hasNotPrefilledImages || gotDeleteImages;\n\n\t\tsetCurrentFileIds(uploadedImages.map(({ id }) => id));\n\n\t\tsetValue(\n\t\t\tid,\n\t\t\tuploadedImages.map(({ id, dataURL, drawingDataURL, name, metadata, uploadResponse }) => ({\n\t\t\t\tfileId: id,\n\t\t\t\tfileName: name,\n\t\t\t\tdataURL: drawingDataURL || dataURL,\n\t\t\t\tmetadata,\n\t\t\t\tuploadResponse,\n\t\t\t})),\n\t\t\t{ shouldDirty, shouldTouch: hasNotPrefilledImages }\n\t\t);\n\t}, [accepts, id, images, setErrorCount, setValue]);\n\n\tuseEffect(() => {\n\t\tif (previousValue !== undefined && value === undefined && images.length) {\n\t\t\tsetImages([]);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [previousValue === undefined, value === undefined, images.length]);\n\n\t// =============================================================================\n\t// HELPER FUNCTIONS\n\t// =============================================================================\n\tconst getScale = (origWidth: number, origHeight: number): number => {\n\t\tlet scale = dimensions.width / origWidth;\n\t\tif (origHeight * scale > dimensions.height) {\n\t\t\tscale = dimensions.height / origHeight;\n\t\t}\n\t\treturn scale;\n\t};\n\n\t/**\n\t * Converts a matches string (e.g. \"/^abc$/i\" or \"^abc$\") to a RegExp.\n\t * Returns undefined if the string is invalid.\n\t */\n\tconst resolveMatchesPattern = (matches: string): RegExp | undefined => {\n\t\ttry {\n\t\t\tconst parsed = matches.match(/^\\/(.+)\\/([gimsuy]*)$/);\n\t\t\treturn parsed ? new RegExp(parsed[1], parsed[2] || \"\") : new RegExp(matches);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t};\n\n\tconst convertImage = async (index: number, image: IImage) => {\n\t\ttry {\n\t\t\tconst dataURL = await ImageHelper.convertBlob(image.file, FileHelper.fileExtensionToMimeType(outputType));\n\t\t\tconst filesize = FileHelper.getFilesizeFromBase64(dataURL);\n\n\t\t\tif (maxSizeInKb && filesize > maxSizeInKb * 1024) {\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_SIZE,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst metadata = await ImageHelper.getMetadata(image.file);\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tdataURL,\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\tstatus: EImageStatus.CONVERTED,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t}\n\t};\n\n\tconst compressImage = async (index: number, imageToCompress: IImage) => {\n\t\ttry {\n\t\t\tconst dataURL = await ImageHelper.convertBlob(\n\t\t\t\timageToCompress.file,\n\t\t\t\tFileHelper.fileExtensionToMimeType(outputType)\n\t\t\t);\n\t\t\tconst image = await ImageHelper.dataUrlToImage(dataURL);\n\t\t\tconst origDim = { w: image.naturalWidth, h: image.naturalHeight };\n\t\t\tlet compressed: Blob;\n\t\t\tif (crop) {\n\t\t\t\tcompressed = await ImageHelper.resampleImage(image, {\n\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\tcrop: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst scale = getScale(origDim.w, origDim.h);\n\t\t\t\tcompressed = await ImageHelper.resampleImage(image, { scale });\n\t\t\t}\n\t\t\tif (maxSizeInKb) {\n\t\t\t\tcompressed = (await ImageHelper.compressImage(compressed, {\n\t\t\t\t\tfileSize: maxSizeInKb,\n\t\t\t\t})) as File;\n\t\t\t}\n\n\t\t\tif (maxSizeInKb && compressed.size > maxSizeInKb * 1024) {\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_SIZE,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst metadata = await ImageHelper.getMetadata(imageToCompress.file);\n\t\t\t\tconst dataURL = await FileHelper.fileToDataUrl(compressed);\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tdataURL,\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\tstatus: EImageStatus.COMPRESSED,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t}\n\t};\n\n\tconst recompressImage = async (index: number, imageToCompress: IImage) => {\n\t\tif (imageToCompress.drawingDataURL) {\n\t\t\ttry {\n\t\t\t\tconst image = await ImageHelper.dataUrlToImage(imageToCompress.drawingDataURL);\n\t\t\t\tconst origDim = { w: image.naturalWidth, h: image.naturalHeight };\n\t\t\t\tlet scaledFile: Blob;\n\t\t\t\tif (crop) {\n\t\t\t\t\tscaledFile = await ImageHelper.resampleImage(image, {\n\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\tcrop: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst scale = getScale(origDim.w, origDim.h);\n\t\t\t\t\tscaledFile = await ImageHelper.resampleImage(image, { scale });\n\t\t\t\t}\n\t\t\t\tscaledFile = (await ImageHelper.compressImage(scaledFile, { fileSize: maxSizeInKb })) as File;\n\n\t\t\t\tif (scaledFile.size > maxSizeInKb * 1024) {\n\t\t\t\t\tconst updatedImages = [...images];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...images[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_SIZE,\n\t\t\t\t\t};\n\t\t\t\t\tsetImages(updatedImages);\n\t\t\t\t} else {\n\t\t\t\t\tconst dataURL = await FileHelper.fileToDataUrl(scaledFile);\n\t\t\t\t\tconst updatedImages = [...images];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...images[index],\n\t\t\t\t\t\tdrawingDataURL: dataURL,\n\t\t\t\t\t\tstatus: EImageStatus.RECOMPRESSED,\n\t\t\t\t\t};\n\t\t\t\t\tsetImages(updatedImages);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tconst uploadImage = async (index: number, iFile: IImage) => {\n\t\ttry {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.UPLOADING,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\n\t\t\tlet response: unknown;\n\t\t\tif (upload?.method && upload?.url) {\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"dataURL\", iFile.drawingDataURL || iFile.dataURL || \"\");\n\t\t\t\tformData.append(\"sessionId\", upload?.sessionId || sessionId.current || \"\");\n\t\t\t\tformData.append(\"slot\", `${iFile.slot}`);\n\t\t\t\tresponse = await new AxiosApiClient(\"\", undefined, undefined, true)[upload.method](\n\t\t\t\t\tupload.url,\n\t\t\t\t\tformData,\n\t\t\t\t\t{\n\t\t\t\t\t\tonUploadProgress: (progressEvent) => {\n\t\t\t\t\t\t\tconst { loaded, total } = progressEvent;\n\t\t\t\t\t\t\tconst percent = Math.floor((loaded * 100) / total);\n\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\t\t\t\tuploadProgress: percent,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tuploadResponse: response,\n\t\t\t\t\tstatus: EImageStatus.UPLOADED,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t}\n\t};\n\n\treturn null;\n};\n"],"names":["ImageManager","props","accepts","compress","crop","dimensions","editImage","id","maxSizeInKb","outputType","upload","filenameMatches","filenameMatchesErrorMessage","value","images","setImages","setErrorCount","setCurrentFileIds","useContext","ImageContext","previousImages","usePrevious","previousValue","setValue","useFormContext","sessionId","useRef","managerErrorCount","dispatchFieldEvent","addFieldEventListener","removeFieldEventListener","useFieldEvent","useEffect","handleUpdateImageStatus","e","prev","imageIndex","findIndex","image","detail","updatedImage","status","updatedStatus","customErrorMessage","errorMessage","newImages","splice","current","generateRandomId","forEach","index","previousFile","dataURL","EImageStatus","INJECTED","FileHelper","dataUrlToBlob","then","blob","updatedImages","file","File","name","NONE","catch","filter","i","pattern","resolveMatchesPattern","test","ERROR_FILENAME","getType","fileType","mimeType","mime","map","fileExtensionToMimeType","includes","deduplicateFileName","sanitizeFileName","type","addedFrom","UPLOADED","compressImage","convertImage","ERROR_FORMAT","TO_RECOMPRESS","recompressImage","COMPRESSED","CONVERTED","RECOMPRESSED","shouldPreventDefault","imageData","PENDING","UPLOAD_READY","uploadImage","TO_DELETE","join","updatedManagerErrorCount","ERROR_GENERIC","ERROR_SIZE","Math","max","uploadedImages","ERROR_CUSTOM_MUTED","notPrefilledImages","gotDeleteImages","length","hasNotPrefilledImages","shouldDirty","drawingDataURL","metadata","uploadResponse","fileId","fileName","shouldTouch","undefined","getScale","origWidth","origHeight","scale","width","height","matches","parsed","match","RegExp","async","ImageHelper","convertBlob","filesize","getFilesizeFromBase64","getMetadata","imageToCompress","dataUrlToImage","origDim","w","naturalWidth","h","naturalHeight","compressed","resampleImage","fileSize","size","fileToDataUrl","scaledFile","iFile","response","UPLOADING","method","url","formData","FormData","append","slot","AxiosApiClient","onUploadProgress","progressEvent","loaded","total","percent","floor","uploadProgress","err"],"mappings":"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"}
1
+ {"version":3,"file":"index.584be54b.js","sources":["../../src/components/fields/image-upload/image-manager/image-manager.ts"],"sourcesContent":["import { 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 { ImageContext } from \"../image-context\";\nimport {\n\tEImageStatus,\n\tIImage,\n\tISharedImageProps,\n\tIUpdateImageStatus,\n\tTImageUploadOutputFileType,\n\tTUploadMethod,\n} from \"../types\";\n\ninterface IProps extends Omit<ISharedImageProps, \"maxFiles\"> {\n\teditImage: boolean;\n\tcompress: boolean;\n\tcrop: boolean;\n\tdimensions: { width: number; height: number };\n\toutputType: TImageUploadOutputFileType;\n\tupload?: {\n\t\tmethod: TUploadMethod;\n\t\turl: string;\n\t\tsessionId?: string | undefined;\n\t};\n\tfilenameMatches?: string | undefined;\n\tfilenameMatchesErrorMessage?: string | undefined;\n\tvalue: any;\n}\n\n/**\n * manages selected images by listening to images from context provider\n * rename / compress / upload\n */\nexport const ImageManager = (props: IProps) => {\n\t// =============================================================================\n\t// CONST, STATE, REFS\n\t// =============================================================================\n\tconst {\n\t\taccepts,\n\t\tcompress,\n\t\tcrop,\n\t\tdimensions,\n\t\teditImage,\n\t\tid,\n\t\tmaxSizeInKb,\n\t\toutputType,\n\t\tupload,\n\t\tfilenameMatches,\n\t\tfilenameMatchesErrorMessage,\n\t\tvalue,\n\t} = props;\n\tconst { images, setImages, setErrorCount, setCurrentFileIds } = useContext(ImageContext);\n\tconst previousImages = usePrevious(images);\n\tconst previousValue = usePrevious(value);\n\tconst { setValue } = useFormContext();\n\tconst sessionId = useRef<string>();\n\tconst managerErrorCount = useRef(0);\n\n\tconst { dispatchFieldEvent, addFieldEventListener, removeFieldEventListener } = useFieldEvent();\n\n\t// =============================================================================\n\t// EFFECTS\n\t// =============================================================================\n\tuseEffect(() => {\n\t\tconst handleUpdateImageStatus = (e: CustomEvent<IUpdateImageStatus>) => {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst imageIndex = prev.findIndex((image) => image.id === e.detail.id);\n\t\t\t\tconst updatedImage = { ...prev[imageIndex] };\n\t\t\t\tupdatedImage.status = e.detail.updatedStatus;\n\t\t\t\tupdatedImage.customErrorMessage = e.detail.errorMessage;\n\n\t\t\t\tconst newImages = [...prev];\n\t\t\t\tnewImages.splice(imageIndex, 1, updatedImage);\n\t\t\t\treturn newImages;\n\t\t\t});\n\t\t};\n\n\t\taddFieldEventListener(\"update-image-status\", id, handleUpdateImageStatus);\n\t\treturn () => removeFieldEventListener(\"update-image-status\", id, handleUpdateImageStatus);\n\t}, [addFieldEventListener, id, removeFieldEventListener, setImages]);\n\n\t// generate pseudo-random session id\n\tuseEffect(() => {\n\t\tsessionId.current = generateRandomId();\n\t}, []);\n\n\tuseEffect(() => {\n\t\timages.forEach((image, index) => {\n\t\t\tconst previousFile = previousImages?.[index];\n\t\t\tif (image.status !== previousFile?.status || image.dataURL !== previousFile.dataURL) {\n\t\t\t\tswitch (image.status) {\n\t\t\t\t\tcase EImageStatus.INJECTED:\n\t\t\t\t\t\tFileHelper.dataUrlToBlob(image.dataURL)\n\t\t\t\t\t\t\t.then((blob) => {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tfile: new File([blob], image.name),\n\t\t\t\t\t\t\t\t\t\tstatus: EImageStatus.NONE,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\t\tsetImages((prev) => prev.filter((prev, i) => i !== index));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.NONE:\n\t\t\t\t\t\tif (filenameMatches) {\n\t\t\t\t\t\t\tconst pattern = resolveMatchesPattern(filenameMatches);\n\t\t\t\t\t\t\tif (pattern && !pattern.test(image.name)) {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tstatus: EImageStatus.ERROR_FILENAME,\n\t\t\t\t\t\t\t\t\t\tcustomErrorMessage: filenameMatchesErrorMessage,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tFileHelper.getType(image.file).then((fileType) => {\n\t\t\t\t\t\t\tconst mimeType = fileType.mime;\n\t\t\t\t\t\t\tif (mimeType && accepts.map(FileHelper.fileExtensionToMimeType).includes(mimeType)) {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tname: FileHelper.deduplicateFileName(\n\t\t\t\t\t\t\t\t\t\t\timages.map(({ name }) => name),\n\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\tFileHelper.sanitizeFileName(image.name)\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttype: mimeType,\n\t\t\t\t\t\t\t\t\t\tstatus: image.addedFrom !== \"schema\" ? image.status : EImageStatus.UPLOADED,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (image.addedFrom !== \"schema\") {\n\t\t\t\t\t\t\t\t\tcompress ? compressImage(index, image) : convertImage(index, image);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t\t...image,\n\t\t\t\t\t\t\t\t\t\tstatus: EImageStatus.ERROR_FORMAT,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.TO_RECOMPRESS:\n\t\t\t\t\t\trecompressImage(index, image);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.COMPRESSED:\n\t\t\t\t\tcase EImageStatus.CONVERTED:\n\t\t\t\t\tcase EImageStatus.RECOMPRESSED:\n\t\t\t\t\t\tif (!editImage) {\n\t\t\t\t\t\t\tconst shouldPreventDefault = !dispatchFieldEvent(\"upload-ready\", id, { imageData: image });\n\n\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t...updatedImages[index],\n\t\t\t\t\t\t\t\t\tstatus: shouldPreventDefault ? EImageStatus.PENDING : EImageStatus.UPLOAD_READY,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.UPLOAD_READY:\n\t\t\t\t\t\tuploadImage(index, image);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.TO_DELETE:\n\t\t\t\t\t\tsetImages((prev) => prev.filter(({ status }) => status !== EImageStatus.TO_DELETE));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EImageStatus.UPLOADED:\n\t\t\t\t\t\tdispatchFieldEvent(\"uploaded\", id, { imageData: image });\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [images.map(({ status }) => status).join(\",\"), images.map(({ dataURL }) => dataURL).join(\",\")]);\n\n\t// track / update errors and values\n\tuseEffect(() => {\n\t\tlet updatedManagerErrorCount = 0;\n\t\timages.forEach((image) => {\n\t\t\tif (\n\t\t\t\t(image.type && !accepts.map(FileHelper.fileExtensionToMimeType).includes(image.type)) ||\n\t\t\t\t[EImageStatus.ERROR_GENERIC, EImageStatus.ERROR_SIZE, EImageStatus.ERROR_FILENAME].includes(\n\t\t\t\t\timage.status\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tupdatedManagerErrorCount++;\n\t\t\t}\n\t\t});\n\t\tsetErrorCount((prev) => Math.max(0, prev + updatedManagerErrorCount - managerErrorCount.current));\n\t\tmanagerErrorCount.current = updatedManagerErrorCount;\n\n\t\tconst uploadedImages = images.filter(\n\t\t\t({ status }) => status === EImageStatus.UPLOADED || status === EImageStatus.ERROR_CUSTOM_MUTED\n\t\t);\n\t\tconst notPrefilledImages = uploadedImages.filter(({ addedFrom }) => addedFrom !== \"schema\");\n\t\tconst gotDeleteImages = images.filter(({ status }) => status === EImageStatus.TO_DELETE).length > 0;\n\n\t\t/**\n\t\t * should dirty if\n\t\t * - it is dirty in the first place\n\t\t * - there are non-prefilled images\n\t\t * - user deleted image (differentiated from reset)\n\t\t */\n\t\tconst hasNotPrefilledImages = notPrefilledImages.length > 0;\n\t\tconst shouldDirty = hasNotPrefilledImages || gotDeleteImages;\n\n\t\tsetCurrentFileIds(uploadedImages.map(({ id }) => id));\n\n\t\tsetValue(\n\t\t\tid,\n\t\t\tuploadedImages.map(({ id, dataURL, drawingDataURL, name, metadata, uploadResponse }) => ({\n\t\t\t\tfileId: id,\n\t\t\t\tfileName: name,\n\t\t\t\tdataURL: drawingDataURL || dataURL,\n\t\t\t\tmetadata,\n\t\t\t\tuploadResponse,\n\t\t\t})),\n\t\t\t{ shouldDirty, shouldTouch: hasNotPrefilledImages }\n\t\t);\n\t}, [accepts, id, images, setErrorCount, setValue]);\n\n\tuseEffect(() => {\n\t\tif (previousValue !== undefined && value === undefined && images.length) {\n\t\t\tsetImages([]);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [previousValue === undefined, value === undefined, images.length]);\n\n\t// =============================================================================\n\t// HELPER FUNCTIONS\n\t// =============================================================================\n\tconst getScale = (origWidth: number, origHeight: number): number => {\n\t\tlet scale = dimensions.width / origWidth;\n\t\tif (origHeight * scale > dimensions.height) {\n\t\t\tscale = dimensions.height / origHeight;\n\t\t}\n\t\treturn scale;\n\t};\n\n\t/**\n\t * Converts a matches string (e.g. \"/^abc$/i\" or \"^abc$\") to a RegExp.\n\t * Returns undefined if the string is invalid.\n\t */\n\tconst resolveMatchesPattern = (matches: string): RegExp | undefined => {\n\t\ttry {\n\t\t\tconst parsed = matches.match(/^\\/(.+)\\/([gimsuy]*)$/);\n\t\t\treturn parsed ? new RegExp(parsed[1], parsed[2] || \"\") : new RegExp(matches);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t};\n\n\tconst convertImage = async (index: number, image: IImage) => {\n\t\ttry {\n\t\t\tconst dataURL = await ImageHelper.convertBlob(image.file, FileHelper.fileExtensionToMimeType(outputType));\n\t\t\tconst filesize = FileHelper.getFilesizeFromBase64(dataURL);\n\n\t\t\tif (maxSizeInKb && filesize > maxSizeInKb * 1024) {\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_SIZE,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst metadata = await ImageHelper.getMetadata(image.file);\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tdataURL,\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\tstatus: EImageStatus.CONVERTED,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t}\n\t};\n\n\tconst compressImage = async (index: number, imageToCompress: IImage) => {\n\t\ttry {\n\t\t\tconst dataURL = await ImageHelper.convertBlob(\n\t\t\t\timageToCompress.file,\n\t\t\t\tFileHelper.fileExtensionToMimeType(outputType)\n\t\t\t);\n\t\t\tconst image = await ImageHelper.dataUrlToImage(dataURL);\n\t\t\tconst origDim = { w: image.naturalWidth, h: image.naturalHeight };\n\t\t\tlet compressed: Blob;\n\t\t\tif (crop) {\n\t\t\t\tcompressed = await ImageHelper.resampleImage(image, {\n\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\tcrop: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst scale = getScale(origDim.w, origDim.h);\n\t\t\t\tcompressed = await ImageHelper.resampleImage(image, { scale });\n\t\t\t}\n\t\t\tif (maxSizeInKb) {\n\t\t\t\tcompressed = (await ImageHelper.compressImage(compressed, {\n\t\t\t\t\tfileSize: maxSizeInKb,\n\t\t\t\t})) as File;\n\t\t\t}\n\n\t\t\tif (maxSizeInKb && compressed.size > maxSizeInKb * 1024) {\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_SIZE,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst metadata = await ImageHelper.getMetadata(imageToCompress.file);\n\t\t\t\tconst dataURL = await FileHelper.fileToDataUrl(compressed);\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tdataURL,\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\tstatus: EImageStatus.COMPRESSED,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t}\n\t};\n\n\tconst recompressImage = async (index: number, imageToCompress: IImage) => {\n\t\tif (imageToCompress.drawingDataURL) {\n\t\t\ttry {\n\t\t\t\tconst image = await ImageHelper.dataUrlToImage(imageToCompress.drawingDataURL);\n\t\t\t\tconst origDim = { w: image.naturalWidth, h: image.naturalHeight };\n\t\t\t\tlet scaledFile: Blob;\n\t\t\t\tif (crop) {\n\t\t\t\t\tscaledFile = await ImageHelper.resampleImage(image, {\n\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\tcrop: true,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst scale = getScale(origDim.w, origDim.h);\n\t\t\t\t\tscaledFile = await ImageHelper.resampleImage(image, { scale });\n\t\t\t\t}\n\t\t\t\tscaledFile = (await ImageHelper.compressImage(scaledFile, { fileSize: maxSizeInKb })) as File;\n\n\t\t\t\tif (scaledFile.size > maxSizeInKb * 1024) {\n\t\t\t\t\tconst updatedImages = [...images];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...images[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_SIZE,\n\t\t\t\t\t};\n\t\t\t\t\tsetImages(updatedImages);\n\t\t\t\t} else {\n\t\t\t\t\tconst dataURL = await FileHelper.fileToDataUrl(scaledFile);\n\t\t\t\t\tconst updatedImages = [...images];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...images[index],\n\t\t\t\t\t\tdrawingDataURL: dataURL,\n\t\t\t\t\t\tstatus: EImageStatus.RECOMPRESSED,\n\t\t\t\t\t};\n\t\t\t\t\tsetImages(updatedImages);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tsetImages((prev) => {\n\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t\t};\n\t\t\t\t\treturn updatedImages;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tconst uploadImage = async (index: number, iFile: IImage) => {\n\t\ttry {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.UPLOADING,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\n\t\t\tlet response: unknown;\n\t\t\tif (upload?.method && upload?.url) {\n\t\t\t\tconst formData = new FormData();\n\t\t\t\tformData.append(\"dataURL\", iFile.drawingDataURL || iFile.dataURL || \"\");\n\t\t\t\tformData.append(\"sessionId\", upload?.sessionId || sessionId.current || \"\");\n\t\t\t\tformData.append(\"slot\", `${iFile.slot}`);\n\t\t\t\tresponse = await new AxiosApiClient(\"\", undefined, undefined, true)[upload.method](\n\t\t\t\t\tupload.url,\n\t\t\t\t\tformData,\n\t\t\t\t\t{\n\t\t\t\t\t\tonUploadProgress: (progressEvent) => {\n\t\t\t\t\t\t\tconst { loaded, total } = progressEvent;\n\t\t\t\t\t\t\tconst percent = Math.floor((loaded * 100) / total);\n\t\t\t\t\t\t\tsetImages((prev) => {\n\t\t\t\t\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\t\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t\t\t\t\t...prev[index],\n\t\t\t\t\t\t\t\t\tuploadProgress: percent,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn updatedImages;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tuploadResponse: response,\n\t\t\t\t\tstatus: EImageStatus.UPLOADED,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tsetImages((prev) => {\n\t\t\t\tconst updatedImages = [...prev];\n\t\t\t\tupdatedImages[index] = {\n\t\t\t\t\t...prev[index],\n\t\t\t\t\tstatus: EImageStatus.ERROR_GENERIC,\n\t\t\t\t};\n\t\t\t\treturn updatedImages;\n\t\t\t});\n\t\t}\n\t};\n\n\treturn null;\n};\n"],"names":["ImageManager","props","accepts","compress","crop","dimensions","editImage","id","maxSizeInKb","outputType","upload","filenameMatches","filenameMatchesErrorMessage","value","images","setImages","setErrorCount","setCurrentFileIds","useContext","ImageContext","previousImages","usePrevious","previousValue","setValue","useFormContext","sessionId","useRef","managerErrorCount","dispatchFieldEvent","addFieldEventListener","removeFieldEventListener","useFieldEvent","useEffect","handleUpdateImageStatus","e","prev","imageIndex","findIndex","image","detail","updatedImage","status","updatedStatus","customErrorMessage","errorMessage","newImages","splice","current","generateRandomId","forEach","index","previousFile","dataURL","EImageStatus","INJECTED","FileHelper","dataUrlToBlob","then","blob","updatedImages","file","File","name","NONE","catch","filter","i","pattern","resolveMatchesPattern","test","ERROR_FILENAME","getType","fileType","mimeType","mime","map","fileExtensionToMimeType","includes","deduplicateFileName","sanitizeFileName","type","addedFrom","UPLOADED","compressImage","convertImage","ERROR_FORMAT","TO_RECOMPRESS","recompressImage","COMPRESSED","CONVERTED","RECOMPRESSED","shouldPreventDefault","imageData","PENDING","UPLOAD_READY","uploadImage","TO_DELETE","join","updatedManagerErrorCount","ERROR_GENERIC","ERROR_SIZE","Math","max","uploadedImages","ERROR_CUSTOM_MUTED","notPrefilledImages","gotDeleteImages","length","hasNotPrefilledImages","shouldDirty","drawingDataURL","metadata","uploadResponse","fileId","fileName","shouldTouch","undefined","getScale","origWidth","origHeight","scale","width","height","matches","parsed","match","RegExp","async","ImageHelper","convertBlob","filesize","getFilesizeFromBase64","getMetadata","imageToCompress","dataUrlToImage","origDim","w","naturalWidth","h","naturalHeight","compressed","resampleImage","fileSize","size","fileToDataUrl","scaledFile","iFile","response","UPLOADING","method","url","formData","FormData","append","slot","AxiosApiClient","onUploadProgress","progressEvent","loaded","total","percent","floor","uploadProgress","err"],"mappings":"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"}
@@ -478,7 +478,7 @@ function HO(e){return"[object Object]"===Object.prototype.toString.call(e)}Objec
478
478
  cursor: pointer;
479
479
  `,kF=C(F)`
480
480
  margin-top: ${S["spacing-8"]};
481
- `;var $F=pi,RF=hi,zF=vn?vn.isConcatSpreadable:void 0;var FF=Ca,PF=function(e){return RF(e)||$F(e)||!!(zF&&e&&e[zF])};var ZF=function e(t,n,r,i,a){var o=-1,s=t.length;for(r||(r=PF),a||(a=[]);++o<s;){var u=t[o];n>0&&r(u)?n>1?e(u,n-1,r,i,a):FF(a,u):i||(a[a.length]=u)}return a};var UF=Qa,BF=function(){},jF=UF&&1/sS(new UF([,-0]))[1]==1/0?function(e){return new UF(e)}:BF,VF=QE,GF=W$,HF=q$,YF=tS,WF=jF,qF=sS;var KF=function(e,t,n){var r=-1,i=GF,a=e.length,o=!0,s=[],u=s;if(n)o=!1,i=HF;else if(a>=200){var c=t?null:WF(e);if(c)return qF(c);o=!1,i=YF,u=new VF}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},JF=nR,XF=ZF,QF=KF;var eP=function(e,t,n){var r=e.length;if(r<2)return r?QF(e[0]):[];for(var i=-1,a=Array(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=JF(a[i]||o,e[s],t,n));return QF(XF(a,1),t,n)},tP=va,nP=eP,rP=YI,iP=Uk((function(e){return nP(tP(e,rP))}));const aP=a({files:[],setFiles:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),oP=({children:t})=>{const[n,r]=o([]),[i,a]=o([]),s=l((()=>({files:n,setFiles:r,currentFileIds:i,setCurrentFileIds:a})),[n,i]);return e(aP.Provider,{value:s,children:t})};var sP,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}}(sP||(sP={})),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"}(uP||(uP={}));const cP=_((()=>import("./file-upload-manager.49e95386.js"))),lP=r=>{const{id:i,error:a,isDirty:c,isTouched:l,value:p,schema:{compressImages:h,description:m,hideThumbnail:g,label:y,uploadOnAddingFile:_,validation:b,warning:A,...E},warning:S}=r,{files:w,currentFileIds:x,setFiles:M}=d(aP),T=s({}),O=s({}),N=s({}),C=s({}),D=s({}),{setFieldValidationConfig:L}=t$(),{dispatchFieldEvent:I}=UI(),{clearErrors:k,setError:$}=Ye(),[R,z]=o(),F=s(w),P=f(((e,t)=>{const n=[...t],r=n.length;e.forEach(((e,t)=>{!N.current.max||r+t<N.current.max?(n.push({...e,slot:sP.findAvailableSlot(n)}),k(i)):$(i,{type:"max",message:N.current.errorMessage||Nm.UPLOAD().MAX_FILES(N.current.max)})})),M(n)}),[k,i,$,M]);u((()=>{F.current=w}),[w]),u((()=>{I("mount",i)}),[I,i]),u((()=>{const e=b?.find((e=>"required"in e)),t=b?.find((e=>"fileType"in e)),n=b?.find((e=>"fileExtension"in e)),r=b?.find((e=>"maxSizeInKb"in e)),a=b?.find((e=>"upload"in e&&e.upload));T.current=t?.fileType?t:{},O.current=t?.fileType&&n?.fileExtension?n:{},C.current=r?.maxSizeInKb>0?r:{},D.current=a||{};const o=b?.find((e=>"length"in e)),s=b?.find((e=>"max"in e));N.current=o?{max:o.length,errorMessage:o.errorMessage}:s?{max:s.max,errorMessage:s.errorMessage}:{},L(i,xM().of(SM().shape({dataURL:ux(),fileId:ux(),fileName:ux(),fileUrl:ux(),uploadResponse:SM()})).test("is-empty-array",e?.errorMessage||Nm.UPLOAD().REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",C.current.errorMessage||Nm.UPLOAD().MAX_FILE_SIZE(C.current.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&C.current.maxSizeInKb)||w.filter((e=>e.status===uP.UPLOADED)).every((e=>{if("base64"===_.type&&e.dataURL)return Om.getFilesizeFromBase64(e.dataURL)<=1024*C.current.maxSizeInKb;if("multipart"===_.type){const t=e.uploadResponse?.data||e.uploadResponse;let n=e.rawFile?.size||t?.fileSize;return isNaN(n)&&(n=0),n<=1024*C.current.maxSizeInKb}})))).test("max-files",N.current.errorMessage||Nm.UPLOAD().MAX_FILES(N.current.max),(e=>!(e&&Array.isArray(e)&&N.current.max)||e.length<=N.current.max)).test("no-interim-statuses",Nm.UPLOAD().UPLOADING,(()=>{const e=new Set([uP.INJECTED,uP.INJECTING,uP.NONE,uP.UPLOAD_READY,uP.UPLOADING]);return!F.current.some((t=>e.has(t.status)))})),b)}),[b,w.map((e=>e.status)).join(",")]),u((()=>{if(!c&&!l){const e=Array.isArray(p)?p:[];if(!(iP(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:uP.INJECTED})})),P(t,[])}}),[P,c,l,x,p]),u((()=>{if(a?.message)try{const{message:e,fileErrors:t}=JSON.parse(a.message);t&&M(F.current.map((e=>{const n=t[e.fileItem.id];return n?{...e,fileItem:{...e.fileItem,errorMessage:n}}:e}))),e&&z(e)}catch(e){z(a.message)}else z(void 0)}),[a?.message,M]);const Z=t=>t?e(oI,{children:t}):null;return t(n,{children:[e(v,{fallback:null,children:e(cP,{compressImages:!!h,fileTypeRule:T.current,fileExtensionRule:O.current,hideThumbnail:g,id:i,maxFileSizeRule:C.current,upload:_,uploadRule:D.current,value:p})}),e(ne,{...E,accept:T.current.fileType?.map((e=>`.${e}`)).join(","),description:Z(m),errorMessage:Z(R),fileItems:w.filter((({fileItem:e,status:t})=>!!e&&t!==uP.INJECTED&&t!==uP.INJECTING)).map((({fileItem:e})=>e)),id:i,maxFiles:N.current.max,onChange:e=>{P(e.map((e=>({addedFrom:"input",rawFile:e,slot:null,status:uP.NONE}))),w)},onDelete:e=>{M(w.map((t=>t.fileItem.id!==e.id?t:{...t,status:uP.TO_DELETE}))),k(i)},title:Z(y),warning:Z(S||A)})]})},dP=a({images:[],setImages:()=>null,errorCount:0,setErrorCount:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),fP=({children:t})=>{const[n,r]=o([]),[i,a]=o(0),[s,u]=o([]);return e(dP.Provider,{value:{images:n,setImages:r,errorCount:i,setErrorCount:a,currentFileIds:s,setCurrentFileIds:u},children:t})};var pP;!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}}(pP||(pP={}));const hP=["jpg","gif","png","heic","heif","webp"];var mP;!function(e){e[e.INJECTED=-99]="INJECTED",e[e.ERROR_FILENAME=-8]="ERROR_FILENAME",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"}(mP||(mP={}));var gP,yP={exports:{}},_P={exports:{}},vP={};var bP,AP,EP,SP,wP,xP,MP,TP,OP,NP,CP,DP,LP,IP,kP={};
481
+ `;var $F=pi,RF=hi,zF=vn?vn.isConcatSpreadable:void 0;var FF=Ca,PF=function(e){return RF(e)||$F(e)||!!(zF&&e&&e[zF])};var ZF=function e(t,n,r,i,a){var o=-1,s=t.length;for(r||(r=PF),a||(a=[]);++o<s;){var u=t[o];n>0&&r(u)?n>1?e(u,n-1,r,i,a):FF(a,u):i||(a[a.length]=u)}return a};var UF=Qa,BF=function(){},jF=UF&&1/sS(new UF([,-0]))[1]==1/0?function(e){return new UF(e)}:BF,VF=QE,GF=W$,HF=q$,YF=tS,WF=jF,qF=sS;var KF=function(e,t,n){var r=-1,i=GF,a=e.length,o=!0,s=[],u=s;if(n)o=!1,i=HF;else if(a>=200){var c=t?null:WF(e);if(c)return qF(c);o=!1,i=YF,u=new VF}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},JF=nR,XF=ZF,QF=KF;var eP=function(e,t,n){var r=e.length;if(r<2)return r?QF(e[0]):[];for(var i=-1,a=Array(r);++i<r;)for(var o=e[i],s=-1;++s<r;)s!=i&&(a[i]=JF(a[i]||o,e[s],t,n));return QF(XF(a,1),t,n)},tP=va,nP=eP,rP=YI,iP=Uk((function(e){return nP(tP(e,rP))}));const aP=a({files:[],setFiles:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),oP=({children:t})=>{const[n,r]=o([]),[i,a]=o([]),s=l((()=>({files:n,setFiles:r,currentFileIds:i,setCurrentFileIds:a})),[n,i]);return e(aP.Provider,{value:s,children:t})};var sP,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}}(sP||(sP={})),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"}(uP||(uP={}));const cP=_((()=>import("./file-upload-manager.0735b7f2.js"))),lP=r=>{const{id:i,error:a,isDirty:c,isTouched:l,value:p,schema:{compressImages:h,description:m,hideThumbnail:g,label:y,uploadOnAddingFile:_,validation:b,warning:A,...E},warning:S}=r,{files:w,currentFileIds:x,setFiles:M}=d(aP),T=s({}),O=s({}),N=s({}),C=s({}),D=s({}),{setFieldValidationConfig:L}=t$(),{dispatchFieldEvent:I}=UI(),{clearErrors:k,setError:$}=Ye(),[R,z]=o(),F=s(w),P=f(((e,t)=>{const n=[...t],r=n.length;e.forEach(((e,t)=>{!N.current.max||r+t<N.current.max?(n.push({...e,slot:sP.findAvailableSlot(n)}),k(i)):$(i,{type:"max",message:N.current.errorMessage||Nm.UPLOAD().MAX_FILES(N.current.max)})})),M(n)}),[k,i,$,M]);u((()=>{F.current=w}),[w]),u((()=>{I("mount",i)}),[I,i]),u((()=>{const e=b?.find((e=>"required"in e)),t=b?.find((e=>"fileType"in e)),n=b?.find((e=>"fileExtension"in e)),r=b?.find((e=>"maxSizeInKb"in e)),a=b?.find((e=>"upload"in e&&e.upload));T.current=t?.fileType?t:{},O.current=t?.fileType&&n?.fileExtension?n:{},C.current=r?.maxSizeInKb>0?r:{},D.current=a||{};const o=b?.find((e=>"length"in e)),s=b?.find((e=>"max"in e));N.current=o?{max:o.length,errorMessage:o.errorMessage}:s?{max:s.max,errorMessage:s.errorMessage}:{},L(i,xM().of(SM().shape({dataURL:ux(),fileId:ux(),fileName:ux(),fileUrl:ux(),uploadResponse:SM()})).test("is-empty-array",e?.errorMessage||Nm.UPLOAD().REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",C.current.errorMessage||Nm.UPLOAD().MAX_FILE_SIZE(C.current.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&C.current.maxSizeInKb)||w.filter((e=>e.status===uP.UPLOADED)).every((e=>{if("base64"===_.type&&e.dataURL)return Om.getFilesizeFromBase64(e.dataURL)<=1024*C.current.maxSizeInKb;if("multipart"===_.type){const t=e.uploadResponse?.data||e.uploadResponse;let n=e.rawFile?.size||t?.fileSize;return isNaN(n)&&(n=0),n<=1024*C.current.maxSizeInKb}})))).test("max-files",N.current.errorMessage||Nm.UPLOAD().MAX_FILES(N.current.max),(e=>!(e&&Array.isArray(e)&&N.current.max)||e.length<=N.current.max)).test("no-interim-statuses",Nm.UPLOAD().UPLOADING,(()=>{const e=new Set([uP.INJECTED,uP.INJECTING,uP.NONE,uP.UPLOAD_READY,uP.UPLOADING]);return!F.current.some((t=>e.has(t.status)))})),b)}),[b,w.map((e=>e.status)).join(",")]),u((()=>{if(!c&&!l){const e=Array.isArray(p)?p:[];if(!(iP(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:uP.INJECTED})})),P(t,[])}}),[P,c,l,x,p]),u((()=>{if(a?.message)try{const{message:e,fileErrors:t}=JSON.parse(a.message);t&&M(F.current.map((e=>{const n=t[e.fileItem.id];return n?{...e,fileItem:{...e.fileItem,errorMessage:n}}:e}))),e&&z(e)}catch(e){z(a.message)}else z(void 0)}),[a?.message,M]);const Z=t=>t?e(oI,{children:t}):null;return t(n,{children:[e(v,{fallback:null,children:e(cP,{compressImages:!!h,fileTypeRule:T.current,fileExtensionRule:O.current,hideThumbnail:g,id:i,maxFileSizeRule:C.current,upload:_,uploadRule:D.current,value:p})}),e(ne,{...E,accept:T.current.fileType?.map((e=>`.${e}`)).join(","),description:Z(m),errorMessage:Z(R),fileItems:w.filter((({fileItem:e,status:t})=>!!e&&t!==uP.INJECTED&&t!==uP.INJECTING)).map((({fileItem:e})=>e)),id:i,maxFiles:N.current.max,onChange:e=>{P(e.map((e=>({addedFrom:"input",rawFile:e,slot:null,status:uP.NONE}))),w)},onDelete:e=>{M(w.map((t=>t.fileItem.id!==e.id?t:{...t,status:uP.TO_DELETE}))),k(i)},title:Z(y),warning:Z(S||A)})]})},dP=a({images:[],setImages:()=>null,errorCount:0,setErrorCount:()=>null,currentFileIds:[],setCurrentFileIds:()=>null}),fP=({children:t})=>{const[n,r]=o([]),[i,a]=o(0),[s,u]=o([]);return e(dP.Provider,{value:{images:n,setImages:r,errorCount:i,setErrorCount:a,currentFileIds:s,setCurrentFileIds:u},children:t})};var pP;!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}}(pP||(pP={}));const hP=["jpg","gif","png","heic","heif","webp"];var mP;!function(e){e[e.INJECTED=-99]="INJECTED",e[e.ERROR_FILENAME=-8]="ERROR_FILENAME",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"}(mP||(mP={}));var gP,yP={exports:{}},_P={exports:{}},vP={};var bP,AP,EP,SP,wP,xP,MP,TP,OP,NP,CP,DP,LP,IP,kP={};
482
482
  /** @license React v16.13.1
483
483
  * react-is.development.js
484
484
  *
@@ -984,7 +984,7 @@ object-assign
984
984
  stroke: ${A["icon-primary"]};
985
985
  stroke-width: 1;
986
986
  }
987
- `,XU=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=async e=>{const t=Array.from(e.target.files||[]);t.length&&setTimeout((()=>{f(t)}),100)},g=()=>h?.current?.click();return t(jU,{id:zA.generateId(u),children:[c.map(((n,r)=>n.status===mP.NONE?e(WU,{children:[...Array(4)].map(((t,n)=>e(YU,{},`dot-${n}`)))},r):n.status>mP.NONE||n.status===mP.ERROR_CUSTOM_MUTED?e(VU,{id:zA.generateId(u,`item-${r+1}`),"data-testid":zA.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(qU,{isSelected:a===r})},r):"reviewModal"===n.addedFrom||n.status<mP.NONE?t(VU,{id:zA.generateId(u,`item-${r+1}`),"data-testid":zA.generateId(u,`item-${r+1}`),type:"button","aria-label":`error with ${n.name}`,onClick:()=>d(r),error:!0,children:[e(qU,{isSelected:a===r}),e(GU,{})]},r):void 0)),(c.filter((({status:e,addedFrom:t})=>e>=mP.NONE||e===mP.ERROR_CUSTOM_MUTED||"reviewModal"===t)).length<l||!l)&&t(n,{children:[e(KU,{id:zA.generateId(u,"file-input"),"data-testid":zA.generateId(u,"file-input"),type:"file","aria-hidden":"true",tabIndex:-1,capture:o,ref:h,accept:i.map((e=>`.${e}`)).join(", "),onChange:m,multiple:p,value:""}),e(JU,{type:"button",id:zA.generateId(u,"add-image-button"),"data-testid":zA.generateId(u,"add-image-button"),"aria-label":"add image",styleType:"secondary",onClick:g,children:e(ce,{})})]})]})},QU=_((()=>import("./index.de2d7212.js"))),eB=[{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"}],tB=r=>{const{accepts:i,capture:a,className:c,compress:l,dimensions:p,id:h="image-review",maxFiles:m,maxSizeInKb:g,onExit:y,outputType:_,show:b,multiple:A,maxFilesErrorMessage:E,imageReviewModalStyles:S}=r,{images:w,setImages:x}=d(dP),{dispatchFieldEvent:M,addFieldEventListener:T,removeFieldEventListener:O}=UI(),N=a$(b),[C,D]=o(w.length-1),[L,I]=o(!1),[k,R]=o(),z=!!w?.find((({status:e})=>e===mP.NONE)),[F,P]=o(eB[0].color),[Z,U]=o(!1),B=s(null),j=!!w?.find((({addedFrom:e,status:t})=>"reviewModal"===e&&t<=mP.NONE))||!w.length,V=f((e=>{e.detail.removePendingImages&&x((e=>e.filter((({status:e})=>e===mP.UPLOADED||e===mP.ERROR_CUSTOM_MUTED)))),y()}),[y,x]),G=e=>{!m||e.length+w.filter((({status:e,addedFrom:t})=>e>=mP.NONE||"reviewModal"===t)).length<=m?e.forEach((e=>{x((t=>{const n=pP.findAvailableSlot(t);return[...t,{id:Lm(),file:e,name:e.name,dimensions:p,status:mP.NONE,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))})):x((t=>{const n=pP.findAvailableSlot(t);return[...t,{id:Lm(),file:e[0],name:e[0].name,dimensions:p,status:mP.ERROR_EXCEED,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))},H=e=>{e&&(x((e=>e.map(((e,t)=>({...e,...t===C?{status:mP.TO_DELETE}:{}}))))),D(Math.max(0,C-1))),R(null)},Y=f((()=>{x((e=>e.filter((({status:e})=>e>=mP.NONE||e===mP.ERROR_CUSTOM_MUTED)).map((e=>{const t={...e};return e.drawingDataURL&&(t.dataURL=e.drawingDataURL),e.status<mP.UPLOAD_READY&&e.status>mP.NONE&&(t.status=mP.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=()=>{I(!0),P(eB[0].color)},K=async()=>{const{dataURL:e,drawing:t}=B.current?.export()||{},n=await yA.dataUrlToImage(e),r=await yA.resampleImage(n,{scale:96/n.width,type:Om.fileExtensionToMimeType(_)}),i=await Om.fileToDataUrl(r);x((n=>{const r=[...n];return r[C]={...r[C],thumbnailDataURL:i,drawingDataURL:e,drawing:t,status:l?mP.TO_RECOMPRESS:mP.EDITED},r})),I(!1),X()},J=()=>{X(),U(!0)},X=()=>{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((()=>{D(w.length-1)}),[w.length]),u((()=>{b?M("show-review-modal",h):N&&M("hide-review-modal",h)}),[b]);return e($,{id:zA.generateId(h,void 0,b?"show":"hide"),className:c?`${c}-review`:void 0,show:b,children:e(EU,{className:c?`${c}-review-modal-box`:void 0,imageReviewModalStyles:S,showCloseButton:!1,children:b?t(n,{children:[e(SU,{className:c?`${c}-header`:void 0,$drawActive:L,children:t(n,L?{children:[e(TU,{id:zA.generateId(h,"clear-drawing-button"),"data-testid":zA.generateId(h,"clear-drawing-button"),onClick:()=>R("clear-drawing"),children:"Clear"}),e(TU,{id:zA.generateId(h,"save-drawing"),"data-testid":zA.generateId(h,"save-drawing"),onClick:K,children:"Save"})]}:{children:[e(wU,{id:zA.generateId(h,"close-button"),"data-testid":zA.generateId(h,"close-button"),"aria-label":"exit review modal",onClick:()=>R("exit"),children:e(re,{type:"cross"})}),e(xU,{weight:"semibold",children:"Review photos"})]})}),t(OU,{children:[w.length>0&&e($U,{className:c?`${c}-editor`:void 0,children:e(v,{fallback:null,children:e(QU,{baseImageDataURL:w[C]?.dataURL,drawing:w[C]?.drawing,color:L?F:void 0,erase:!!L&&Z,ref:B,maxSizeInKb:g})})}),w.length>0&&e(NU,{children:"Loading Preview..."}),!L&&w[C]?.status>=mP.NONE&&t(CU,{children:[t(DU,{id:zA.generateId(h,"draw-button"),"data-testid":zA.generateId(h,"draw-button"),onClick:q,disabled:z,children:[e(IU,{$disabled:z}),e(LU,{weight:"semibold",$disabled:z,children:"Draw"})]}),t(DU,{id:zA.generateId(h,"delete-button"),"data-testid":zA.generateId(h,"delete-button"),onClick:()=>R("delete"),disabled:z,children:[e(kU,{$disabled:z}),e(LU,{weight:"semibold",$disabled:z,children:"Delete"})]})]}),w[C]?.status<mP.NONE&&e(bU,{id:`${h}-photo-error`,image:w[C],accepts:i,maxSizeInKb:g,onClickOk:()=>H(!0),maxFilesErrorMessage:E,maxFiles:m})]}),e(RU,{className:c?`${c}-footer`:void 0,children:t(n,L?{children:[e(FU,{id:zA.generateId(h,"eraser-button"),"data-testid":zA.generateId(h,"eraser-button"),"aria-label":"eraser",onClick:J,children:e(PU,{$eraseMode:Z})}),e(UU,{children:eB.map((({color:t,colorScheme:n,label:r},i)=>e(BU,{id:zA.generateId(h,`palette-color-${i}`),"aria-label":`${r} brush`,$color:t,$colorScheme:n,onClick:()=>(e=>{X(),P(e)})(t),children:F===t&&e(ZU,{$colorScheme:n})},t)))})]}:{children:[e(XU,{id:`${h}-image-thumbnails`,activeFileIndex:C,accepts:i,capture:a,maxFiles:m,images:w,onClickThumbnail:D,onSelectFile:G,multiple:A}),e(zU,{id:zA.generateId(h,"save-button"),"data-testid":zA.generateId(h,"save-button"),onClick:W,disabled:j,children:"Save"})]})}),e(AU,{images:w,show:k,onDecideClearDrawing:e=>{e&&B.current.clearDrawing(),R(null)},onDecideDelete:H,onDecideExit:e=>{e&&(x(w.filter((({addedFrom:e,status:t})=>t>=mP.UPLOADED||t<mP.NONE&&"dragInput"===e)).map((e=>({...e,drawingDataURL:void 0,drawing:void 0})))),y()),R(null)}})]}):e(n,{})})})},nB=_((()=>import("./index.9d79d185.js"))),rB=r=>{const{schema:{buttonLabel:i,capture:a,className:s,compress:c,crop:l,description:f,dimensions:p={width:1e3,height:1e3},editImage:h,label:m,outputType:g="jpg",uploadOnAddingFile:y,validation:_,multiple:b,imageReviewModalStyles:A},id:E,isDirty:S,isTouched:w,value:x,warning:M,...T}=r,{images:O,setImages:N,currentFileIds:C}=d(dP),D=a$(O),[L,I]=o([...hP]),[k,$]=o(0),[R,z]=o(0),[F,P]=o(!1),[Z,U]=o(!1),{setFieldValidationConfig:B}=t$(),{dispatchFieldEvent:j}=UI(),V=s$();u((()=>{j("mount",E)}),[j,E]),u((()=>{if(!S&&!w){const e=Array.isArray(x)?x:[];if(!(iP(e.map((({fileId:e})=>e)),C).length>0))return;const t=[];e.forEach((({fileId:e,fileName:n,dataURL:r,uploadResponse:i},a)=>{const o={id:e||Lm(),file:{},name:n,dimensions:{width:10,height:10},dataURL:r,status:mP.INJECTED,addedFrom:"schema",uploadProgress:100,slot:a,uploadResponse:i};t.push(o)})),N(t)}}),[S,w,C,N,x]),u((()=>{const e=_?.find((e=>"required"in e)),t=_?.find((e=>"fileType"in e)),n=_?.find((e=>"maxSizeInKb"in e));t?.fileType&&t?.fileType!==L&&I(t?.fileType),n?.maxSizeInKb&&n?.maxSizeInKb!==R&&z(n?.maxSizeInKb);const r=_?.find((e=>"length"in e)),i=_?.find((e=>"max"in e));let a;r?a={maxFiles:r.length,errorMessage:r.errorMessage}:i&&(a={maxFiles:i.max,errorMessage:i.errorMessage}),a?.maxFiles&&k!==a.maxFiles&&$(a.maxFiles),B(E,xM().of(SM().shape({fileName:ux(),dataURL:ux()})).test("is-empty-array",e?.errorMessage||Nm.UPLOAD("photo").REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",n?.errorMessage||Nm.UPLOAD("photo").MAX_FILE_SIZE(n?.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&n?.maxSizeInKb)||e.every((e=>Om.getFilesizeFromBase64(e.dataURL)<=1024*n?.maxSizeInKb)))),_)}),[_]),u((()=>{O.some((e=>e.status===mP.NONE))||(O.some(((e,t)=>{const n=D?.[t];if(e.status!==n?.status||e.dataURL!==n.dataURL)switch(e.status){case mP.COMPRESSED:case mP.CONVERTED:if(h&&!Z)return V()?U(!0):P(!0),!0}})),0===O.length&&U(!1))}),[O.map((e=>e.status)).join(","),O.map((e=>e.dataURL)).join(",")]);const G=(e=!1)=>{e?h&&(document.body.classList.remove("lifesg-ds-overlay-open"),U(!0)):N((e=>e.map((e=>e.status<mP.UPLOAD_READY&&e.status>mP.NONE?{...e,status:mP.UPLOAD_READY}:e)))),P(!1)};return t(n,{children:[e(v,{fallback:null,children:e(nB,{accepts:L,compress:!!c,crop:!!l,dimensions:p,editImage:h,id:E,maxSizeInKb:R,outputType:g,upload:y,filenameMatches:_?.find((e=>"matches"in e))?.matches,filenameMatchesErrorMessage:_?.find((e=>"matches"in e))?.errorMessage,value:x})}),e(fU,{id:E,capture:a,className:s,label:m,description:f,buttonLabel:i,accepts:L,maxFiles:k,maxSizeInKb:R,dimensions:p,errorMessage:T.error?.message,validation:_,multiple:b,warning:M}),e(BM,{id:`${E}-review-prompt`,title:"Review photos?",size:"large",show:F,description:"This lets you check if you've selected the correct photos, and draw on them to highlight the issue.",buttons:[{id:"ok",title:"Ok",onClick:()=>G(!0)},{id:"skip",title:"Skip",buttonStyle:"secondary",onClick:()=>G()}]}),(()=>{const t=_?.find((e=>"max"in e));return e(tB,{accepts:L,dimensions:p,id:E,className:s,maxFiles:k,maxFilesErrorMessage:t?.errorMessage,maxSizeInKb:R,onExit:()=>U(!1),outputType:g,show:Z,multiple:b,capture:a,imageReviewModalStyles:A})})()]})},iB=D`
987
+ `,XU=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=async e=>{const t=Array.from(e.target.files||[]);t.length&&setTimeout((()=>{f(t)}),100)},g=()=>h?.current?.click();return t(jU,{id:zA.generateId(u),children:[c.map(((n,r)=>n.status===mP.NONE?e(WU,{children:[...Array(4)].map(((t,n)=>e(YU,{},`dot-${n}`)))},r):n.status>mP.NONE||n.status===mP.ERROR_CUSTOM_MUTED?e(VU,{id:zA.generateId(u,`item-${r+1}`),"data-testid":zA.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(qU,{isSelected:a===r})},r):"reviewModal"===n.addedFrom||n.status<mP.NONE?t(VU,{id:zA.generateId(u,`item-${r+1}`),"data-testid":zA.generateId(u,`item-${r+1}`),type:"button","aria-label":`error with ${n.name}`,onClick:()=>d(r),error:!0,children:[e(qU,{isSelected:a===r}),e(GU,{})]},r):void 0)),(c.filter((({status:e,addedFrom:t})=>e>=mP.NONE||e===mP.ERROR_CUSTOM_MUTED||"reviewModal"===t)).length<l||!l)&&t(n,{children:[e(KU,{id:zA.generateId(u,"file-input"),"data-testid":zA.generateId(u,"file-input"),type:"file","aria-hidden":"true",tabIndex:-1,capture:o,ref:h,accept:i.map((e=>`.${e}`)).join(", "),onChange:m,multiple:p,value:""}),e(JU,{type:"button",id:zA.generateId(u,"add-image-button"),"data-testid":zA.generateId(u,"add-image-button"),"aria-label":"add image",styleType:"secondary",onClick:g,children:e(ce,{})})]})]})},QU=_((()=>import("./index.3cad6b83.js"))),eB=[{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"}],tB=r=>{const{accepts:i,capture:a,className:c,compress:l,dimensions:p,id:h="image-review",maxFiles:m,maxSizeInKb:g,onExit:y,outputType:_,show:b,multiple:A,maxFilesErrorMessage:E,imageReviewModalStyles:S}=r,{images:w,setImages:x}=d(dP),{dispatchFieldEvent:M,addFieldEventListener:T,removeFieldEventListener:O}=UI(),N=a$(b),[C,D]=o(w.length-1),[L,I]=o(!1),[k,R]=o(),z=!!w?.find((({status:e})=>e===mP.NONE)),[F,P]=o(eB[0].color),[Z,U]=o(!1),B=s(null),j=!!w?.find((({addedFrom:e,status:t})=>"reviewModal"===e&&t<=mP.NONE))||!w.length,V=f((e=>{e.detail.removePendingImages&&x((e=>e.filter((({status:e})=>e===mP.UPLOADED||e===mP.ERROR_CUSTOM_MUTED)))),y()}),[y,x]),G=e=>{!m||e.length+w.filter((({status:e,addedFrom:t})=>e>=mP.NONE||"reviewModal"===t)).length<=m?e.forEach((e=>{x((t=>{const n=pP.findAvailableSlot(t);return[...t,{id:Lm(),file:e,name:e.name,dimensions:p,status:mP.NONE,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))})):x((t=>{const n=pP.findAvailableSlot(t);return[...t,{id:Lm(),file:e[0],name:e[0].name,dimensions:p,status:mP.ERROR_EXCEED,uploadProgress:0,addedFrom:"reviewModal",slot:n}]}))},H=e=>{e&&(x((e=>e.map(((e,t)=>({...e,...t===C?{status:mP.TO_DELETE}:{}}))))),D(Math.max(0,C-1))),R(null)},Y=f((()=>{x((e=>e.filter((({status:e})=>e>=mP.NONE||e===mP.ERROR_CUSTOM_MUTED)).map((e=>{const t={...e};return e.drawingDataURL&&(t.dataURL=e.drawingDataURL),e.status<mP.UPLOAD_READY&&e.status>mP.NONE&&(t.status=mP.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=()=>{I(!0),P(eB[0].color)},K=async()=>{const{dataURL:e,drawing:t}=B.current?.export()||{},n=await yA.dataUrlToImage(e),r=await yA.resampleImage(n,{scale:96/n.width,type:Om.fileExtensionToMimeType(_)}),i=await Om.fileToDataUrl(r);x((n=>{const r=[...n];return r[C]={...r[C],thumbnailDataURL:i,drawingDataURL:e,drawing:t,status:l?mP.TO_RECOMPRESS:mP.EDITED},r})),I(!1),X()},J=()=>{X(),U(!0)},X=()=>{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((()=>{D(w.length-1)}),[w.length]),u((()=>{b?M("show-review-modal",h):N&&M("hide-review-modal",h)}),[b]);return e($,{id:zA.generateId(h,void 0,b?"show":"hide"),className:c?`${c}-review`:void 0,show:b,children:e(EU,{className:c?`${c}-review-modal-box`:void 0,imageReviewModalStyles:S,showCloseButton:!1,children:b?t(n,{children:[e(SU,{className:c?`${c}-header`:void 0,$drawActive:L,children:t(n,L?{children:[e(TU,{id:zA.generateId(h,"clear-drawing-button"),"data-testid":zA.generateId(h,"clear-drawing-button"),onClick:()=>R("clear-drawing"),children:"Clear"}),e(TU,{id:zA.generateId(h,"save-drawing"),"data-testid":zA.generateId(h,"save-drawing"),onClick:K,children:"Save"})]}:{children:[e(wU,{id:zA.generateId(h,"close-button"),"data-testid":zA.generateId(h,"close-button"),"aria-label":"exit review modal",onClick:()=>R("exit"),children:e(re,{type:"cross"})}),e(xU,{weight:"semibold",children:"Review photos"})]})}),t(OU,{children:[w.length>0&&e($U,{className:c?`${c}-editor`:void 0,children:e(v,{fallback:null,children:e(QU,{baseImageDataURL:w[C]?.dataURL,drawing:w[C]?.drawing,color:L?F:void 0,erase:!!L&&Z,ref:B,maxSizeInKb:g})})}),w.length>0&&e(NU,{children:"Loading Preview..."}),!L&&w[C]?.status>=mP.NONE&&t(CU,{children:[t(DU,{id:zA.generateId(h,"draw-button"),"data-testid":zA.generateId(h,"draw-button"),onClick:q,disabled:z,children:[e(IU,{$disabled:z}),e(LU,{weight:"semibold",$disabled:z,children:"Draw"})]}),t(DU,{id:zA.generateId(h,"delete-button"),"data-testid":zA.generateId(h,"delete-button"),onClick:()=>R("delete"),disabled:z,children:[e(kU,{$disabled:z}),e(LU,{weight:"semibold",$disabled:z,children:"Delete"})]})]}),w[C]?.status<mP.NONE&&e(bU,{id:`${h}-photo-error`,image:w[C],accepts:i,maxSizeInKb:g,onClickOk:()=>H(!0),maxFilesErrorMessage:E,maxFiles:m})]}),e(RU,{className:c?`${c}-footer`:void 0,children:t(n,L?{children:[e(FU,{id:zA.generateId(h,"eraser-button"),"data-testid":zA.generateId(h,"eraser-button"),"aria-label":"eraser",onClick:J,children:e(PU,{$eraseMode:Z})}),e(UU,{children:eB.map((({color:t,colorScheme:n,label:r},i)=>e(BU,{id:zA.generateId(h,`palette-color-${i}`),"aria-label":`${r} brush`,$color:t,$colorScheme:n,onClick:()=>(e=>{X(),P(e)})(t),children:F===t&&e(ZU,{$colorScheme:n})},t)))})]}:{children:[e(XU,{id:`${h}-image-thumbnails`,activeFileIndex:C,accepts:i,capture:a,maxFiles:m,images:w,onClickThumbnail:D,onSelectFile:G,multiple:A}),e(zU,{id:zA.generateId(h,"save-button"),"data-testid":zA.generateId(h,"save-button"),onClick:W,disabled:j,children:"Save"})]})}),e(AU,{images:w,show:k,onDecideClearDrawing:e=>{e&&B.current.clearDrawing(),R(null)},onDecideDelete:H,onDecideExit:e=>{e&&(x(w.filter((({addedFrom:e,status:t})=>t>=mP.UPLOADED||t<mP.NONE&&"dragInput"===e)).map((e=>({...e,drawingDataURL:void 0,drawing:void 0})))),y()),R(null)}})]}):e(n,{})})})},nB=_((()=>import("./index.584be54b.js"))),rB=r=>{const{schema:{buttonLabel:i,capture:a,className:s,compress:c,crop:l,description:f,dimensions:p={width:1e3,height:1e3},editImage:h,label:m,outputType:g="jpg",uploadOnAddingFile:y,validation:_,multiple:b,imageReviewModalStyles:A},id:E,isDirty:S,isTouched:w,value:x,warning:M,...T}=r,{images:O,setImages:N,currentFileIds:C}=d(dP),D=a$(O),[L,I]=o([...hP]),[k,$]=o(0),[R,z]=o(0),[F,P]=o(!1),[Z,U]=o(!1),{setFieldValidationConfig:B}=t$(),{dispatchFieldEvent:j}=UI(),V=s$();u((()=>{j("mount",E)}),[j,E]),u((()=>{if(!S&&!w){const e=Array.isArray(x)?x:[];if(!(iP(e.map((({fileId:e})=>e)),C).length>0))return;const t=[];e.forEach((({fileId:e,fileName:n,dataURL:r,uploadResponse:i},a)=>{const o={id:e||Lm(),file:{},name:n,dimensions:{width:10,height:10},dataURL:r,status:mP.INJECTED,addedFrom:"schema",uploadProgress:100,slot:a,uploadResponse:i};t.push(o)})),N(t)}}),[S,w,C,N,x]),u((()=>{const e=_?.find((e=>"required"in e)),t=_?.find((e=>"fileType"in e)),n=_?.find((e=>"maxSizeInKb"in e));t?.fileType&&t?.fileType!==L&&I(t?.fileType),n?.maxSizeInKb&&n?.maxSizeInKb!==R&&z(n?.maxSizeInKb);const r=_?.find((e=>"length"in e)),i=_?.find((e=>"max"in e));let a;r?a={maxFiles:r.length,errorMessage:r.errorMessage}:i&&(a={maxFiles:i.max,errorMessage:i.errorMessage}),a?.maxFiles&&k!==a.maxFiles&&$(a.maxFiles),B(E,xM().of(SM().shape({fileName:ux(),dataURL:ux()})).test("is-empty-array",e?.errorMessage||Nm.UPLOAD("photo").REQUIRED,(t=>!t||!e?.required||t.length>0)).test("max-size-in-kb",n?.errorMessage||Nm.UPLOAD("photo").MAX_FILE_SIZE(n?.maxSizeInKb),(e=>!(e&&Array.isArray(e)&&n?.maxSizeInKb)||e.every((e=>Om.getFilesizeFromBase64(e.dataURL)<=1024*n?.maxSizeInKb)))),_)}),[_]),u((()=>{O.some((e=>e.status===mP.NONE))||(O.some(((e,t)=>{const n=D?.[t];if(e.status!==n?.status||e.dataURL!==n.dataURL)switch(e.status){case mP.COMPRESSED:case mP.CONVERTED:if(h&&!Z)return V()?U(!0):P(!0),!0}})),0===O.length&&U(!1))}),[O.map((e=>e.status)).join(","),O.map((e=>e.dataURL)).join(",")]);const G=(e=!1)=>{e?h&&(document.body.classList.remove("lifesg-ds-overlay-open"),U(!0)):N((e=>e.map((e=>e.status<mP.UPLOAD_READY&&e.status>mP.NONE?{...e,status:mP.UPLOAD_READY}:e)))),P(!1)};return t(n,{children:[e(v,{fallback:null,children:e(nB,{accepts:L,compress:!!c,crop:!!l,dimensions:p,editImage:h,id:E,maxSizeInKb:R,outputType:g,upload:y,filenameMatches:_?.find((e=>"matches"in e))?.matches,filenameMatchesErrorMessage:_?.find((e=>"matches"in e))?.errorMessage,value:x})}),e(fU,{id:E,capture:a,className:s,label:m,description:f,buttonLabel:i,accepts:L,maxFiles:k,maxSizeInKb:R,dimensions:p,errorMessage:T.error?.message,validation:_,multiple:b,warning:M}),e(BM,{id:`${E}-review-prompt`,title:"Review photos?",size:"large",show:F,description:"This lets you check if you've selected the correct photos, and draw on them to highlight the issue.",buttons:[{id:"ok",title:"Ok",onClick:()=>G(!0)},{id:"skip",title:"Skip",buttonStyle:"secondary",onClick:()=>G()}]}),(()=>{const t=_?.find((e=>"max"in e));return e(tB,{accepts:L,dimensions:p,id:E,className:s,maxFiles:k,maxFilesErrorMessage:t?.errorMessage,maxSizeInKb:R,onExit:()=>U(!1),outputType:g,show:Z,multiple:b,capture:a,imageReviewModalStyles:A})})()]})},iB=D`
988
988
  border: ${E["width-010"]} ${E.solid} ${A["border-focus"]};
989
989
  box-shadow: none;
990
990
  `,aB=D`
@@ -1063,7 +1063,7 @@ object-assign
1063
1063
  ${e=>D`
1064
1064
  margin-left: ${e.$readOnly?S["spacing-4"]:S["spacing-12"]};
1065
1065
  `}
1066
- `,lB=n=>{const{id:r,"data-testid":i,className:a,disabled:o,readOnly:s,onFocus:u,value:c,placeholder:l,error:d}=n;return t(sB,{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(uB,l&&!c?{$placeholder:!0,$disabled:o,children:l}:{$disabled:o,children:c}),e(cB,{$disabled:o,$readOnly:s,"aria-hidden":"true",children:e(de,{})})]})},dB=t=>{const{id:n,label:r,className:i,locationInputPlaceholder:a="",onFocus:o,value:s,errorMessage:u,disabled:c,readOnly:l}=t;return e(Q.CustomField,{id:zA.generateId(n,"location-input"),"data-testid":zA.generateId(n,"location-input"),label:r,errorMessage:u,children:e(lB,{id:zA.generateId(n,"location-input-base"),"data-testid":zA.generateId(n,"location-input-base"),disabled:c,readOnly:l,placeholder:a,onFocus:o,value:s,error:!!u,className:i})})},fB=_((()=>import("./location-modal.fa87096f.js")));class pB extends Error{code;message;constructor(e){super(),Object.assign(this,e)}}const hB=C(N.BodyMD)`
1066
+ `,lB=n=>{const{id:r,"data-testid":i,className:a,disabled:o,readOnly:s,onFocus:u,value:c,placeholder:l,error:d}=n;return t(sB,{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(uB,l&&!c?{$placeholder:!0,$disabled:o,children:l}:{$disabled:o,children:c}),e(cB,{$disabled:o,$readOnly:s,"aria-hidden":"true",children:e(de,{})})]})},dB=t=>{const{id:n,label:r,className:i,locationInputPlaceholder:a="",onFocus:o,value:s,errorMessage:u,disabled:c,readOnly:l}=t;return e(Q.CustomField,{id:zA.generateId(n,"location-input"),"data-testid":zA.generateId(n,"location-input"),label:r,errorMessage:u,children:e(lB,{id:zA.generateId(n,"location-input-base"),"data-testid":zA.generateId(n,"location-input-base"),disabled:c,readOnly:l,placeholder:a,onFocus:o,value:s,error:!!u,className:i})})},fB=_((()=>import("./location-modal.dee579fe.js")));class pB extends Error{code;message;constructor(e){super(),Object.assign(this,e)}}const hB=C(N.BodyMD)`
1067
1067
  cursor: ${e=>e.disabled?"not-allowed":"pointer"};
1068
1068
  `,mB=C(pe)`
1069
1069
  margin-right: ${S["spacing-4"]};
@@ -1099,7 +1099,7 @@ object-assign
1099
1099
  gap: ${S["spacing-16"]};
1100
1100
  `,EB=C.div`
1101
1101
  ${({$color:e})=>e&&`color: ${e};`}
1102
- `;var SB;!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"}(SB||(SB={}));var wB=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}=UI(),p=t=>{if(!t)return null;const n=G[t];return e(n,{})};return t(Z$,{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}=Ye(),[b,A]=o(y||[]),{setFieldValidationConfig:E}=t$();u((()=>{const e=m?.find((e=>"required"in e));E(s,xM().of(ux()).test("is-empty-array",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m)}),[m]),Zs((()=>{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=oR(r,e,n?.value):(r.push(e),r=oR(r,n?.value)),c({target:{value:r}})},w=e=>b.includes(e),x=()=>{const e=Lm();return`${s}-${e}`},M=t=>"string"==typeof t?e(oI,{inline:!0,children:t}):e(NB,{children:t});return t(n,{children:[e(Q.CustomField,{id:s,label:i,errorMessage:a?.message,children:"toggle"===d?.styleType?h.length>0&&"toggle"===d.styleType&&e(lR,{$layoutType:d?.layoutType??"horizontal",className:l?`${l}-checkbox-container`:void 0,children:h.map(((t,n)=>{const r=x();return e(dR,{type:"checkbox","data-testid":zA.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(NB,{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(cR,{className:l?`${l}-checkbox-container`:void 0,children:[e(uR,{...g,"data-testid":zA.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(sR,{forwardedAs:"label",htmlFor:i,disabled:f??n.disabled,children:M(n.label)})]},r)}))}),e(_I,{id:s,message:_})]})},Chips:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{disabled:l,label:d,options:f,textarea:p,validation:m,...g},value:y,warning:_,...v}=r,[b,A]=o(y||[]),[E,S]=o(!1),[w,x]=o(!0),{setValue:M,unregister:T}=Ye(),{setFieldValidationConfig:O,removeFieldValidationConfig:N}=t$();u((()=>{E||T(D())}),[]),u((()=>{const e=m?.find((e=>"required"in e)),t=m?.find((e=>"max"in e)),n=m?.find((e=>"length"in e));O(s,xM().of(ux()).test("is-empty-array",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m),1!==t?.max&&1!==n?.length||x(!1)}),[m]),Zs((()=>{const e=[...f.map((e=>e.value)),p?.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 p?.label?p?.label:p?.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(Q.CustomField,{label:a,errorMessage:i?.message,...v,children:[t(vR,{"data-testid":zA.generateId(s,"chips"),$showTextarea:E,children:[f.map(((e,t)=>h(LM,{...g,key:t,onClick:()=>k(e.value),isActive:C(e.value),disabled:l??e.disabled},e.label))),(()=>{if(!p?.label)return;const t=L();return e(LM,{...g,onClick:()=>{k(t)},isActive:C(t),children:t})})()]}),(()=>{if(!p?.label)return e(n,{});const t=D(),r={uiType:"textarea",className:g.className?`${g.className}-textarea`:void 0,...p};return E?e(fR,{id:t,schema:r,Field:_R}):e(n,{})})()]}),e(_I,{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}=Ye(),[S,w]=o(v||""),x=a$(f),[M,T]=o(f),[O]=o((()=>{const e=new Map;return bR.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:$}=t$();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,ux().test("singaporeNumber",r||Nm.CONTACT.INVALID_SINGAPORE_NUMBER,(e=>!e||!t||xF.isSingaporeNumber(e,t))).test("internationalNumber",r||Nm.CONTACT.INVALID_INTERNATIONAL_NUMBER,(e=>!(e&&!t&&n)||xF.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}=xF.getParsedPhoneNumber(v||""),n=e.replace(/\+/g,""),r=(e=>{for(const[t,,,n]of bR)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),xF.formatPhoneNumber(e.countryCode,e.number)||""};return t(n,{children:[e(Q.PhoneNumberInput,{..._,...A,"data-testid":zA.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(_I,{id:c,message:b})]})},DateField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{label:d,useCurrentDate:f,dateFormat:p=MF,validation:h,...m},value:g,warning:y,..._}=r,{setValue:v}=Ye(),[b,A]=o(g||""),[E,S]=o(),{setFieldValidationConfig:w}=t$();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=Cm.toLocalDateOrTime(a?.minDate,p,"date"),f=Cm.toLocalDateOrTime(o?.maxDate,p,"date");w(s,ux().test("is-date",e?.errorMessage||Nm.DATE.INVALID,(e=>!e||""===e||!!T(e)&&!!Cm.toLocalDateOrTime(e,p,"date"))).test("future",t?.errorMessage||Nm.DATE.MUST_BE_FUTURE,(e=>{if(!T(e)||!t?.future)return!0;const n=Cm.toLocalDateOrTime(e,p,"date");return!!n?.isAfter(Bf.now())})).test("past",n?.errorMessage||Nm.DATE.MUST_BE_PAST,(e=>{if(!T(e)||!n?.past)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!!t?.isBefore(Bf.now())})).test("not-future",r?.errorMessage||Nm.DATE.CANNOT_BE_FUTURE,(e=>{if(!T(e)||!r?.notFuture)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(Bf.now())})).test("not-past",i?.errorMessage||Nm.DATE.CANNOT_BE_PAST,(e=>{if(!T(e)||!i?.notPast)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(Bf.now())})).test("min-date",a?.errorMessage||Nm.DATE.MIN_DATE(Cm.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!d)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(d)})).test("max-date",o?.errorMessage||Nm.DATE.MAX_DATE(Cm.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!f)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(f)})).test("excluded-dates",u?.errorMessage||Nm.DATE.DISABLED_DATES,(e=>!T(e)||!u||!u.excludedDates.includes(e))).test("within-days",c?.errorMessage||c?.withinDays&&Nm.DATE.WITHIN_DAYS(c?.withinDays),(e=>!T(e)||!c||Cm.checkWithinDays(e,{...c.withinDays,dateFormat:p}))).test("beyond-days",l?.errorMessage||l?.beyondDays&&Nm.DATE.BEYOND_DAYS(l?.beyondDays),(e=>!T(e)||!l||Cm.checkBeyondDays(e,{...l.beyondDays,dateFormat:p}))),h);const m=c?.withinDays&&Cm.calculateDisabledWithinDaysRange({...c.withinDays,dateFormat:p}),g=l?.beyondDays&&Cm.calculateDisabledBeyondDaysRange({...l.beyondDays,dateFormat:p}),y=M([d,t?.future&&Bf.now().plusDays(1),i?.notPast&&Bf.now(),m?.startDate,g?.startDate]),_=x([f,n?.past&&Bf.now().minusDays(1),r?.notFuture&&Bf.now(),m?.endDate,g?.endDate]),v=[...u?.excludedDates||[]];(y||_||v)&&S((e=>({...e,minDate:y?.format(TF),maxDate:_?.format(TF),disabledDates:v})))}),[h]),u((()=>{if(p)if(g)if(T(g)){const e=Cm.toLocalDateOrTime(g,p,"date");A(Cm.formatDateTime(e?.toString(),MF,"date",Nm.DATE.INVALID))}else A(Nm.DATE.INVALID);else if(!c)if(f){const e=Cm.formatDateTime(Bf.now().toString(),p,"date");v(s,e);const t=Cm.formatDateTime(Bf.now().toString(),MF,"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!==Nm.DATE.INVALID;return t(n,{children:[e(Q.DateInput,{...m,..._,...E,id:s,"data-testid":zA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:e=>{l({target:{value:Cm.formatDateTime(e,p,"date",Nm.DATE.INVALID)}})},value:b}),e(_I,{id:s,message:y})]})},DateRangeField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{dateFormat:d=NF,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}=t$(),[M,T]=o([]);u((()=>{x(s,SM().shape({from:ux(),to:ux()}).test({name:"is-empty-string",test(e,t){T(t.schema.describe().meta?.rules??[]);const n=L(t.schema.describe().meta?.rules,"required");if(!e||!n)return!0;return!!(e.from?.length>0&&e.to?.length>0)||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.REQUIRED})}}).test({name:"is-date",test(e,t){const n=p?.find((e=>!!e&&"dateFormat"in e&&e.dateFormat));if(sI.exports.isEmpty(e?.from)||sI.exports.isEmpty(e?.to))return!0;return!(!C(e.from)||!C(e.to)||!Cm.toLocalDateOrTime(e.from,d,"date")||!Cm.toLocalDateOrTime(e.to,d,"date"))||t.createError({message:n?.errorMessage||Nm.DATE_RANGE.INVALID})}}).test({name:"number-of-days",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"numberOfDays"),r=n?.numberOfDays;if(!C(e.from)||!C(e.to)||!r)return!0;const i=Cm.toLocalDateOrTime(e.from,d,"date");return!!Cm.toLocalDateOrTime(e.to,d,"date").equals(i.plusDays(r-1))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MUST_HAVE_NUMBER_OF_DAYS(r)})}}).test({name:"future",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"future");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(!r?.isAfter(Bf.now())||!i?.isAfter(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MUST_BE_FUTURE})}}).test({name:"past",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"past");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(!r?.isBefore(Bf.now())||!i?.isBefore(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MUST_BE_PAST})}}).test({name:"not-future",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"notFuture");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(r?.isAfter(Bf.now())||i?.isAfter(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.CANNOT_BE_FUTURE})}}).test({name:"not-past",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"notPast");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(r?.isBefore(Bf.now())||i?.isBefore(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.CANNOT_BE_PAST})}}).test({name:"min-date",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"minDate"),r=n?.minDate,i=r?Cm.toLocalDateOrTime(r,d,"date"):void 0;if(!C(e.from)||!C(e.to)||!i)return!0;const a=Cm.toLocalDateOrTime(e.from,d,"date"),o=Cm.toLocalDateOrTime(e.to,d,"date");return!(a?.isBefore(i)||o?.isBefore(i))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MIN_DATE(Cm.formatDateTime(r,"dd/MM/uuuu","date"))})}}).test({name:"max-date",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"maxDate"),r=n?.maxDate,i=r?Cm.toLocalDateOrTime(r,d,"date"):void 0;if(!C(e.from)||!C(e.to)||!i)return!0;const a=Cm.toLocalDateOrTime(e.from,d,"date"),o=Cm.toLocalDateOrTime(e.to,d,"date");return!(a?.isAfter(i)||o?.isAfter(i))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MAX_DATE(Cm.formatDateTime(r,"dd/MM/uuuu","date"))})}}).test({name:"excluded-dates",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"excludedDates"),r=n?.excludedDates;if(!C(e.from)||!C(e.to)||!r)return!0;const i=Cm.toLocalDateOrTime(e.from,d,"date"),a=Cm.toLocalDateOrTime(e.to,d,"date");try{const e=r.map((e=>Cm.toLocalDateOrTime(e,d,"date")));for(const r of e)if(i.isEqual(r)||a.isEqual(r))return t.createError({message:n?.errorMessage??Nm.DATE_RANGE.DISABLED_DATES});return!0}catch{return!1}}}),p);const e=L(M,"future"),t=L(M,"past"),n=L(M,"notFuture"),r=L(M,"notPast"),i=L(M,"minDate"),a=L(M,"maxDate"),o=L(M,"excludedDates"),u=L(M,"numberOfDays"),c=Cm.toLocalDateOrTime(i?.minDate,d,"date"),l=Cm.toLocalDateOrTime(a?.maxDate,d,"date"),f=N([c,e?.future&&Bf.now().plusDays(1),r?.notPast&&Bf.now()]),m=O([l,t?.past&&Bf.now().minusDays(1),n?.notFuture&&Bf.now()]),g=o?.excludedDates,y=u?.numberOfDays;w((e=>({...e,minDate:f?.format(CF),maxDate:m?.format(CF),disabledDates:g,numberOfDays:y})))}),[p,M]),u((()=>{D(OF.START)}),[g.from,d,c]),u((()=>{D(OF.END)}),[g.to,d,c]);const O=e=>e.filter((e=>e)).sort(((e,t)=>e.isAfter(t)?1:-1))?.[0],N=e=>e.filter((e=>e)).sort(((e,t)=>e.isBefore(t)?1:-1))?.[0],C=e=>e&&e!==Nm.DATE_RANGE.INVALID,D=e=>{const t=e===OF.START?g.from:g.to,n=e===OF.START?b:E;if(d)if(t)if(C(t)){const e=Cm.toLocalDateOrTime(t,d,"date");n(Cm.formatDateTime(e?.toString(),NF,"date",Nm.DATE_RANGE.INVALID))}else n(Nm.DATE_RANGE.INVALID);else c||n(void 0)},L=(e,t)=>{const n=e?.find((e=>t in e)),r=p?.find((e=>!!e&&t in e));return sI.exports.isEmpty(n)?sI.exports.isEmpty(r)?void 0:r:n};return t(n,{children:[e(Q.DateRangeInput,{...m,..._,...S,id:s,"data-testid":zA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:(e,t)=>{l({target:{value:{from:Cm.formatDateTime(e,d,"date",Nm.DATE_RANGE.INVALID),to:Cm.formatDateTime(t,d,"date",Nm.DATE_RANGE.INVALID)}}})},value:v,valueEnd:A,variant:h}),e(_I,{id:s,message:y})]})},get TDateRangeInputType(){return OF},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}=t$(),M=s(null),{clearErrors:T}=Ye();u((()=>{const e=p?.find((e=>"upload"in e&&e.upload));M.current=e,x(a,SM().shape({fileId:ux().required(),dataURL:ux(),fileUrl:ux(),uploadResponse:Qw().nullable()}).default(void 0),p)}),[p]),u((()=>{if(E(0),N(m)){if(m.dataURL)_(m.dataURL);else if(m.fileUrl){const e=D(m.fileId,m.fileUrl);return()=>e.abort()}}else _(null)}),[m]);const O=async e=>{if(!e)return _(null),E(0),b(0),w(null),void c({target:{value:null}});const t=Lm();if(_(e),E(0),$A(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 Om.dataUrlToBlob(t),i=Om.blobToFile(r,{name:e,lastModified:Date.now()});n.append("file",i,e)}const r=await new kl("",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 kl("",void 0,void 0,!1,{responseType:"blob"}).get(t,{signal:n.signal}),i=await Om.getType(new File([r],e)),a=new File([r],e,{type:i.mime}),o=await Om.fileToDataUrl(a);_(o),E(0)}catch(e){if(e instanceof _l)return;E((e=>e+1))}})(),n};return t(DF,{children:[e(Q.ESignature,{...h,id:a,label:i,onChange:O,value:y,...null!==S&&{loadingProgress:S}}),(r?.message||v||A)&&null===S?v>0?t(LF,{children:[M.current?.errorMessage||Nm.ESIGNATURE.UPLOAD,e(IF,{type:"button",onClick:()=>O(y),children:"Please try again."}),v>=3&&e(kF,{type:"warning","data-testid":"upload-refresh-alert",children:"Refresh this page if you cannot upload your signature."})]}):A>0&&N(m)?t(LF,{children:["Failed to load.",e(IF,{type:"button",onClick:()=>D(m.fileId,m.fileUrl),children:"Please try again."}),A>=3&&e(kF,{type:"warning","data-testid":"load-refresh-alert",children:"Refresh this page if your signature failed to load."})]}):e(LF,{children:r?.message}):null,e(_I,{id:a,message:g})]})},ErrorField:t=>{const{id:n,schema:{children:r}}=t,{setFieldValidationConfig:i}=t$();return u((()=>{i(n,Qw().test((()=>!1)),[])}),[]),r?e(NB,{children:r}):null},FileUploadInner:lP,FileUpload:t=>e(oP,{children:e(lP,{...t})}),get EFileStatus(){return uP},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}=t$(),{setValue:m}=Ye();return u((()=>{let e;switch(l){case"null":e=Qw();break;case"number":e=lx();break;case"boolean":e=tx();break;default:e=ux()}h(n,e,c)}),[c,l]),u((()=>{"null"===l&&null!==p?m(n,null):FA(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}=Ye(),[E,S]=o(void 0),{setFieldValidationConfig:w}=t$();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,SM({from:lx(),to:lx()}).test("is-required",e?.errorMessage||Nm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!FA(t.from)&&!FA(t.to))).test("is-bin",t?.errorMessage||Nm.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||Nm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Nm.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(Q.HistogramSlider,{..._,id:s,"data-testid":zA.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(_I,{id:s,message:b})]})},ImageUploadInner:rB,ImageUpload:t=>e(fP,{children:e(rB,{...t})}),ACCEPTED_FILE_TYPES:hP,get EImageStatus(){return mP},LocationField:n=>{const{error:r,formattedLabel:i,id:a,schema:{className:s="location",mapApi:c,disabled:l,gettingCurrentLocationFetchMessage:d,interactiveMapPinIconUrl:f,label:p,locationInputPlaceholder:h,locationListTitle:m,locationModalStyles:g,mapBannerText:y,mapPanZoom:_,mustHavePostalCode:b,readOnly:A,staticMapPinColor:E,validation:S,hasExplicitEdit:w,locationSelectionMode:x="default",disableSearch:M,addressFieldPlaceholder:T,searchBarIcon:O,bufferRadius:N,pinsOnlyIndicateCurrentLocation:C},value:D,warning:L}=n,[I,$]=o(!1),{setValue:R}=Ye(),{setFieldValidationConfig:z}=t$(),{dispatchFieldEvent:F,addFieldEventListener:P,removeFieldEventListener:Z}=UI();u((()=>(P("show-location-modal",a,j),()=>{Z("show-location-modal",a,j)})),[]),u((()=>{const e=S?.find((e=>"required"in e)),t=S?.find((e=>"postalCode"in e));z(a,SM({address:ux(),blockNo:ux(),building:ux(),lat:lx(),lng:lx(),postalCode:ux(),roadName:ux(),x:lx(),y:lx()}).test("is-required",e?.errorMessage||Nm.COMMON.FIELD_REQUIRED,(t=>!e?.required||!!t&&!!t.lat&&!!t.lng)).test("must-have-postal-code",t?.errorMessage||Nm.LOCATION.MUST_HAVE_POSTAL_CODE,(t=>!e||!b||fI.hasGotAddressValue(t.postalCode))),S)}),[S]);const U=(e,t=!0)=>{R(a,e,{shouldDirty:t})},B=()=>{A||l||($(!0),F("show-location-modal",a))},j=()=>{$(!0)};return t("div",{id:a,"data-testid":zA.generateId(a),className:s,children:[e(dB,{id:a,label:i,className:s,locationInputPlaceholder:h,onChange:e=>e.currentTarget.blur(),onFocus:B,value:D?.address||"",errorMessage:r?.message,disabled:"explicit"===w&&!!D?.address||l,readOnly:A}),w&&D?.address&&e(k.Default,{id:zA.generateId(a,"edit-button"),"data-testid":zA.generateId(a,"edit-button"),styleType:"secondary",onClick:()=>{!F("click-edit-button",a)||$(!0)},type:"button",children:"Edit"}),!!D?.lat&&!!D?.lng&&e(yI,{id:a,className:`${s}-static-map`,lat:D.lat,lng:D.lng,staticMapPinColor:E,onClick:B,disabled:l}),e(v,{fallback:null,children:fB&&e(fB,{id:a,className:s,showLocationModal:I,onClose:()=>{$(!1),F("hide-location-modal",a)},formValues:D,onConfirm:U,updateFormValues:U,mapPanZoom:_,mapApi:c,interactiveMapPinIconUrl:f,gettingCurrentLocationFetchMessage:d,mustHavePostalCode:b,locationModalStyles:g,locationListTitle:m,mapBannerText:y,locationSelectionMode:x,disableSearch:M,addressFieldPlaceholder:T,searchBarIcon:O,bufferRadius:N,pinsOnlyIndicateCurrentLocation:C})}),e(_I,{id:a,message:L})]})},GeolocationPositionErrorWrapper:pB,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}=t$();u((()=>{w(s,ux(),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=G[t];return e(n,{"data-testid":t})};return t(n,{children:[e(Q.MaskedInput,{...y,...v,...E,id:s,"data-testid":zA.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(_I,{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}=Ye(),[_,v]=o(h||[]),{setFieldValidationConfig:b}=t$();u((()=>{const e=f?.find((e=>"required"in e));b(s,xM().of(ux()).test("is-empty-array",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),f)}),[f]),Us((()=>{const e=h?.filter((e=>d.find((t=>t.value===e))));y(s,e)}),[d]),u((()=>{v(h||[])}),[h]);return t(n,{children:[e(Q.MultiSelect,{...p,...g,id:s,"data-testid":zA.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(_I,{id:s,message:m})]})},NestedMultiSelect:r=>{const{schema:{label:i,validation:a,options:s=[],...c},id:l,value:d,formattedLabel:p,onChange:h,onBlur:m,error:g,warning:y,..._}=r,{setValue:v}=Ye(),{setFieldValidationConfig:b}=t$(),[A,E]=o(d),[S,w]=o([]),x=f((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,SM().test("is-required",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!e?.required||!!t&&!!Object.keys(t).length)),a)}),[a]),Us((()=>{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=d?e(s,d):d;v(l,t)}),[s]),u((()=>{E(d);const e=x(d);w(e)}),[x,A,d]);return t(n,{children:[e(Q.NestedMultiSelect,{...c,..._,id:l,"data-testid":zA.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}})},onBlur:m,selectedKeyPaths:S,errorMessage:g?.message}),e(_I,{id:l,message:y})]})},RadioButtonGroup:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:p,options:m,validation:g,...y},value:_,warning:v}=r,{setValue:b}=Ye(),[A,E]=o(_||""),{setFieldValidationConfig:S}=t$();u((()=>{S(s,ux(),g)}),[g]),Zs((()=>{m.find((e=>e.value===_))||b(s,"")}),[m]),u((()=>{E(_||"")}),[_]);const w=e=>{c({target:{value:e}})},x=e=>A===e,M=()=>{const e=Lm();return`${s}-${e}`},T=t=>"string"==typeof t?e(oI,{inline:!0,children:t}):e(NB,{children:t});return t(n,{children:[e(Q.CustomField,{id:s,label:a,errorMessage:i?.message,children:(()=>{switch(d?.styleType){case"toggle":return m.length>0&&"toggle"===d.styleType&&e(vB,{className:l?`${l} ${l}-radio-container`:void 0,$layoutType:d?.layoutType??"horizontal",children:m.map(((t,n)=>{const r=M();return h(bB,{...y,key:n,type:"radio",id:r,className:l?`${l}-radio`:void 0,"data-testid":zA.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(NB,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&T(t.subLabel)},T(t.label))}))});case"image-button":return m.length>0&&e(_B,{className:l?`${l} ${l}-radio-container`:void 0,children:m.map(((e,t)=>{const n=M();return h(gB,{...y,type:"button",key:t,id:n,className:l?`${l}-radio`:void 0,"data-testid":zA.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(yB,{className:l?`${l}-radio-container`:void 0,children:[e(mB,{...y,className:l,id:i,"data-testid":zA.generateId(s,"radio"),disabled:f??n.disabled,name:i,value:n.value,checked:x(n.value),onChange:()=>w(n.value)}),e(hB,{forwardedAs:"label",htmlFor:i,disabled:f??n.disabled,children:T(n.label)})]},r)}))}})()}),e(_I,{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}=Ye(),[_,v]=o(h.from||""),[b,A]=o(h.to||""),{setFieldValidationConfig:E}=t$();u((()=>{const e=f?.find((e=>"required"in e));E(s,SM().shape({from:ux(),to:ux()}).test("is-empty-string",e?.errorMessage||Nm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e?.required||t.from?.length>0&&t.to?.length>0)),f)}),[f]),Zs((()=>{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(Q.RangeSelect,{...p,...g,id:s,onHideOptions:()=>{h.from&&h.to||c({target:{value:{from:void 0,to:void 0}}})},"data-testid":zA.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(_I,{id:s,message:m})]})},ResetButton:t=>{const{id:n,schema:{disabled:r,ignoreDefaultValues:i,label:a,...o},...s}=t,{reset:u,getValues:c}=Ye(),{resetFields:l}=e$(),{formSchema:{defaultValues:d}}=Qk();return e(k.Default,{...o,...s,disabled:r,"data-testid":n,id:n,type:"reset",onClick:()=>{if(i){const e=c();Object.entries(e).forEach((([t,n])=>{hi(n)?e[t]=[]:D$(n)||CI(n)?e[t]="":ai(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}=Ye(),[_,v]=o(h||""),{setFieldValidationConfig:b}=t$();u((()=>{b(s,ux(),f)}),[f]),Zs((()=>{d.find((e=>e.value===h))||y(s,"")}),[d]),u((()=>{v(h||"")}),[h]);return t(n,{children:[e(Q.Select,{...p,...g,id:s,"data-testid":zA.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(_I,{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}=Ye(),[w,x]=o([0,0]),{setFieldValidationConfig:M}=t$();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,SM({from:lx(),to:lx()}).test("is-required",e?.errorMessage||Nm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!FA(t.from)&&!FA(t.to))).test("is-bin",t?.errorMessage||Nm.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||Nm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Nm.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(Q.SelectHistogram,{...v,id:s,"data-testid":zA.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(_I,{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}=t$();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,lx().test("is-incremental",n?.errorMessage||Nm.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(Q.Slider,{...d,...v,id:s,"data-testid":zA.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(_I,{id:s,message:_})]})},SubmitButton:t=>{const{id:n,schema:{disabled:r,label:i,...a},...s}=t,{submitHandler:c,wrapInForm:l}=r$(),{setFieldValidationConfig:d}=t$(),{hardValidationSchema:f}=o$(),p=it({disabled:"invalid-form"!==r}),[h,m]=o(!0===r);u((()=>{d(n,Qw())}),[]),u((()=>{"invalid-form"!==r&&m(!!r)}),[r]),Zs((()=>{(async()=>{if("invalid-form"===r)try{await f.validate(p),m(!1)}catch(e){m(!0)}})()}),[p,f]);return e(k.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}=t$();u((()=>{b(s,tx().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(Q.CustomField,{id:s,label:a,errorMessage:i?.message,children:t(AB,{className:l,role:"radiogroup","aria-label":"string"==typeof p?p:aI(p.mainLabel,{allowedTags:[]}),children:[e(te,{...m,type:"yes",id:S("yes"),"data-testid":zA.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(te,{...m,type:"no",id:S("no"),"data-testid":zA.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(_I,{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}=t$(),M=s(null),T=s(0);u((()=>{switch(_){case"numeric-field":{x(c,lx(),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,ux().email(e?.errorMessage||Nm.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,ux(),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()?Q.InputGroup:Q.Input;return t(n,{children:[e(N,{...b,...h,...S,id:c,"data-testid":zA.generateId(c,_),ref:M,type:(()=>{switch(_){case"numeric-field":return"number";case"email-field":return"email";default:return"text"}})(),label:a,onPaste:e=>{const t=e.clipboardData.getData("text");(m?.preventCopyAndPaste||"numeric-field"===_&&/e/i.test(t))&&e.preventDefault()},onDrop:e=>m?.preventDragAndDrop?e.preventDefault():null,inputMode:(()=>{if(g)return g;switch(_){case"numeric-field":return"numeric";case"email-field":return"email";case"text-field":return"text";default:return"none"}})(),onChange:e=>{if("numeric-field"===_){const t=!isNaN(parseFloat(e.target.value))?+e.target.value:void 0;return l({target:{value:t}}),void E(t)}"text-field"===f.uiType?(T.current=e.target.selectionEnd,"uppercase"===f.customOptions?.textTransform&&(e.target.value=e.target.value.toUpperCase()),l(e)):l(e),E(e.target.value)},onKeyDown:e=>{"numeric-field"===_&&"e"===e.key.toLowerCase()&&e.preventDefault()},value:A,errorMessage:i?.message,addon:(()=>{if(O()){if("label"===m.addOn.type)return{type:"label",position:m.addOn.position,attributes:{value:m.addOn.value}};if("icon"===m.addOn.type){const{icon:t,position:n,color:r}=m.addOn,i=G[t];return{type:"custom",position:n,attributes:{children:e(EB,{as:i,$color:r})}}}}})()}),e(_I,{id:c,message:p})]})},Textarea:_R,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}=t$();u((()=>{A(s,ux(),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=Cm.formatDateTime(Gf.now().toString().toUpperCase(),e,"time");b(t),c({target:{value:t}})};return t(n,{children:[e(Q.Timepicker,{...m,..._,id:s,"data-testid":zA.generateId(s,"time"),label:a,errorMessage:i?.message,value:v,placeholder:f,format:l?"24hr":"12hr",onChange:e=>{c({target:{value:e}})}}),e(_I,{id:s,message:y})]})},get EFieldType(){return SB},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:_}=t$();u((()=>{const e=d?.find((e=>"unitNumberFormat"in e));_(s,ux().matches(/^([a-zA-Z0-9]{1,3}-[a-zA-Z0-9]{1,5})$/,{excludeEmptyString:!0,message:e?.errorMessage||Nm.UNIT_NUMBER.INVALID}),d)}),[d]),u((()=>{y(p||"")}),[p]);return t(n,{children:[e(Q.UnitNumberInput,{...f,...m,id:s,"data-testid":zA.generateId(s,"unit-number"),label:i,value:g,onChange:e=>{c({target:{value:e}})},errorMessage:a?.message}),e(_I,{id:s,message:h})]})}});const xB=({id:t,children:r,childSchema:i})=>{if("columns"in i){if((a=i.columns)&&("xxs"in a||"xs"in a||"sm"in a||"md"in a||"lg"in a||"xl"in a||"xxl"in a)){const{xxs:n,xs:a,sm:o,md:s,lg:u,xl:c,xxl:l,...d}=i.columns||{};return e(P.ColDiv,{"data-testid":zA.generateId(t,"grid_item"),xlCols:c,lgCols:u,mdCols:s,smCols:o,xsCols:a,xxlCols:l,xxsCols:n,...d,children:r})}const{desktop:n,tablet:o,mobile:s,...u}=i.columns||{};return e(he.ColDiv,{"data-testid":zA.generateId(t,"grid_item"),desktopCols:n??12,tabletCols:o,mobileCols:s,...u,children:r})}var a;return e(n,{children:r})},MB=({id:t,renderRules:r,children:i,schema:a})=>{const{formValidationConfig:s,removeFieldValidationConfig:u}=t$(),[c,l]=o(void 0),{formValues:d}=e$(),{unregister:f}=Ye();Us((()=>{if($A(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($A(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:Qw().test("shown",(()=>!1)),validationRules:[]});const r=s?.[e]?.schema.type;if(r){let i=AI.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=AI.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;!$A(t)&&Dn(t)&&Object.entries(t).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))}))}))}return $A(n)||!Dn(n)||Object.entries(n).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))})),r};return $A(r)||c?e(n,{children:i}):null},TB=Object.keys(SB),OB=Object.keys(_$),NB=t=>{const{id:r,schema:i,children:a}=t,{showIf:s,uiType:u,children:c,...l}=i||{},{warnings:d}=o$(),[f,p]=o(null),{control:h}=Ye(),{getCustomComponent:m}=PI(),{formSchema:{overrides:g},overrideSchema:_}=Qk();ZI((()=>{const t=_(c||a,g);if("object"==typeof t){const n=[];Object.keys(t).forEach((r=>{const i=t[r];if($A(i)||"object"!=typeof i)return;let a=e(y,{children:Nm.GENERIC.UNSUPPORTED},r);if("referenceKey"in i){const t=i.referenceKey.toUpperCase();a=m(i.referenceKey)||P$[F$[t]]?v(r,i)(b):P$[z$[t]]?v(r,i)(A):e(y,{},r)}else"uiType"in i&&(TB.includes(i.uiType.toUpperCase())?a=v(r,i)(b):OB.includes(i.uiType.toUpperCase())&&(a=v(r,i)(A)));n.push(a)})),p(n)}else p("string"==typeof t?t:Nm.GENERIC.UNSUPPORTED)}),[c||a,g,h,d,m]);const v=(t,n)=>r=>e(MB,{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=wB[SB[n.uiType?.toUpperCase()]]:"referenceKey"in n&&(r=P$[F$[n.referenceKey?.toUpperCase()]]||m(n.referenceKey)),r?e(xB,{id:t,childSchema:n,children:e(fR,{id:t,schema:n,Field:r,warning:d?.[t]})}):null},A=(t,n)=>{let r;return"uiType"in n?r=v$[_$[n.uiType?.toUpperCase()]]||NB:"referenceKey"in n&&(r=P$[z$[n.referenceKey?.toUpperCase()]]),e(xB,{id:t,childSchema:n,children:e(r,{schema:n,id:t})})};return u?e(u,{...l,id:r,"data-testid":zA.generateId(r,u),children:f}):e(n,{children:f})},CB=C(P.Container)`
1102
+ `;var SB;!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"}(SB||(SB={}));var wB=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}=UI(),p=t=>{if(!t)return null;const n=G[t];return e(n,{})};return t(Z$,{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}=Ye(),[b,A]=o(y||[]),{setFieldValidationConfig:E}=t$();u((()=>{const e=m?.find((e=>"required"in e));E(s,xM().of(ux()).test("is-empty-array",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m)}),[m]),Zs((()=>{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=oR(r,e,n?.value):(r.push(e),r=oR(r,n?.value)),c({target:{value:r}})},w=e=>b.includes(e),x=()=>{const e=Lm();return`${s}-${e}`},M=t=>"string"==typeof t?e(oI,{inline:!0,children:t}):e(NB,{children:t});return t(n,{children:[e(Q.CustomField,{id:s,label:i,errorMessage:a?.message,children:"toggle"===d?.styleType?h.length>0&&"toggle"===d.styleType&&e(lR,{$layoutType:d?.layoutType??"horizontal",className:l?`${l}-checkbox-container`:void 0,children:h.map(((t,n)=>{const r=x();return e(dR,{type:"checkbox","data-testid":zA.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(NB,{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(cR,{className:l?`${l}-checkbox-container`:void 0,children:[e(uR,{...g,"data-testid":zA.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(sR,{forwardedAs:"label",htmlFor:i,disabled:f??n.disabled,children:M(n.label)})]},r)}))}),e(_I,{id:s,message:_})]})},Chips:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{disabled:l,label:d,options:f,textarea:p,validation:m,...g},value:y,warning:_,...v}=r,[b,A]=o(y||[]),[E,S]=o(!1),[w,x]=o(!0),{setValue:M,unregister:T}=Ye(),{setFieldValidationConfig:O,removeFieldValidationConfig:N}=t$();u((()=>{E||T(D())}),[]),u((()=>{const e=m?.find((e=>"required"in e)),t=m?.find((e=>"max"in e)),n=m?.find((e=>"length"in e));O(s,xM().of(ux()).test("is-empty-array",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),m),1!==t?.max&&1!==n?.length||x(!1)}),[m]),Zs((()=>{const e=[...f.map((e=>e.value)),p?.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 p?.label?p?.label:p?.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(Q.CustomField,{label:a,errorMessage:i?.message,...v,children:[t(vR,{"data-testid":zA.generateId(s,"chips"),$showTextarea:E,children:[f.map(((e,t)=>h(LM,{...g,key:t,onClick:()=>k(e.value),isActive:C(e.value),disabled:l??e.disabled},e.label))),(()=>{if(!p?.label)return;const t=L();return e(LM,{...g,onClick:()=>{k(t)},isActive:C(t),children:t})})()]}),(()=>{if(!p?.label)return e(n,{});const t=D(),r={uiType:"textarea",className:g.className?`${g.className}-textarea`:void 0,...p};return E?e(fR,{id:t,schema:r,Field:_R}):e(n,{})})()]}),e(_I,{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}=Ye(),[S,w]=o(v||""),x=a$(f),[M,T]=o(f),[O]=o((()=>{const e=new Map;return bR.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:$}=t$();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,ux().test("singaporeNumber",r||Nm.CONTACT.INVALID_SINGAPORE_NUMBER,(e=>!e||!t||xF.isSingaporeNumber(e,t))).test("internationalNumber",r||Nm.CONTACT.INVALID_INTERNATIONAL_NUMBER,(e=>!(e&&!t&&n)||xF.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}=xF.getParsedPhoneNumber(v||""),n=e.replace(/\+/g,""),r=(e=>{for(const[t,,,n]of bR)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),xF.formatPhoneNumber(e.countryCode,e.number)||""};return t(n,{children:[e(Q.PhoneNumberInput,{..._,...A,"data-testid":zA.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(_I,{id:c,message:b})]})},DateField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{label:d,useCurrentDate:f,dateFormat:p=MF,validation:h,...m},value:g,warning:y,..._}=r,{setValue:v}=Ye(),[b,A]=o(g||""),[E,S]=o(),{setFieldValidationConfig:w}=t$();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=Cm.toLocalDateOrTime(a?.minDate,p,"date"),f=Cm.toLocalDateOrTime(o?.maxDate,p,"date");w(s,ux().test("is-date",e?.errorMessage||Nm.DATE.INVALID,(e=>!e||""===e||!!T(e)&&!!Cm.toLocalDateOrTime(e,p,"date"))).test("future",t?.errorMessage||Nm.DATE.MUST_BE_FUTURE,(e=>{if(!T(e)||!t?.future)return!0;const n=Cm.toLocalDateOrTime(e,p,"date");return!!n?.isAfter(Bf.now())})).test("past",n?.errorMessage||Nm.DATE.MUST_BE_PAST,(e=>{if(!T(e)||!n?.past)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!!t?.isBefore(Bf.now())})).test("not-future",r?.errorMessage||Nm.DATE.CANNOT_BE_FUTURE,(e=>{if(!T(e)||!r?.notFuture)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(Bf.now())})).test("not-past",i?.errorMessage||Nm.DATE.CANNOT_BE_PAST,(e=>{if(!T(e)||!i?.notPast)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(Bf.now())})).test("min-date",a?.errorMessage||Nm.DATE.MIN_DATE(Cm.formatDateTime(a?.minDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!d)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isBefore(d)})).test("max-date",o?.errorMessage||Nm.DATE.MAX_DATE(Cm.formatDateTime(o?.maxDate,"dd/MM/uuuu","date")),(e=>{if(!T(e)||!f)return!0;const t=Cm.toLocalDateOrTime(e,p,"date");return!t?.isAfter(f)})).test("excluded-dates",u?.errorMessage||Nm.DATE.DISABLED_DATES,(e=>!T(e)||!u||!u.excludedDates.includes(e))).test("within-days",c?.errorMessage||c?.withinDays&&Nm.DATE.WITHIN_DAYS(c?.withinDays),(e=>!T(e)||!c||Cm.checkWithinDays(e,{...c.withinDays,dateFormat:p}))).test("beyond-days",l?.errorMessage||l?.beyondDays&&Nm.DATE.BEYOND_DAYS(l?.beyondDays),(e=>!T(e)||!l||Cm.checkBeyondDays(e,{...l.beyondDays,dateFormat:p}))),h);const m=c?.withinDays&&Cm.calculateDisabledWithinDaysRange({...c.withinDays,dateFormat:p}),g=l?.beyondDays&&Cm.calculateDisabledBeyondDaysRange({...l.beyondDays,dateFormat:p}),y=M([d,t?.future&&Bf.now().plusDays(1),i?.notPast&&Bf.now(),m?.startDate,g?.startDate]),_=x([f,n?.past&&Bf.now().minusDays(1),r?.notFuture&&Bf.now(),m?.endDate,g?.endDate]),v=[...u?.excludedDates||[]];(y||_||v)&&S((e=>({...e,minDate:y?.format(TF),maxDate:_?.format(TF),disabledDates:v})))}),[h]),u((()=>{if(p)if(g)if(T(g)){const e=Cm.toLocalDateOrTime(g,p,"date");A(Cm.formatDateTime(e?.toString(),MF,"date",Nm.DATE.INVALID))}else A(Nm.DATE.INVALID);else if(!c)if(f){const e=Cm.formatDateTime(Bf.now().toString(),p,"date");v(s,e);const t=Cm.formatDateTime(Bf.now().toString(),MF,"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!==Nm.DATE.INVALID;return t(n,{children:[e(Q.DateInput,{...m,..._,...E,id:s,"data-testid":zA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:e=>{l({target:{value:Cm.formatDateTime(e,p,"date",Nm.DATE.INVALID)}})},value:b}),e(_I,{id:s,message:y})]})},DateRangeField:r=>{const{error:i,formattedLabel:a,id:s,isDirty:c,onChange:l,schema:{dateFormat:d=NF,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}=t$(),[M,T]=o([]);Zs((()=>{x(s,SM().shape({from:ux(),to:ux()}).test({name:"is-empty-string",test(e,t){T(t.schema.describe().meta?.rules??[]);const n=L(t.schema.describe().meta?.rules,"required");if(!e||!n)return!0;return!!(e.from?.length>0&&e.to?.length>0)||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.REQUIRED})}}).test({name:"is-date",test(e,t){const n=p?.find((e=>!!e&&"dateFormat"in e&&e.dateFormat));if(sI.exports.isEmpty(e?.from)||sI.exports.isEmpty(e?.to))return!0;return!(!C(e.from)||!C(e.to)||!Cm.toLocalDateOrTime(e.from,d,"date")||!Cm.toLocalDateOrTime(e.to,d,"date"))||t.createError({message:n?.errorMessage||Nm.DATE_RANGE.INVALID})}}).test({name:"number-of-days",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"numberOfDays"),r=n?.numberOfDays;if(!C(e.from)||!C(e.to)||!r)return!0;const i=Cm.toLocalDateOrTime(e.from,d,"date");return!!Cm.toLocalDateOrTime(e.to,d,"date").equals(i.plusDays(r-1))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MUST_HAVE_NUMBER_OF_DAYS(r)})}}).test({name:"future",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"future");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(!r?.isAfter(Bf.now())||!i?.isAfter(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MUST_BE_FUTURE})}}).test({name:"past",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"past");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(!r?.isBefore(Bf.now())||!i?.isBefore(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MUST_BE_PAST})}}).test({name:"not-future",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"notFuture");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(r?.isAfter(Bf.now())||i?.isAfter(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.CANNOT_BE_FUTURE})}}).test({name:"not-past",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"notPast");if(!C(e.from)||!C(e.to)||!n)return!0;const r=Cm.toLocalDateOrTime(e.from,d,"date"),i=Cm.toLocalDateOrTime(e.to,d,"date");return!(r?.isBefore(Bf.now())||i?.isBefore(Bf.now()))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.CANNOT_BE_PAST})}}).test({name:"min-date",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"minDate"),r=n?.minDate,i=r?Cm.toLocalDateOrTime(r,d,"date"):void 0;if(!C(e.from)||!C(e.to)||!i)return!0;const a=Cm.toLocalDateOrTime(e.from,d,"date"),o=Cm.toLocalDateOrTime(e.to,d,"date");return!(a?.isBefore(i)||o?.isBefore(i))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MIN_DATE(Cm.formatDateTime(r,"dd/MM/uuuu","date"))})}}).test({name:"max-date",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"maxDate"),r=n?.maxDate,i=r?Cm.toLocalDateOrTime(r,d,"date"):void 0;if(!C(e.from)||!C(e.to)||!i)return!0;const a=Cm.toLocalDateOrTime(e.from,d,"date"),o=Cm.toLocalDateOrTime(e.to,d,"date");return!(a?.isAfter(i)||o?.isAfter(i))||t.createError({message:n?.errorMessage??Nm.DATE_RANGE.MAX_DATE(Cm.formatDateTime(r,"dd/MM/uuuu","date"))})}}).test({name:"excluded-dates",test(e,t){if("week"===h)return!0;const n=L(t.schema.describe().meta?.rules,"excludedDates"),r=n?.excludedDates;if(!C(e.from)||!C(e.to)||!r)return!0;const i=Cm.toLocalDateOrTime(e.from,d,"date"),a=Cm.toLocalDateOrTime(e.to,d,"date");try{const e=r.map((e=>Cm.toLocalDateOrTime(e,d,"date")));for(const r of e)if(i.isEqual(r)||a.isEqual(r))return t.createError({message:n?.errorMessage??Nm.DATE_RANGE.DISABLED_DATES});return!0}catch{return!1}}}),p);const e=L(M,"future"),t=L(M,"past"),n=L(M,"notFuture"),r=L(M,"notPast"),i=L(M,"minDate"),a=L(M,"maxDate"),o=L(M,"excludedDates"),u=L(M,"numberOfDays"),c=Cm.toLocalDateOrTime(i?.minDate,d,"date"),l=Cm.toLocalDateOrTime(a?.maxDate,d,"date"),f=N([c,e?.future&&Bf.now().plusDays(1),r?.notPast&&Bf.now()]),m=O([l,t?.past&&Bf.now().minusDays(1),n?.notFuture&&Bf.now()]),g=o?.excludedDates,y=u?.numberOfDays;w((e=>({...e,minDate:f?.format(CF),maxDate:m?.format(CF),disabledDates:g,numberOfDays:y})))}),[p,M]),u((()=>{D(OF.START)}),[g.from,d,c]),u((()=>{D(OF.END)}),[g.to,d,c]);const O=e=>e.filter((e=>e)).sort(((e,t)=>e.isAfter(t)?1:-1))?.[0],N=e=>e.filter((e=>e)).sort(((e,t)=>e.isBefore(t)?1:-1))?.[0],C=e=>e&&e!==Nm.DATE_RANGE.INVALID,D=e=>{const t=e===OF.START?g.from:g.to,n=e===OF.START?b:E;if(d)if(t)if(C(t)){const e=Cm.toLocalDateOrTime(t,d,"date");n(Cm.formatDateTime(e?.toString(),NF,"date",Nm.DATE_RANGE.INVALID))}else n(Nm.DATE_RANGE.INVALID);else c||n(void 0)},L=(e,t)=>{const n=e?.find((e=>t in e)),r=p?.find((e=>!!e&&t in e));return sI.exports.isEmpty(n)?sI.exports.isEmpty(r)?void 0:r:n};return t(n,{children:[e(Q.DateRangeInput,{...m,..._,...S,id:s,"data-testid":zA.generateId(s,"date"),label:a,errorMessage:i?.message,onChange:(e,t)=>{l({target:{value:{from:Cm.formatDateTime(e,d,"date",Nm.DATE_RANGE.INVALID),to:Cm.formatDateTime(t,d,"date",Nm.DATE_RANGE.INVALID)}}})},value:v,valueEnd:A,variant:h}),e(_I,{id:s,message:y})]})},get TDateRangeInputType(){return OF},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}=t$(),M=s(null),{clearErrors:T}=Ye();u((()=>{const e=p?.find((e=>"upload"in e&&e.upload));M.current=e,x(a,SM().shape({fileId:ux().required(),dataURL:ux(),fileUrl:ux(),uploadResponse:Qw().nullable()}).default(void 0),p)}),[p]),u((()=>{if(E(0),N(m)){if(m.dataURL)_(m.dataURL);else if(m.fileUrl){const e=D(m.fileId,m.fileUrl);return()=>e.abort()}}else _(null)}),[m]);const O=async e=>{if(!e)return _(null),E(0),b(0),w(null),void c({target:{value:null}});const t=Lm();if(_(e),E(0),$A(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 Om.dataUrlToBlob(t),i=Om.blobToFile(r,{name:e,lastModified:Date.now()});n.append("file",i,e)}const r=await new kl("",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 kl("",void 0,void 0,!1,{responseType:"blob"}).get(t,{signal:n.signal}),i=await Om.getType(new File([r],e)),a=new File([r],e,{type:i.mime}),o=await Om.fileToDataUrl(a);_(o),E(0)}catch(e){if(e instanceof _l)return;E((e=>e+1))}})(),n};return t(DF,{children:[e(Q.ESignature,{...h,id:a,label:i,onChange:O,value:y,...null!==S&&{loadingProgress:S}}),(r?.message||v||A)&&null===S?v>0?t(LF,{children:[M.current?.errorMessage||Nm.ESIGNATURE.UPLOAD,e(IF,{type:"button",onClick:()=>O(y),children:"Please try again."}),v>=3&&e(kF,{type:"warning","data-testid":"upload-refresh-alert",children:"Refresh this page if you cannot upload your signature."})]}):A>0&&N(m)?t(LF,{children:["Failed to load.",e(IF,{type:"button",onClick:()=>D(m.fileId,m.fileUrl),children:"Please try again."}),A>=3&&e(kF,{type:"warning","data-testid":"load-refresh-alert",children:"Refresh this page if your signature failed to load."})]}):e(LF,{children:r?.message}):null,e(_I,{id:a,message:g})]})},ErrorField:t=>{const{id:n,schema:{children:r}}=t,{setFieldValidationConfig:i}=t$();return u((()=>{i(n,Qw().test((()=>!1)),[])}),[]),r?e(NB,{children:r}):null},FileUploadInner:lP,FileUpload:t=>e(oP,{children:e(lP,{...t})}),get EFileStatus(){return uP},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}=t$(),{setValue:m}=Ye();return u((()=>{let e;switch(l){case"null":e=Qw();break;case"number":e=lx();break;case"boolean":e=tx();break;default:e=ux()}h(n,e,c)}),[c,l]),u((()=>{"null"===l&&null!==p?m(n,null):FA(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}=Ye(),[E,S]=o(void 0),{setFieldValidationConfig:w}=t$();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,SM({from:lx(),to:lx()}).test("is-required",e?.errorMessage||Nm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!FA(t.from)&&!FA(t.to))).test("is-bin",t?.errorMessage||Nm.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||Nm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Nm.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(Q.HistogramSlider,{..._,id:s,"data-testid":zA.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(_I,{id:s,message:b})]})},ImageUploadInner:rB,ImageUpload:t=>e(fP,{children:e(rB,{...t})}),ACCEPTED_FILE_TYPES:hP,get EImageStatus(){return mP},LocationField:n=>{const{error:r,formattedLabel:i,id:a,schema:{className:s="location",mapApi:c,disabled:l,gettingCurrentLocationFetchMessage:d,interactiveMapPinIconUrl:f,label:p,locationInputPlaceholder:h,locationListTitle:m,locationModalStyles:g,mapBannerText:y,mapPanZoom:_,mustHavePostalCode:b,readOnly:A,staticMapPinColor:E,validation:S,hasExplicitEdit:w,locationSelectionMode:x="default",disableSearch:M,addressFieldPlaceholder:T,searchBarIcon:O,bufferRadius:N,pinsOnlyIndicateCurrentLocation:C},value:D,warning:L}=n,[I,$]=o(!1),{setValue:R}=Ye(),{setFieldValidationConfig:z}=t$(),{dispatchFieldEvent:F,addFieldEventListener:P,removeFieldEventListener:Z}=UI();u((()=>(P("show-location-modal",a,j),()=>{Z("show-location-modal",a,j)})),[]),u((()=>{const e=S?.find((e=>"required"in e)),t=S?.find((e=>"postalCode"in e));z(a,SM({address:ux(),blockNo:ux(),building:ux(),lat:lx(),lng:lx(),postalCode:ux(),roadName:ux(),x:lx(),y:lx()}).test("is-required",e?.errorMessage||Nm.COMMON.FIELD_REQUIRED,(t=>!e?.required||!!t&&!!t.lat&&!!t.lng)).test("must-have-postal-code",t?.errorMessage||Nm.LOCATION.MUST_HAVE_POSTAL_CODE,(t=>!e||!b||fI.hasGotAddressValue(t.postalCode))),S)}),[S]);const U=(e,t=!0)=>{R(a,e,{shouldDirty:t})},B=()=>{A||l||($(!0),F("show-location-modal",a))},j=()=>{$(!0)};return t("div",{id:a,"data-testid":zA.generateId(a),className:s,children:[e(dB,{id:a,label:i,className:s,locationInputPlaceholder:h,onChange:e=>e.currentTarget.blur(),onFocus:B,value:D?.address||"",errorMessage:r?.message,disabled:"explicit"===w&&!!D?.address||l,readOnly:A}),w&&D?.address&&e(k.Default,{id:zA.generateId(a,"edit-button"),"data-testid":zA.generateId(a,"edit-button"),styleType:"secondary",onClick:()=>{!F("click-edit-button",a)||$(!0)},type:"button",children:"Edit"}),!!D?.lat&&!!D?.lng&&e(yI,{id:a,className:`${s}-static-map`,lat:D.lat,lng:D.lng,staticMapPinColor:E,onClick:B,disabled:l}),e(v,{fallback:null,children:fB&&e(fB,{id:a,className:s,showLocationModal:I,onClose:()=>{$(!1),F("hide-location-modal",a)},formValues:D,onConfirm:U,updateFormValues:U,mapPanZoom:_,mapApi:c,interactiveMapPinIconUrl:f,gettingCurrentLocationFetchMessage:d,mustHavePostalCode:b,locationModalStyles:g,locationListTitle:m,mapBannerText:y,locationSelectionMode:x,disableSearch:M,addressFieldPlaceholder:T,searchBarIcon:O,bufferRadius:N,pinsOnlyIndicateCurrentLocation:C})}),e(_I,{id:a,message:L})]})},GeolocationPositionErrorWrapper:pB,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}=t$();u((()=>{w(s,ux(),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=G[t];return e(n,{"data-testid":t})};return t(n,{children:[e(Q.MaskedInput,{...y,...v,...E,id:s,"data-testid":zA.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(_I,{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}=Ye(),[_,v]=o(h||[]),{setFieldValidationConfig:b}=t$();u((()=>{const e=f?.find((e=>"required"in e));b(s,xM().of(ux()).test("is-empty-array",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!t||!e?.required||t.length>0)),f)}),[f]),Us((()=>{const e=h?.filter((e=>d.find((t=>t.value===e))));y(s,e)}),[d]),u((()=>{v(h||[])}),[h]);return t(n,{children:[e(Q.MultiSelect,{...p,...g,id:s,"data-testid":zA.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(_I,{id:s,message:m})]})},NestedMultiSelect:r=>{const{schema:{label:i,validation:a,options:s=[],...c},id:l,value:d,formattedLabel:p,onChange:h,onBlur:m,error:g,warning:y,..._}=r,{setValue:v}=Ye(),{setFieldValidationConfig:b}=t$(),[A,E]=o(d),[S,w]=o([]),x=f((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,SM().test("is-required",e?.errorMessage||Nm.COMMON.REQUIRED_OPTION,(t=>!e?.required||!!t&&!!Object.keys(t).length)),a)}),[a]),Us((()=>{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=d?e(s,d):d;v(l,t)}),[s]),u((()=>{E(d);const e=x(d);w(e)}),[x,A,d]);return t(n,{children:[e(Q.NestedMultiSelect,{...c,..._,id:l,"data-testid":zA.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}})},onBlur:m,selectedKeyPaths:S,errorMessage:g?.message}),e(_I,{id:l,message:y})]})},RadioButtonGroup:r=>{const{error:i,formattedLabel:a,id:s,onChange:c,schema:{className:l,customOptions:d,disabled:f,label:p,options:m,validation:g,...y},value:_,warning:v}=r,{setValue:b}=Ye(),[A,E]=o(_||""),{setFieldValidationConfig:S}=t$();u((()=>{S(s,ux(),g)}),[g]),Zs((()=>{m.find((e=>e.value===_))||b(s,"")}),[m]),u((()=>{E(_||"")}),[_]);const w=e=>{c({target:{value:e}})},x=e=>A===e,M=()=>{const e=Lm();return`${s}-${e}`},T=t=>"string"==typeof t?e(oI,{inline:!0,children:t}):e(NB,{children:t});return t(n,{children:[e(Q.CustomField,{id:s,label:a,errorMessage:i?.message,children:(()=>{switch(d?.styleType){case"toggle":return m.length>0&&"toggle"===d.styleType&&e(vB,{className:l?`${l} ${l}-radio-container`:void 0,$layoutType:d?.layoutType??"horizontal",children:m.map(((t,n)=>{const r=M();return h(bB,{...y,key:n,type:"radio",id:r,className:l?`${l}-radio`:void 0,"data-testid":zA.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(NB,{children:t.children}),collapsible:!1}:null,subLabel:!!t.subLabel&&T(t.subLabel)},T(t.label))}))});case"image-button":return m.length>0&&e(_B,{className:l?`${l} ${l}-radio-container`:void 0,children:m.map(((e,t)=>{const n=M();return h(gB,{...y,type:"button",key:t,id:n,className:l?`${l}-radio`:void 0,"data-testid":zA.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(yB,{className:l?`${l}-radio-container`:void 0,children:[e(mB,{...y,className:l,id:i,"data-testid":zA.generateId(s,"radio"),disabled:f??n.disabled,name:i,value:n.value,checked:x(n.value),onChange:()=>w(n.value)}),e(hB,{forwardedAs:"label",htmlFor:i,disabled:f??n.disabled,children:T(n.label)})]},r)}))}})()}),e(_I,{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}=Ye(),[_,v]=o(h.from||""),[b,A]=o(h.to||""),{setFieldValidationConfig:E}=t$();u((()=>{const e=f?.find((e=>"required"in e));E(s,SM().shape({from:ux(),to:ux()}).test("is-empty-string",e?.errorMessage||Nm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e?.required||t.from?.length>0&&t.to?.length>0)),f)}),[f]),Zs((()=>{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(Q.RangeSelect,{...p,...g,id:s,onHideOptions:()=>{h.from&&h.to||c({target:{value:{from:void 0,to:void 0}}})},"data-testid":zA.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(_I,{id:s,message:m})]})},ResetButton:t=>{const{id:n,schema:{disabled:r,ignoreDefaultValues:i,label:a,...o},...s}=t,{reset:u,getValues:c}=Ye(),{resetFields:l}=e$(),{formSchema:{defaultValues:d}}=Qk();return e(k.Default,{...o,...s,disabled:r,"data-testid":n,id:n,type:"reset",onClick:()=>{if(i){const e=c();Object.entries(e).forEach((([t,n])=>{hi(n)?e[t]=[]:D$(n)||CI(n)?e[t]="":ai(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}=Ye(),[_,v]=o(h||""),{setFieldValidationConfig:b}=t$();u((()=>{b(s,ux(),f)}),[f]),Zs((()=>{d.find((e=>e.value===h))||y(s,"")}),[d]),u((()=>{v(h||"")}),[h]);return t(n,{children:[e(Q.Select,{...p,...g,id:s,"data-testid":zA.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(_I,{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}=Ye(),[w,x]=o([0,0]),{setFieldValidationConfig:M}=t$();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,SM({from:lx(),to:lx()}).test("is-required",e?.errorMessage||Nm.COMMON.REQUIRED_OPTIONS,(t=>!t||!e||!FA(t.from)&&!FA(t.to))).test("is-bin",t?.errorMessage||Nm.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||Nm.SLIDER.MUST_BE_INCREMENTAL,(e=>!e||"number"!=typeof e.from||"number"!=typeof e.to||e.from<e.to)).test("is-within-range",r?.errorMessage||Nm.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(Q.SelectHistogram,{...v,id:s,"data-testid":zA.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(_I,{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}=t$();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,lx().test("is-incremental",n?.errorMessage||Nm.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(Q.Slider,{...d,...v,id:s,"data-testid":zA.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(_I,{id:s,message:_})]})},SubmitButton:t=>{const{id:n,schema:{disabled:r,label:i,...a},...s}=t,{submitHandler:c,wrapInForm:l}=r$(),{setFieldValidationConfig:d}=t$(),{hardValidationSchema:f}=o$(),p=it({disabled:"invalid-form"!==r}),[h,m]=o(!0===r);u((()=>{d(n,Qw())}),[]),u((()=>{"invalid-form"!==r&&m(!!r)}),[r]),Zs((()=>{(async()=>{if("invalid-form"===r)try{await f.validate(p),m(!1)}catch(e){m(!0)}})()}),[p,f]);return e(k.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}=t$();u((()=>{b(s,tx().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(Q.CustomField,{id:s,label:a,errorMessage:i?.message,children:t(AB,{className:l,role:"radiogroup","aria-label":"string"==typeof p?p:aI(p.mainLabel,{allowedTags:[]}),children:[e(te,{...m,type:"yes",id:S("yes"),"data-testid":zA.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(te,{...m,type:"no",id:S("no"),"data-testid":zA.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(_I,{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}=t$(),M=s(null),T=s(0);u((()=>{switch(_){case"numeric-field":{x(c,lx(),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,ux().email(e?.errorMessage||Nm.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,ux(),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()?Q.InputGroup:Q.Input;return t(n,{children:[e(N,{...b,...h,...S,id:c,"data-testid":zA.generateId(c,_),ref:M,type:(()=>{switch(_){case"numeric-field":return"number";case"email-field":return"email";default:return"text"}})(),label:a,onPaste:e=>{const t=e.clipboardData.getData("text");(m?.preventCopyAndPaste||"numeric-field"===_&&/e/i.test(t))&&e.preventDefault()},onDrop:e=>m?.preventDragAndDrop?e.preventDefault():null,inputMode:(()=>{if(g)return g;switch(_){case"numeric-field":return"numeric";case"email-field":return"email";case"text-field":return"text";default:return"none"}})(),onChange:e=>{if("numeric-field"===_){const t=!isNaN(parseFloat(e.target.value))?+e.target.value:void 0;return l({target:{value:t}}),void E(t)}"text-field"===f.uiType?(T.current=e.target.selectionEnd,"uppercase"===f.customOptions?.textTransform&&(e.target.value=e.target.value.toUpperCase()),l(e)):l(e),E(e.target.value)},onKeyDown:e=>{"numeric-field"===_&&"e"===e.key.toLowerCase()&&e.preventDefault()},value:A,errorMessage:i?.message,addon:(()=>{if(O()){if("label"===m.addOn.type)return{type:"label",position:m.addOn.position,attributes:{value:m.addOn.value}};if("icon"===m.addOn.type){const{icon:t,position:n,color:r}=m.addOn,i=G[t];return{type:"custom",position:n,attributes:{children:e(EB,{as:i,$color:r})}}}}})()}),e(_I,{id:c,message:p})]})},Textarea:_R,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}=t$();u((()=>{A(s,ux(),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=Cm.formatDateTime(Gf.now().toString().toUpperCase(),e,"time");b(t),c({target:{value:t}})};return t(n,{children:[e(Q.Timepicker,{...m,..._,id:s,"data-testid":zA.generateId(s,"time"),label:a,errorMessage:i?.message,value:v,placeholder:f,format:l?"24hr":"12hr",onChange:e=>{c({target:{value:e}})}}),e(_I,{id:s,message:y})]})},get EFieldType(){return SB},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:_}=t$();u((()=>{const e=d?.find((e=>"unitNumberFormat"in e));_(s,ux().matches(/^([a-zA-Z0-9]{1,3}-[a-zA-Z0-9]{1,5})$/,{excludeEmptyString:!0,message:e?.errorMessage||Nm.UNIT_NUMBER.INVALID}),d)}),[d]),u((()=>{y(p||"")}),[p]);return t(n,{children:[e(Q.UnitNumberInput,{...f,...m,id:s,"data-testid":zA.generateId(s,"unit-number"),label:i,value:g,onChange:e=>{c({target:{value:e}})},errorMessage:a?.message}),e(_I,{id:s,message:h})]})}});const xB=({id:t,children:r,childSchema:i})=>{if("columns"in i){if((a=i.columns)&&("xxs"in a||"xs"in a||"sm"in a||"md"in a||"lg"in a||"xl"in a||"xxl"in a)){const{xxs:n,xs:a,sm:o,md:s,lg:u,xl:c,xxl:l,...d}=i.columns||{};return e(P.ColDiv,{"data-testid":zA.generateId(t,"grid_item"),xlCols:c,lgCols:u,mdCols:s,smCols:o,xsCols:a,xxlCols:l,xxsCols:n,...d,children:r})}const{desktop:n,tablet:o,mobile:s,...u}=i.columns||{};return e(he.ColDiv,{"data-testid":zA.generateId(t,"grid_item"),desktopCols:n??12,tabletCols:o,mobileCols:s,...u,children:r})}var a;return e(n,{children:r})},MB=({id:t,renderRules:r,children:i,schema:a})=>{const{formValidationConfig:s,removeFieldValidationConfig:u}=t$(),[c,l]=o(void 0),{formValues:d}=e$(),{unregister:f}=Ye();Us((()=>{if($A(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($A(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:Qw().test("shown",(()=>!1)),validationRules:[]});const r=s?.[e]?.schema.type;if(r){let i=AI.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=AI.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;!$A(t)&&Dn(t)&&Object.entries(t).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))}))}))}return $A(n)||!Dn(n)||Object.entries(n).forEach((([e,t])=>{r.push(e),t.children&&r.push(...h(t.children))})),r};return $A(r)||c?e(n,{children:i}):null},TB=Object.keys(SB),OB=Object.keys(_$),NB=t=>{const{id:r,schema:i,children:a}=t,{showIf:s,uiType:u,children:c,...l}=i||{},{warnings:d}=o$(),[f,p]=o(null),{control:h}=Ye(),{getCustomComponent:m}=PI(),{formSchema:{overrides:g},overrideSchema:_}=Qk();ZI((()=>{const t=_(c||a,g);if("object"==typeof t){const n=[];Object.keys(t).forEach((r=>{const i=t[r];if($A(i)||"object"!=typeof i)return;let a=e(y,{children:Nm.GENERIC.UNSUPPORTED},r);if("referenceKey"in i){const t=i.referenceKey.toUpperCase();a=m(i.referenceKey)||P$[F$[t]]?v(r,i)(b):P$[z$[t]]?v(r,i)(A):e(y,{},r)}else"uiType"in i&&(TB.includes(i.uiType.toUpperCase())?a=v(r,i)(b):OB.includes(i.uiType.toUpperCase())&&(a=v(r,i)(A)));n.push(a)})),p(n)}else p("string"==typeof t?t:Nm.GENERIC.UNSUPPORTED)}),[c||a,g,h,d,m]);const v=(t,n)=>r=>e(MB,{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=wB[SB[n.uiType?.toUpperCase()]]:"referenceKey"in n&&(r=P$[F$[n.referenceKey?.toUpperCase()]]||m(n.referenceKey)),r?e(xB,{id:t,childSchema:n,children:e(fR,{id:t,schema:n,Field:r,warning:d?.[t]})}):null},A=(t,n)=>{let r;return"uiType"in n?r=v$[_$[n.uiType?.toUpperCase()]]||NB:"referenceKey"in n&&(r=P$[z$[n.referenceKey?.toUpperCase()]]),e(xB,{id:t,childSchema:n,children:e(r,{schema:n,id:t})})};return u?e(u,{...l,id:r,"data-testid":zA.generateId(r,u),children:f}):e(n,{children:f})},CB=C(P.Container)`
1103
1103
  gap: ${S["spacing-32"]};
1104
1104
  `,DB=C(P.Container)`
1105
1105
  gap: ${S["spacing-32"]};
@@ -1116,4 +1116,4 @@ object-assign
1116
1116
  `,LB=C.div`
1117
1117
  flex: 1;
1118
1118
  `,IB=t=>{const{sectionSchema:{children:n,layoutType:r,customOptions:i={gridType:"v2"}},...a}=t;switch(r){case"grid":return(()=>{const t="v3"===i.gridType?CB:DB,r="v3"===i.gridType?"grid":"flex";return e(P.Section,{children:e(t,{type:r,children:e(NB,{...a,children:n})})})})();case"contain":return e(P.Content,{children:e(LB,{children:e(NB,{...a,children:n})})});default:return e(NB,{...a,children:n})}},kB=()=>{const{formSchema:{sections:r,overrides:i},overrideSchema:a}=Qk();return e(n,{children:(()=>{const o=a(r,i);return o?Object.entries(o).map((([t,n],r)=>e(IB,{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"}),"."]})})()})},$B=m(((r,a)=>{const{data:c,className:l=null,components:d,onSubmit:p,onSubmitError:h,wrapInForm:m=!0}=r,{className:y=null,defaultValues:_,id:v,stripUnknown:b,revalidationMode:A="onChange",validationMode:E="onTouched"}=c||{},{addFieldEventListener:S,dispatchFieldEvent:w,removeFieldEventListener:x}=UI(),{setCustomComponents:M}=PI(),{setSubmitHandler:T,setWrapInForm:O}=r$(),{addWarnings:N,performSoftValidation:C,softValidationSchema:D,hardValidationSchema:L,rebuildValidationSchema:I,yupId:k}=o$(),$=function(e={}){const t=i.useRef(void 0),n=i.useRef(void 0),[r,a]=i.useState({isDirty:!1,isValidating:!1,isLoading:ft(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,defaultValues:ft(e.defaultValues)?void 0:e.defaultValues});t.current||(t.current={...Ut(e),formState:r});const o=t.current.control;return o._options=e,et({subject:o._subjects.state,next:e=>{Je(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&&!Ot(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=qe(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&&jt({},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:Vt((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]=ot(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}=Qk(),{reset:z,handleSubmit:F,getValues:P,setValue:Z,setError:U,trigger:B,formState:j,clearErrors:V}=$,{resetFields:G,setFields:H,getFormValues:Y,registeredFields:W}=e$($),q=s(W),{checkIsFormValid:K}=((e,t)=>{const{data:n,onChange:r,onValueChange:i}=e,{stripUnknown:a}=n||{},{hardValidationSchema:c}=o$(),{formValidationConfig:l}=t$(),{watch:d,getValues:p,formState:h,clearErrors:m}=t,{setFields:g,setField:y,getFormValues:_}=e$(t),[v,b]=o({}),[A,E]=o(!1),S=a$(l),w=a$(c),x=s(void 0),M=s(void 0),T=f(((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&&MI(x.current,e)||i(e,t)),x.current=e,M.current=t},u((()=>{const e=d(((e,{name:t})=>{t?y(t,e[t]):g(e)}));return()=>e.unsubscribe()}),[]),u((()=>{if(r&&Object.keys(l||{}).length){const e=d((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,d,l]),u((()=>{const e=d((async()=>{await O.current()}));return()=>e.unsubscribe()}),[d]),u((()=>{if(S){const e=e=>Object.entries(e).map((([e,{validationRules:t}])=>[e,t])),t=e(S),n=e(l);MI(t,n)||E(!0)}}),[l]),u((()=>{A&&w!==c&&O.current().then((()=>E(!1)))}),[A,c]),u((()=>{const e=h.errors;if(e&&!$A(e)){const e=d((e=>{const t=Object.fromEntries(Object.entries(h.errors).filter((([e,t])=>"api"===t.type)));t&&!$A(t)&&Object.keys(t).forEach((t=>{v[t]!==e[t]&&m(t)})),b(e)}));return()=>e.unsubscribe()}}),[h,d]),{checkIsFormValid:T}})(r,$);g(a,(()=>({addFieldEventListener:S,addCustomValidation:J,dispatchFieldEvent:w,getValues:e=>Y(e,b),isDirty:j.isDirty,isValid:K,validate:B,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)=>{AI.addCondition(e,t,n,k,r),I()},X=f((()=>{p?.(Y(void 0,b))}),[Y,p,b]),Q=f((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())}),[]),Us((()=>{z(ks(_))}),[_]),Zs((()=>{R(c)}),[c||{}]),u((()=>{M(d)}),[d]),u((()=>{T((()=>F(X,Q)))}),[X,Q]),u((()=>{O(m)}),[m]),u((()=>{q.current=W}),[W]);const ne=v?`frontend-engine-${v}`:"frontend-engine",re=[l,y].join(" ").trim(),ie=m?"form":"div";return c?e(We,{...$,children:e(ie,{id:ne,"data-testid":v?zA.generateId(v,"frontend-engine"):ne,className:re,noValidate:!0,onSubmit:F(X,Q),ref:a,children:e(kB,{})})}):t(n,{children:["Missing ",e("code",{children:"data"})," prop, unable to render Frontend Engine."]})})),RB=m(((t,n)=>e(FI,{recaptchaSiteKey:t.recaptchaSiteKey,children:e($B,{...t,ref:n})})));export{kl as A,ZM as D,uP as E,aP as F,pB as G,yA as I,fI as L,pI as O,BM as P,Qs as R,oI as S,zA as T,Ye as a,UI as b,Nm as c,Om as d,dP as e,mP as f,Lm as g,Gt as h,lI as i,dI as j,Dm as k,sI as l,s$ as m,n$ as n,RB as o,_$ as p,SB as q,a$ as u};
1119
- //# sourceMappingURL=index.04e62ec7.js.map
1119
+ //# sourceMappingURL=index.dbf04818.js.map