@asaleh37/ui-base 25.8.30 → 25.8.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ object-assign
|
|
|
28
28
|
* This source code is licensed under the MIT license found in the
|
|
29
29
|
* LICENSE file in the root directory of this source tree.
|
|
30
30
|
*/
|
|
31
|
-
function(e,t){const i=re(e,t);return"production"!==process.env.NODE_ENV?(...t)=>{const o=`"${e}"`;return 0===t.length?console.error([`MUI: Seems like you called \`styled(${o})()\` without a \`style\` argument.`,'You must provide a `styles` argument: `styled("div")(styleYouForgotToPass)`.'].join("\n")):t.some(e=>void 0===e)&&console.error(`MUI: the styled(${o})(...args) API requires all its args to be defined.`),i(...t)}:i}("div",{shouldForwardProp:e=>"theme"!==e&&"sx"!==e&&"as"!==e})($i),d=pe.forwardRef(function(e,d){const l=function(e=eo){return Ji(e)}(o),{className:s,component:p="div",...c}=to(e);return t.jsx(n,{as:p,ref:d,className:ro(s,r?r(a):a),theme:i&&l[i]||l,...c})});return d}({defaultClassName:function(e,t,i="Mui"){const o={};return t.forEach(t=>{o[t]=function(e,t,i="Mui"){const o=no[t];return o?`${i}-${o}`:`${oo.generate(e)}-${t}`}(e,t,i)}),o}("MuiBox",["root"]).root,generateClassName:oo.generate});function so(e){return"number"==typeof e&&!isNaN(e)}function po(e){return"string"==typeof e&&""!==e.trim()&&!isNaN(Number(e))}function co(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function uo(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function mo(e,t){const i=new Date(e),o=new Date,a=Math.floor((i-o)/1e3),r="rtl"===t?"ar":"en",n=new Intl.RelativeTimeFormat(r,{numeric:"auto"}),d=[{unit:"year",seconds:31536e3},{unit:"month",seconds:2592e3},{unit:"week",seconds:604800},{unit:"day",seconds:86400},{unit:"hour",seconds:3600},{unit:"minute",seconds:60},{unit:"second",seconds:1}];for(const{unit:e,seconds:t}of d){const i=Math.floor(a/t);if(Math.abs(i)>1)return n.format(i,e)}return"ar"===r?"الآن":"just now"}"production"!==process.env.NODE_ENV&&(lo.propTypes={children:Ft.node,component:Ft.elementType,sx:Ft.oneOfType([Ft.arrayOf(Ft.oneOfType([Ft.func,Ft.object,Ft.bool])),Ft.func,Ft.object])});const To=e=>{if(e?.fieldInfo){const i=e.fieldInfo,o=e?.formManager||null,a=e?.formActions||null,r=e?.formValues||null,n=e?.fieldInfo?.fieldName||null,l=e?.fieldInfo?.fieldType||null;if(!(i&&o&&r&&n&&l))return t.jsx(t.Fragment,{});const s=()=>e?.fieldInfo?.formProps?.fieldLabelFn?e.fieldInfo.formProps.fieldLabelFn(r):e?.fieldInfo?.fieldLabel?e?.fieldInfo?.fieldLabel:void 0;return e.hiddenFields.includes(n)?t.jsx(t.Fragment,{}):t.jsx(d.Grid2,{size:i?.formProps?.fieldSize||{lg:12,md:12,sm:12},sx:{padding:1,width:"100%"},children:"text"===l||"number"===l?t.jsx(Fe,{...i.muiTextFieldProps,fullWidth:!0,type:l,disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),label:s(),value:r[n],onChange:t=>{let i=null;""!=t.target.value&&(i="number"===l&&po(t.target.value)?Number(t.target.value):t.target.value),o.setValue(n,i),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,i)},sx:{"& .MuiInputBase-root":{height:`${i?.formProps?.fieldHeight}px`||void 0},"& .MuiInputBase-input":{height:"100% !important"},...i?.formProps?.style},error:null!=o.formState.errors[n],helperText:o?.formState?.errors[n]?.message?.toString()}):"date"===i?.fieldType?t.jsx(ze,{format:i?.dateFormat||Ge,sx:i?.formProps?.style||{width:"100%"},disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),label:s(),onChangeCallBack:t=>{o.setValue(n,t),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t)},value:r[n],error:null!=o.formState.errors[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):"datetime"===i?.fieldType?t.jsx(He,{format:i?.dateFormat||We,sx:i?.formProps?.style||{width:"100%"},disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),label:s(),onChangeCallBack:t=>{o.setValue(n,t),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t)},value:r[n],error:null!=o.formState.errors[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):"checkbox"===i?.fieldType?t.jsx(ke,{label:s(),onChangeCallBack:t=>{o.setValue(n,t),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t)},value:r[n],checkedValue:i?.checkedValue||!0,unCheckedValue:i?.unCheckedValue||!1,disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),sx:i?.formProps?.style}):"combobox"===i?.fieldType?t.jsx(je,{sx:i?.formProps?.style||{width:"100%"},label:s(),disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),onChangeCallBack:(t,i)=>{let d=null;t&&(d=t),o.setValue(n,d),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t,i)},options:i?.options||[],displayField:i?.optionDisplayField||"",valueField:i?.optionValueField||"",value:r[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):"lookup"===i?.fieldType?t.jsx(Qe,{sx:i?.formProps?.style||{width:"100%"},label:s(),disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),onChangeCallBack:(t,i)=>{let d=null;t&&(d=t),o.setValue(n,d),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t,i)},lookupType:i.lookupType,value:r[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):null})}return t.jsx(t.Fragment,{})},Ao=e=>{const i=De(),{ConfirmationWindow:o,setOpen:a}=ge({body:e?.confirmationMessage||"",title:"Confirmation",onConfirmationCallBk:()=>{e?.actionFn(e?.record)}});return null==e?.authority||i.isUserAuthorized(e.authority)?t.jsxs(t.Fragment,{children:[t.jsx(o,{}),t.jsxs(d.Button,{variant:e?.formActionProps?.actionButtonVariant,color:e?.formActionProps?.actionButtonColor,onClick:()=>{if(e?.actionFn){if(e?.preActionValidation&&!e.preActionValidation(e.record))return;!0===e?.isConfirmationRequired?a(!0):e?.actionFn(e.record)}},children:[e?.icon?t.jsx(T.FontAwesomeIcon,{icon:e.icon,style:{marginRight:5,marginLeft:5}}):t.jsx(t.Fragment,{}),t.jsx("div",{children:e?.label})]})]}):t.jsx(t.Fragment,{})},_o=e=>{const{t:i}=E.useTranslation();return t.jsx(t.Fragment,{children:t.jsxs(d.Grid2,{container:!0,sx:e?.style,alignItems:"flex-start",children:[e?.label?t.jsx(d.Grid2,{size:12,sx:{padding:1,fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"flex-start"},children:e?.icon?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:e.icon,style:{marginRight:5,marginLeft:5}}),t.jsx("div",{children:i(e.label)})]}):t.jsx(t.Fragment,{children:i(e.label)})}):t.jsx(t.Fragment,{}),e?.elements?e.elements.map(i=>"group"===i.type?t.jsx(_o,{...i.props,formManager:e.formManager,formValues:e.formValues,formActions:e.formActions,hiddenFields:e.hiddenFields,disabledFields:e.disabledFields}):"field"===i.type&&"props"===i.mode?t.jsx(To,{fieldInfo:i.props,formManager:e.formManager,formValues:e.formValues,formActions:e.formActions,hiddenFields:e.hiddenFields,disabledFields:e.disabledFields}):"field"===i.type&&"node"===i.mode?t.jsx(d.Grid2,{size:i?.props?.formProps?.fieldSize||{lg:3,md:6,sm:12},sx:{padding:1,width:"100%"},children:t.jsx(i.node,{formManager:e.formManager,formValues:e.formValues,formActions:e.formActions})}):void 0):null,e?.actions?t.jsx(d.Grid2,{size:{sm:12},sx:{padding:1},children:e.actions.map(i=>t.jsx(Ao,{...i,record:e.formValues}))}):t.jsx(t.Fragment,{})]})})},fo=e=>{const o=i.useSelector(e=>e.AppInfo.value.apiBaseUrl),[a,r]=s.useState(null);return s.useEffect(()=>{(()=>{let t=o+"/api/v1/attachment/";e?.attachmentId?t+="download?attachmentId="+e.attachmentId:(t+=`downloadImage?attachmentCode=${e.attachmentCode}&refKey=${e.refKey}`,e?.category&&(t+=`&category=${e.category}`)),r(t)})()},[e]),e?.showAsAvatar?t.jsx(d.Avatar,{sx:e.style,onError:()=>{r(e?.onErrorImage?e.onErrorImage:"/no_image.png")},src:a}):t.jsx("img",{src:a,loading:"lazy",alt:"image",onError:()=>{r(e?.onErrorImage?e.onErrorImage:"/no_image.png")},style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})},Io=e=>{const{handleGetRequest:i,handleDeleteRequest:o}=Ce(),{isUserAuthorized:a}=De();let r=!0;e?.downloadAuthorityKey&&(r=a(e.downloadAuthorityKey));const{ConfirmationWindow:n,setOpen:l}=ge({title:"Confirmation",body:"Are you sure you want to delete this attachment?",onConfirmationCallBk:()=>{(async()=>{await o({endPointURI:"api/v1/attachment/archive",parameters:{attachmentCode:e.attachmentCode,refKey:e.refKey,attachmentId:e.id},successCallBkFn:t=>{e.setAttachmentConfig(t.data)},showMask:!0})})()}});return t.jsxs(t.Fragment,{children:[t.jsx(n,{}),t.jsxs(L,{sx:{width:300,border:"0.5px solid gray"},children:[t.jsx(v,{sx:{height:140,width:300,display:"flex",alignItems:"center",justifyContent:"center"},children:e?.docType.toLocaleLowerCase().includes("image")?t.jsx(fo,{attachmentId:e.id}):t.jsx(T.FontAwesomeIcon,{icon:"file",size:"3x"})}),t.jsxs(w,{children:[t.jsx(B,{gutterBottom:!0,variant:"h6",component:"div",children:e.fileName}),t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:`File Size: ${e?.attachmentSize||"unknown"} kb`}),t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:`File Type: ${e?.category||"NA"}`}),t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:e.remark})]}),t.jsxs(F,{children:[e?.allowDelete?t.jsx(d.IconButton,{size:"small",onClick:()=>{l(!0)},children:t.jsx(d.Tooltip,{title:"Delete Attachment",children:t.jsx(T.FontAwesomeIcon,{icon:"trash"})})}):t.jsx(t.Fragment,{}),t.jsx("div",{style:{flex:1}}),r?t.jsx(d.IconButton,{size:"small",onClick:async()=>{await i({endPointURI:"api/v1/attachment/download",parameters:{attachmentId:e.id},showMask:!0,responseType:"blob",successCallBkFn:t=>{const i=window.URL.createObjectURL(new Blob([t.data])),o=document.createElement("a");o.href=i,o.setAttribute("download",e.fileName),document.body.appendChild(o),o.click(),o.remove()}})},children:t.jsx(d.Tooltip,{title:"Download Attachment",children:t.jsx(T.FontAwesomeIcon,{icon:"download"})})}):t.jsx(t.Fragment,{})]})]})]})},Eo=e=>{const{handleUploadRequest:i,handleGetRequest:o}=Ce(),[a,r]=s.useState(null),[n,l]=s.useState([]),[p,c]=s.useState(null),[u,m]=s.useState(null),[A,f]=s.useState([]),[I,E]=s.useState(null),{isUserAuthorized:O}=De(),N=e=>e.split(".").pop()?.toLowerCase()||"";s.useEffect(()=>{(async()=>{await o({endPointURI:"api/v1/attachment/info",showMask:!0,parameters:{attachmentCode:e.attachmentCode,refKey:e.refKey},successCallBkFn:e=>{E(e.data)}})})()},[e.refKey,e.attachmentCode]),s.useEffect(()=>{if(f(I?.allowedFileTypes?I.allowedFileTypes.split(","):[]),I?.attachmentCategories){const e=[];for(const t of I.attachmentCategories.split(","))e.push({value:t});l(e)}else l([])},[I]);let y=!0;I?.downloadAuthorityKey&&!O(I?.downloadAuthorityKey)&&(y=!1);let h=!0;return!1===e?.enableAttachment&&(h=!1),I?.uploadAuthorityKey&&!O(I.uploadAuthorityKey)&&(h=!1),t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",width:"100%",alignItems:"center",justifyContent:"flex-start",overflow:"hidden",flexGrow:1},children:[h?t.jsx(t.Fragment,{children:null==I?.maxAllowedNumberOfFiles||I?.maxAllowedNumberOfFiles>I.refKeyAttachments.length?t.jsxs(t.Fragment,{children:[t.jsxs("h3",{children:[t.jsx(T.FontAwesomeIcon,{icon:"paperclip",style:{marginRight:10,marginLeft:10}}),"Attachment Uploader"]}),t.jsx("input",{type:"file",style:{margin:20},accept:I?.allowedFileTypes,multiple:!0,onChange:e=>{if(e.target.files)for(const t of e.target.files){const e=N(t.name);if(A.length>0&&!A.includes(e))return void _.toast.error(e+" is not allowed")}r(e.target.files)}}),n.length>0?t.jsx(je,{label:"Attachment Type",sx:{width:300,m:1},options:n,displayField:"value",valueField:"value",value:u,onChangeCallBack:e=>{m(e)}}):t.jsx(t.Fragment,{}),t.jsx(Fe,{label:"Remark",value:p,onChange:e=>c(e.target.value),multiline:!0,sx:{width:300,m:1},rows:3}),t.jsx(d.Button,{sx:{m:1},variant:"contained",onClick:async()=>{let t=I?.refKeyAttachments.length||0;if(I?.maxAllowedNumberOfFiles&&a.length+t>I.maxAllowedNumberOfFiles)_.toast.error("Maximum number of attachments is "+I.maxAllowedNumberOfFiles);else if(!0===I?.isCategoryRequired&&n.length>0&&(null==u||void 0===u||""===u))_.toast.error("You must selected document type to process your request");else if(a){for(const e of a)if(e.type.startsWith("image/")){const t=600,i=1024*t;if(e.size>i)return void _.toast.error(`File ${e.name} is too large. Max allowed is ${t}KB.`)}await i({endPointURI:"api/v1/attachment/upload",showMask:!0,loadingMessage:"Uploading files ... please wait",parameters:{refKey:e.refKey,attachmentCode:e.attachmentCode,remark:p,category:u},files:a,successCallBkFn:e=>{E(e.data),r(null),m(null),c(null),_.toast.success("Your request has been process successfully")}})}else _.toast.error("You must add files to upload")},children:"Upload"})]}):t.jsx(t.Fragment,{})}):t.jsx(t.Fragment,{}),y&&I?.refKeyAttachments?.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("h3",{children:[t.jsx(T.FontAwesomeIcon,{style:{marginRight:10,marginLeft:10},icon:"paperclip"}),"Attachments"]}),t.jsx(d.Grid2,{container:!0,spacing:2,sx:{overflow:"auto",padding:1,justifyContent:"center"},children:I?.refKeyAttachments.map(i=>t.jsx(d.Grid2,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:t.jsx(Io,{...i,attachmentCode:e.attachmentCode,setAttachmentConfig:E,downloadAuthorityKey:I.downloadAuthorityKey,allowDelete:h})}))})]}):t.jsx(t.Fragment,{})]})},Oo=e=>{const o=i.useSelector(e=>e.AppLayout),{t:a}=E.useTranslation();return t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",flexGrow:1,padding:1,margin:1,alignItems:"center",justifyContent:"center"},children:[t.jsxs(d.Box,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,fontWeight:"bold"},children:[t.jsx(T.FontAwesomeIcon,{icon:"history",style:{marginRight:10,marginLeft:10}}),a("WF_ACTION_HISTORY_LABEL")]}),t.jsx(d.Box,{sx:{flexGrow:1,width:"100%",display:"flex",flexDirection:"column",overflowY:"auto",alignItems:"center",justifyContent:"flex-start"},children:e.actionHistory.map((i,a)=>t.jsx(t.Fragment,{children:t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",marginBottom:2},children:[t.jsxs(d.Box,{sx:{display:"flex",flex:1,flexDirection:"column",alignItems:"flex-end",justifyContent:"center"},children:[t.jsx(d.Box,{sx:{marginBottom:.2},children:i.actionTime}),t.jsxs(B,{children:["via ",i.actionMethod]})]}),t.jsxs(d.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",position:"relative",marginRight:2,marginLeft:2},children:[t.jsx(fo,{showAsAvatar:!0,attachmentCode:"EMPLOYEE_PHOTOS",refKey:i?.personId+""||"0",style:{m:1,width:70,height:70}}),a!==e.actionHistory.length-1?t.jsx(d.Box,{sx:{marginTop:11,position:"absolute"},children:"|"}):t.jsx(t.Fragment,{})]}),t.jsxs(d.Box,{sx:{display:"flex",flex:1,flexDirection:"column",alignItems:"flex-start",justifyContent:"center"},children:[t.jsxs(d.Box,{sx:{width:"100%"},children:["ltr"===o.appDirection?`${i?.documentActionEnName}`:`${i?.documentActionArName}`,i?.actionComment?" - "+i.actionComment:""]}),t.jsx(d.Box,{sx:{width:"100%"},children:"ltr"===o.appDirection?`${i?.employeeEnName}`:`${i?.employeeArName}`})]})]})}))})]})},No=e=>{const{t:i}=E.useTranslation(),o=De(),{ConfirmationWindow:a,setOpen:r}=ge({body:i(e?.confirmationMessage||"ACTION_CONFIRMATION"),title:i("CONFIRMATION"),onConfirmationCallBk:async()=>{await(e?.actionFn(e.recordsToProcessActionOn,e.recordIdsToProcessActionOn)),e?.reloadData&&e.reloadData()}});let n=!0;if(e.authority&&(n=o.isUserAuthorized(e.authority)),n)return t.jsxs(t.Fragment,{children:[t.jsx(a,{}),t.jsxs(d.Button,{onClick:async()=>{if(e?.recordsToProcessActionOn&&e?.recordsToProcessActionOn.length>0){if(e?.preActionValidation)for(const t of e.recordsToProcessActionOn)if(!e.preActionValidation(t))return;!0===e?.isConfirmationRequired?r(!0):(await e.actionFn(e.recordsToProcessActionOn,e.recordIdsToProcessActionOn),e?.reloadData&&e.reloadData())}else _.toast.error(i("AT_LEAST_ONE_RECORD_SELECTED_MESSAGE"))},variant:e?.label?"outlined":e?.formActionProps?.actionButtonVariant?e.formActionProps.actionButtonVariant:"text",size:"small",color:e?.formActionProps?.actionButtonColor||"primary",children:[e?.icon?t.jsx(T.FontAwesomeIcon,{style:{marginRight:5,marginLeft:5},icon:e.icon}):t.jsx(t.Fragment,{}),e?.label?i(e.label):t.jsx(t.Fragment,{})]})]})},yo=d.styled(e.QuickFilter)({display:"grid",alignItems:"center"}),ho=d.styled(e.ToolbarButton)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",width:"min-content",height:"min-content",zIndex:1,opacity:t.expanded?0:1,pointerEvents:t.expanded?"none":"auto",transition:e.transitions.create(["opacity"])})),Ro=d.styled(d.TextField)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",overflowX:"clip",width:t.expanded?260:"var(--trigger-width)",opacity:t.expanded?1:0,transition:e.transitions.create(["width","opacity"])})),Lo=i=>{const{t:o}=E.useTranslation(),a=De(),r=!i?.templateProps?.editAction?.authority||a.isUserAuthorized(i.templateProps.editAction.authority),n=at(i?.templateProps?.rowSelectionModel||{ids:new Set,type:"include"},i?.templateProps?.data||[],i?.templateProps?.keyColumnName||"id");return t.jsxs(e.Toolbar,{children:[r&&"none"!=i?.templateProps?.editMode?.editMode?t.jsxs(d.Button,{onClick:i?.handleCreateNewRecord,children:[t.jsx(T.FontAwesomeIcon,{icon:"add",style:{marginRight:5,marginLeft:5}}),o("ADD_BTN_LABEL")]}):t.jsx(t.Fragment,{}),i?.templateProps?.rowActions?i.templateProps.rowActions.map((e,t)=>!0===e?.gridActionProps?.multiRecord?s.createElement(No,{...e,key:t,reloadData:async()=>{i.templateProps.apiActions.reloadData(i?.templateProps?.gridLoadParametersValues)},recordIdsToProcessActionOn:n.selectedRecordIds,recordsToProcessActionOn:n.selectedRecords}):null):t.jsx(t.Fragment,{}),t.jsx(d.Box,{sx:{flex:1,mx:.5},children:i?.templateProps?.tBar}),t.jsx(d.Tooltip,{title:"Columns",children:t.jsx(e.ColumnsPanelTrigger,{render:t.jsx(e.ToolbarButton,{}),children:t.jsx(e.GridViewColumnIcon,{fontSize:"small"})})}),t.jsx(d.Tooltip,{title:"Filters",children:t.jsx(e.FilterPanelTrigger,{render:(i,o)=>t.jsx(e.ToolbarButton,{...i,color:"default",children:t.jsx(d.Badge,{badgeContent:o.filterCount,color:"primary",variant:"dot",children:t.jsx(e.GridFilterListIcon,{fontSize:"small"})})})})}),i?.templateProps?.gridStateKey?t.jsx(d.Tooltip,{title:o("RESET_GRID_STATE"),children:t.jsx(d.IconButton,{onClick:i?.clearGridState,children:t.jsx(T.FontAwesomeIcon,{icon:"eraser"})})}):t.jsx(t.Fragment,{}),t.jsx(d.Divider,{orientation:"vertical",variant:"middle",flexItem:!0,sx:{mx:.5}}),t.jsx(d.Tooltip,{title:o("EXPORT_EXECL_LABEL"),children:t.jsx(e.ExportExcel,{render:t.jsx(d.MenuItem,{}),children:t.jsx(T.FontAwesomeIcon,{icon:"file-excel",color:"green"})})}),t.jsxs(yo,{children:[t.jsx(e.QuickFilterTrigger,{render:(e,i)=>t.jsx(d.Tooltip,{title:o("SEARCH_BTN_LABEL"),enterDelay:0,children:t.jsx(ho,{...e,ownerState:{expanded:i.expanded},color:"default","aria-disabled":i.expanded,children:t.jsx(T.FontAwesomeIcon,{icon:"search"})})})}),t.jsx(e.QuickFilterControl,{render:({ref:i,...a},r)=>t.jsx(Ro,{...a,ownerState:{expanded:r.expanded},inputRef:i,"aria-label":"Search",placeholder:`${o("SEARCH_BTN_LABEL")}...`,size:"small",slotProps:{input:{startAdornment:t.jsx(d.InputAdornment,{position:"start",children:t.jsx(T.FontAwesomeIcon,{icon:"search"})}),endAdornment:r.value?t.jsx(d.InputAdornment,{position:"end",children:t.jsx(e.QuickFilterClear,{edge:"end",size:"small","aria-label":"Clear search",children:t.jsx(T.FontAwesomeIcon,{icon:"xmark"})})}):null,...a.slotProps?.input},...a.slotProps}})})]}),t.jsx(d.IconButton,{onClick:()=>{i.templateProps.apiActions.reloadData(i?.templateProps?.gridLoadParametersValues)},children:t.jsx(T.FontAwesomeIcon,{icon:"refresh"})})]})},Co=i=>{const{t:o}=E.useTranslation(),a=De(),{ConfirmationWindow:r,setOpen:n}=ge({body:o(i?.confirmationMessage||"ACTION_CONFIRMATION"),title:o("CONFIRMATION"),onConfirmationCallBk:async()=>{await(i?.actionFn(i.record)),i?.reloadData&&i.reloadData()}});let l=!0;i.authority&&(l=a.isUserAuthorized(i.authority));let s={};i?.getActionIconStyleForRecord&&(s=i.getActionIconStyleForRecord(i.record));let p=!0;i?.isActionVisibleForRecord&&(p=i?.isActionVisibleForRecord(i.record));let c=!1;if(i?.isActionDisabledForRecord&&(c=i.isActionDisabledForRecord(i.record)),l&&p)return t.jsxs(t.Fragment,{children:[t.jsx(r,{}),t.jsx(e.GridActionsCellItem,{disabled:c,icon:t.jsx(d.Tooltip,{title:i?.label?o(i.label):"",children:t.jsx(T.FontAwesomeIcon,{icon:i.icon,style:{...s,color:c?"gray":null!=s?.color?s.color:void 0}})}),showInMenu:i?.gridActionProps?.showInMenu||!1,label:"",className:"textPrimary",color:"inherit",onClick:async()=>{if(!c){if(i?.preActionValidation&&!i.preActionValidation(i.record))return;!0===i?.isConfirmationRequired?n(!0):(await i.actionFn(i.record),!0===i?.gridActionProps?.reloadGridAfterAction&&i?.reloadData&&i.reloadData())}}})]})};let go=-1;const Do=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):{}}catch(e){return console.error("Failed to load grid state",e),{}}},Po=(e,t)=>{const i=Do(e);localStorage.setItem(e,JSON.stringify({...i,...t}))},xo=["__check__","actions"],bo=o=>{const{t:a}=E.useTranslation(),r=i.useSelector(e=>e.AppLayout),[n,l]=s.useState({}),[p,c]=s.useState(!0),{getLookupOptions:u}=(()=>{const{handleGetRequest:e}=Ce(),t=i.useSelector(e=>e.AppLayout),o=async t=>{let i=[];return await e({endPointURI:"api/v1/public/system/lookup",showMask:!0,parameters:{lookupType:t},successCallBkFn:e=>{i=e.data}}),i};return{generateLookupGridColumn:async e=>{let i=await o(e.lookupType);return{...e,options:i,displayField:"ltr"===t.appDirection?"lookupEnDisplay":"lookupArDisplay",valueField:"lookupValue"}},getLookupOptions:o}})(),{Window:m,setWindowState:A}=Pe({windowTitle:a(o.gridTitle)+" Attachments",windowIcon:"paperclip",width:"fit-content",height:"fit-content",minHeight:500,minWidth:"50%",onCloseCallBack:()=>{o?.apiActions?.reloadData(o.gridLoadParametersValues)}}),{Window:f,setWindowState:I}=Pe({windowTitle:a(o.gridTitle)+" Approvals",windowIcon:"stamp",width:"fit-content",height:"fit-content",minHeight:500,minWidth:"80%",onCloseCallBack:()=>{o?.apiActions?.reloadData(o.gridLoadParametersValues)}}),[O,y]=s.useState([]),R=tt(o.formElements),L=[],C=s.useMemo(()=>o?.gridStateKey?Do(o.gridStateKey):{},[]);for(const e of R)!0===e?.gridProps?.hidden&&L.push(e.fieldName);let g={};if(C?.columnVisibilityModel){g=C.columnVisibilityModel;const e=Object.keys(g);for(const t of L)e.includes(t)||(g[t]=!1)}else for(const e of L)g[e]=!1;const D=i.useSelector(e=>e.AppLayout.appDirection),[P,x]=s.useState(g),[b,M]=s.useState(C.columnOrder||[]),[S,U]=s.useState(C.columnWidths||{}),[F,w]=s.useState(C.columnGroupingModel||[]);let v=C?.pinnedColumns?.left||[];v=v.filter(e=>!xo.includes(e));let B=C?.pinnedColumns?.right||[]||[];B=B.filter(e=>!xo.includes(e));const[k,j]=s.useState({left:[..."ltr"===D?xo:[],...v],right:[..."rtl"===D?xo:[],...B]}),G=De(),W=N.useNavigate(),[Y,V]=s.useState(null),[q,K]=s.useState(null),[z,H]=s.useState({}),Q=async()=>{let e=it(R,"row"===o?.editMode?.editMode||!1,a);for(let t of e)t?.lookupType&&(t.displayField="ltr"===r.appDirection?"lookupEnDisplay":"lookupArDisplay",t.options=await u(t.lookupType),t.valueField="lookupValue");y(e)},[Z,$]=s.useState({ids:new Set,type:"include"});let X="id";o?.keyColumnName&&(X=o?.keyColumnName);const J=o.setData;let ee=null;ee=o?.validationSchema?o.validationSchema:h.z.object(ot(R));let te=!0;o?.editAction?.authority&&(te=G.isUserAuthorized(o.editAction.authority));let ie=!0;o?.deleteAction?.authority&&(ie=G.isUserAuthorized(o.deleteAction.authority));const{ConfirmationWindow:oe,setOpen:ae}=ge({title:"Confirmation",body:"Are you sure you want to delete this record ?",onConfirmationCallBk:async()=>{let e=!0;Y&&!0===Y?.isNew||(e=await o.apiActions.deleteRecordById(Y[X])),e&&(o?.deleteAction?.postActionCallBack&&await o.deleteAction.postActionCallBack(Y),J(e=>e.filter(e=>e[X]!=Y[X])))}});let re,ne,de,le,se,pe;"modal"===o?.editMode?.editMode&&(re=o?.editMode?.specs?.modalHeight||"fit-content",ne=o?.editMode?.specs?.modalWidth||"300",de=o?.editMode?.specs?.modalMinHeight,le=o?.editMode?.specs?.modalMinWidth,se=o?.editMode?.specs?.modalIcon||"window",pe=o?.editMode?.specs?.modalTitle||"Record Form");const{Window:ce,setWindowState:ue}=Pe({height:re,minHeight:de,minWidth:le,onCloseCallBack:()=>{o.apiActions.reloadData(o?.gridLoadParametersValues)},width:ne,windowIcon:se,windowTitle:pe}),me={type:"actions",field:"actions",headerName:"",headerAlign:"center",width:(o?.rowActions?30*o.rowActions.length:0)+(o?.editAction&&o?.editAction?.isEnabled?30:0)+(o?.deleteAction&&o?.deleteAction?.isEnabled?30:0)+(o?.attachment?30:0)+(o?.workFlowDocumentCode?30:0),getActions:i=>{const r=i.row,n=[];if("none"!=o?.editMode?.editMode&&(void 0===o?.disableDefaultAction||!o.disableDefaultAction)){const i=z[r[X]]?.mode===e.GridRowModes.Edit;if("row"===o.editMode.editMode&&i)te&&(n.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(T.FontAwesomeIcon,{icon:"save"}),label:a("SAVE_BTN_LABEL"),onClick:()=>{(t=>{const i=t[X];H({...z,[i]:{mode:e.GridRowModes.View}})})(r)}})),n.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(T.FontAwesomeIcon,{icon:"cancel"}),label:a("CANCEL_BTN_LABEL"),onClick:()=>{(t=>{const i=t[X];i&&so(i)&&i<0?(H({...z,[i]:{mode:e.GridRowModes.View,ignoreModifications:!0}}),J(e=>{const t=e.filter(e=>e[X]!=i);return t})):H({...z,[i]:{mode:e.GridRowModes.View,ignoreModifications:!0}})})(r)},color:"inherit"})));else{if(o?.editAction&&!0===o?.editAction?.isEnabled){let i=!0;o?.editAction?.isActionVisibleForRecord&&(i=o?.editAction?.isActionVisibleForRecord(r));let l=!1;o?.editAction?.isActionDisabledForRecord&&(l=o?.editAction?.isActionDisabledForRecord(r)),te&&i&&n.push(t.jsx(e.GridActionsCellItem,{disabled:l,icon:t.jsx(d.Tooltip,{title:a("EDIT_BTN_LABEL"),children:t.jsx(T.FontAwesomeIcon,{icon:"edit",style:{color:l?"gray":void 0}})}),showInMenu:o?.editAction?.gridActionProps?.showInMenu||!1,label:a("EDIT_BTN_LABEL"),className:"textPrimary",color:"inherit",onClick:()=>{te&&!l&&(async t=>{if(t)if(K(t),"form"===o.editMode.editMode)W(o.editMode.specs.formRoute+"/"+t[X]);else if("modal"===o.editMode.editMode)ue(!0);else if("row"===o?.editMode?.editMode){const i=t[X];H({...z,[i]:{mode:e.GridRowModes.Edit}})}})(r)}}))}if(o?.deleteAction&&!0===o?.deleteAction?.isEnabled){let i=!0;o?.deleteAction?.isActionVisibleForRecord&&(i=o?.deleteAction?.isActionVisibleForRecord(r));let l=!1;o?.deleteAction?.isActionDisabledForRecord&&(l=o?.deleteAction?.isActionDisabledForRecord(r)),ie&&i&&n.push(t.jsx(e.GridActionsCellItem,{disabled:l,icon:t.jsx(d.Tooltip,{title:a("DELETE_BTN_LABEL"),children:t.jsx(T.FontAwesomeIcon,{icon:"trash",style:{color:l?"gray":void 0}})}),showInMenu:o?.deleteAction?.gridActionProps?.showInMenu||!1,label:a("DELETE_BTN_LABEL"),className:"textPrimary",color:"inherit",onClick:()=>{if(ie&&!l){if(o?.deleteAction?.preActionValidation&&!o.deleteAction.preActionValidation(r))return;V(r),ae(!0)}}}))}}}if(r[o?.keyColumnName||"id"]&&r[o?.keyColumnName||"id"]>0&&o?.attachment&&n?.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(d.Tooltip,{title:"Attachments",children:t.jsx(T.FontAwesomeIcon,{icon:"paperclip"})}),label:"Attachments",className:"textPrimary",color:"inherit",onClick:()=>{l(r),c(!o?.attachment?.enableAttachFn||o.attachment.enableAttachFn(r)),A(!0)}})),r[o?.keyColumnName||"id"]&&r[o?.keyColumnName||"id"]>0&&o?.workFlowDocumentCode&&n?.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(d.Tooltip,{title:"Approvals",children:t.jsx(T.FontAwesomeIcon,{icon:"stamp"})}),label:"Approvals",className:"textPrimary",color:"inherit",onClick:()=>{l(r),I(!0)}})),r[o?.keyColumnName||"id"]&&r[o?.keyColumnName||"id"]>0&&o?.rowActions)for(const e of o.rowActions)e?.gridActionProps?.multiRecord&&!0===e?.gridActionProps?.multiRecord||n.push(t.jsx(Co,{...e,record:r,reloadData:async()=>{o.apiActions.reloadData(o?.gridLoadParametersValues)}}));return n}};let Te=[];(void 0===o?.disableDefaultAction||!o.disableDefaultAction||o?.rowActions&&o?.rowActions.length>0)&&Te.push(me),Te=[...Te,...O];s.useEffect(()=>{void 0!==o?.autoLoad&&!0!==o.autoLoad||o.apiActions.reloadData(o?.gridLoadParametersValues),Q()},[]),s.useEffect(()=>{o.apiActions.reloadData(o?.gridLoadParametersValues)},[G.UserInfo?.currentOrganization]),s.useEffect(()=>{Q()},[D,o.formElements]);const Ae=s.useMemo(()=>{const e=Te.map(e=>({...e}));if(b.length){const t=new Map(e.map(e=>[e.field,e]));return b.map(e=>t.get(e)).filter(Boolean)}return e},[b,S,Te]);return t.jsxs(t.Fragment,{children:[t.jsx(oe,{}),"modal"===o?.editMode?.editMode?t.jsx(ce,{children:o?.editMode?.specs?.formComponent?t.jsx(o.editMode.specs.formComponent,{recordIdToEdit:q?q[X]:void 0,formCloseCallBk:()=>{ue(!1),o.apiActions.reloadData(o?.gridLoadParametersValues)}}):t.jsx(vo,{keyColumnName:o.keyColumnName,attachment:o.attachment,formValuesChangeCallBk:o?.formProps?.formValuesChangeCallBk,recordIdToEdit:q?q[X]:void 0,formCloseCallBk:()=>{ue(!1),o.apiActions.reloadData(o?.gridLoadParametersValues)},elements:o.formElements,apiActions:o.apiActions,editAuthorityKey:o?.editAction?.authority,formSavedSuccessfullyCallBk:o?.editAction?.postActionCallBack,preSaveValidation:o?.editAction?.preActionValidation,actions:o?.rowActions})}):t.jsx(t.Fragment,{}),void 0!==o?.hideInfoBar||o?.hideInfoBar?t.jsx(t.Fragment,{}):t.jsxs(d.Box,{sx:{display:"flex"},children:[void 0!==o?.hideBackButton||o?.hideBackButton?t.jsx(t.Fragment,{}):t.jsx(d.IconButton,{onClick:()=>{W(-1,{replace:!0})},children:t.jsx(T.FontAwesomeIcon,{icon:"ltr"===D?"arrow-left":"arrow-right"})}),t.jsxs(d.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:[o?.girdIcon?t.jsx(T.FontAwesomeIcon,{icon:o.girdIcon,style:{marginRight:5,marginLeft:5}}):t.jsx(t.Fragment,{}),t.jsx(d.Typography,{variant:"h5",children:o?.gridTitle?co(a(o?.gridTitle)):""})]})]}),o?.gridLoadParameters&&o?.gridLoadParameters.length>0&&o?.gridLoadParametersValues&&o?.setGridLoadParametersValues?t.jsxs(d.Accordion,{defaultExpanded:!0,sx:{width:"100%"},children:[t.jsx(d.AccordionSummary,{expandIcon:t.jsx(e.GridExpandMoreIcon,{}),children:t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(T.FontAwesomeIcon,{style:{marginLeft:5,marginRight:5},icon:"search"}),t.jsx(d.Typography,{component:"span",children:"Filters"})]})}),t.jsx(d.AccordionDetails,{children:t.jsx(d.Box,{children:t.jsx(vo,{saveButtonSpecs:{label:a("SEARCH_BTN_LABEL"),icon:"search",actionButtonVariant:"outlined",actionButtonColor:"success"},cancelButtonSpecs:{label:a("RESET_BTN_LABEL"),icon:"eraser",actionButtonVariant:"outlined",actionButtonColor:"error"},apiActions:{deleteRecordById:async()=>!0,saveRecord:async e=>{null!=e?o.setGridLoadParametersValues(e):o.setGridLoadParametersValues({}),o.apiActions.reloadData(e)},reloadData:async()=>{},loadRecordById:async()=>{}},elements:o.gridLoadParameters})})})]}):t.jsx(t.Fragment,{}),o?.attachment?t.jsx(m,{children:t.jsx(Eo,{attachmentCode:o.attachment.attachmentCode,refKey:n[o?.keyColumnName||"id"],enableAttachment:p})}):t.jsx(t.Fragment,{}),o?.workFlowDocumentCode?t.jsx(f,{children:t.jsx(wo,{workFlowDocumentCode:o.workFlowDocumentCode,refDocumentId:n[o?.keyColumnName||"id"],postActionCallBk:()=>{I(!1),o.apiActions.reloadData(o.gridLoadParametersValues)},cancelActionCallBk:()=>{I(!1),o.apiActions.reloadData(o.gridLoadParametersValues)}})}):t.jsx(t.Fragment,{}),t.jsx(e.DataGridPremium,{...o?.muiProps,slots:{toolbar:Lo},slotProps:{toolbar:{templateProps:{...o,rowSelectionModel:Z,data:o?.data},handleCreateNewRecord:()=>{if("form"===o?.editMode?.editMode)W(o.editMode.specs.formRoute);else if("modal"===o?.editMode?.editMode)K(null),ue(!0);else if("row"===o?.editMode?.editMode){go-=1;const t={};t[X]=go,t.isNew=!0;for(const e of O)"actions"!=e?.type&&e?.field!=X&&e?.field&&(t[e.field]=null);J(e=>[t,...e]),H(t=>({...t,[go]:{mode:e.GridRowModes.Edit}}))}},clearGridState:()=>{o?.gridStateKey&&localStorage.removeItem(o.gridStateKey),x({}),M([]),U({}),w([]),j({left:[..."ltr"===D?xo:[]],right:[..."rtl"===D?xo:[]]})}}},getRowId:e=>e[X],showToolbar:!0,rows:o?.data,columns:Ae,checkboxSelection:!0,editMode:"row",onRowEditStop:(e,t)=>{"rowFocusOut"===e.reason&&(t.defaultMuiPrevented=!0)},rowModesModel:"row"==o.editMode.editMode?z:void 0,onRowModesModelChange:"row"==o.editMode.editMode?e=>{H(e)}:void 0,rowGroupingColumnMode:"multiple",processRowUpdate:async e=>{if("row"===o.editMode.editMode){let i=null;const a=(e=>{try{ee.parse(e)}catch(e){console.log("validateRecord err",e);let t=null;return t=e instanceof h.z.ZodError?e.errors.map(e=>"Error in field ("+e.path+") : "+e.message).join(","):"invalid record data",t}})(e);if(a){const e=a.split(",");throw _.toast.error(t.jsx("div",{style:{},children:e.map(e=>t.jsxs(t.Fragment,{children:[t.jsx("div",{children:e}),t.jsx(d.Divider,{})]}))})),new Error(a)}if(o?.editAction?.preActionValidation&&!o.editAction.preActionValidation(e))throw new Error("error on the configured presave validation");const r={...e};if(e[X]&&so(e[X])&&Number(e[X])<0&&(r[X]=null),i=await o.apiActions.saveRecord(r),null==i)throw new Error("Failed to process your request, contact your administrator");return o?.editAction?.postActionCallBack&&await o.editAction.postActionCallBack(e),!0===e?.isNew&&J(t=>{const o=t.filter(t=>t[X]!==e[X]);return[i,...o]}),!0===o?.editMode?.reloadAfterSave&&o?.apiActions?.reloadData&&o?.apiActions?.reloadData(o?.gridLoadParametersValues),i}},rowSelectionModel:Z,onRowSelectionModelChange:e=>{$(e)},columnVisibilityModel:P,onColumnVisibilityModelChange:e=>{x(e),o?.gridStateKey&&Po(o.gridStateKey,{columnVisibilityModel:e})},onColumnOrderChange:e=>{const{column:t,targetIndex:i}=e;M(e=>{const a=e.length?[...e]:Te.map(e=>e.field),r=a.indexOf(t.field);return-1===r||(a.splice(r,1),a.splice(i,0,t.field),o?.gridStateKey&&Po(o.gridStateKey,{columnOrder:a})),a})},rowGroupingModel:F,onRowGroupingModelChange:e=>{(e=>{w(e),o?.gridStateKey&&Po(o.gridStateKey,{columnGroupingModel:e})})(e)},sx:{width:"100%"}})]})},Mo=e=>{if(0===e.length)return[];const t=[];for(const i of Object.keys(e[0])){const e={type:"field",mode:"props",props:{fieldLabel:i,fieldName:i,fieldType:"text"}};t.push(e)}return t},So=e=>{const[i,o]=s.useState([]);return s.useEffect(()=>{const t=e.reportData.map((e,t)=>({...e,report_record_data_key:t}));o(t)},[e.reportData]),t.jsx(bo,{data:i,disableDefaultAction:!0,setData:e.setReportData,formElements:Mo(e.reportData),gridLoadParameters:e.gridLoadParameters,gridLoadParametersValues:e.gridLoadParametersValues,setGridLoadParametersValues:e.setGridLoadParametersValues,editMode:{editMode:"none"},girdIcon:"file-excel",gridTitle:"Report",autoLoad:!0,keyColumnName:"report_record_data_key",hideInfoBar:!0,apiActions:{deleteRecordById:async()=>!0,loadRecordById:async()=>{},reloadData:async()=>{e.reloadReport()},saveRecord:async()=>{}}})},Uo=e=>{console.log("useParameterPanel","useParameterPanel called");const[i,o]=s.useState({...e?.initialParameterValues}),a=((e,t)=>{const i=[];for(const o of e){const e={type:"field",mode:"props",props:{fieldLabel:o?.parameterLabel,fieldName:o?.parameterCode,fieldType:o?.parameterType,hidden:o?.hidden,formProps:{fieldSize:{lg:4,md:6,sm:12}},required:o?.mandatory,defaultValue:t[o?.parameterCode]||o?.defaultValue}};i.push(e)}return i})(e.parameters,i);return{ParameterPanel:({searchBtnClickCallBk:e})=>{const{t:r}=E.useTranslation();return t.jsxs(d.Accordion,{defaultExpanded:!0,sx:{width:"100%"},children:[t.jsx(d.AccordionSummary,{expandIcon:t.jsx(T.FontAwesomeIcon,{icon:{prefix:"far",iconName:"square-caret-down"}}),children:t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(T.FontAwesomeIcon,{style:{marginLeft:5,marginRight:5},icon:"search"}),t.jsx(d.Typography,{component:"span",children:"Filters"})]})}),t.jsx(d.AccordionDetails,{children:t.jsx(d.Box,{children:t.jsx(vo,{saveButtonSpecs:{label:r("Filter"),icon:"search",actionButtonVariant:"outlined",actionButtonColor:"success"},cancelButtonSpecs:{label:r("RESET_BTN_LABEL"),icon:"eraser",hidden:!0,actionButtonVariant:"outlined",actionButtonColor:"error"},actions:[{label:r("RESET_BTN_LABEL"),icon:"eraser",isIdRequired:!1,formActionProps:{enabled:!0},actionFn:async(e,t)=>{o({})}}],apiActions:{deleteRecordById:async()=>!0,saveRecord:async t=>{o(null!=t?t:{}),e&&await e(i)},reloadData:async()=>{},loadRecordById:async()=>{}},elements:a})})})]})},parametersValues:i,setParametersValues:o,panelElements:a}},Fo=e=>{const[i,o]=s.useState(null),[a,r]=s.useState(null),[n,l]=s.useState([]),[p,c]=s.useState("WAITING_REPORT_CODE"),{handleGetRequest:u,handlePostRequest:m,HandleDownloadHTTPPostPDF:A}=Ce(),[_,f]=s.useState(null),{ParameterPanel:I,parametersValues:E,panelElements:O,setParametersValues:N}=Uo({parameters:_?.reportParameters||[],initialParameterValues:{...e?.reportParametersValues}}),y=async t=>{c("WAITING_RESULT"),"Excel"===_?.reportType?await m({endPointURI:"api/v1/public/report/run",showMask:!0,data:{reportCode:e.reportCode,parameters:t,resultMode:e.resultMode,jasperOutPutFileType:e.jasperOutPutFileType},successCallBkFn:e=>{c("SHOWING_RESULT"),l(e.data)}}):_?.reportType&&await A({endPointURI:"api/v1/public/report/run",showMask:!0,data:{reportCode:e.reportCode,parameters:t,resultMode:e.resultMode,jasperOutPutFileType:e.jasperOutPutFileType},successCallBkFn:e=>{c("SHOWING_RESULT");const t=e.headers["content-disposition"];let i="downloaded_file";if(t&&-1!==t.indexOf("filename=")){const e=t.match(/filename="?([^"]+)"?/);e&&e[1]&&(i=e[1])}if(i.includes("pdf")){const t=new Blob([e.data],{type:"application/pdf"}),i=URL.createObjectURL(t);o(i)}else{const t=new Blob([e.data],{type:e.headers["content-type"]}),o=window.URL.createObjectURL(t),a=document.createElement("a");a.href=o,a.download=i,document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(o)}},failureCallBkFn:e=>{r("Failed To run report ... contact your administrator"),c("ERROR")}})};return s.useEffect(()=>{e?.reportCode&&(async()=>{c("LOADING_METADATA"),await u({endPointURI:"api/v1/public/report/metadata",showMask:!0,parameters:{reportCode:e.reportCode},successCallBkFn:t=>{f(t.data),!0===e?.byPassParameterEntry||0==t.data.reportParameters.length?(y(E),c("WAITING_RESULT")):c("WAITING_PARAMETER_INPUT")},failureCallBkFn:e=>{r("Failed loading report metadata ... contact your administrator"),c("ERROR")}})})()},[e.reportCode,e.byPassParameterEntry,e.reportParametersValues,e.jasperOutPutFileType,e.resultMode]),t.jsxs(t.Fragment,{children:[t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%"},children:[t.jsxs(d.Box,{sx:{flex:1,textAlign:"center",marginBottom:1},children:[t.jsx(T.FontAwesomeIcon,{icon:"Excel"===_?.reportType?"file-excel":"file-pdf",color:"Excel"===_?.reportType?"darkgreen":"darkred",style:{marginRight:10,marginLeft:10}}),_?.reportName]}),"Excel"!=_?.reportType&&"SHOWING_RESULT"===p?t.jsxs(t.Fragment,{children:[!0===e?.byPassParameterEntry?t.jsx(t.Fragment,{}):_?.reportParameters.length>0?t.jsx(d.IconButton,{onClick:()=>{c("WAITING_PARAMETER_INPUT")},children:t.jsx(T.FontAwesomeIcon,{icon:"filter"})}):t.jsx(t.Fragment,{}),t.jsx(d.IconButton,{children:t.jsx(T.FontAwesomeIcon,{icon:"refresh",onClick:()=>{y(E)}})})]}):t.jsx(t.Fragment,{})]}),t.jsx(d.Box,{sx:{flexGrow:1,width:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start"},children:"WAITING_PARAMETER_INPUT"===p&&"Excel"!=_?.reportType?t.jsx(I,{searchBtnClickCallBk:y}):"SHOWING_RESULT"===p||("WAITING_PARAMETER_INPUT"===p||"WAITING_RESULT"===p)&&"Excel"===_?.reportType?"Excel"===_?.reportType?t.jsx(So,{reportData:n,setReportData:l,reloadReport:async()=>{y(E)},gridLoadParameters:O,gridLoadParametersValues:E,setGridLoadParametersValues:N}):t.jsx("iframe",{src:i,width:"100%",height:"100%",title:"PDF Preview",style:{border:"1px solid #ccc",marginTop:"20px"}}):"ERROR"===p?t.jsxs(d.Box,{sx:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[t.jsx(T.FontAwesomeIcon,{icon:"circle-exclamation",color:"darkred",style:{marginRight:10,marginLeft:10}}),a]}):t.jsx(t.Fragment,{})})]})},wo=e=>{const o=N.useNavigate(),a=i.useSelector(e=>e.AppLayout),{isUserAuthorized:r,UserInfo:n}=De(),{handleGetRequest:l,handlePostRequest:p}=Ce(),[c,u]=s.useState(null),[m,A]=s.useState([]),{t:f}=E.useTranslation(),[I,O]=s.useState(null),[y,h]=s.useState({referencedDocument:null,workflowDocumentReport:null,workflowDocument:null,workflowDocumentStatus:null,actionsHistory:[],nextActionTakers:null,nextActions:[]}),{Window:R,setWindowState:L}=Pe({windowTitle:"ltr"===a.appDirection?y?.workflowDocument&&y?.referencedDocument?`${y?.workflowDocument?.documentEnName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`:"Document":y?.workflowDocument&&y?.referencedDocument?`${y?.workflowDocument?.documentArName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`:"وثيقة",windowIcon:"eye",width:"80%"}),C=async()=>{await l({endPointURI:"api/v1/public/workflow/doc/info",showMask:!0,parameters:{workflowDocumentCode:e.workFlowDocumentCode,refDocumentId:e.refDocumentId},successCallBkFn:e=>{h(e.data)},failureCallBkFn:()=>{h({referencedDocument:null,workflowDocumentReport:null,workflowDocument:null,workflowDocumentStatus:null,actionsHistory:[],nextActions:[],nextActionTakers:null})}})},g=async()=>{await p({endPointURI:"api/v1/public/workflow/doc/action",showMask:!0,data:{workflowDocumentId:y?.workflowDocument?.id,refDocumentId:e.refDocumentId,actionId:c.id,refDocumentStatus:y?.workflowDocumentStatus?.documentStatusCode,actionComment:I},successCallBkFn:async t=>{c?.post_action_endpoint?await p({endPointURI:c.post_action_endpoint,showMask:!0,loadingMessage:"Processing post action process ... please wait",parameters:{refDocumentId:e.refDocumentId,actionId:c.id},successCallBkFn:()=>{C(),e?.postActionCallBk&&e.postActionCallBk()}}):C()}})};return s.useEffect(()=>{e.refDocumentId&&e.workFlowDocumentCode&&C()},[e.refDocumentId,e.workFlowDocumentCode]),s.useEffect(()=>{A(y?.nextActions&&y?.nextActions?.length>0?y.nextActions.filter(e=>{if(!y?.workflowDocumentStatus?.nextActionTakersAuthority&&!y?.nextActionTakers)return!0;if(y?.workflowDocumentStatus?.nextActionTakersAuthority&&r(y.workflowDocumentStatus.nextActionTakersAuthority))return!0;if(y?.nextActionTakers)for(const e of y.nextActionTakers)if(n?.username===e?.username||n?.username===e?.USERNAME)return!0;return!1}):[])},[y.nextActions,y.nextActionTakers]),t.jsxs(t.Fragment,{children:[y?.workflowDocumentReport?.id?t.jsx(R,{children:t.jsx(Fo,{reportCode:y?.workflowDocumentReport?.reportCode,resultMode:"App",byPassParameterEntry:!0,reportParametersValues:{doc_id:e.refDocumentId+""}})}):t.jsx(t.Fragment,{}),y?.workflowDocument?t.jsxs(d.Box,{sx:{width:"100%",textAlign:"center",fontSize:20,fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(d.IconButton,{onClick:()=>{o(-1,{replace:!0})},children:t.jsx(T.FontAwesomeIcon,{icon:"arrow-left"})}),t.jsx(d.Box,{sx:{flex:1}}),t.jsx(T.FontAwesomeIcon,{icon:"file",style:{marginRight:10,marginLeft:10}}),"ltr"===a.appDirection?`${y?.workflowDocument?.documentEnName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`:`${y?.workflowDocument?.documentArName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`,y?.workflowDocumentStatus?"ltr"===a.appDirection?` ( ${y?.workflowDocumentStatus?.documentStatusEnName} )`:` ( ${y?.workflowDocumentStatus?.documentStatusArName} )`:"",t.jsx(d.Box,{sx:{flex:1}}),y?.workflowDocumentReport?.id?t.jsx(d.Button,{onClick:()=>{L(!0)},variant:"outlined",startIcon:t.jsx(T.FontAwesomeIcon,{icon:"eye"}),children:f("VIEW_LABEL")}):t.jsx(t.Fragment,{})]}):t.jsx(t.Fragment,{}),t.jsxs(d.Box,{sx:{flex:1,width:"100%",overflow:"hidden",display:"flex"},children:[m?.length>0?t.jsxs(d.Paper,{sx:{padding:2,display:"flex",flex:1,margin:1,flexDirection:"column",alignItems:"center",justifyContent:"flex-start",overflow:"hidden"},children:[t.jsx(je,{sx:{marginBottom:2,width:400},label:f("WE_AVAILABLE_ACTIONS_LABEL"),displayField:"ltr"===a.appDirection?"document_action_en_name":"document_action_ar_name",valueField:"id",value:c?.id,options:m,onChangeCallBack:(e,t)=>{u(t)}}),t.jsx(Fe,{sx:{width:400},rows:3,value:I,onChange:e=>{O(e.target.value)},multiline:!0,label:f("WF_COMMENT_LABEL")}),t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(d.Button,{color:"success",variant:"contained",sx:{width:200,m:1},onClick:async()=>{null!=c&&null!=c?.id?!0!==c.require_comment&&1!==c.require_comment&&"true"!==c.require_comment||null!==I&&""!==I?c?.pre_action_endpoint?await p({endPointURI:c.pre_action_endpoint,showMask:!0,loadingMessage:"Processing pre action validation ... please wait",parameters:{refDocumentId:e.refDocumentId,actionId:c.id},successCallBkFn:()=>{g()}}):g():_.toast.error("You must enter comment for the action to be processed"):_.toast.error("You must select action to process")},children:f("WF_TAKE_ACTION_BTN_LABEL")}),e?.cancelActionCallBk?t.jsx(d.Button,{variant:"contained",sx:{width:200,m:1},color:"error",onClick:()=>{e?.cancelActionCallBk&&e.cancelActionCallBk()},children:f("WF_CANCEL_BTN_LABEL")}):t.jsx(t.Fragment,{})]}),y?.nextActionTakers&&y.nextActionTakers.length>0?t.jsxs(t.Fragment,{children:[t.jsx(d.Divider,{variant:"fullWidth",flexItem:!0,sx:{marginTop:1,marginBottom:1},children:t.jsxs(d.Box,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,fontWeight:"bold"},children:[t.jsx(T.FontAwesomeIcon,{icon:"users",style:{marginRight:10,marginLeft:10}})," ",f("WF_WAITING_FOR_LABEL")]})}),t.jsx(d.Box,{sx:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",overflow:"auto",padding:1,width:"100%"},children:y.nextActionTakers.map(e=>t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",border:"1px dotted black",width:400,marginBottom:2,padding:2},children:[t.jsx(fo,{showAsAvatar:!0,attachmentCode:"EMPLOYEE_PHOTOS",refKey:e?.id||"0",style:{marginRight:2,marginLeft:2,width:60,height:60}}),t.jsxs(d.Box,{sx:{flex:2,display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"center"},children:[t.jsx("div",{children:"ltr"===a.appDirection?e?.employee_en_name:e?.employee_ar_name}),t.jsx("div",{children:e?.email?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:"envelope",style:{marginRight:10,marginLeft:10}}),e?.email]}):t.jsx(t.Fragment,{})}),t.jsx("div",{children:e?.mobile_number?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:"mobile",style:{marginRight:10,marginLeft:10}}),e?.mobile_number]}):t.jsx(t.Fragment,{})})]})]}))})]}):t.jsx(t.Fragment,{})]}):t.jsx(t.Fragment,{}),y?.actionsHistory.length>0?t.jsx(Oo,{actionHistory:y.actionsHistory}):t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",flexGrow:1,padding:2,margin:1,alignItems:"center",justifyContent:"center"},children:[t.jsxs(d.Box,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,fontWeight:"bold"},children:[t.jsx(T.FontAwesomeIcon,{icon:"history",style:{marginRight:10,marginLeft:10}}),f("WF_ACTION_HISTORY_LABEL")]}),t.jsx(d.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:"No Action Log available"})]})]})]})},vo=e=>{const{Window:i,setWindowState:o}=Pe({windowTitle:"Attachments",windowIcon:"paperclip",width:"fit-content",height:"fit-content",minHeight:500,minWidth:400}),{Window:a,setWindowState:r}=Pe({windowTitle:"Approvals",windowIcon:"stamp",width:"fit-content",height:"fit-content",minHeight:500,minWidth:400}),[n,l]=s.useState(!0),{t:p}=E.useTranslation(),c=tt(e.elements),u=[];for(const e of c)e?.hidden&&u.push(e.fieldName);const[m,A]=s.useState(u),f={};for(const t of e.elements)"field"===t?.type&&"props"===t?.mode&&t?.props?.defaultValue&&(f[t.props.fieldName]=t.props.defaultValue);const[I,h]=s.useState([]);let R=null;R=e?.validationSchema?e.validationSchema:ce.object(ot(c));const L=O.useForm({resolver:y.zodResolver(R),defaultValues:f}),C=L.watch(),g=N.useParams(),D=e?.formRouteRecordIdParamName,P=async()=>{let t=null;if(e?.recordIdToEdit?t=e.recordIdToEdit:D&&g[D]&&(t=g[D]),t){const i=await e.apiActions.loadRecordById(t);if(i){L.reset({...i}),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk({...i},x,L);for(const e of c)"combobox"===e?.fieldType&&i[e.fieldName]&&(e?.comboboxValueDataType&&"string"===e?.comboboxValueDataType?L.setValue(e.fieldName,i[e.fieldName]+""):L.setValue(e.fieldName,i[e.fieldName]))}}else L.reset({})},x={setFieldValue:(e,t)=>{L.setValue(e,t)},hideField:e=>{A(t=>[...t,e])},showField:e=>{A(t=>t.filter(t=>t!==e))},disableField:e=>{h(t=>[...t,e])},enableField:e=>{h(t=>t.filter(t=>t!==e))}};return s.useEffect(()=>{P()},[e?.recordIdToEdit]),s.useEffect(()=>{l(!e?.attachment||!e?.attachment?.enableAttachFn||e.attachment.enableAttachFn(C))},[C]),t.jsxs(t.Fragment,{children:[e?.attachment?t.jsx(i,{children:t.jsx(Eo,{attachmentCode:e.attachment.attachmentCode,refKey:C[e?.keyColumnName||"id"],enableAttachment:n})}):t.jsx(t.Fragment,{}),e?.workFlowDocumentCode?t.jsx(a,{children:t.jsx(wo,{workFlowDocumentCode:e.workFlowDocumentCode,refDocumentId:C[e?.keyColumnName||"id"],postActionCallBk:()=>{r(!1),P()},cancelActionCallBk:()=>{r(!1)}})}):t.jsx(t.Fragment,{}),t.jsx(lo,{sx:{display:"flex",flex:1,width:"100%",height:"fit-content",flexDirection:"column",alignItems:"center",overflow:"auto"},children:t.jsx(d.Grid2,{sx:{width:"100%"},container:!0,children:e.elements.map((i,o)=>"group"===i.type?t.jsx(_o,{...i.props,formManager:L,formValues:C,formActions:x,hiddenFields:m,disabledFields:I},o):"field"===i.type&&"props"===i.mode?t.jsx(To,{fieldInfo:i.props,formManager:L,formValues:C,formActions:x,hiddenFields:m,disabledFields:I,formValuesChangeCallBk:e.formValuesChangeCallBk},o):"field"===i.type&&"node"===i.mode?t.jsx(d.Grid2,{size:i?.props?.formProps?.fieldSize||{lg:3,md:6,xs:12},sx:{padding:1,width:"100%"},children:t.jsx(i.node,{formManager:L,formValues:C})},o):void 0)})}),t.jsxs(lo,{sx:{display:"flex",width:"100%",alignItems:"center",justifyContent:"flex-start"},children:[C[e?.keyColumnName||"id"]&&e?.attachment?t.jsx(d.Tooltip,{title:"Attachments",children:t.jsx(d.IconButton,{onClick:()=>{o(!0)},children:t.jsx(T.FontAwesomeIcon,{icon:"paperclip"})})}):null,C[e?.keyColumnName||"id"]&&e?.workFlowDocumentCode?t.jsx(d.Tooltip,{title:"Approvals",children:t.jsx(d.IconButton,{onClick:()=>{r(!0)},children:t.jsx(T.FontAwesomeIcon,{icon:"stamp"})})}):null,e?.actions?e.actions.map(i=>!1===i?.isIdRequired?t.jsx(Ao,{...i,record:C}):C[e?.keyColumnName||"id"]?!0===i?.formActionProps?.enabled?t.jsx(Ao,{...i,record:C}):t.jsx(t.Fragment,{}):void 0):t.jsx(t.Fragment,{}),t.jsx("div",{style:{flex:1}}),e?.saveButtonSpecs?.hidden?t.jsx(t.Fragment,{}):t.jsx(d.Button,{variant:e?.saveButtonSpecs?.actionButtonVariant?e.saveButtonSpecs.actionButtonVariant:"contained",sx:{m:1},startIcon:e?.saveButtonSpecs?.icon?t.jsx(T.FontAwesomeIcon,{icon:e.saveButtonSpecs.icon}):null,color:e?.saveButtonSpecs?.actionButtonColor?e.saveButtonSpecs.actionButtonColor:"primary",onClick:L.handleSubmit(t=>{(async t=>{if((!e?.preSaveValidation||e.preSaveValidation(t))&&t){const i=await e.apiActions.saveRecord(t);i&&(L.reset({...i}),e?.formSavedSuccessfullyCallBk&&e.formSavedSuccessfullyCallBk(i),e?.formCloseCallBk&&e.formCloseCallBk())}})(t)},e=>{_.toast.error("Form Data is not valid, make sure you have all field with valid data"),console.log("form validation error",e)}),children:p(e?.saveButtonSpecs?.label||"SAVE_BTN_LABEL")}),e?.cancelButtonSpecs?.hidden?t.jsx(t.Fragment,{}):t.jsx(d.Button,{variant:e?.cancelButtonSpecs?.actionButtonVariant?e.cancelButtonSpecs.actionButtonVariant:"contained",startIcon:e?.cancelButtonSpecs?.icon?t.jsx(T.FontAwesomeIcon,{icon:e.cancelButtonSpecs.icon}):null,color:e?.cancelButtonSpecs?.actionButtonColor?e.cancelButtonSpecs.actionButtonColor:"error",sx:{m:1},onClick:()=>{e?.formCloseCallBk&&e.formCloseCallBk(),L.reset(f)},children:p(e?.cancelButtonSpecs?.label||"CANCEL_BTN_LABEL")})]})]})},Bo=()=>{const{workflowDocumentCode:e,refDocumentId:i}=N.useParams();return t.jsx(wo,{workFlowDocumentCode:e,refDocumentId:i})},ko=e=>t.jsx(G.BarChart,{dataset:e.data,xAxis:[{dataKey:e.valueField,scaleType:"band",label:e.valueLabel}],series:e.labelField?.split(",").map(e=>({dataKey:e,label:e}))}),jo=e=>t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",height:150,padding:1,flexGrow:1,justifyContent:"center",alignItems:"center"},children:[t.jsx(d.Box,{sx:{display:"flex",width:"100%",justifyContent:"space-evenly",alignItems:"center"},children:t.jsx("div",{children:e.record[e.valueField]})}),t.jsx(d.Typography,{sx:{fontSize:16,fontWeight:"bold"},children:e.record[e.labelField]})]}),Go=e=>t.jsxs(t.Fragment,{children:[t.jsx(d.Typography,{sx:{fontSize:16,fontWeight:"bold"},children:e.record[e.labelField]}),t.jsx(G.Gauge,{width:200,height:200,value:e.record[e.valueField],valueMax:e.total})]}),Wo=e=>t.jsx(G.LineChart,{dataset:e.data,xAxis:[{dataKey:e.valueField,scaleType:"band",label:e.valueLabel}],series:e.labelField?.split(",").map(e=>({dataKey:e,label:e}))});function Yo(e){return t.jsxs(Y,{sx:{display:"flex",alignItems:"center"},children:[t.jsx(Y,{sx:{width:"100%",mr:1},children:t.jsx(W,{variant:"determinate",...e})}),t.jsx(Y,{sx:{minWidth:35},children:t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:`${Math.round(e.value)}%`})})]})}const Vo=e=>t.jsxs(Y,{sx:{width:"100%"},children:[t.jsx(B,{sx:{fontSize:16,fontWeight:"bold"},children:e.record[e.labelField]}),t.jsx(Yo,{value:e.record[e.valueField]/e.total*100})]}),qo=e=>{const i=e.data.map((t,i)=>({id:i,value:t[e.valueField],label:t[e.labelField]+""}));return t.jsx(V.PieChart,{series:[{data:i}]})},Ko=e=>{const[i,o]=s.useState(!0),[a,r]=s.useState([]),{handleGetRequest:n}=Ce();s.useEffect(()=>{e.loadWidget?(async()=>{o(!0),await n({endPointURI:"api/v1/dev/query/result",showMask:!1,parameters:{queryId:e.dataQueryId,...e.parameterValues},successCallBkFn:e=>{o(!1),r(e.data)},failureCallBkFn:()=>{o(!1),r([])}})})():o(!1)},[e.loadWidget,e.loadCounter]);let l=0;if(1==a.length)l=100;else if("CircularProgress"===e.widgetType||"LinearProgress"===e.widgetType)for(const t of a)l+=t[e.verticalAxisField];return t.jsxs(t.Fragment,{children:["LineChart"===e.widgetType||"PieChart"===e.widgetType||"ColumnChart"===e.widgetType?t.jsxs(d.Box,{children:[t.jsx(T.FontAwesomeIcon,{style:{marginRight:10,marginLeft:10},icon:e?.icon||"chart-pie"}),e?.title]}):t.jsx(t.Fragment,{}),t.jsx(d.Box,{sx:{flex:1,padding:1,height:"90%",display:"flex",alignItems:"center",justifyContent:"center",width:"90%"},children:i?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:{prefix:"fas",iconName:"arrows-spin"},style:{marginRight:10,marginLeft:10},spin:!0,size:"2x"}),t.jsx("div",{children:"Loading"})]}):"ColumnChart"===e.widgetType?t.jsx(ko,{data:a,widgetTitle:e.title,labelField:e.verticalAxisField,valueField:e.horizontalAxisField,valueLabel:e.horizontalAxisLabel,widgetType:"Line"}):"LineChart"===e.widgetType?t.jsx(Wo,{data:a,widgetTitle:e.title,labelField:e.verticalAxisField,valueField:e.horizontalAxisField,valueLabel:e.horizontalAxisLabel,widgetType:"Line"}):"PieChart"===e.widgetType?t.jsx(qo,{data:a,widgetTitle:e.title,labelField:e.horizontalAxisField,valueField:e.verticalAxisField,widgetType:"Pie"}):t.jsxs(d.Grid2,{container:!0,sx:{width:"100%",alignItems:"flex-start",justifyContent:"flex-start"},spacing:2,size:{xs:12},children:[t.jsx(d.Grid2,{size:{xs:12},sx:{textAlign:"center"},children:e.title}),a.map((i,o)=>"Card"===e.widgetType?t.jsx(d.Grid2,{size:{md:3,xs:12},children:t.jsx(jo,{widgetTitle:"",record:i,labelField:e.horizontalAxisField,valueField:e.verticalAxisField},o)}):"CircularProgress"===e.widgetType?t.jsx(d.Grid2,{size:{md:3,xs:12},children:t.jsx(Go,{widgetTitle:"",record:i,labelField:e.horizontalAxisField,valueField:e.verticalAxisField,total:l},o)}):"LinearProgress"===e.widgetType?t.jsx(d.Grid2,{size:{md:3,xs:12},children:t.jsx(Vo,{widgetTitle:"",record:i,labelField:e.horizontalAxisField,valueField:e.verticalAxisField,total:l},o)}):void 0)]})})]})},zo=e=>{const[i,o]=s.useState({dashboardCode:"",dashboardName:"",dashboardTitle:"",dashboardParameters:[],widgets:[]}),{ParameterPanel:a,parametersValues:r}=Uo({parameters:i?.dashboardParameters||[],initialParameterValues:{}}),[n,l]=s.useState(0),[p,c]=s.useState(!1);s.useEffect(()=>{if(null!=i.dashboardCode&&null!=i.dashboardCode&&""!=i.dashboardCode){c(!1);let e=!0;if(i?.dashboardParameters.length>0)for(const t of i?.dashboardParameters)if(!0===t?.mandatory&&(void 0===r[t.parameterCode]||null===r[t.parameterCode]||""===r[t.parameterCode])){e=!1;break}e&&c(e),l(n+1)}},[i?.dashboardParameters,r]);const u=N.useNavigate(),{handleGetRequest:m,handlePostRequest:A}=Ce();return s.useEffect(()=>{e.dashboardCode&&(async()=>{await m({endPointURI:"api/v1/dev/dashboard/metadata",showMask:!0,parameters:{dashboardCode:e.dashboardCode},successCallBkFn:e=>{o(e.data)},failureCallBkFn:()=>{o(null)}})})()},[e.dashboardCode,e.parameters]),t.jsx(t.Fragment,{children:i?t.jsxs(t.Fragment,{children:[t.jsxs(d.Box,{sx:{fontSize:20,fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(d.IconButton,{onClick:()=>{u(-1,{replace:!0})},children:t.jsx(T.FontAwesomeIcon,{icon:"arrow-left"})}),t.jsx(d.Box,{sx:{flex:1}}),t.jsx(T.FontAwesomeIcon,{style:{marginLeft:10,marginRight:10},icon:"square-poll-vertical"}),t.jsx(d.Box,{children:i?.dashboardTitle}),t.jsx(d.Box,{sx:{flex:1}})]}),i?.dashboardParameters.length>0?t.jsx(a,{searchBtnClickCallBk:async e=>{l(n+1)}}):t.jsx(t.Fragment,{}),t.jsx(d.Grid2,{container:!0,spacing:1,sx:{height:"fit-content",overflowY:"auto",padding:1},children:i?.widgets.map((e,i)=>t.jsx(d.Grid2,{sx:{alignItems:"center",justifyContent:"center",padding:1,display:"flex",overflow:"auto",flexDirection:"Card"!=e.widgetType?"column":void 0,height:e?.height||300},size:{md:e?.width,sm:12},children:t.jsx(Ko,{...e,parameterValues:r,loadWidget:p})},i))})]}):t.jsx(d.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",fontSize:24,fontWeight:"bold"},children:"No Dashboard Found"})})},Ho=()=>{const{dashboardCode:e}=N.useParams();return t.jsx(zo,{dashboardCode:e})},Qo=e=>{const{UserSession:o}=De(),a=i.useSelector(e=>e.AppLayout),r=i.useDispatch(),{handlePostRequest:n}=Ce(),[l,p]=s.useState(o.value.currentOrganization.id);return t.jsxs(d.Box,{sx:{display:"flex",flexDirection:"column",width:"100%",alignItems:"center",justifyContent:"center",padding:1},children:[t.jsx(je,{sx:{width:"100%"},displayField:"ltr"===a.appDirection?"organizationEnName":"organizationArName",valueField:"id",label:"",options:o.value.userOrganizations,value:l,onChangeCallBack:e=>{p(e)}}),t.jsx(d.Button,{sx:{m:1},variant:"contained",disabled:null==l||l===o.value.currentOrganization.id,onClick:async()=>{await n({endPointURI:"api/auth/changeCurrentOrg",showMask:!0,parameters:{username:o.value.username,orgId:l},data:{},successCallBkFn:t=>{const i={...t.data,isAuthenticated:!0};r(Re.setAuthenticated(i)),e.successChangeCallBackFn&&e.successChangeCallBackFn()}})},children:"Change Organization"})]})},Zo=A.createSlice({name:"SideBar",initialState:{isOpened:!1},reducers:{toggleSideBarState:e=>{e.isOpened=!e.isOpened},setSideBarState:(e,t)=>{e.isOpened=t.payload}}}),{toggleSideBarState:$o,setSideBarState:Xo}=Zo.actions;var Jo=Zo.reducer;function ea(e,t){const i=s.useRef(e);s.useEffect(()=>{i.current=e},[e]),s.useEffect(()=>{const e=setInterval(()=>i.current?.(),t);return()=>clearInterval(e)},[t])}const ta=d.keyframes`
|
|
31
|
+
function(e,t){const i=re(e,t);return"production"!==process.env.NODE_ENV?(...t)=>{const o=`"${e}"`;return 0===t.length?console.error([`MUI: Seems like you called \`styled(${o})()\` without a \`style\` argument.`,'You must provide a `styles` argument: `styled("div")(styleYouForgotToPass)`.'].join("\n")):t.some(e=>void 0===e)&&console.error(`MUI: the styled(${o})(...args) API requires all its args to be defined.`),i(...t)}:i}("div",{shouldForwardProp:e=>"theme"!==e&&"sx"!==e&&"as"!==e})($i),d=pe.forwardRef(function(e,d){const l=function(e=eo){return Ji(e)}(o),{className:s,component:p="div",...c}=to(e);return t.jsx(n,{as:p,ref:d,className:ro(s,r?r(a):a),theme:i&&l[i]||l,...c})});return d}({defaultClassName:function(e,t,i="Mui"){const o={};return t.forEach(t=>{o[t]=function(e,t,i="Mui"){const o=no[t];return o?`${i}-${o}`:`${oo.generate(e)}-${t}`}(e,t,i)}),o}("MuiBox",["root"]).root,generateClassName:oo.generate});function so(e){return"number"==typeof e&&!isNaN(e)}function po(e){return"string"==typeof e&&""!==e.trim()&&!isNaN(Number(e))}function co(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function uo(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function mo(e,t){const i=new Date(e),o=new Date,a=Math.floor((i-o)/1e3),r="rtl"===t?"ar":"en",n=new Intl.RelativeTimeFormat(r,{numeric:"auto"}),d=[{unit:"year",seconds:31536e3},{unit:"month",seconds:2592e3},{unit:"week",seconds:604800},{unit:"day",seconds:86400},{unit:"hour",seconds:3600},{unit:"minute",seconds:60},{unit:"second",seconds:1}];for(const{unit:e,seconds:t}of d){const i=Math.floor(a/t);if(Math.abs(i)>1)return n.format(i,e)}return"ar"===r?"الآن":"just now"}"production"!==process.env.NODE_ENV&&(lo.propTypes={children:Ft.node,component:Ft.elementType,sx:Ft.oneOfType([Ft.arrayOf(Ft.oneOfType([Ft.func,Ft.object,Ft.bool])),Ft.func,Ft.object])});const To=e=>{if(e?.fieldInfo){const i=e.fieldInfo,o=e?.formManager||null,a=e?.formActions||null,r=e?.formValues||null,n=e?.fieldInfo?.fieldName||null,l=e?.fieldInfo?.fieldType||null;if(!(i&&o&&r&&n&&l))return t.jsx(t.Fragment,{});const s=()=>e?.fieldInfo?.formProps?.fieldLabelFn?e.fieldInfo.formProps.fieldLabelFn(r):e?.fieldInfo?.fieldLabel?e?.fieldInfo?.fieldLabel:void 0;return e.hiddenFields.includes(n)?t.jsx(t.Fragment,{}):t.jsx(d.Grid2,{size:i?.formProps?.fieldSize||{lg:12,md:12,sm:12},sx:{padding:1,width:"100%"},children:"text"===l||"number"===l?t.jsx(Fe,{...i.muiTextFieldProps,fullWidth:!0,type:l,disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),label:s(),value:r[n],onChange:t=>{let i=null;""!=t.target.value&&(i="number"===l&&po(t.target.value)?Number(t.target.value):t.target.value),o.setValue(n,i),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,i)},sx:{"& .MuiInputBase-root":{height:`${i?.formProps?.fieldHeight}px`||void 0},"& .MuiInputBase-input":{height:"100% !important"},...i?.formProps?.style},error:null!=o.formState.errors[n],helperText:o?.formState?.errors[n]?.message?.toString()}):"date"===i?.fieldType?t.jsx(ze,{format:i?.dateFormat||Ge,sx:i?.formProps?.style||{width:"100%"},disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),label:s(),onChangeCallBack:t=>{o.setValue(n,t),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t)},value:r[n],error:null!=o.formState.errors[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):"datetime"===i?.fieldType?t.jsx(He,{format:i?.dateFormat||We,sx:i?.formProps?.style||{width:"100%"},disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),label:s(),onChangeCallBack:t=>{o.setValue(n,t),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t)},value:r[n],error:null!=o.formState.errors[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):"checkbox"===i?.fieldType?t.jsx(ke,{label:s(),onChangeCallBack:t=>{o.setValue(n,t),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t)},value:r[n],checkedValue:i?.checkedValue||!0,unCheckedValue:i?.unCheckedValue||!1,disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),sx:i?.formProps?.style}):"combobox"===i?.fieldType?t.jsx(je,{sx:i?.formProps?.style||{width:"100%"},label:s(),disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),onChangeCallBack:(t,i)=>{let d=null;t&&(d=t),o.setValue(n,d),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t,i)},options:i?.options||[],displayField:i?.optionDisplayField||"",valueField:i?.optionValueField||"",value:r[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):"lookup"===i?.fieldType?t.jsx(Qe,{sx:i?.formProps?.style||{width:"100%"},label:s(),disabled:!(!i?.disabled&&!e.disabledFields.includes(n)),onChangeCallBack:(t,i)=>{let d=null;t&&(d=t),o.setValue(n,d),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk(r,a,o,n,t,i)},lookupType:i.lookupType,value:r[n],errorMessage:o?.formState?.errors[n]?.message?.toString()}):null})}return t.jsx(t.Fragment,{})},Ao=e=>{const i=De(),{ConfirmationWindow:o,setOpen:a}=ge({body:e?.confirmationMessage||"",title:"Confirmation",onConfirmationCallBk:()=>{e?.actionFn(e?.record)}});return null==e?.authority||i.isUserAuthorized(e.authority)?t.jsxs(t.Fragment,{children:[t.jsx(o,{}),t.jsxs(d.Button,{variant:e?.formActionProps?.actionButtonVariant,color:e?.formActionProps?.actionButtonColor,onClick:()=>{if(e?.actionFn){if(e?.preActionValidation&&!e.preActionValidation(e.record))return;!0===e?.isConfirmationRequired?a(!0):e?.actionFn(e.record)}},children:[e?.icon?t.jsx(T.FontAwesomeIcon,{icon:e.icon,style:{marginRight:5,marginLeft:5}}):t.jsx(t.Fragment,{}),t.jsx("div",{children:e?.label})]})]}):t.jsx(t.Fragment,{})},_o=e=>{const{t:i}=E.useTranslation();return t.jsx(t.Fragment,{children:t.jsxs(d.Grid2,{container:!0,sx:e?.style,alignItems:"flex-start",children:[e?.label?t.jsx(d.Grid2,{size:12,sx:{padding:1,fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"flex-start"},children:e?.icon?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:e.icon,style:{marginRight:5,marginLeft:5}}),t.jsx("div",{children:i(e.label)})]}):t.jsx(t.Fragment,{children:i(e.label)})}):t.jsx(t.Fragment,{}),e?.elements?e.elements.map(i=>"group"===i.type?t.jsx(_o,{...i.props,formManager:e.formManager,formValues:e.formValues,formActions:e.formActions,hiddenFields:e.hiddenFields,disabledFields:e.disabledFields}):"field"===i.type&&"props"===i.mode?t.jsx(To,{fieldInfo:i.props,formManager:e.formManager,formValues:e.formValues,formActions:e.formActions,hiddenFields:e.hiddenFields,disabledFields:e.disabledFields}):"field"===i.type&&"node"===i.mode?t.jsx(d.Grid2,{size:i?.props?.formProps?.fieldSize||{lg:3,md:6,sm:12},sx:{padding:1,width:"100%"},children:t.jsx(i.node,{formManager:e.formManager,formValues:e.formValues,formActions:e.formActions})}):void 0):null,e?.actions?t.jsx(d.Grid2,{size:{sm:12},sx:{padding:1},children:e.actions.map(i=>t.jsx(Ao,{...i,record:e.formValues}))}):t.jsx(t.Fragment,{})]})})},fo=e=>{const o=i.useSelector(e=>e.AppInfo.value.apiBaseUrl),[a,r]=s.useState(null);return s.useEffect(()=>{(()=>{let t=o+"/api/v1/attachment/";e?.attachmentId?t+="download?attachmentId="+e.attachmentId:(t+=`downloadImage?attachmentCode=${e.attachmentCode}&refKey=${e.refKey}`,e?.category&&(t+=`&category=${e.category}`)),r(t)})()},[e]),e?.showAsAvatar?t.jsx(d.Avatar,{sx:e.style,onError:()=>{r(e?.onErrorImage?e.onErrorImage:"/no_image.png")},src:a}):t.jsx("img",{src:a,loading:"lazy",alt:"image",onError:()=>{r(e?.onErrorImage?e.onErrorImage:"/no_image.png")},style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})},Io=e=>{const{handleGetRequest:i,handleDeleteRequest:o}=Ce(),{isUserAuthorized:a}=De();let r=!0;e?.downloadAuthorityKey&&(r=a(e.downloadAuthorityKey));const{ConfirmationWindow:n,setOpen:l}=ge({title:"Confirmation",body:"Are you sure you want to delete this attachment?",onConfirmationCallBk:()=>{(async()=>{await o({endPointURI:"api/v1/attachment/archive",parameters:{attachmentCode:e.attachmentCode,refKey:e.refKey,attachmentId:e.id},successCallBkFn:t=>{e.setAttachmentConfig(t.data)},showMask:!0})})()}});return t.jsxs(t.Fragment,{children:[t.jsx(n,{}),t.jsxs(L,{sx:{width:300,border:"0.5px solid gray"},children:[t.jsx(v,{sx:{height:140,width:300,display:"flex",alignItems:"center",justifyContent:"center"},children:e?.docType.toLocaleLowerCase().includes("image")?t.jsx(fo,{attachmentId:e.id}):t.jsx(T.FontAwesomeIcon,{icon:"file",size:"3x"})}),t.jsxs(w,{children:[t.jsx(B,{gutterBottom:!0,variant:"h6",component:"div",children:e.fileName}),t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:`File Size: ${e?.attachmentSize||"unknown"} kb`}),t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:`File Type: ${e?.category||"NA"}`}),t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:e.remark})]}),t.jsxs(F,{children:[e?.allowDelete?t.jsx(d.IconButton,{size:"small",onClick:()=>{l(!0)},children:t.jsx(d.Tooltip,{title:"Delete Attachment",children:t.jsx(T.FontAwesomeIcon,{icon:"trash"})})}):t.jsx(t.Fragment,{}),t.jsx("div",{style:{flex:1}}),r?t.jsx(d.IconButton,{size:"small",onClick:async()=>{await i({endPointURI:"api/v1/attachment/download",parameters:{attachmentId:e.id},showMask:!0,responseType:"blob",successCallBkFn:t=>{const i=window.URL.createObjectURL(new Blob([t.data])),o=document.createElement("a");o.href=i,o.setAttribute("download",e.fileName),document.body.appendChild(o),o.click(),o.remove()}})},children:t.jsx(d.Tooltip,{title:"Download Attachment",children:t.jsx(T.FontAwesomeIcon,{icon:"download"})})}):t.jsx(t.Fragment,{})]})]})]})},Eo=e=>{const{handleUploadRequest:i,handleGetRequest:o}=Ce(),[a,r]=s.useState(null),[n,l]=s.useState([]),[p,c]=s.useState(null),[u,m]=s.useState(null),[A,f]=s.useState([]),[I,E]=s.useState(null),{isUserAuthorized:O}=De(),N=e=>e.split(".").pop()?.toLowerCase()||"";s.useEffect(()=>{(async()=>{await o({endPointURI:"api/v1/attachment/info",showMask:!0,parameters:{attachmentCode:e.attachmentCode,refKey:e.refKey},successCallBkFn:e=>{E(e.data)}})})()},[e.refKey,e.attachmentCode]),s.useEffect(()=>{if(f(I?.allowedFileTypes?I.allowedFileTypes.split(","):[]),I?.attachmentCategories){const e=[];for(const t of I.attachmentCategories.split(","))e.push({value:t});l(e)}else l([])},[I]);let y=!0;I?.downloadAuthorityKey&&!O(I?.downloadAuthorityKey)&&(y=!1);let h=!0;return!1===e?.enableAttachment&&(h=!1),I?.uploadAuthorityKey&&!O(I.uploadAuthorityKey)&&(h=!1),t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",width:"100%",alignItems:"center",justifyContent:"flex-start",overflow:"hidden",flexGrow:1},children:[h?t.jsx(t.Fragment,{children:null==I?.maxAllowedNumberOfFiles||I?.maxAllowedNumberOfFiles>I.refKeyAttachments.length?t.jsxs(t.Fragment,{children:[t.jsxs("h3",{children:[t.jsx(T.FontAwesomeIcon,{icon:"paperclip",style:{marginRight:10,marginLeft:10}}),"Attachment Uploader"]}),t.jsx("input",{type:"file",style:{margin:20},accept:I?.allowedFileTypes,multiple:!0,onChange:e=>{if(e.target.files)for(const t of e.target.files){const e=N(t.name);if(A.length>0&&!A.includes(e))return void _.toast.error(e+" is not allowed")}r(e.target.files)}}),n.length>0?t.jsx(je,{label:"Attachment Type",sx:{width:300,m:1},options:n,displayField:"value",valueField:"value",value:u,onChangeCallBack:e=>{m(e)}}):t.jsx(t.Fragment,{}),t.jsx(Fe,{label:"Remark",value:p,onChange:e=>c(e.target.value),multiline:!0,sx:{width:300,m:1},rows:3}),t.jsx(d.Button,{sx:{m:1},variant:"contained",onClick:async()=>{let t=I?.refKeyAttachments.length||0;if(I?.maxAllowedNumberOfFiles&&a.length+t>I.maxAllowedNumberOfFiles)_.toast.error("Maximum number of attachments is "+I.maxAllowedNumberOfFiles);else if(!0===I?.isCategoryRequired&&n.length>0&&(null==u||void 0===u||""===u))_.toast.error("You must selected document type to process your request");else if(a){for(const e of a)if(e.type.startsWith("image/")){const t=600,i=1024*t;if(e.size>i)return void _.toast.error(`File ${e.name} is too large. Max allowed is ${t}KB.`)}await i({endPointURI:"api/v1/attachment/upload",showMask:!0,loadingMessage:"Uploading files ... please wait",parameters:{refKey:e.refKey,attachmentCode:e.attachmentCode,remark:p,category:u},files:a,successCallBkFn:e=>{E(e.data),r(null),m(null),c(null),_.toast.success("Your request has been process successfully")}})}else _.toast.error("You must add files to upload")},children:"Upload"})]}):t.jsx(t.Fragment,{})}):t.jsx(t.Fragment,{}),y&&I?.refKeyAttachments?.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("h3",{children:[t.jsx(T.FontAwesomeIcon,{style:{marginRight:10,marginLeft:10},icon:"paperclip"}),"Attachments"]}),t.jsx(d.Grid2,{container:!0,spacing:2,sx:{overflow:"auto",padding:1,justifyContent:"center"},children:I?.refKeyAttachments.map(i=>t.jsx(d.Grid2,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:t.jsx(Io,{...i,attachmentCode:e.attachmentCode,setAttachmentConfig:E,downloadAuthorityKey:I.downloadAuthorityKey,allowDelete:h})}))})]}):t.jsx(t.Fragment,{})]})},Oo=e=>{const o=i.useSelector(e=>e.AppLayout),{t:a}=E.useTranslation();return t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",flexGrow:1,padding:1,margin:1,alignItems:"center",justifyContent:"center"},children:[t.jsxs(d.Box,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,fontWeight:"bold"},children:[t.jsx(T.FontAwesomeIcon,{icon:"history",style:{marginRight:10,marginLeft:10}}),a("WF_ACTION_HISTORY_LABEL")]}),t.jsx(d.Box,{sx:{flexGrow:1,width:"100%",display:"flex",flexDirection:"column",overflowY:"auto",alignItems:"center",justifyContent:"flex-start"},children:e.actionHistory.map((i,a)=>t.jsx(t.Fragment,{children:t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",marginBottom:2},children:[t.jsxs(d.Box,{sx:{display:"flex",flex:1,flexDirection:"column",alignItems:"flex-end",justifyContent:"center"},children:[t.jsx(d.Box,{sx:{marginBottom:.2},children:i.actionTime}),t.jsxs(B,{children:["via ",i.actionMethod]})]}),t.jsxs(d.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",position:"relative",marginRight:2,marginLeft:2},children:[t.jsx(fo,{showAsAvatar:!0,attachmentCode:"EMPLOYEE_PHOTOS",refKey:i?.personId+""||"0",style:{m:1,width:70,height:70}}),a!==e.actionHistory.length-1?t.jsx(d.Box,{sx:{marginTop:11,position:"absolute"},children:"|"}):t.jsx(t.Fragment,{})]}),t.jsxs(d.Box,{sx:{display:"flex",flex:1,flexDirection:"column",alignItems:"flex-start",justifyContent:"center"},children:[t.jsxs(d.Box,{sx:{width:"100%"},children:["ltr"===o.appDirection?`${i?.documentActionEnName}`:`${i?.documentActionArName}`,i?.actionComment?" - "+i.actionComment:""]}),t.jsx(d.Box,{sx:{width:"100%"},children:"ltr"===o.appDirection?`${i?.employeeEnName}`:`${i?.employeeArName}`})]})]})}))})]})},No=e=>{const{t:i}=E.useTranslation(),o=De(),{ConfirmationWindow:a,setOpen:r}=ge({body:i(e?.confirmationMessage||"ACTION_CONFIRMATION"),title:i("CONFIRMATION"),onConfirmationCallBk:async()=>{await(e?.actionFn(e.recordsToProcessActionOn,e.recordIdsToProcessActionOn)),e?.reloadData&&e.reloadData()}});let n=!0;if(e.authority&&(n=o.isUserAuthorized(e.authority)),n)return t.jsxs(t.Fragment,{children:[t.jsx(a,{}),t.jsxs(d.Button,{onClick:async()=>{if(e?.recordsToProcessActionOn&&e?.recordsToProcessActionOn.length>0){if(e?.preActionValidation)for(const t of e.recordsToProcessActionOn)if(!e.preActionValidation(t))return;!0===e?.isConfirmationRequired?r(!0):(await e.actionFn(e.recordsToProcessActionOn,e.recordIdsToProcessActionOn),e?.reloadData&&e.reloadData())}else _.toast.error(i("AT_LEAST_ONE_RECORD_SELECTED_MESSAGE"))},variant:e?.label?"outlined":e?.formActionProps?.actionButtonVariant?e.formActionProps.actionButtonVariant:"text",size:"small",color:e?.formActionProps?.actionButtonColor||"primary",children:[e?.icon?t.jsx(T.FontAwesomeIcon,{style:{marginRight:5,marginLeft:5},icon:e.icon}):t.jsx(t.Fragment,{}),e?.label?i(e.label):t.jsx(t.Fragment,{})]})]})},yo=d.styled(e.QuickFilter)({display:"grid",alignItems:"center"}),ho=d.styled(e.ToolbarButton)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",width:"min-content",height:"min-content",zIndex:1,opacity:t.expanded?0:1,pointerEvents:t.expanded?"none":"auto",transition:e.transitions.create(["opacity"])})),Ro=d.styled(d.TextField)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",overflowX:"clip",width:t.expanded?260:"var(--trigger-width)",opacity:t.expanded?1:0,transition:e.transitions.create(["width","opacity"])})),Lo=i=>{const{t:o}=E.useTranslation(),a=De(),r=!i?.templateProps?.editAction?.authority||a.isUserAuthorized(i.templateProps.editAction.authority),n=at(i?.templateProps?.rowSelectionModel||{ids:new Set,type:"include"},i?.templateProps?.data||[],i?.templateProps?.keyColumnName||"id");return t.jsxs(e.Toolbar,{children:[r&&"none"!=i?.templateProps?.editMode?.editMode?t.jsxs(d.Button,{onClick:i?.handleCreateNewRecord,children:[t.jsx(T.FontAwesomeIcon,{icon:"add",style:{marginRight:5,marginLeft:5}}),o("ADD_BTN_LABEL")]}):t.jsx(t.Fragment,{}),i?.templateProps?.rowActions?i.templateProps.rowActions.map((e,t)=>!0===e?.gridActionProps?.multiRecord?s.createElement(No,{...e,key:t,reloadData:async()=>{i.templateProps.apiActions.reloadData(i?.templateProps?.gridLoadParametersValues)},recordIdsToProcessActionOn:n.selectedRecordIds,recordsToProcessActionOn:n.selectedRecords}):null):t.jsx(t.Fragment,{}),t.jsx(d.Box,{sx:{flex:1,mx:.5,my:.5,padding:1},children:i?.templateProps?.tBar}),t.jsx(d.Tooltip,{title:"Columns",children:t.jsx(e.ColumnsPanelTrigger,{render:t.jsx(e.ToolbarButton,{}),children:t.jsx(e.GridViewColumnIcon,{fontSize:"small"})})}),t.jsx(d.Tooltip,{title:"Filters",children:t.jsx(e.FilterPanelTrigger,{render:(i,o)=>t.jsx(e.ToolbarButton,{...i,color:"default",children:t.jsx(d.Badge,{badgeContent:o.filterCount,color:"primary",variant:"dot",children:t.jsx(e.GridFilterListIcon,{fontSize:"small"})})})})}),i?.templateProps?.gridStateKey?t.jsx(d.Tooltip,{title:o("RESET_GRID_STATE"),children:t.jsx(d.IconButton,{onClick:i?.clearGridState,children:t.jsx(T.FontAwesomeIcon,{icon:"eraser"})})}):t.jsx(t.Fragment,{}),t.jsx(d.Divider,{orientation:"vertical",variant:"middle",flexItem:!0,sx:{mx:.5}}),t.jsx(d.Tooltip,{title:o("EXPORT_EXECL_LABEL"),children:t.jsx(e.ExportExcel,{render:t.jsx(d.MenuItem,{}),children:t.jsx(T.FontAwesomeIcon,{icon:"file-excel",color:"green"})})}),t.jsxs(yo,{children:[t.jsx(e.QuickFilterTrigger,{render:(e,i)=>t.jsx(d.Tooltip,{title:o("SEARCH_BTN_LABEL"),enterDelay:0,children:t.jsx(ho,{...e,ownerState:{expanded:i.expanded},color:"default","aria-disabled":i.expanded,children:t.jsx(T.FontAwesomeIcon,{icon:"search"})})})}),t.jsx(e.QuickFilterControl,{render:({ref:i,...a},r)=>t.jsx(Ro,{...a,ownerState:{expanded:r.expanded},inputRef:i,"aria-label":"Search",placeholder:`${o("SEARCH_BTN_LABEL")}...`,size:"small",slotProps:{input:{startAdornment:t.jsx(d.InputAdornment,{position:"start",children:t.jsx(T.FontAwesomeIcon,{icon:"search"})}),endAdornment:r.value?t.jsx(d.InputAdornment,{position:"end",children:t.jsx(e.QuickFilterClear,{edge:"end",size:"small","aria-label":"Clear search",children:t.jsx(T.FontAwesomeIcon,{icon:"xmark"})})}):null,...a.slotProps?.input},...a.slotProps}})})]}),t.jsx(d.IconButton,{onClick:()=>{i.templateProps.apiActions.reloadData(i?.templateProps?.gridLoadParametersValues)},children:t.jsx(T.FontAwesomeIcon,{icon:"refresh"})})]})},Co=i=>{const{t:o}=E.useTranslation(),a=De(),{ConfirmationWindow:r,setOpen:n}=ge({body:o(i?.confirmationMessage||"ACTION_CONFIRMATION"),title:o("CONFIRMATION"),onConfirmationCallBk:async()=>{await(i?.actionFn(i.record)),i?.reloadData&&i.reloadData()}});let l=!0;i.authority&&(l=a.isUserAuthorized(i.authority));let s={};i?.getActionIconStyleForRecord&&(s=i.getActionIconStyleForRecord(i.record));let p=!0;i?.isActionVisibleForRecord&&(p=i?.isActionVisibleForRecord(i.record));let c=!1;if(i?.isActionDisabledForRecord&&(c=i.isActionDisabledForRecord(i.record)),l&&p)return t.jsxs(t.Fragment,{children:[t.jsx(r,{}),t.jsx(e.GridActionsCellItem,{disabled:c,icon:t.jsx(d.Tooltip,{title:i?.label?o(i.label):"",children:t.jsx(T.FontAwesomeIcon,{icon:i.icon,style:{...s,color:c?"gray":null!=s?.color?s.color:void 0}})}),showInMenu:i?.gridActionProps?.showInMenu||!1,label:"",className:"textPrimary",color:"inherit",onClick:async()=>{if(!c){if(i?.preActionValidation&&!i.preActionValidation(i.record))return;!0===i?.isConfirmationRequired?n(!0):(await i.actionFn(i.record),!0===i?.gridActionProps?.reloadGridAfterAction&&i?.reloadData&&i.reloadData())}}})]})};let go=-1;const Do=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t):{}}catch(e){return console.error("Failed to load grid state",e),{}}},Po=(e,t)=>{const i=Do(e);localStorage.setItem(e,JSON.stringify({...i,...t}))},xo=["__check__","actions"],bo=o=>{const{t:a}=E.useTranslation(),r=i.useSelector(e=>e.AppLayout),[n,l]=s.useState({}),[p,c]=s.useState(!0),{getLookupOptions:u}=(()=>{const{handleGetRequest:e}=Ce(),t=i.useSelector(e=>e.AppLayout),o=async t=>{let i=[];return await e({endPointURI:"api/v1/public/system/lookup",showMask:!0,parameters:{lookupType:t},successCallBkFn:e=>{i=e.data}}),i};return{generateLookupGridColumn:async e=>{let i=await o(e.lookupType);return{...e,options:i,displayField:"ltr"===t.appDirection?"lookupEnDisplay":"lookupArDisplay",valueField:"lookupValue"}},getLookupOptions:o}})(),{Window:m,setWindowState:A}=Pe({windowTitle:a(o.gridTitle)+" Attachments",windowIcon:"paperclip",width:"fit-content",height:"fit-content",minHeight:500,minWidth:"50%",onCloseCallBack:()=>{o?.apiActions?.reloadData(o.gridLoadParametersValues)}}),{Window:f,setWindowState:I}=Pe({windowTitle:a(o.gridTitle)+" Approvals",windowIcon:"stamp",width:"fit-content",height:"fit-content",minHeight:500,minWidth:"80%",onCloseCallBack:()=>{o?.apiActions?.reloadData(o.gridLoadParametersValues)}}),[O,y]=s.useState([]),R=tt(o.formElements),L=[],C=s.useMemo(()=>o?.gridStateKey?Do(o.gridStateKey):{},[]);for(const e of R)!0===e?.gridProps?.hidden&&L.push(e.fieldName);let g={};if(C?.columnVisibilityModel){g=C.columnVisibilityModel;const e=Object.keys(g);for(const t of L)e.includes(t)||(g[t]=!1)}else for(const e of L)g[e]=!1;const D=i.useSelector(e=>e.AppLayout.appDirection),[P,x]=s.useState(g),[b,M]=s.useState(C.columnOrder||[]),[S,U]=s.useState(C.columnWidths||{}),[F,w]=s.useState(C.columnGroupingModel||[]);let v=C?.pinnedColumns?.left||[];v=v.filter(e=>!xo.includes(e));let B=C?.pinnedColumns?.right||[]||[];B=B.filter(e=>!xo.includes(e));const[k,j]=s.useState({left:[..."ltr"===D?xo:[],...v],right:[..."rtl"===D?xo:[],...B]}),G=De(),W=N.useNavigate(),[Y,V]=s.useState(null),[q,K]=s.useState(null),[z,H]=s.useState({}),Q=async()=>{let e=it(R,"row"===o?.editMode?.editMode||!1,a);for(let t of e)t?.lookupType&&(t.displayField="ltr"===r.appDirection?"lookupEnDisplay":"lookupArDisplay",t.options=await u(t.lookupType),t.valueField="lookupValue");y(e)},[Z,$]=s.useState({ids:new Set,type:"include"});let X="id";o?.keyColumnName&&(X=o?.keyColumnName);const J=o.setData;let ee=null;ee=o?.validationSchema?o.validationSchema:h.z.object(ot(R));let te=!0;o?.editAction?.authority&&(te=G.isUserAuthorized(o.editAction.authority));let ie=!0;o?.deleteAction?.authority&&(ie=G.isUserAuthorized(o.deleteAction.authority));const{ConfirmationWindow:oe,setOpen:ae}=ge({title:"Confirmation",body:"Are you sure you want to delete this record ?",onConfirmationCallBk:async()=>{let e=!0;Y&&!0===Y?.isNew||(e=await o.apiActions.deleteRecordById(Y[X])),e&&(o?.deleteAction?.postActionCallBack&&await o.deleteAction.postActionCallBack(Y),J(e=>e.filter(e=>e[X]!=Y[X])))}});let re,ne,de,le,se,pe;"modal"===o?.editMode?.editMode&&(re=o?.editMode?.specs?.modalHeight||"fit-content",ne=o?.editMode?.specs?.modalWidth||"300",de=o?.editMode?.specs?.modalMinHeight,le=o?.editMode?.specs?.modalMinWidth,se=o?.editMode?.specs?.modalIcon||"window",pe=o?.editMode?.specs?.modalTitle||"Record Form");const{Window:ce,setWindowState:ue}=Pe({height:re,minHeight:de,minWidth:le,onCloseCallBack:()=>{o.apiActions.reloadData(o?.gridLoadParametersValues)},width:ne,windowIcon:se,windowTitle:pe}),me={type:"actions",field:"actions",headerName:"",headerAlign:"center",width:(o?.rowActions?30*o.rowActions.length:0)+(o?.editAction&&o?.editAction?.isEnabled?30:0)+(o?.deleteAction&&o?.deleteAction?.isEnabled?30:0)+(o?.attachment?30:0)+(o?.workFlowDocumentCode?30:0),getActions:i=>{const r=i.row,n=[];if("none"!=o?.editMode?.editMode&&(void 0===o?.disableDefaultAction||!o.disableDefaultAction)){const i=z[r[X]]?.mode===e.GridRowModes.Edit;if("row"===o.editMode.editMode&&i)te&&(n.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(T.FontAwesomeIcon,{icon:"save"}),label:a("SAVE_BTN_LABEL"),onClick:()=>{(t=>{const i=t[X];H({...z,[i]:{mode:e.GridRowModes.View}})})(r)}})),n.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(T.FontAwesomeIcon,{icon:"cancel"}),label:a("CANCEL_BTN_LABEL"),onClick:()=>{(t=>{const i=t[X];i&&so(i)&&i<0?(H({...z,[i]:{mode:e.GridRowModes.View,ignoreModifications:!0}}),J(e=>{const t=e.filter(e=>e[X]!=i);return t})):H({...z,[i]:{mode:e.GridRowModes.View,ignoreModifications:!0}})})(r)},color:"inherit"})));else{if(o?.editAction&&!0===o?.editAction?.isEnabled){let i=!0;o?.editAction?.isActionVisibleForRecord&&(i=o?.editAction?.isActionVisibleForRecord(r));let l=!1;o?.editAction?.isActionDisabledForRecord&&(l=o?.editAction?.isActionDisabledForRecord(r)),te&&i&&n.push(t.jsx(e.GridActionsCellItem,{disabled:l,icon:t.jsx(d.Tooltip,{title:a("EDIT_BTN_LABEL"),children:t.jsx(T.FontAwesomeIcon,{icon:"edit",style:{color:l?"gray":void 0}})}),showInMenu:o?.editAction?.gridActionProps?.showInMenu||!1,label:a("EDIT_BTN_LABEL"),className:"textPrimary",color:"inherit",onClick:()=>{te&&!l&&(async t=>{if(t)if(K(t),"form"===o.editMode.editMode)W(o.editMode.specs.formRoute+"/"+t[X]);else if("modal"===o.editMode.editMode)ue(!0);else if("row"===o?.editMode?.editMode){const i=t[X];H({...z,[i]:{mode:e.GridRowModes.Edit}})}})(r)}}))}if(o?.deleteAction&&!0===o?.deleteAction?.isEnabled){let i=!0;o?.deleteAction?.isActionVisibleForRecord&&(i=o?.deleteAction?.isActionVisibleForRecord(r));let l=!1;o?.deleteAction?.isActionDisabledForRecord&&(l=o?.deleteAction?.isActionDisabledForRecord(r)),ie&&i&&n.push(t.jsx(e.GridActionsCellItem,{disabled:l,icon:t.jsx(d.Tooltip,{title:a("DELETE_BTN_LABEL"),children:t.jsx(T.FontAwesomeIcon,{icon:"trash",style:{color:l?"gray":void 0}})}),showInMenu:o?.deleteAction?.gridActionProps?.showInMenu||!1,label:a("DELETE_BTN_LABEL"),className:"textPrimary",color:"inherit",onClick:()=>{if(ie&&!l){if(o?.deleteAction?.preActionValidation&&!o.deleteAction.preActionValidation(r))return;V(r),ae(!0)}}}))}}}if(r[o?.keyColumnName||"id"]&&r[o?.keyColumnName||"id"]>0&&o?.attachment&&n?.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(d.Tooltip,{title:"Attachments",children:t.jsx(T.FontAwesomeIcon,{icon:"paperclip"})}),label:"Attachments",className:"textPrimary",color:"inherit",onClick:()=>{l(r),c(!o?.attachment?.enableAttachFn||o.attachment.enableAttachFn(r)),A(!0)}})),r[o?.keyColumnName||"id"]&&r[o?.keyColumnName||"id"]>0&&o?.workFlowDocumentCode&&n?.push(t.jsx(e.GridActionsCellItem,{icon:t.jsx(d.Tooltip,{title:"Approvals",children:t.jsx(T.FontAwesomeIcon,{icon:"stamp"})}),label:"Approvals",className:"textPrimary",color:"inherit",onClick:()=>{l(r),I(!0)}})),r[o?.keyColumnName||"id"]&&r[o?.keyColumnName||"id"]>0&&o?.rowActions)for(const e of o.rowActions)e?.gridActionProps?.multiRecord&&!0===e?.gridActionProps?.multiRecord||n.push(t.jsx(Co,{...e,record:r,reloadData:async()=>{o.apiActions.reloadData(o?.gridLoadParametersValues)}}));return n}};let Te=[];(void 0===o?.disableDefaultAction||!o.disableDefaultAction||o?.rowActions&&o?.rowActions.length>0)&&Te.push(me),Te=[...Te,...O];s.useEffect(()=>{void 0!==o?.autoLoad&&!0!==o.autoLoad||o.apiActions.reloadData(o?.gridLoadParametersValues),Q()},[]),s.useEffect(()=>{o.apiActions.reloadData(o?.gridLoadParametersValues)},[G.UserInfo?.currentOrganization]),s.useEffect(()=>{Q()},[D,o.formElements]);const Ae=s.useMemo(()=>{const e=Te.map(e=>({...e}));if(b.length){const t=new Map(e.map(e=>[e.field,e]));return b.map(e=>t.get(e)).filter(Boolean)}return e},[b,S,Te]);return t.jsxs(t.Fragment,{children:[t.jsx(oe,{}),"modal"===o?.editMode?.editMode?t.jsx(ce,{children:o?.editMode?.specs?.formComponent?t.jsx(o.editMode.specs.formComponent,{recordIdToEdit:q?q[X]:void 0,formCloseCallBk:()=>{ue(!1),o.apiActions.reloadData(o?.gridLoadParametersValues)}}):t.jsx(vo,{keyColumnName:o.keyColumnName,attachment:o.attachment,formValuesChangeCallBk:o?.formProps?.formValuesChangeCallBk,recordIdToEdit:q?q[X]:void 0,formCloseCallBk:()=>{ue(!1),o.apiActions.reloadData(o?.gridLoadParametersValues)},elements:o.formElements,apiActions:o.apiActions,editAuthorityKey:o?.editAction?.authority,formSavedSuccessfullyCallBk:o?.editAction?.postActionCallBack,preSaveValidation:o?.editAction?.preActionValidation,actions:o?.rowActions})}):t.jsx(t.Fragment,{}),void 0!==o?.hideInfoBar||o?.hideInfoBar?t.jsx(t.Fragment,{}):t.jsxs(d.Box,{sx:{display:"flex"},children:[void 0!==o?.hideBackButton||o?.hideBackButton?t.jsx(t.Fragment,{}):t.jsx(d.IconButton,{onClick:()=>{W(-1,{replace:!0})},children:t.jsx(T.FontAwesomeIcon,{icon:"ltr"===D?"arrow-left":"arrow-right"})}),t.jsxs(d.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:[o?.girdIcon?t.jsx(T.FontAwesomeIcon,{icon:o.girdIcon,style:{marginRight:5,marginLeft:5}}):t.jsx(t.Fragment,{}),t.jsx(d.Typography,{variant:"h5",children:o?.gridTitle?co(a(o?.gridTitle)):""})]})]}),o?.gridLoadParameters&&o?.gridLoadParameters.length>0&&o?.gridLoadParametersValues&&o?.setGridLoadParametersValues?t.jsxs(d.Accordion,{defaultExpanded:!0,sx:{width:"100%"},children:[t.jsx(d.AccordionSummary,{expandIcon:t.jsx(e.GridExpandMoreIcon,{}),children:t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(T.FontAwesomeIcon,{style:{marginLeft:5,marginRight:5},icon:"search"}),t.jsx(d.Typography,{component:"span",children:"Filters"})]})}),t.jsx(d.AccordionDetails,{children:t.jsx(d.Box,{children:t.jsx(vo,{saveButtonSpecs:{label:a("SEARCH_BTN_LABEL"),icon:"search",actionButtonVariant:"outlined",actionButtonColor:"success"},cancelButtonSpecs:{label:a("RESET_BTN_LABEL"),icon:"eraser",actionButtonVariant:"outlined",actionButtonColor:"error"},apiActions:{deleteRecordById:async()=>!0,saveRecord:async e=>{null!=e?o.setGridLoadParametersValues(e):o.setGridLoadParametersValues({}),o.apiActions.reloadData(e)},reloadData:async()=>{},loadRecordById:async()=>{}},elements:o.gridLoadParameters})})})]}):t.jsx(t.Fragment,{}),o?.attachment?t.jsx(m,{children:t.jsx(Eo,{attachmentCode:o.attachment.attachmentCode,refKey:n[o?.keyColumnName||"id"],enableAttachment:p})}):t.jsx(t.Fragment,{}),o?.workFlowDocumentCode?t.jsx(f,{children:t.jsx(wo,{workFlowDocumentCode:o.workFlowDocumentCode,refDocumentId:n[o?.keyColumnName||"id"],postActionCallBk:()=>{I(!1),o.apiActions.reloadData(o.gridLoadParametersValues)},cancelActionCallBk:()=>{I(!1),o.apiActions.reloadData(o.gridLoadParametersValues)}})}):t.jsx(t.Fragment,{}),t.jsx(e.DataGridPremium,{...o?.muiProps,slots:{toolbar:Lo},slotProps:{toolbar:{templateProps:{...o,rowSelectionModel:Z,data:o?.data},handleCreateNewRecord:()=>{if("form"===o?.editMode?.editMode)W(o.editMode.specs.formRoute);else if("modal"===o?.editMode?.editMode)K(null),ue(!0);else if("row"===o?.editMode?.editMode){go-=1;const t={};t[X]=go,t.isNew=!0;for(const e of O)"actions"!=e?.type&&e?.field!=X&&e?.field&&(t[e.field]=null);J(e=>[t,...e]),H(t=>({...t,[go]:{mode:e.GridRowModes.Edit}}))}},clearGridState:()=>{o?.gridStateKey&&localStorage.removeItem(o.gridStateKey),x({}),M([]),U({}),w([]),j({left:[..."ltr"===D?xo:[]],right:[..."rtl"===D?xo:[]]})}}},getRowId:e=>e[X],showToolbar:!0,rows:o?.data,columns:Ae,checkboxSelection:!0,editMode:"row",onRowEditStop:(e,t)=>{"rowFocusOut"===e.reason&&(t.defaultMuiPrevented=!0)},rowModesModel:"row"==o.editMode.editMode?z:void 0,onRowModesModelChange:"row"==o.editMode.editMode?e=>{H(e)}:void 0,rowGroupingColumnMode:"multiple",processRowUpdate:async e=>{if("row"===o.editMode.editMode){let i=null;const a=(e=>{try{ee.parse(e)}catch(e){console.log("validateRecord err",e);let t=null;return t=e instanceof h.z.ZodError?e.errors.map(e=>"Error in field ("+e.path+") : "+e.message).join(","):"invalid record data",t}})(e);if(a){const e=a.split(",");throw _.toast.error(t.jsx("div",{style:{},children:e.map(e=>t.jsxs(t.Fragment,{children:[t.jsx("div",{children:e}),t.jsx(d.Divider,{})]}))})),new Error(a)}if(o?.editAction?.preActionValidation&&!o.editAction.preActionValidation(e))throw new Error("error on the configured presave validation");const r={...e};if(e[X]&&so(e[X])&&Number(e[X])<0&&(r[X]=null),i=await o.apiActions.saveRecord(r),null==i)throw new Error("Failed to process your request, contact your administrator");return o?.editAction?.postActionCallBack&&await o.editAction.postActionCallBack(e),!0===e?.isNew&&J(t=>{const o=t.filter(t=>t[X]!==e[X]);return[i,...o]}),!0===o?.editMode?.reloadAfterSave&&o?.apiActions?.reloadData&&o?.apiActions?.reloadData(o?.gridLoadParametersValues),i}},rowSelectionModel:Z,onRowSelectionModelChange:e=>{$(e)},columnVisibilityModel:P,onColumnVisibilityModelChange:e=>{x(e),o?.gridStateKey&&Po(o.gridStateKey,{columnVisibilityModel:e})},onColumnOrderChange:e=>{const{column:t,targetIndex:i}=e;M(e=>{const a=e.length?[...e]:Te.map(e=>e.field),r=a.indexOf(t.field);return-1===r||(a.splice(r,1),a.splice(i,0,t.field),o?.gridStateKey&&Po(o.gridStateKey,{columnOrder:a})),a})},rowGroupingModel:F,onRowGroupingModelChange:e=>{(e=>{w(e),o?.gridStateKey&&Po(o.gridStateKey,{columnGroupingModel:e})})(e)},sx:{width:"100%"}})]})},Mo=e=>{if(0===e.length)return[];const t=[];for(const i of Object.keys(e[0])){const e={type:"field",mode:"props",props:{fieldLabel:i,fieldName:i,fieldType:"text"}};t.push(e)}return t},So=e=>{const[i,o]=s.useState([]);return s.useEffect(()=>{const t=e.reportData.map((e,t)=>({...e,report_record_data_key:t}));o(t)},[e.reportData]),t.jsx(bo,{data:i,disableDefaultAction:!0,setData:e.setReportData,formElements:Mo(e.reportData),gridLoadParameters:e.gridLoadParameters,gridLoadParametersValues:e.gridLoadParametersValues,setGridLoadParametersValues:e.setGridLoadParametersValues,editMode:{editMode:"none"},girdIcon:"file-excel",gridTitle:"Report",autoLoad:!0,keyColumnName:"report_record_data_key",hideInfoBar:!0,apiActions:{deleteRecordById:async()=>!0,loadRecordById:async()=>{},reloadData:async()=>{e.reloadReport()},saveRecord:async()=>{}}})},Uo=e=>{console.log("useParameterPanel","useParameterPanel called");const[i,o]=s.useState({...e?.initialParameterValues}),a=((e,t)=>{const i=[];for(const o of e){const e={type:"field",mode:"props",props:{fieldLabel:o?.parameterLabel,fieldName:o?.parameterCode,fieldType:o?.parameterType,hidden:o?.hidden,formProps:{fieldSize:{lg:4,md:6,sm:12}},required:o?.mandatory,defaultValue:t[o?.parameterCode]||o?.defaultValue}};i.push(e)}return i})(e.parameters,i);return{ParameterPanel:({searchBtnClickCallBk:e})=>{const{t:r}=E.useTranslation();return t.jsxs(d.Accordion,{defaultExpanded:!0,sx:{width:"100%"},children:[t.jsx(d.AccordionSummary,{expandIcon:t.jsx(T.FontAwesomeIcon,{icon:{prefix:"far",iconName:"square-caret-down"}}),children:t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(T.FontAwesomeIcon,{style:{marginLeft:5,marginRight:5},icon:"search"}),t.jsx(d.Typography,{component:"span",children:"Filters"})]})}),t.jsx(d.AccordionDetails,{children:t.jsx(d.Box,{children:t.jsx(vo,{saveButtonSpecs:{label:r("Filter"),icon:"search",actionButtonVariant:"outlined",actionButtonColor:"success"},cancelButtonSpecs:{label:r("RESET_BTN_LABEL"),icon:"eraser",hidden:!0,actionButtonVariant:"outlined",actionButtonColor:"error"},actions:[{label:r("RESET_BTN_LABEL"),icon:"eraser",isIdRequired:!1,formActionProps:{enabled:!0},actionFn:async(e,t)=>{o({})}}],apiActions:{deleteRecordById:async()=>!0,saveRecord:async t=>{o(null!=t?t:{}),e&&await e(i)},reloadData:async()=>{},loadRecordById:async()=>{}},elements:a})})})]})},parametersValues:i,setParametersValues:o,panelElements:a}},Fo=e=>{const[i,o]=s.useState(null),[a,r]=s.useState(null),[n,l]=s.useState([]),[p,c]=s.useState("WAITING_REPORT_CODE"),{handleGetRequest:u,handlePostRequest:m,HandleDownloadHTTPPostPDF:A}=Ce(),[_,f]=s.useState(null),{ParameterPanel:I,parametersValues:E,panelElements:O,setParametersValues:N}=Uo({parameters:_?.reportParameters||[],initialParameterValues:{...e?.reportParametersValues}}),y=async t=>{c("WAITING_RESULT"),"Excel"===_?.reportType?await m({endPointURI:"api/v1/public/report/run",showMask:!0,data:{reportCode:e.reportCode,parameters:t,resultMode:e.resultMode,jasperOutPutFileType:e.jasperOutPutFileType},successCallBkFn:e=>{c("SHOWING_RESULT"),l(e.data)}}):_?.reportType&&await A({endPointURI:"api/v1/public/report/run",showMask:!0,data:{reportCode:e.reportCode,parameters:t,resultMode:e.resultMode,jasperOutPutFileType:e.jasperOutPutFileType},successCallBkFn:e=>{c("SHOWING_RESULT");const t=e.headers["content-disposition"];let i="downloaded_file";if(t&&-1!==t.indexOf("filename=")){const e=t.match(/filename="?([^"]+)"?/);e&&e[1]&&(i=e[1])}if(i.includes("pdf")){const t=new Blob([e.data],{type:"application/pdf"}),i=URL.createObjectURL(t);o(i)}else{const t=new Blob([e.data],{type:e.headers["content-type"]}),o=window.URL.createObjectURL(t),a=document.createElement("a");a.href=o,a.download=i,document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(o)}},failureCallBkFn:e=>{r("Failed To run report ... contact your administrator"),c("ERROR")}})};return s.useEffect(()=>{e?.reportCode&&(async()=>{c("LOADING_METADATA"),await u({endPointURI:"api/v1/public/report/metadata",showMask:!0,parameters:{reportCode:e.reportCode},successCallBkFn:t=>{f(t.data),!0===e?.byPassParameterEntry||0==t.data.reportParameters.length?(y(E),c("WAITING_RESULT")):c("WAITING_PARAMETER_INPUT")},failureCallBkFn:e=>{r("Failed loading report metadata ... contact your administrator"),c("ERROR")}})})()},[e.reportCode,e.byPassParameterEntry,e.reportParametersValues,e.jasperOutPutFileType,e.resultMode]),t.jsxs(t.Fragment,{children:[t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%"},children:[t.jsxs(d.Box,{sx:{flex:1,textAlign:"center",marginBottom:1},children:[t.jsx(T.FontAwesomeIcon,{icon:"Excel"===_?.reportType?"file-excel":"file-pdf",color:"Excel"===_?.reportType?"darkgreen":"darkred",style:{marginRight:10,marginLeft:10}}),_?.reportName]}),"Excel"!=_?.reportType&&"SHOWING_RESULT"===p?t.jsxs(t.Fragment,{children:[!0===e?.byPassParameterEntry?t.jsx(t.Fragment,{}):_?.reportParameters.length>0?t.jsx(d.IconButton,{onClick:()=>{c("WAITING_PARAMETER_INPUT")},children:t.jsx(T.FontAwesomeIcon,{icon:"filter"})}):t.jsx(t.Fragment,{}),t.jsx(d.IconButton,{children:t.jsx(T.FontAwesomeIcon,{icon:"refresh",onClick:()=>{y(E)}})})]}):t.jsx(t.Fragment,{})]}),t.jsx(d.Box,{sx:{flexGrow:1,width:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start"},children:"WAITING_PARAMETER_INPUT"===p&&"Excel"!=_?.reportType?t.jsx(I,{searchBtnClickCallBk:y}):"SHOWING_RESULT"===p||("WAITING_PARAMETER_INPUT"===p||"WAITING_RESULT"===p)&&"Excel"===_?.reportType?"Excel"===_?.reportType?t.jsx(So,{reportData:n,setReportData:l,reloadReport:async()=>{y(E)},gridLoadParameters:O,gridLoadParametersValues:E,setGridLoadParametersValues:N}):t.jsx("iframe",{src:i,width:"100%",height:"100%",title:"PDF Preview",style:{border:"1px solid #ccc",marginTop:"20px"}}):"ERROR"===p?t.jsxs(d.Box,{sx:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[t.jsx(T.FontAwesomeIcon,{icon:"circle-exclamation",color:"darkred",style:{marginRight:10,marginLeft:10}}),a]}):t.jsx(t.Fragment,{})})]})},wo=e=>{const o=N.useNavigate(),a=i.useSelector(e=>e.AppLayout),{isUserAuthorized:r,UserInfo:n}=De(),{handleGetRequest:l,handlePostRequest:p}=Ce(),[c,u]=s.useState(null),[m,A]=s.useState([]),{t:f}=E.useTranslation(),[I,O]=s.useState(null),[y,h]=s.useState({referencedDocument:null,workflowDocumentReport:null,workflowDocument:null,workflowDocumentStatus:null,actionsHistory:[],nextActionTakers:null,nextActions:[]}),{Window:R,setWindowState:L}=Pe({windowTitle:"ltr"===a.appDirection?y?.workflowDocument&&y?.referencedDocument?`${y?.workflowDocument?.documentEnName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`:"Document":y?.workflowDocument&&y?.referencedDocument?`${y?.workflowDocument?.documentArName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`:"وثيقة",windowIcon:"eye",width:"80%"}),C=async()=>{await l({endPointURI:"api/v1/public/workflow/doc/info",showMask:!0,parameters:{workflowDocumentCode:e.workFlowDocumentCode,refDocumentId:e.refDocumentId},successCallBkFn:e=>{h(e.data)},failureCallBkFn:()=>{h({referencedDocument:null,workflowDocumentReport:null,workflowDocument:null,workflowDocumentStatus:null,actionsHistory:[],nextActions:[],nextActionTakers:null})}})},g=async()=>{await p({endPointURI:"api/v1/public/workflow/doc/action",showMask:!0,data:{workflowDocumentId:y?.workflowDocument?.id,refDocumentId:e.refDocumentId,actionId:c.id,refDocumentStatus:y?.workflowDocumentStatus?.documentStatusCode,actionComment:I},successCallBkFn:async t=>{c?.post_action_endpoint?await p({endPointURI:c.post_action_endpoint,showMask:!0,loadingMessage:"Processing post action process ... please wait",parameters:{refDocumentId:e.refDocumentId,actionId:c.id},successCallBkFn:()=>{C(),e?.postActionCallBk&&e.postActionCallBk()}}):C()}})};return s.useEffect(()=>{e.refDocumentId&&e.workFlowDocumentCode&&C()},[e.refDocumentId,e.workFlowDocumentCode]),s.useEffect(()=>{A(y?.nextActions&&y?.nextActions?.length>0?y.nextActions.filter(e=>{if(!y?.workflowDocumentStatus?.nextActionTakersAuthority&&!y?.nextActionTakers)return!0;if(y?.workflowDocumentStatus?.nextActionTakersAuthority&&r(y.workflowDocumentStatus.nextActionTakersAuthority))return!0;if(y?.nextActionTakers)for(const e of y.nextActionTakers)if(n?.username===e?.username||n?.username===e?.USERNAME)return!0;return!1}):[])},[y.nextActions,y.nextActionTakers]),t.jsxs(t.Fragment,{children:[y?.workflowDocumentReport?.id?t.jsx(R,{children:t.jsx(Fo,{reportCode:y?.workflowDocumentReport?.reportCode,resultMode:"App",byPassParameterEntry:!0,reportParametersValues:{doc_id:e.refDocumentId+""}})}):t.jsx(t.Fragment,{}),y?.workflowDocument?t.jsxs(d.Box,{sx:{width:"100%",textAlign:"center",fontSize:20,fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(d.IconButton,{onClick:()=>{o(-1,{replace:!0})},children:t.jsx(T.FontAwesomeIcon,{icon:"arrow-left"})}),t.jsx(d.Box,{sx:{flex:1}}),t.jsx(T.FontAwesomeIcon,{icon:"file",style:{marginRight:10,marginLeft:10}}),"ltr"===a.appDirection?`${y?.workflowDocument?.documentEnName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`:`${y?.workflowDocument?.documentArName} # ${y?.referencedDocument[y?.workflowDocument?.documentNumberField]}`,y?.workflowDocumentStatus?"ltr"===a.appDirection?` ( ${y?.workflowDocumentStatus?.documentStatusEnName} )`:` ( ${y?.workflowDocumentStatus?.documentStatusArName} )`:"",t.jsx(d.Box,{sx:{flex:1}}),y?.workflowDocumentReport?.id?t.jsx(d.Button,{onClick:()=>{L(!0)},variant:"outlined",startIcon:t.jsx(T.FontAwesomeIcon,{icon:"eye"}),children:f("VIEW_LABEL")}):t.jsx(t.Fragment,{})]}):t.jsx(t.Fragment,{}),t.jsxs(d.Box,{sx:{flex:1,width:"100%",overflow:"hidden",display:"flex"},children:[m?.length>0?t.jsxs(d.Paper,{sx:{padding:2,display:"flex",flex:1,margin:1,flexDirection:"column",alignItems:"center",justifyContent:"flex-start",overflow:"hidden"},children:[t.jsx(je,{sx:{marginBottom:2,width:400},label:f("WE_AVAILABLE_ACTIONS_LABEL"),displayField:"ltr"===a.appDirection?"document_action_en_name":"document_action_ar_name",valueField:"id",value:c?.id,options:m,onChangeCallBack:(e,t)=>{u(t)}}),t.jsx(Fe,{sx:{width:400},rows:3,value:I,onChange:e=>{O(e.target.value)},multiline:!0,label:f("WF_COMMENT_LABEL")}),t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(d.Button,{color:"success",variant:"contained",sx:{width:200,m:1},onClick:async()=>{null!=c&&null!=c?.id?!0!==c.require_comment&&1!==c.require_comment&&"true"!==c.require_comment||null!==I&&""!==I?c?.pre_action_endpoint?await p({endPointURI:c.pre_action_endpoint,showMask:!0,loadingMessage:"Processing pre action validation ... please wait",parameters:{refDocumentId:e.refDocumentId,actionId:c.id},successCallBkFn:()=>{g()}}):g():_.toast.error("You must enter comment for the action to be processed"):_.toast.error("You must select action to process")},children:f("WF_TAKE_ACTION_BTN_LABEL")}),e?.cancelActionCallBk?t.jsx(d.Button,{variant:"contained",sx:{width:200,m:1},color:"error",onClick:()=>{e?.cancelActionCallBk&&e.cancelActionCallBk()},children:f("WF_CANCEL_BTN_LABEL")}):t.jsx(t.Fragment,{})]}),y?.nextActionTakers&&y.nextActionTakers.length>0?t.jsxs(t.Fragment,{children:[t.jsx(d.Divider,{variant:"fullWidth",flexItem:!0,sx:{marginTop:1,marginBottom:1},children:t.jsxs(d.Box,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,fontWeight:"bold"},children:[t.jsx(T.FontAwesomeIcon,{icon:"users",style:{marginRight:10,marginLeft:10}})," ",f("WF_WAITING_FOR_LABEL")]})}),t.jsx(d.Box,{sx:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",overflow:"auto",padding:1,width:"100%"},children:y.nextActionTakers.map(e=>t.jsxs(d.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",border:"1px dotted black",width:400,marginBottom:2,padding:2},children:[t.jsx(fo,{showAsAvatar:!0,attachmentCode:"EMPLOYEE_PHOTOS",refKey:e?.id||"0",style:{marginRight:2,marginLeft:2,width:60,height:60}}),t.jsxs(d.Box,{sx:{flex:2,display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"center"},children:[t.jsx("div",{children:"ltr"===a.appDirection?e?.employee_en_name:e?.employee_ar_name}),t.jsx("div",{children:e?.email?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:"envelope",style:{marginRight:10,marginLeft:10}}),e?.email]}):t.jsx(t.Fragment,{})}),t.jsx("div",{children:e?.mobile_number?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:"mobile",style:{marginRight:10,marginLeft:10}}),e?.mobile_number]}):t.jsx(t.Fragment,{})})]})]}))})]}):t.jsx(t.Fragment,{})]}):t.jsx(t.Fragment,{}),y?.actionsHistory.length>0?t.jsx(Oo,{actionHistory:y.actionsHistory}):t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",flexGrow:1,padding:2,margin:1,alignItems:"center",justifyContent:"center"},children:[t.jsxs(d.Box,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,fontWeight:"bold"},children:[t.jsx(T.FontAwesomeIcon,{icon:"history",style:{marginRight:10,marginLeft:10}}),f("WF_ACTION_HISTORY_LABEL")]}),t.jsx(d.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:"No Action Log available"})]})]})]})},vo=e=>{const{Window:i,setWindowState:o}=Pe({windowTitle:"Attachments",windowIcon:"paperclip",width:"fit-content",height:"fit-content",minHeight:500,minWidth:400}),{Window:a,setWindowState:r}=Pe({windowTitle:"Approvals",windowIcon:"stamp",width:"fit-content",height:"fit-content",minHeight:500,minWidth:400}),[n,l]=s.useState(!0),{t:p}=E.useTranslation(),c=tt(e.elements),u=[];for(const e of c)e?.hidden&&u.push(e.fieldName);const[m,A]=s.useState(u),f={};for(const t of e.elements)"field"===t?.type&&"props"===t?.mode&&t?.props?.defaultValue&&(f[t.props.fieldName]=t.props.defaultValue);const[I,h]=s.useState([]);let R=null;R=e?.validationSchema?e.validationSchema:ce.object(ot(c));const L=O.useForm({resolver:y.zodResolver(R),defaultValues:f}),C=L.watch(),g=N.useParams(),D=e?.formRouteRecordIdParamName,P=async()=>{let t=null;if(e?.recordIdToEdit?t=e.recordIdToEdit:D&&g[D]&&(t=g[D]),t){const i=await e.apiActions.loadRecordById(t);if(i){L.reset({...i}),e?.formValuesChangeCallBk&&e?.formValuesChangeCallBk({...i},x,L);for(const e of c)"combobox"===e?.fieldType&&i[e.fieldName]&&(e?.comboboxValueDataType&&"string"===e?.comboboxValueDataType?L.setValue(e.fieldName,i[e.fieldName]+""):L.setValue(e.fieldName,i[e.fieldName]))}}else L.reset({})},x={setFieldValue:(e,t)=>{L.setValue(e,t)},hideField:e=>{A(t=>[...t,e])},showField:e=>{A(t=>t.filter(t=>t!==e))},disableField:e=>{h(t=>[...t,e])},enableField:e=>{h(t=>t.filter(t=>t!==e))}};return s.useEffect(()=>{P()},[e?.recordIdToEdit]),s.useEffect(()=>{l(!e?.attachment||!e?.attachment?.enableAttachFn||e.attachment.enableAttachFn(C))},[C]),t.jsxs(t.Fragment,{children:[e?.attachment?t.jsx(i,{children:t.jsx(Eo,{attachmentCode:e.attachment.attachmentCode,refKey:C[e?.keyColumnName||"id"],enableAttachment:n})}):t.jsx(t.Fragment,{}),e?.workFlowDocumentCode?t.jsx(a,{children:t.jsx(wo,{workFlowDocumentCode:e.workFlowDocumentCode,refDocumentId:C[e?.keyColumnName||"id"],postActionCallBk:()=>{r(!1),P()},cancelActionCallBk:()=>{r(!1)}})}):t.jsx(t.Fragment,{}),t.jsx(lo,{sx:{display:"flex",flex:1,width:"100%",height:"fit-content",flexDirection:"column",alignItems:"center",overflow:"auto"},children:t.jsx(d.Grid2,{sx:{width:"100%"},container:!0,children:e.elements.map((i,o)=>"group"===i.type?t.jsx(_o,{...i.props,formManager:L,formValues:C,formActions:x,hiddenFields:m,disabledFields:I},o):"field"===i.type&&"props"===i.mode?t.jsx(To,{fieldInfo:i.props,formManager:L,formValues:C,formActions:x,hiddenFields:m,disabledFields:I,formValuesChangeCallBk:e.formValuesChangeCallBk},o):"field"===i.type&&"node"===i.mode?t.jsx(d.Grid2,{size:i?.props?.formProps?.fieldSize||{lg:3,md:6,xs:12},sx:{padding:1,width:"100%"},children:t.jsx(i.node,{formManager:L,formValues:C})},o):void 0)})}),t.jsxs(lo,{sx:{display:"flex",width:"100%",alignItems:"center",justifyContent:"flex-start"},children:[C[e?.keyColumnName||"id"]&&e?.attachment?t.jsx(d.Tooltip,{title:"Attachments",children:t.jsx(d.IconButton,{onClick:()=>{o(!0)},children:t.jsx(T.FontAwesomeIcon,{icon:"paperclip"})})}):null,C[e?.keyColumnName||"id"]&&e?.workFlowDocumentCode?t.jsx(d.Tooltip,{title:"Approvals",children:t.jsx(d.IconButton,{onClick:()=>{r(!0)},children:t.jsx(T.FontAwesomeIcon,{icon:"stamp"})})}):null,e?.actions?e.actions.map(i=>!1===i?.isIdRequired?t.jsx(Ao,{...i,record:C}):C[e?.keyColumnName||"id"]?!0===i?.formActionProps?.enabled?t.jsx(Ao,{...i,record:C}):t.jsx(t.Fragment,{}):void 0):t.jsx(t.Fragment,{}),t.jsx("div",{style:{flex:1}}),e?.saveButtonSpecs?.hidden?t.jsx(t.Fragment,{}):t.jsx(d.Button,{variant:e?.saveButtonSpecs?.actionButtonVariant?e.saveButtonSpecs.actionButtonVariant:"contained",sx:{m:1},startIcon:e?.saveButtonSpecs?.icon?t.jsx(T.FontAwesomeIcon,{icon:e.saveButtonSpecs.icon}):null,color:e?.saveButtonSpecs?.actionButtonColor?e.saveButtonSpecs.actionButtonColor:"primary",onClick:L.handleSubmit(t=>{(async t=>{if((!e?.preSaveValidation||e.preSaveValidation(t))&&t){const i=await e.apiActions.saveRecord(t);i&&(L.reset({...i}),e?.formSavedSuccessfullyCallBk&&e.formSavedSuccessfullyCallBk(i),e?.formCloseCallBk&&e.formCloseCallBk())}})(t)},e=>{_.toast.error("Form Data is not valid, make sure you have all field with valid data"),console.log("form validation error",e)}),children:p(e?.saveButtonSpecs?.label||"SAVE_BTN_LABEL")}),e?.cancelButtonSpecs?.hidden?t.jsx(t.Fragment,{}):t.jsx(d.Button,{variant:e?.cancelButtonSpecs?.actionButtonVariant?e.cancelButtonSpecs.actionButtonVariant:"contained",startIcon:e?.cancelButtonSpecs?.icon?t.jsx(T.FontAwesomeIcon,{icon:e.cancelButtonSpecs.icon}):null,color:e?.cancelButtonSpecs?.actionButtonColor?e.cancelButtonSpecs.actionButtonColor:"error",sx:{m:1},onClick:()=>{e?.formCloseCallBk&&e.formCloseCallBk(),L.reset(f)},children:p(e?.cancelButtonSpecs?.label||"CANCEL_BTN_LABEL")})]})]})},Bo=()=>{const{workflowDocumentCode:e,refDocumentId:i}=N.useParams();return t.jsx(wo,{workFlowDocumentCode:e,refDocumentId:i})},ko=e=>t.jsx(G.BarChart,{dataset:e.data,xAxis:[{dataKey:e.valueField,scaleType:"band",label:e.valueLabel}],series:e.labelField?.split(",").map(e=>({dataKey:e,label:e}))}),jo=e=>t.jsxs(d.Paper,{sx:{display:"flex",flexDirection:"column",height:150,padding:1,flexGrow:1,justifyContent:"center",alignItems:"center"},children:[t.jsx(d.Box,{sx:{display:"flex",width:"100%",justifyContent:"space-evenly",alignItems:"center"},children:t.jsx("div",{children:e.record[e.valueField]})}),t.jsx(d.Typography,{sx:{fontSize:16,fontWeight:"bold"},children:e.record[e.labelField]})]}),Go=e=>t.jsxs(t.Fragment,{children:[t.jsx(d.Typography,{sx:{fontSize:16,fontWeight:"bold"},children:e.record[e.labelField]}),t.jsx(G.Gauge,{width:200,height:200,value:e.record[e.valueField],valueMax:e.total})]}),Wo=e=>t.jsx(G.LineChart,{dataset:e.data,xAxis:[{dataKey:e.valueField,scaleType:"band",label:e.valueLabel}],series:e.labelField?.split(",").map(e=>({dataKey:e,label:e}))});function Yo(e){return t.jsxs(Y,{sx:{display:"flex",alignItems:"center"},children:[t.jsx(Y,{sx:{width:"100%",mr:1},children:t.jsx(W,{variant:"determinate",...e})}),t.jsx(Y,{sx:{minWidth:35},children:t.jsx(B,{variant:"body2",sx:{color:"text.secondary"},children:`${Math.round(e.value)}%`})})]})}const Vo=e=>t.jsxs(Y,{sx:{width:"100%"},children:[t.jsx(B,{sx:{fontSize:16,fontWeight:"bold"},children:e.record[e.labelField]}),t.jsx(Yo,{value:e.record[e.valueField]/e.total*100})]}),qo=e=>{const i=e.data.map((t,i)=>({id:i,value:t[e.valueField],label:t[e.labelField]+""}));return t.jsx(V.PieChart,{series:[{data:i}]})},Ko=e=>{const[i,o]=s.useState(!0),[a,r]=s.useState([]),{handleGetRequest:n}=Ce();s.useEffect(()=>{e.loadWidget?(async()=>{o(!0),await n({endPointURI:"api/v1/dev/query/result",showMask:!1,parameters:{queryId:e.dataQueryId,...e.parameterValues},successCallBkFn:e=>{o(!1),r(e.data)},failureCallBkFn:()=>{o(!1),r([])}})})():o(!1)},[e.loadWidget,e.loadCounter]);let l=0;if(1==a.length)l=100;else if("CircularProgress"===e.widgetType||"LinearProgress"===e.widgetType)for(const t of a)l+=t[e.verticalAxisField];return t.jsxs(t.Fragment,{children:["LineChart"===e.widgetType||"PieChart"===e.widgetType||"ColumnChart"===e.widgetType?t.jsxs(d.Box,{children:[t.jsx(T.FontAwesomeIcon,{style:{marginRight:10,marginLeft:10},icon:e?.icon||"chart-pie"}),e?.title]}):t.jsx(t.Fragment,{}),t.jsx(d.Box,{sx:{flex:1,padding:1,height:"90%",display:"flex",alignItems:"center",justifyContent:"center",width:"90%"},children:i?t.jsxs(t.Fragment,{children:[t.jsx(T.FontAwesomeIcon,{icon:{prefix:"fas",iconName:"arrows-spin"},style:{marginRight:10,marginLeft:10},spin:!0,size:"2x"}),t.jsx("div",{children:"Loading"})]}):"ColumnChart"===e.widgetType?t.jsx(ko,{data:a,widgetTitle:e.title,labelField:e.verticalAxisField,valueField:e.horizontalAxisField,valueLabel:e.horizontalAxisLabel,widgetType:"Line"}):"LineChart"===e.widgetType?t.jsx(Wo,{data:a,widgetTitle:e.title,labelField:e.verticalAxisField,valueField:e.horizontalAxisField,valueLabel:e.horizontalAxisLabel,widgetType:"Line"}):"PieChart"===e.widgetType?t.jsx(qo,{data:a,widgetTitle:e.title,labelField:e.horizontalAxisField,valueField:e.verticalAxisField,widgetType:"Pie"}):t.jsxs(d.Grid2,{container:!0,sx:{width:"100%",alignItems:"flex-start",justifyContent:"flex-start"},spacing:2,size:{xs:12},children:[t.jsx(d.Grid2,{size:{xs:12},sx:{textAlign:"center"},children:e.title}),a.map((i,o)=>"Card"===e.widgetType?t.jsx(d.Grid2,{size:{md:3,xs:12},children:t.jsx(jo,{widgetTitle:"",record:i,labelField:e.horizontalAxisField,valueField:e.verticalAxisField},o)}):"CircularProgress"===e.widgetType?t.jsx(d.Grid2,{size:{md:3,xs:12},children:t.jsx(Go,{widgetTitle:"",record:i,labelField:e.horizontalAxisField,valueField:e.verticalAxisField,total:l},o)}):"LinearProgress"===e.widgetType?t.jsx(d.Grid2,{size:{md:3,xs:12},children:t.jsx(Vo,{widgetTitle:"",record:i,labelField:e.horizontalAxisField,valueField:e.verticalAxisField,total:l},o)}):void 0)]})})]})},zo=e=>{const[i,o]=s.useState({dashboardCode:"",dashboardName:"",dashboardTitle:"",dashboardParameters:[],widgets:[]}),{ParameterPanel:a,parametersValues:r}=Uo({parameters:i?.dashboardParameters||[],initialParameterValues:{}}),[n,l]=s.useState(0),[p,c]=s.useState(!1);s.useEffect(()=>{if(null!=i.dashboardCode&&null!=i.dashboardCode&&""!=i.dashboardCode){c(!1);let e=!0;if(i?.dashboardParameters.length>0)for(const t of i?.dashboardParameters)if(!0===t?.mandatory&&(void 0===r[t.parameterCode]||null===r[t.parameterCode]||""===r[t.parameterCode])){e=!1;break}e&&c(e),l(n+1)}},[i?.dashboardParameters,r]);const u=N.useNavigate(),{handleGetRequest:m,handlePostRequest:A}=Ce();return s.useEffect(()=>{e.dashboardCode&&(async()=>{await m({endPointURI:"api/v1/dev/dashboard/metadata",showMask:!0,parameters:{dashboardCode:e.dashboardCode},successCallBkFn:e=>{o(e.data)},failureCallBkFn:()=>{o(null)}})})()},[e.dashboardCode,e.parameters]),t.jsx(t.Fragment,{children:i?t.jsxs(t.Fragment,{children:[t.jsxs(d.Box,{sx:{fontSize:20,fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center"},children:[t.jsx(d.IconButton,{onClick:()=>{u(-1,{replace:!0})},children:t.jsx(T.FontAwesomeIcon,{icon:"arrow-left"})}),t.jsx(d.Box,{sx:{flex:1}}),t.jsx(T.FontAwesomeIcon,{style:{marginLeft:10,marginRight:10},icon:"square-poll-vertical"}),t.jsx(d.Box,{children:i?.dashboardTitle}),t.jsx(d.Box,{sx:{flex:1}})]}),i?.dashboardParameters.length>0?t.jsx(a,{searchBtnClickCallBk:async e=>{l(n+1)}}):t.jsx(t.Fragment,{}),t.jsx(d.Grid2,{container:!0,spacing:1,sx:{height:"fit-content",overflowY:"auto",padding:1},children:i?.widgets.map((e,i)=>t.jsx(d.Grid2,{sx:{alignItems:"center",justifyContent:"center",padding:1,display:"flex",overflow:"auto",flexDirection:"Card"!=e.widgetType?"column":void 0,height:e?.height||300},size:{md:e?.width,sm:12},children:t.jsx(Ko,{...e,parameterValues:r,loadWidget:p})},i))})]}):t.jsx(d.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",fontSize:24,fontWeight:"bold"},children:"No Dashboard Found"})})},Ho=()=>{const{dashboardCode:e}=N.useParams();return t.jsx(zo,{dashboardCode:e})},Qo=e=>{const{UserSession:o}=De(),a=i.useSelector(e=>e.AppLayout),r=i.useDispatch(),{handlePostRequest:n}=Ce(),[l,p]=s.useState(o.value.currentOrganization.id);return t.jsxs(d.Box,{sx:{display:"flex",flexDirection:"column",width:"100%",alignItems:"center",justifyContent:"center",padding:1},children:[t.jsx(je,{sx:{width:"100%"},displayField:"ltr"===a.appDirection?"organizationEnName":"organizationArName",valueField:"id",label:"",options:o.value.userOrganizations,value:l,onChangeCallBack:e=>{p(e)}}),t.jsx(d.Button,{sx:{m:1},variant:"contained",disabled:null==l||l===o.value.currentOrganization.id,onClick:async()=>{await n({endPointURI:"api/auth/changeCurrentOrg",showMask:!0,parameters:{username:o.value.username,orgId:l},data:{},successCallBkFn:t=>{const i={...t.data,isAuthenticated:!0};r(Re.setAuthenticated(i)),e.successChangeCallBackFn&&e.successChangeCallBackFn()}})},children:"Change Organization"})]})},Zo=A.createSlice({name:"SideBar",initialState:{isOpened:!1},reducers:{toggleSideBarState:e=>{e.isOpened=!e.isOpened},setSideBarState:(e,t)=>{e.isOpened=t.payload}}}),{toggleSideBarState:$o,setSideBarState:Xo}=Zo.actions;var Jo=Zo.reducer;function ea(e,t){const i=s.useRef(e);s.useEffect(()=>{i.current=e},[e]),s.useEffect(()=>{const e=setInterval(()=>i.current?.(),t);return()=>clearInterval(e)},[t])}const ta=d.keyframes`
|
|
32
32
|
0% { transform: scale(1); opacity: 1; }
|
|
33
33
|
25% { transform: scale(1); opacity: 0.6; }
|
|
34
34
|
50% { transform: scale(1); opacity: 1; }
|