@chase-shao/vue-component-lib 1.2.110 → 1.2.112

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.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(e,oe){typeof exports=="object"&&typeof module<"u"?module.exports=oe(require("vue"),require("axios"),require("pinia"),require("vue-router"),require("@arco-design/web-vue")):typeof define=="function"&&define.amd?define(["vue","axios","pinia","vue-router","@arco-design/web-vue"],oe):(e=typeof globalThis<"u"?globalThis:e||self,e.MyComponentLibrary=oe(e.Vue,e.axios,e.Pinia,e.VueRouter,e.ArcoVue))})(this,function(e,oe,Ge,Ye,Qe){"use strict";const Se=Ge.defineStore("main",()=>{const o=e.ref(void 0),n=e.ref(null);return{token:o,error:n}}),Je=async o=>new Promise(n=>setTimeout(n,o)),Ze=async(o,n,r,t=void 0)=>{if(o[n]===void 0)try{o[n]=null,o[n]=await r()||t}catch(s){console.error(s),o[n]=void 0}for(;o[n]===null;)await Je(100);return o[n]},ne=o=>{const n=`0${o}`;return n.substring(n.length-2)},ae=(o,n="yyyy-MM-dd hh:mm:ss")=>{if(!o||typeof o=="string"&&o.length===0)return"";try{const r=new Date(o),t=[["yyyy",r.getFullYear()],["yy",r.getFullYear().toString().substring(2)],["MM",ne(r.getMonth()+1)],["M",r.getMonth()+1],["dd",ne(r.getDate())],["d",r.getDate()],["hh",ne(r.getHours())],["h",r.getHours()],["mm",ne(r.getMinutes())],["m",r.getMinutes()],["ss",ne(r.getSeconds())],["s",r.getSeconds()]];for(const[s,a]of t)n=n.replace(s,a);return n}catch{return o.toLocaleString()}},Xe=(o,n)=>{let r;o instanceof Blob?r=o:r=new Blob([o]);const t=document.createElement("a"),s=window.URL.createObjectURL(r);t.href=s,t.download=n,t.click(),window.URL.revokeObjectURL(s)};let ge={};function ve(o){ge={...ge,...o}}function _e(){return ge}const Be=Symbol("library-router");let he=null;function et(o){he=o??null}function X(){if(e.getCurrentInstance()){const n=e.inject(Be,null);return n||Ye.useRouter()}if(he)return he;throw new Error("Router is unavailable. Pass router when installing the plugin before using useLibraryRouter outside setup().")}const Ne=e.getCurrentInstance();function Te(){const o=_e();return{apiBase:o.apiBase||void 0||"",appSecret:o.appSecret||void 0||""}}function tt(o){if(!o?.data?.statusCode)return o;switch(o.data.statusCode){case 1:return o.data.data=o.data.result,o.data;case 0:default:return Ne?.appContext.config.globalProperties.$notification.error(o.data.msg),null}}const ot=o=>{if(o.response){if(o.response.status!==400){if(o.response.status===401)X().push("/error/401");else if(o.response.status>=500){const n=Se();n.error=o,X().push("/error/500")}}}else o.request?console.error("error with request",o.request):console.error("Error",o.message);o.message.includes("timeout")&&Ne?.appContext.config.globalProperties.$notification.error("请求超时,请检查网络")};function Ae(){const{apiBase:o}=Te(),n=oe.create({baseURL:o,timeout:20*1e3,withCredentials:!0});return n.interceptors.response.use(tt,ot),n}const Ie=async()=>{const{apiBase:o,appSecret:n}=Te(),r=Ae(),t=Se();return await Ze(t,"token",async()=>{const s=await r.post(`${o}/GenerateToken`,{appid:"bpm",appsecret:n});return s?.data?.token&&setTimeout(()=>{t.token=void 0},(s.data?.expireSeconds??3600)*1e3),s?.data?.token})},M=async()=>{const o=await Ie(),n=Ae();return n.defaults.headers.common.Authorization=`Bearer ${o}`,n},we={CurrentUserEmail:o=>o.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",CurrentUserPositionCode:o=>o.bpmStore()?.positionCode??888,CurrentDatetime:()=>new Date().toISOString(),ApproverEmail:o=>o.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",ApproverPositionCode:o=>o.bpmStore()?.positionCode??999,RejectReason:()=>"Test Reject Reason"},j=[];for(let o=0;o<256;++o)j.push((o+256).toString(16).slice(1));function nt(o,n=0){return(j[o[n+0]]+j[o[n+1]]+j[o[n+2]]+j[o[n+3]]+"-"+j[o[n+4]]+j[o[n+5]]+"-"+j[o[n+6]]+j[o[n+7]]+"-"+j[o[n+8]]+j[o[n+9]]+"-"+j[o[n+10]]+j[o[n+11]]+j[o[n+12]]+j[o[n+13]]+j[o[n+14]]+j[o[n+15]]).toLowerCase()}let ke;const rt=new Uint8Array(16);function at(){if(!ke){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ke=crypto.getRandomValues.bind(crypto)}return ke(rt)}const Ee={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Fe(o,n,r){if(Ee.randomUUID&&!o)return Ee.randomUUID();o=o||{};const t=o.random??o.rng?.()??at();if(t.length<16)throw new Error("Random bytes length must be >= 16");return t[6]=t[6]&15|64,t[8]=t[8]&63|128,nt(t)}var $=(o=>(o[o.Submit=0]="Submit",o[o.Link=1]="Link",o[o.Button=2]="Button",o))($||{}),v=(o=>(o[o.Create=0]="Create",o[o.Update=1]="Update",o[o.Details=2]="Details",o[o.List=3]="List",o[o.ReCreate=5]="ReCreate",o))(v||{});function st(o,n,r){const t={pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}};o.__ClassAttributes?.forEach(a=>{if(a.attributeType==="UIPageType")t.pageType=a.Type;else if(a.attributeType==="UIValidationControl")t.globalValidations.push({rule:a.ruleName,errorMessage:a.errorMessage,param:a.ruleParameter,appliesTo:a.propertyNames||["*"]});else if(a.attributeType==="UIControl"){const l=a.showToRoles.split(",").map(d=>d.trim()),c=r.bpmStore().employeeInfo.roleList.some(d=>l.includes(d.name))||a.showToRoles==="";if(a.widget==="Tab"){t.tabs||(t.tabs=[]),c&&t.tabs.push({key:Fe(),title:a.title,filters:a.filters?JSON.parse(a.filters):[],order:a.order});return}if(t.actions||(t.actions=[]),c){if(a.title==="Re-Submit"&&o.status.propertyValue!==-1)return;t.actions.push({isSubmit:a.isSubmit,requestUrl:a.requestUrl,redirectUrl:a.redirectUrl,redirectType:a.redirectType,title:a.title,widget:a.widget==="Link"?$.Link:a.widget==="Submit"?$.Submit:$.Button,location:a.location,attributeType:a.attributeType,readonly:a.readonly,eventName:a.eventName})}}else a.attributeType==="Banner"&&(t.banner.title=a.title,n===0||n===5?t.banner.subTitle=a.subTitle:t.banner.subTitle=ye(a.subTitle,o.workflowId.propertyValue))}),t.tabs&&(t.tabs=t.tabs.sort((a,l)=>a.order-l.order));const s={id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""};return Object.entries(o).forEach(([a,l])=>{if(a==="__ClassAttributes"||a==="className")return;if(a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"){s[a]=l.propertyValue;return}if(n!==3&&a==="workflowId")return;const c={validations:[],triggers:[],isFiltered:!1,dependent:"",operator:""},{attributes:d,propertyValue:i}=l;switch(i){case null:c.modelValue="";break;case void 0:c.modelValue="";break;default:c.modelValue=i;break}a==="onBehalf"&&n===0&&(c.modelValue=we.CurrentUserEmail(r)),(n===1||n===5)&&(a==="directReports"||a==="employeesInTheTeam")&&c.modelValue&&(c.modelValue=Number(c.modelValue)),d?.forEach(m=>{m.order||m.Order?c.order=m.order??m.Order:m.attributeType==="UIControl"?(m.outputText=m.outputText?JSON.parse(m.outputText):[],c.widget={...m,column:!0}):m.attributeType==="UIValidationControl"&&n!==3?c.widget?.widget!=="CheckBox"&&c.validations.push(m):m.attributeType==="UIListed"?c.widget={...m,column:!0}:m.attributeType==="UIFiltered"?(c.isFiltered=!0,c.operator=m.operatorType):m.dependentType?c.dependent=we[m.dependentType]?we[m.dependentType](r):"":m.eventType==="Change"&&c.triggers?.push({event:"change",handlerName:m.eventName})}),t.fields[a]=c}),t.pageFields=s,t}const Pe=async(o,n,r,t)=>{const a=await(await M()).get(`/General/${n}/${o}/page`,{params:t});return st(a?.data,o,r)},it=async(o,n,r)=>(await(await M()).post(`/${n}/${o}/button/List`,null,{params:r}))?.data;async function lt(o,n){const t=await(await M()).post(`/General/${o}/list`,n);return{data:t.data.data,totalCount:t.data.totalCount}}async function ct(o,n,r){return(await(await M()).post(r,n,{params:{className:o}})).data}async function dt(o,n,r,t){const s=await M(),a=ye(t,n);return(await s.put(a,r))?.data}function ye(o,n){return o.replace(/{WorkflowId}/g,encodeURIComponent(n))}function mt(o,n){return o.replace(/{ApproverEmail}/g,encodeURIComponent(n))}function pt(o,n){return o.replace(/{WorkFlowReason}/g,encodeURIComponent(n))}function ft(o,n){return o.replace(/{Status}/g,n)}function ut(o,n){return o.replace(/{IfTriggerGlobal_RandP_Approval}/g,n)}function gt(o,n){return o.replace(/{ClassName}/g,encodeURIComponent(n))}async function _t(o,n,r,t,s,a,l,c){const d=await M();let i=ye(s,n);return i=mt(i,r),i=pt(i,t),i=ft(i,a),i=ut(i,l),i=gt(i,o),(await d.put(i,c))?.data}async function ht(o,n){const s=(await(await M()).get(o,{params:{value:n}}))?.data;return Object.entries(s).map(([a,l])=>({value:a,label:l}))}async function wt(o,n){return(await(await M()).get(`/General/${o}/${n}/process`))?.data}function kt(o){return{uid:o.id??Fe(),name:o.attachmentName??"unknown",url:o.attachmentKey??""}}async function yt(o,n){return(await(await M()).get(`/General/${o}/${n}/upload/get`))?.data.reduce((a,l)=>{const{category:c}=l;return a[c]||(a[c]=[]),a[c].push(kt(l)),a},{})}async function bt(o,n){return(await M()).post(`/General/${o}/${n}/delete/attachment`)}async function Ct(){const n=await(await M()).get("/Grading/dropdown/approvers");return Object.entries(n?.data).map(([r,t])=>({label:r,value:t}))}async function Vt(o,n){return await(await M()).post(`Grading/AssignComments/${o}/${encodeURIComponent(n)}`)}async function xt(o,n,r){return await(await M()).post(`Grading/AddComments/${o}/${encodeURIComponent(n)}`,r,{headers:{"Content-Type":"application/json;charset=UTF-8"}})}async function St(o){return(await(await M()).get(`Grading/GetComments/${o}`))?.data}async function Bt(o){return(await(await M()).get(`Grading/GetAssociator/${o}`))?.data}async function Nt(o){return await(await M()).delete(`Grading/DeleteAssociator/${o}`)}async function Tt(o,n=null){const t=await(await M()).post(o,n,{responseType:"blob"});Xe(t?.data,"WorkflowData.xlsx")}const ee=(o,n)=>{let r="";return{res:o.every(s=>{const a=At(s,n);return a||(r=s.errorMessage),a}),errorMessages:r}},At=(o,n)=>{const{ruleName:r,ruleParameter:t}=o;return It[r](t,n)},It={Regex:(o,n)=>new RegExp(o).test(n),Required:(o,n)=>!!n},Et=e.defineComponent({__name:"InputText",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=m=>ee(t.validations,m),c=m=>{s("input",m)},d=m=>{const w=l(m);s("error",w.res?"":w.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(k=>{k.event==="change"&&s(k.event,k.handlerName,m)})};n({validate(){const m=l(t.modelValue);return s("error",m.res?"":m.errorMessages),m.res}});const i={props:t,emits:s,model:a,validate:l,inputHandler:c,changeHandler:d};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),O=(o,n)=>{const r=o.__vccOpts||o;for(const[t,s]of n)r[t]=s;return r};function Ft(o,n,r,t,s,a){const l=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(l,{modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=c=>t.model=c),"allow-clear":"","show-word-limit":"",disabled:t.props.config.readonly,"max-length":t.props.config.maxLength,onInput:t.inputHandler,onChange:t.changeHandler},null,8,["modelValue","disabled","max-length"])}const De=O(Et,[["render",Ft],["__file","InputText.vue"]]),Pt=e.defineComponent({__name:"InputNumber",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=e.ref(t.config.maxLength??100),c=e.ref(1);e.onMounted(()=>{t.validations&&t.validations.forEach(k=>{k.ruleName==="Max"&&(l.value=k.ruleParameter),k.ruleName==="Min"&&(c.value=k.ruleParameter)})});const d=k=>ee(t.validations,k),i=k=>{s("input",k)},m=k=>{const y=d(k);s("error",y.res?"":y.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(f=>{f.event==="change"&&s(f.event,f.handlerName,k)})};n({validate(){const k=d(t.modelValue);return s("error",k.res?"":k.errorMessages),k.res}});const w={props:t,emits:s,model:a,max:l,min:c,validate:d,inputHandler:i,changeHandler:m};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}});function Dt(o,n,r,t,s,a){const l=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(l,{modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=c=>t.model=c),clearable:"","show-word-limit":"",disabled:t.props.config.readonly,max:t.max,min:t.min,onInput:t.inputHandler,onChange:t.changeHandler},null,8,["modelValue","disabled","max","min"])}const Lt=O(Pt,[["render",Dt],["__file","InputNumber.vue"]]),Rt=e.defineComponent({__name:"SelectList",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.ref(!1),l=e.ref(t.config.options??[]),c=e.useModel(o,"modelValue"),d=y=>ee(t.validations,y),i=e.computed(()=>{const y={};return t.triggers&&t.triggers.length>0&&t.triggers.forEach(f=>{y[f.event]=u=>{s(f.event,f.handlerName,u);const b=d(u);s("error",b.res?"":b.errorMessages)}}),y}),m=async()=>{if(t.config.dataSourceProvider){l.value=await ht(t.config.dataSourceProvider);const y=t.modelValue;y!=null&&y!==""&&(l.value.some(u=>u.value===y)||s("update:modelValue",""))}};e.onMounted(m);const w=y=>{s("update:modelValue",y);const f=d(y);s("error",f.res?"":f.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(u=>{u.event==="change"&&s(u.event,u.handlerName,y)})};n({validate(){const y=d(t.modelValue);return s("error",y.res?"":y.errorMessages),y.res}});const k={props:t,emits:s,loading:a,_options:l,model:c,validate:d,eventHandlers:i,loadOptions:m,changeHandler:w};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}});function Ut(o,n,r,t,s,a){const l=e.resolveComponent("AOption"),c=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(c,{"allow-clear":"",modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=d=>t.model=d),loading:t.loading,"filter-option":!0,"allow-search":!0,disabled:t.props.config.readonly,onChange:t.changeHandler},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t._options,d=>(e.openBlock(),e.createBlock(l,{key:d.value,value:d.value,label:d.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading","disabled"])}const Le=O(Rt,[["render",Ut],["__file","SelectList.vue"]]),Mt=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.ref(t.config.options??[]),l=i=>{s("update:modelValue",i),s("change",i)};e.onMounted(async()=>{if(t.config){const i=t.config.dataSourceProvider;if(i){const w=await(await M()).get(i);a.value=w.data}}});const c={value:"key",label:"value"};n({validate(){return!0}});const d={props:t,emits:s,_options:a,changeHandler:l,fieldNames:c};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function Ht(o,n,r,t,s,a){const l=e.resolveComponent("ACascader"),c=e.resolveComponent("ASpace");return e.openBlock(),e.createBlock(c,{direction:"vertical",size:"large"},{default:e.withCtx(()=>[e.createVNode(l,{"field-names":t.fieldNames,"model-value":r.modelValue,options:t._options,style:{width:"320px"},placeholder:"Please select ...",onChange:t.changeHandler},null,8,["model-value","options"])]),_:1})}const jt=O(Mt,[["render",Ht],["__file","Cascader.vue"]]),Re=1024*1024,Ot=e.defineComponent({__name:"FileUpload",props:{className:{},maxSize:{},minSize:{},fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.ref({}),l=p=>ee(t.validations,p),c=_e(),d=c.apiBase,i=e.ref(null),m=e.ref("");function w(p,S,I){return p.replace(/{WorkflowId}/g,S).replace(/{ClassName}/g,I)}const k=e.computed(()=>{if(t.config.uploadURL){const p=d+t.config.uploadURL;return w(p,m.value,t.className)}return""});function y(p){if(!(typeof p!="number"||p<=0))return p*Re}function f(p){if(!(typeof p!="number"||p<=0))return p}const u=e.computed(()=>y(t.maxSize??t.config.maxSize)),b=e.computed(()=>f(t.minSize??t.config.minSize)),z=e.computed(()=>u.value?U(u.value):"unlimited"),K=e.computed(()=>b.value?U(b.value):"0 B");function U(p){return p<1024?`${p} B`:p<1024*1024?`${Math.round(p/1024)} KB`:p<1024*1024*1024?`${Math.round(p/(1024*1024))} MB`:`${Math.round(p/(1024*1024*1024))} GB`}function G(p){const S=u.value,I=b.value;return typeof S=="number"&&S>0&&p.size>S?(s("error",`File size cannot exceed ${U(S)}`),!1):typeof I=="number"&&I>0&&p.size<I?(s("error",`File size cannot be smaller than ${U(I)}`),!1):(s("error",""),!0)}const Y=p=>{p.stopPropagation(),i.value.submit()};function q(p){const{file:S,name:I}=p,L=I??S.name;return new Promise((g,V)=>{Qe.Modal.confirm({title:"Confirm Delete",content:`Are you sure you want to delete ${L}?`,async onOk(){if(p.status!=="init"&&t.config.removeFile)return await t.config.removeFile(p.uid),g(!0);g(!0)},onCancel:()=>V("cancel")})})}const C=e.ref(null),P=e.ref(null),E=p=>{C.value&&(C.value(p),C.value=null,P.value=null)},D=p=>{P.value&&(P.value(p),C.value=null,P.value=null)},_=e.ref([]),x=p=>{_.value=p.filter(S=>S.status==="init")};n({submit(p){return new Promise((S,I)=>{i.value?(t.config.uploadURL&&(m.value=p),C.value=S,P.value=I,_.value.length?Ie().then(L=>{a.value={Authorization:`Bearer ${L}`},e.nextTick(()=>{i.value?.submit()})}):S(p)):S(p)})},validate(){const p=t.config.files??[],S=[..._.value,...p].length>0?"hasFile":"",I=l(S);return s("error",I.res?"":I.errorMessages),I.res}});const h={props:t,emits:s,headers:a,validate:l,config:c,ApiBase:d,uploadRef:i,id:m,replaceIdAndClassName:w,action:k,MB_SIZE:Re,mbToBytes:y,normalizeBytes:f,maxFileSize:u,minFileSize:b,maxFileSizeText:z,minFileSizeText:K,formatFileSize:U,onBeforeUpload:G,submit:Y,onBeforeRemove:q,uploadPromiseResolve:C,uploadPromiseReject:P,handleUploadSuccess:E,handleUploadError:D,readyFiles:_,onChange:x};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),$t={style:{"margin-top":"8px",color:"#86909c","font-size":"12px"}};function zt(o,n,r,t,s,a){const l=e.resolveComponent("a-button"),c=e.resolveComponent("a-upload");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(c,{ref:"uploadRef","default-file-list":t.props.config.files,action:t.action,limit:t.props.config.allowedNumber,"auto-upload":!1,name:"files",headers:t.headers,"on-before-upload":t.onBeforeUpload,onChange:t.onChange,onBeforeRemove:t.onBeforeRemove,onSuccess:t.handleUploadSuccess,onError:t.handleUploadError},{"start-icon":e.withCtx(()=>n[0]||(n[0]=[])),"upload-button":e.withCtx(()=>[e.createVNode(l,{type:"primary"},{default:e.withCtx(()=>n[1]||(n[1]=[e.createTextVNode("Select File",-1)])),_:1,__:[1]})]),_:1},8,["default-file-list","action","limit","headers"]),e.createElementVNode("div",$t," The maximum file size for uploads is "+e.toDisplayString(t.maxFileSizeText)+", and the minimum file size is greater than "+e.toDisplayString(t.minFileSizeText)+". ",1)],64)}const Kt=O(Ot,[["render",zt],["__file","FileUpload.vue"]]),Wt=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(o,{expose:n,emit:r}){const t=o,s=r,a=i=>ee(t.validations,i),l=i=>{s("update:modelValue",i),s("input",i)},c=i=>{s("update:modelValue",i);const m=a(i);s("error",m.res?"":m.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(w=>{w.event==="change"&&s(w.event,w.handlerName,i)})};n({validate(){const i=a(t.modelValue);return s("error",i.res?"":i.errorMessages),i.res}});const d={props:t,emits:s,validate:a,inputHandler:l,changeHandler:c};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function qt(o,n,r,t,s,a){const l=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(l,{"model-value":t.props.modelValue,placeholder:"Please enter something","allow-clear":"","show-word-limit":"",disabled:t.props.config.readonly,"max-length":t.props.config.maxLength,"auto-size":{minRows:2,maxRows:2},onInput:t.inputHandler,onChange:t.changeHandler},null,8,["model-value","disabled","max-length"])}const Gt=O(Wt,[["render",qt],["__file","TextArea.vue"]]),Yt=e.defineComponent({__name:"CheckBox",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=i=>ee(t.validations,i),c=i=>{const m=l(i);s("error",m.res?"":m.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(w=>{w.event==="change"&&s(w.event,w.handlerName,i)})};n({validate(){const i=l(t.modelValue);return s("error",i.res?"":i.errorMessages),i.res}});const d={props:t,emits:s,model:a,validate:l,changeHandler:c};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function Qt(o,n,r,t,s,a){const l=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(l,{modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=c=>t.model=c),clearable:"",disabled:t.props.readonly||t.props.config.Readonly,onChange:t.changeHandler},{default:e.withCtx(()=>n[1]||(n[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}const Jt=O(Yt,[["render",Qt],["__file","CheckBox.vue"]]),Zt=Symbol("ArcoConfigProvider"),Xt="arco",vt="$arco",Ue=o=>{var n,r,t;const s=e.getCurrentInstance(),a=e.inject(Zt,void 0);return`${(t=(r=a?.prefixCls)!=null?r:(n=s?.appContext.config.globalProperties[vt])==null?void 0:n.classPrefix)!=null?t:Xt}-${o}`},eo=Object.prototype.toString;function Me(o){return eo.call(o)==="[object Number]"&&o===o}var He=(o,n)=>{for(const[r,t]of n)o[r]=t;return o};const to=e.defineComponent({name:"IconQuestionCircle",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:o=>["butt","round","square"].includes(o)},strokeLinejoin:{type:String,default:"miter",validator:o=>["arcs","bevel","miter","miter-clip","round"].includes(o)},rotate:Number,spin:Boolean},emits:{click:o=>!0},setup(o,{emit:n}){const r=Ue("icon"),t=e.computed(()=>[r,`${r}-question-circle`,{[`${r}-spin`]:o.spin}]),s=e.computed(()=>{const l={};return o.size&&(l.fontSize=Me(o.size)?`${o.size}px`:o.size),o.rotate&&(l.transform=`rotate(${o.rotate}deg)`),l});return{cls:t,innerStyle:s,onClick:l=>{n("click",l)}}}}),oo=["stroke-width","stroke-linecap","stroke-linejoin"];function no(o,n,r,t,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(o.cls),style:e.normalizeStyle(o.innerStyle),"stroke-width":o.strokeWidth,"stroke-linecap":o.strokeLinecap,"stroke-linejoin":o.strokeLinejoin,onClick:n[0]||(n[0]=(...l)=>o.onClick&&o.onClick(...l))},n[1]||(n[1]=[e.createElementVNode("path",{d:"M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18Z"},null,-1),e.createElementVNode("path",{d:"M24.006 31v4.008m0-6.008L24 28c0-3 3-4 4.78-6.402C30.558 19.195 28.288 15 23.987 15c-4.014 0-5.382 2.548-5.388 4.514v.465"},null,-1)]),14,oo)}var be=He(to,[["render",no]]);const ro=Object.assign(be,{install:(o,n)=>{var r;const t=(r=n?.iconPrefix)!=null?r:"";o.component(t+be.name,be)}}),ao=e.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:o=>["butt","round","square"].includes(o)},strokeLinejoin:{type:String,default:"miter",validator:o=>["arcs","bevel","miter","miter-clip","round"].includes(o)},rotate:Number,spin:Boolean},emits:{click:o=>!0},setup(o,{emit:n}){const r=Ue("icon"),t=e.computed(()=>[r,`${r}-download`,{[`${r}-spin`]:o.spin}]),s=e.computed(()=>{const l={};return o.size&&(l.fontSize=Me(o.size)?`${o.size}px`:o.size),o.rotate&&(l.transform=`rotate(${o.rotate}deg)`),l});return{cls:t,innerStyle:s,onClick:l=>{n("click",l)}}}}),so=["stroke-width","stroke-linecap","stroke-linejoin"];function io(o,n,r,t,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(o.cls),style:e.normalizeStyle(o.innerStyle),"stroke-width":o.strokeWidth,"stroke-linecap":o.strokeLinecap,"stroke-linejoin":o.strokeLinejoin,onClick:n[0]||(n[0]=(...l)=>o.onClick&&o.onClick(...l))},n[1]||(n[1]=[e.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1)]),14,so)}var Ce=He(ao,[["render",io]]);const lo=Object.assign(Ce,{install:(o,n)=>{var r;const t=(r=n?.iconPrefix)!=null?r:"";o.component(t+Ce.name,Ce)}}),co=e.defineComponent({__name:"ToolTip",props:{isVisible:{type:Boolean},outputText:{}},setup(o,{expose:n}){n();const r=o,t=c=>c.length>0&&typeof c[0]!="string",s=e.computed(()=>t(r.outputText)?[]:r.outputText),a=e.computed(()=>t(r.outputText)?r.outputText:[]),l={props:r,isTreeArray:t,stringOutput:s,treeOutput:a,get IconQuestionCircle(){return ro}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),mo={class:"list-unstyled"},po={class:"list-style-square"};function fo(o,n,r,t,s,a){const l=e.resolveComponent("a-tooltip");return t.props.isVisible?(e.openBlock(),e.createBlock(l,{key:0,"background-color":"#7A00E6"},{content:e.withCtx(()=>[t.stringOutput.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.stringOutput,c=>(e.openBlock(),e.createElementBlock("p",{key:c},e.toDisplayString(c),1))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.treeOutput,c=>(e.openBlock(),e.createElementBlock("ul",{key:c.title,class:"list-unstyled"},[e.createElementVNode("li",null,[e.createElementVNode("b",null,e.toDisplayString(c.title),1),e.createElementVNode("ul",mo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.items,d=>(e.openBlock(),e.createElementBlock("li",{key:d.title},[e.createElementVNode("u",null,e.toDisplayString(d.title),1),e.createElementVNode("ul",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.items,i=>(e.openBlock(),e.createElementBlock("li",null,e.toDisplayString(i),1))),256))])]))),128))])])]))),128))]),default:e.withCtx(()=>[e.createVNode(t.IconQuestionCircle,{class:"icon"})]),_:1})):e.createCommentVNode("",!0)}const je=O(co,[["render",fo],["__scopeId","data-v-1d3893b1"],["__file","ToolTip.vue"]]),uo=e.defineComponent({__name:"index",props:e.mergeModels({config:{},className:{},required:{type:Boolean},fieldKey:{},modelValue:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=e.useTemplateRef("widgetRef"),c=e.computed(()=>{switch(t.config?.widget?.widget){case"TextBox":return De;case"Number":return Lt;case"SelectList":return Le;case"Cascade":return jt;case"File":return Kt;case"TextArea":return Gt;case"DropDown":return Le;case"CheckBox":return Jt;default:return De}}),d=e.ref(""),i=f=>{d.value=f},m=(f,u)=>{s("change",f,u)};function w(){return t.config?.widget?.widget==="File"}function k(f){return f==="OtherInformationText"?"Other Information":f}n({isFileUpload(){return t.config?.widget?.widget==="File"},submit(f){return w()?l.value.submit(f):Promise.resolve(f)},validate(){return l.value?.validate()},getCompName(){return t?.config?.widget?.title}});const y={props:t,emits:s,model:a,widgetRef:l,curComp:c,errMsg:d,errHandler:i,changeHandler:m,isFileUpload:w,formatTitle:k,ToolTip:je};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}}),go={class:"title"},_o={key:0,class:"required"},ho={key:0,class:"err-msg"};function wo(o,n,r,t,s,a){return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",go,[e.createTextVNode(e.toDisplayString(t.formatTitle(t.props?.config?.widget?.title))+" ",1),t.props.required||t.props.config.validations.some(l=>l.ruleName==="Required")?(e.openBlock(),e.createElementBlock("span",_o," * ")):e.createCommentVNode("",!0),e.createVNode(t.ToolTip,{"is-visible":t.props.config.widget?.isVisible??!1,"output-text":t.props.config.widget?.outputText??[]},null,8,["is-visible","output-text"])]),e.createElementVNode("div",null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.curComp),{ref:"widgetRef",modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=l=>t.model=l),"field-key":t.props.fieldKey,config:t.props.config.widget,validations:t.props.config.validations,triggers:t.props.config.triggers,"class-name":t.props.className,onError:t.errHandler,onChange:t.changeHandler},null,40,["modelValue","field-key","config","validations","triggers","class-name"])),t.errMsg.length>0?(e.openBlock(),e.createElementBlock("div",ho,e.toDisplayString(t.errMsg),1)):e.createCommentVNode("",!0)])])}const se=O(uo,[["render",wo],["__scopeId","data-v-67595df1"],["__file","index.vue"]]),ko=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(o,{expose:n,emit:r}){n();const t=o,s=r;function a(){s("click",t.url,t.redirectType)}const l={props:t,emits:s,clickHandler:a};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}});function yo(o,n,r,t,s,a){const l=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(l,{loading:r.loading,type:"primary",onClick:t.clickHandler},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["loading"])}const Oe=O(ko,[["render",yo],["__file","SubmitButton.vue"]]),bo=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(o,{expose:n,emit:r}){n();const t=o,s=r;function a(){s("click",t.url,t.redirectType)}const l={props:t,emits:s,clickHandler:a};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}});function Co(o,n,r,t,s,a){const l=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(l,{onClick:t.clickHandler},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})}const Vo=O(bo,[["render",Co],["__file","DetailLink.vue"]]),xo=e.defineComponent({__name:"index",props:{config:{},loading:{type:Boolean}},emits:["click"],setup(o,{expose:n,emit:r}){n();const t=o,s=r;function a(m,w){s("click",t.config.widget,m,w,t.config.title)}const l=e.computed(()=>{switch(t.config.location){case"InOperation":return Oe;case"InTable":return Vo;default:return Oe}}),c=e.computed(()=>t.config.widget===$.Submit?t.config.requestUrl??"":t.config.widget===$.Link?t.config.redirectUrl??"":""),d=e.computed(()=>t.config.redirectType??"Details"),i={props:t,emits:s,clickHandler:a,curComp:l,curUrl:c,redirectType:d};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}});function So(o,n,r,t,s,a){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.curComp),{url:t.curUrl,"redirect-type":t.redirectType,loading:r.loading,onClick:t.clickHandler},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.props.config.title),1)]),_:1},8,["url","redirect-type","loading"])}const ie=O(xo,[["render",So],["__file","index.vue"]]),$e=Symbol("library-triggers");function Ve(){const o=e.inject($e,null);return o||{}}const Bo=Symbol("library-pinia"),ze=Symbol("library-bpmStore"),Ke=Symbol("library-svrStore");function le(){return e.inject(ze,null)}function ce(){return e.inject(Ke,null)}const No=e.defineComponent({__name:"TopBar",props:{title:{},subTitle:{},email:{}},setup(o,{expose:n}){n();const r={};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),To={class:"top-bar"},Ao={class:"banner-info"},Io={class:"page-title"},Eo={class:"page-subtitle"},Fo={class:"avatar-wrapper"},Po={class:"user-email"};function Do(o,n,r,t,s,a){const l=e.resolveComponent("a-avatar"),c=e.resolveComponent("a-popover");return e.openBlock(),e.createElementBlock("div",To,[e.createElementVNode("div",Ao,[e.createElementVNode("div",Io,e.toDisplayString(r.title),1),e.createElementVNode("div",Eo,e.toDisplayString(r.subTitle),1)]),e.createElementVNode("div",Fo,[e.createVNode(c,{trigger:"click"},{content:e.withCtx(()=>[e.createElementVNode("div",Po,e.toDisplayString(r.email),1)]),default:e.withCtx(()=>[e.createVNode(l,{size:48,autoFixFontSize:"",style:{cursor:"pointer",background:"#165DFF",color:"#fff"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.email.charAt(0).toUpperCase()),1)]),_:1})]),_:1})])])}const de=O(No,[["render",Do],["__scopeId","data-v-c0457235"],["__file","TopBar.vue"]]);function xe(o){const n=_e(),r=[];if(n.fieldsGroup){n.fieldsGroup.forEach(a=>{const l=a.keys.map(c=>o.find(d=>d.fieldKey===c)).filter(Boolean);l.length&&r.push({name:a.name,fields:l})});const t=n.fieldsGroup.flatMap(a=>a.keys),s=o.filter(a=>!t.includes(a.fieldKey));return s.length&&r.push({name:"Grading Review History (For example: re-submit the grading request)",fields:s}),r}}class me{pageActionType;className="";store={svrStore:{},bpmStore:{}};opt={workflowId:""};setWorkflowId(n){return n?(this.opt.workflowId=n,this):this}setPageActionType(n){return this.pageActionType=n,this}setClassName(n){return this.className=n,this}setStore(n){return this.store=n,this}setOpt(n){return this.opt=n,this}build(){return this.pageActionType?this.opt.workflowId?new pe(this.pageActionType,this.className,this.store,this.opt):new pe(this.pageActionType,this.className,this.store):this.opt.workflowId?new pe(v.ReCreate,this.className,this.store,this.opt):new pe(v.Create,this.className,this.store)}}class pe{pageActionType;className;store;opt;getApproverEmail(){return this.store.svrStore()?.userInfo?.email_address??""}getWorkflowId(){return this.opt?.workflowId??""}constructor(n,r,t,s){this.pageActionType=n,this.className=r,this.store=t,s&&(this.opt=s)}getPageData(){return this.opt?Pe(this.pageActionType,this.className,this.store,this.opt):Pe(this.pageActionType,this.className,this.store)}getBtnList(){return it(this.pageActionType,this.className,{workflowId:this.getWorkflowId(),email:this.getApproverEmail()})}getFiles(){return this.getWorkflowId()?yt(this.className,this.getWorkflowId()):Promise.resolve({})}removeFile(n){return bt(this.className,n)}getProcess(){return wt(this.className,this.getWorkflowId())}getCommentsHistory(){return St(this.getWorkflowId())}getAssociator(){return Bt(this.getWorkflowId())}getApprovers(){return Ct()}assignApprover(n){return Vt(this.getWorkflowId(),n)}addComments(n){return xt(this.getWorkflowId(),this.getApproverEmail(),n)}deleteAssociator(n){return Nt(n)}}const Lo=e.defineComponent({__name:"CreateView",props:{className:{},workflowId:{}},setup(o,{expose:n}){n();const r=le(),t=ce(),s=X(),a=Ve(),l=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),d=o,i=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}}),m=e.ref([]),w=e.ref({});function k(_){return _?Object.entries(_).map(([h,p])=>({fieldKey:h,...p})).filter(h=>h.widget&&h.widget.widget!=="Hidden").filter(h=>!C.value.includes(h.fieldKey)):[]}function y(_){return _?Object.entries(_).filter(([h,p])=>p.dependent).reduce((h,[p,S])=>(h[p]=S.dependent,h),{}):[]}const f=e.computed(()=>i.value?.actions?[...i.value.actions].reverse():[]),u=e.ref({}),b=e.ref(!1);function z(_){return _.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function K(_){return typeof _=="string"?z(_):Array.isArray(_)?_.map(x=>K(x)):_&&typeof _=="object"?Object.entries(_).reduce((x,[h,p])=>(x[h]=K(p),x),{}):_}function U(_){return Object.entries(_).reduce((x,[h,p])=>(x[h]=K(p),x),{})}e.onMounted(async()=>{b.value=!0;const _=new me().setWorkflowId(d.workflowId).setClassName(d.className).setStore({svrStore:t,bpmStore:r}).build();i.value=await _.getPageData();const x=i.value.fields.requestType.modelValue;a.Test?.({fieldValue:x,hiddenFields:C,formData:u}),m.value=k(i.value.fields),w.value=y(i.value.fields);for(const h in i.value.fields){if(i.value.fields[h].widget?.widget==="File"){const p=m.value.find(S=>S.fieldKey===h);p&&p.widget&&(p.widget.files=[])}u.value[h]=i.value.fields[h].modelValue}b.value=!1});function G(){return t()?.userInfo?.email_address??""}async function Y(_,x,h,p,S){switch(x){case $.Submit:let I=!0;if(l.value?.forEach(L=>{L?.validate&&(L.validate()||(I=!1))}),!I){c?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}b.value=!0;try{a[S]?.({message:`${S} action triggered`});const L={...U(u.value),...w.value};a.createPageBeforeSubmit?.(L);const g=await ct(d.className,L,h);a[`${S}Success`||""]?.({message:"Workflow created successfully",workflowId:d.workflowId,res:g});const V=l.value?.map(T=>T?.submit?T.submit(g.toString()):Promise.resolve())||[];await Promise.all(V),b.value=!1,c?.appContext.config.globalProperties.$notification.success(`Your grading request has been submitted, ID is ${g.toString()}.`),s.push({name:"Details",params:{workflowId:g.toString()}})}catch{c?.appContext.config.globalProperties.$notification.error("Failed to submit your grading request"),b.value=!1}break;case $.Link:try{await a[_.eventName||""]?.(u.value,C),s.push({name:p,params:{className:d.className}}),await a[`${_.eventName||""}Success`]?.({message:`Router to ${p} pushed`})}catch(L){console.error("Error in link action trigger:",L)}break;default:console.warn("Unknown action type:",x)}}const q=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","jobAttachmentPrevious","positionId"],C=e.ref(q);function P(_,x){a[_]?.({fieldValue:x,hiddenFields:C,formData:u}),i.value&&(m.value=k(i.value.fields))}const E=e.computed(()=>xe(m.value)),D={bpmStore:r,svrStore:t,router:s,triggers:a,dataWidgetsRefs:l,instance:c,props:d,pageData:i,_fields:m,_dependent:w,genField:k,genDependentField:y,reversedActions:f,_data:u,loading:b,escapeHtml:z,sanitizeValue:K,sanitizeFormData:U,getApproverEmail:G,clickHandler:Y,newHiddenFields:q,hiddenFields:C,changeHandler:P,groupedFields:E,DataWidgets:se,ActionButton:ie,TopBar:de};return Object.defineProperty(D,"__isScriptSetup",{enumerable:!1,value:!0}),D}}),Ro={class:"page-container"},Uo={class:"page-body"},Mo={class:"form-card"},Ho={class:"form-fields-vertical"},jo={class:"form-fields"},Oo={key:0,class:"form-content"},$o={class:"page-footer"},zo={class:"action-container"},Ko={class:"action-buttons"};function Wo(o,n,r,t,s,a){const l=e.resolveComponent("a-card"),c=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Ro,[e.createVNode(t.TopBar,{title:t.pageData.banner.title,subTitle:t.pageData.banner.subTitle,email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createElementVNode("div",Uo,[e.createVNode(c,{loading:t.loading,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Mo,[e.createElementVNode("div",Ho,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groupedFields,d=>(e.openBlock(),e.createBlock(l,{key:d.name,title:d.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",jo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.fields,i=>(e.openBlock(),e.createBlock(t.DataWidgets,{key:i.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":i.fieldKey,config:i,"class-name":r.className,modelValue:t._data[i.fieldKey],"onUpdate:modelValue":m=>t._data[i.fieldKey]=m,class:"form-field",onChange:t.changeHandler},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),o.$slots.content?(e.openBlock(),e.createElementBlock("div",Oo,[e.renderSlot(o.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",$o,[e.createElementVNode("div",zo,[e.renderSlot(o.$slots,"action",{},void 0,!0),e.createElementVNode("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.reversedActions,d=>(e.openBlock(),e.createBlock(t.ActionButton,{key:d.title,loading:t.loading,config:d,class:"action-button",onClick:(...i)=>t.clickHandler(d,...i)},null,8,["loading","config","onClick"]))),128))])])])])}const qo=O(Lo,[["render",Wo],["__scopeId","data-v-89686fdd"],["__file","CreateView.vue"]]),Go=e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(o,{expose:n}){n();const r=X(),t=Ve(),s=ce(),a=le(),l=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),d=o,i=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}}),m=e.ref([]),w=e.ref({});function k(C){return C?Object.entries(C).map(([E,D])=>({fieldKey:E,...D})).filter(E=>E.widget&&E.widget.widget!=="Hidden").filter(E=>!U.value.includes(E.fieldKey)):[]}function y(C){return C?Object.entries(C).filter(([E,D])=>D.dependent).reduce((E,[D,_])=>(E[D]=_.dependent,E),{}):[]}const f=e.computed(()=>i.value?.actions?[...i.value.actions].reverse():[]),u=e.ref({}),b=e.ref(!1);e.onMounted(async()=>{b.value=!0;const C=new me().setPageActionType(v.Update).setClassName(d.className).setStore({svrStore:s,bpmStore:a}).setWorkflowId(d.workflowId).build();i.value=await C.getPageData();const P=await C.getBtnList(),E=await C.getFiles();i.value.actions=i.value.actions?.filter(_=>{const x=P.find(h=>h.button===_.title);return x?x.isShow:!0});const D=i.value.fields.requestType.modelValue;t.Test?.({fieldValue:D,hiddenFields:U,formData:u}),m.value=k(i.value.fields),w.value=y(i.value.fields);for(const _ in i.value.fields){if(i.value.fields[_].widget?.widget==="File"){const x=m.value.find(h=>h.fieldKey===_);x&&x.widget&&(x.widget.files=E[_]??[],x.widget.removeFile=h=>C.removeFile(h))}u.value[_]=i.value.fields[_].modelValue}b.value=!1});function z(){return s()?.userInfo?.email_address??""}async function K(C,P,E,D,_){switch(P){case $.Submit:let x=!0;if(l.value?.forEach(h=>{h?.validate&&(h.validate()||(x=!1))}),!x){c?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}b.value=!0;try{const h={...u.value,...w.value};t.updatePageBeforeSubmit?.(h,a().employeeInfo);const p=await dt(d.className,d.workflowId,h,E),S=l.value?.map(I=>I?.submit?I.submit(p.toString()):Promise.resolve())||[];await Promise.all(S),b.value=!1,c?.appContext.config.globalProperties.$notification.success(`Your grading request has been submitted, ID is ${p.toString()}.`)}catch{c?.appContext.config.globalProperties.$notification.error("Failed to submit your grading request"),b.value=!1}break;case $.Link:try{await t[C.eventName||""]?.(u.value,U),r.push({name:D,params:{className:d.className}})}catch{}break;default:console.warn("Unknown action type:",P)}}const U=e.ref([]);function G(C,P){t[C]?.({fieldValue:P,hiddenFields:U,formData:u}),i.value&&(m.value=k(i.value.fields))}const Y=e.computed(()=>xe(m.value)),q={router:r,triggers:t,svrStore:s,bpmStore:a,dataWidgetsRefs:l,instance:c,props:d,pageData:i,_fields:m,_dependent:w,genField:k,genDependentField:y,reversedActions:f,_data:u,loading:b,getApproverEmail:z,clickHandler:K,hiddenFields:U,changeHandler:G,groupedFields:Y,DataWidgets:se,ActionButton:ie,TopBar:de};return Object.defineProperty(q,"__isScriptSetup",{enumerable:!1,value:!0}),q}}),Yo={class:"page-container"},Qo={class:"page-body"},Jo={class:"form-card"},Zo={class:"form-fields-vertical"},Xo={class:"form-fields"},vo={key:0,class:"form-content"},en={class:"page-footer"},tn={class:"action-container"},on={class:"action-buttons"};function nn(o,n,r,t,s,a){const l=e.resolveComponent("a-card"),c=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Yo,[e.createVNode(t.TopBar,{title:t.pageData.banner.title,subTitle:t.pageData.banner.subTitle,email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createElementVNode("div",Qo,[e.createVNode(c,{loading:t.loading,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Jo,[e.createElementVNode("div",Zo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groupedFields,d=>(e.openBlock(),e.createBlock(l,{key:d.name,title:d.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",Xo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.fields,i=>(e.openBlock(),e.createBlock(t.DataWidgets,{key:i.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":i.fieldKey,config:i,"class-name":r.className,modelValue:t._data[i.fieldKey],"onUpdate:modelValue":m=>t._data[i.fieldKey]=m,class:"form-field",onChange:t.changeHandler},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),o.$slots.content?(e.openBlock(),e.createElementBlock("div",vo,[e.renderSlot(o.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",en,[e.createElementVNode("div",tn,[e.renderSlot(o.$slots,"action",{},void 0,!0),e.createElementVNode("div",on,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.reversedActions,d=>(e.openBlock(),e.createBlock(t.ActionButton,{key:d.title,loading:t.loading,config:d,class:"action-button",onClick:(...i)=>t.clickHandler(d,...i)},null,8,["loading","config","onClick"]))),128))])])])])}const rn=O(Go,[["render",nn],["__scopeId","data-v-605f261e"],["__file","UpdateView.vue"]]),We=Symbol("library-custom-comp");function an(){return e.inject(We,null)}const sn=e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(o,{expose:n}){n();const r=ce(),t=le(),s=Ve(),a=X(),l=an(),c=e.getCurrentInstance(),d=o;let i;const m=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}}),w=e.ref([]),k=e.useTemplateRef("dataWidgets");function y(B){return B?Object.entries(B).map(([H,N])=>{typeof N.modelValue=="boolean"?N.fieldValue=N.modelValue?"Yes":"No":N.fieldValue=N.modelValue;const R={fieldKey:H,...N};return R.widget?.readonly||R.validations?.some(Z=>Z.ruleName==="Required")?R:{...R,validations:[...R.validations||[],{ruleName:"Required",ruleParameter:"",errorMessage:`${J(R.widget?.title)||R.fieldKey} is required`}]}}).filter(H=>H.widget&&H.widget.widget!=="Hidden").filter(H=>!P.value.includes(H.fieldKey)):[]}const f=e.computed(()=>xe(w.value)),u=e.computed(()=>m.value?.actions?[...m.value.actions].reverse():[]),b=e.ref(!0),z=(B,F)=>{const H=B.findIndex(N=>N.isCurrent);return B.map((N,R)=>{const A={id:N.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};A.title=N.workflowProcessApprovers[0]?.name;const Z=N.workflowProcessApprovers[N.workflowProcessApprovers.length-1],fe=N.workflowHistorys[N.workflowHistorys.length-1],re=fe?.workflowHistoryApprovers[fe?.workflowHistoryApprovers?.length-1];if(Z&&re&&Z?.email?.toLowerCase()!==re?.approverEmail?.toLowerCase()&&(A.title=`${re.name}`,A.proxy=`Proxy: ${Z.name}`),N.sort>1?A.sub="Approver Role: "+N.nodeName.replace("Submit","").replace("Approve",""):A.sub="Submit Application",N.isCurrent&&F!==-1)A.desc="In Approval",A.status=1;else{const W=N.workflowHistorys[N.workflowHistorys.length-1];if(W&&W.status===100)A.time=ae(W.takeActionAt,"yyyy-MM-dd hh:mm:ss"),A.status=2,A.desc="approve success!";else if(W&&W.status===999)A.time=ae(W.takeActionAt,"yyyy-MM-dd hh:mm:ss"),A.status=0,A.desc="approve reject!";else if(W)if(A.time=ae(W.takeActionAt,"yyyy-MM-dd hh:mm:ss"),N.sort===1)A.status=2,A.desc="";else{const ue=W.workflowHistoryApprovers[0];A.status=3,A.desc=ue?.reason?`Rejected reason: ${ue.reason}`:"Rejected"}else R<H||H===-1?(A.status=0,A.desc="Skipped"):(A.status=0,A.desc="Pending Approval");W&&W.status}return A})},K=e.ref([]),U=e.ref(!1),G=e.ref(!1),Y=e.ref(!1),q=e.ref(!1);async function C(){const B=await i.getBtnList();m.value.actions=m.value.actions?.filter(F=>{const H=B.find(N=>N.button===F.title);return H?H.isShow:!0}),U.value=B.find(F=>F.button==="IsGlobal")?.isShow??!1,G.value=B.find(F=>F.button==="AssignButton")?.isShow??!1,Y.value=B.find(F=>F.button==="AssignList")?.isShow??!1,q.value=B.find(F=>F.button==="AddCommentsButton")?.isShow??!1}const P=e.ref([]);async function E(){b.value=!0,i=new me().setPageActionType(v.Details).setClassName(d.className).setStore({svrStore:r,bpmStore:t}).setWorkflowId(d.workflowId).build(),m.value=await i.getPageData();const B=await i.getFiles();I.value=await i.getApprovers(),p.value=await i.getCommentsHistory(),L.value=await i.getAssociator(),await C(),s.detailPageLoaded?.(m,t().employeeInfo);const F=m.value.fields.requestType.modelValue;s.Test?.({fieldValue:F,hiddenFields:P}),w.value=y(m.value.fields);for(const N in m.value.fields)if(m.value.fields[N].widget?.widget==="File"){const R=w.value.find(A=>A.fieldKey===N);R&&R.widget&&(R.widget.files=B[N]??[])}const H=await i.getProcess();K.value=z(H,0),b.value=!1}e.onMounted(E);async function D(B,F){return s[B]?.(F)}function _(){return r()?.userInfo?.email_address??""}async function x(B,F,H,N,R){try{switch(F){case $.Submit:let A=!0;if(k.value?.forEach(te=>{te?.validate&&!te.validate()&&(A=!1)}),!A){c?.appContext.config.globalProperties.$message.error("Please complete all required fields before submit.");return}const{reason:Z,ifGlobal:fe}=await D(R,{isGlobal:U.value});b.value=!0;const re=w.value.find(te=>te.fieldKey==="approvedGrade")?.modelValue,W=R==="Approve"?"100":"-1",ue=await _t(d.className,d.workflowId,_(),Z,H,W,fe,{approvedGrade:re});await D(`${R}Success`,{workflowId:d.workflowId,res:ue}),b.value=!1;const In=R==="Approve"?`Request ID ${d.workflowId} has been approved.`:`Request ID ${d.workflowId} has been rejected.`;c?.appContext.config.globalProperties.$notification.success(In),E();break;case $.Link:try{await s[B.eventName||""]?.(),a.push({name:N,params:{className:d.className,workflowId:d.workflowId}})}catch(te){console.error("Error in link action trigger:",te)}break;case $.Button:await s[B.eventName||""]?.({approvers:I,associators:L,isShowAssignSelect:G,isShowAssignList:Y,assignCallback:g,deleteAssociatorCallback:T});break;default:console.warn("Unknown action type:",F)}}catch{}}const h=e.ref(""),p=e.ref([]),S=e.ref(""),I=e.ref([]),L=e.ref([]);async function g(B){if(!B){c?.appContext.config.globalProperties.$message.error("Please select an approver");return}await V("Confirm Assign Approver","Do you want to assign the selected approver?");try{await i.assignApprover(B),L.value=await i.getAssociator(),C(),c?.appContext.config.globalProperties.$notification.success("Assign Approver clicked!")}catch(F){if(F.status===409){c?.appContext.config.globalProperties.$notification.error("This user is already an associator");return}c?.appContext.config.globalProperties.$notification.error("Failed to assign approver")}}async function V(B,F){const{Modal:H}=await import("@arco-design/web-vue");return new Promise((N,R)=>{H.confirm({title:B,content:F,okText:"OK",cancelText:"Cancel",onOk:()=>N(!0),onCancel:()=>R()})})}async function T(B){try{await V("Confirm Delete Associator","Do you want to delete this associator?")}catch{return}try{await i.deleteAssociator(B.toString()),L.value=await i.getAssociator(),c?.appContext.config.globalProperties.$notification.success("Associator deleted successfully!")}catch{c?.appContext.config.globalProperties.$notification.error("Failed to delete associator")}}async function Q(){if(!h.value.trim()){c?.appContext.config.globalProperties.$message.error("Comment cannot be empty");return}await i.addComments(h.value.trim()),h.value="",p.value=await i.getCommentsHistory(),c?.appContext.config.globalProperties.$notification.success("Add Comment clicked!")}function J(B){return B?B==="OtherInformationText"?"Other Information":B:""}const qe={svrStore:r,bpmStore:t,triggers:s,router:a,customComps:l,instance:c,props:d,get page(){return i},set page(B){i=B},pageData:m,_fields:w,dataWidgetsRefs:k,genField:y,groupedFields:f,reversedActions:u,loading:b,mapWorkflowSteps:z,steps:K,isGlobal:U,isShowAssignSelect:G,isShowAssignList:Y,isShowCommentTextArea:q,reloadButtonList:C,hiddenFields:P,load:E,triggerFn:D,getApproverEmail:_,clickHandler:x,comment:h,commentsHistory:p,selectedApprover:S,approvers:I,associators:L,onAssignApprover:g,confirmDialog:V,onDeleteAssociator:T,onAddComment:Q,formatTitle:J,ActionButton:ie,get IconDownload(){return lo},TopBar:de,get formatDate(){return ae},ToolTip:je,DataWidgets:se};return Object.defineProperty(qe,"__isScriptSetup",{enumerable:!1,value:!0}),qe}}),ln={class:"page-container"},cn={class:"page-body"},dn={class:"detail-card"},mn={class:"form-fields-vertical"},pn={class:"detail-fields"},fn={class:"detail-field"},un={key:0,class:"detail-field"},gn={class:"field-label"},_n={key:1,class:"field-value"},hn={key:2,class:"detail-field-wrapper"},wn={class:"detail-field"},kn={key:0,class:"detail-content"},yn={class:"page-footer"},bn={class:"action-container"},Cn={class:"action-buttons"};function Vn(o,n,r,t,s,a){const l=e.resolveComponent("a-link"),c=e.resolveComponent("a-space"),d=e.resolveComponent("a-card");e.resolveComponent("a-option"),e.resolveComponent("a-select");const i=e.resolveComponent("a-button"),m=e.resolveComponent("a-list-item"),w=e.resolveComponent("a-list"),k=e.resolveComponent("a-textarea"),y=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",ln,[e.createVNode(t.TopBar,{title:t.pageData.banner.title,subTitle:t.pageData.banner.subTitle,email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createElementVNode("div",cn,[e.createVNode(y,{loading:t.loading,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",dn,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.customComps.Steps),{steps:t.steps},null,8,["steps"])),e.createElementVNode("div",mn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groupedFields,f=>(e.openBlock(),e.createBlock(d,{key:f.name,title:f.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",pn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.fields,u=>(e.openBlock(),e.createElementBlock("div",{key:u.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",fn,[u.widget?.readonly?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",gn,[e.createTextVNode(e.toDisplayString(t.formatTitle(u.widget?.title))+" ",1),e.createVNode(t.ToolTip,{"is-visible":u.widget?.isVisible??!1,"output-text":u.widget?.outputText??[]},null,8,["is-visible","output-text"])]),u.widget?.widget==="File"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(u.widget.files,b=>(e.openBlock(),e.createElementBlock("div",{class:"field-value",key:b.id},[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.name)+" ",1),e.createVNode(l,{href:b.url,target:"_blank"},{default:e.withCtx(()=>[e.createVNode(t.IconDownload,{style:{color:"#7A00E6"}})]),_:2},1032,["href"])]),_:2},1024)]))),128)):(e.openBlock(),e.createElementBlock("div",_n,e.toDisplayString(u.fieldValue),1))],64)):(e.openBlock(),e.createElementBlock("div",un,[e.createVNode(t.DataWidgets,{ref_for:!0,ref:"dataWidgets","field-key":u.fieldKey,name:u.fieldKey,config:u,"class-name":r.className,modelValue:u.modelValue,"onUpdate:modelValue":b=>u.modelValue=b,class:"form-field"},null,8,["field-key","name","config","class-name","modelValue","onUpdate:modelValue"])]))])]))),128))])]),_:2},1032,["title"]))),128)),e.createCommentVNode("",!0),e.createCommentVNode("",!0),t.isShowCommentTextArea?(e.openBlock(),e.createElementBlock("div",hn,[e.createElementVNode("div",wn,[n[6]||(n[6]=e.createElementVNode("div",{class:"field-label"},"Comment",-1)),e.createVNode(k,{modelValue:t.comment,"onUpdate:modelValue":n[1]||(n[1]=f=>t.comment=f)},null,8,["modelValue"]),e.createVNode(i,{type:"primary",onClick:t.onAddComment},{default:e.withCtx(()=>n[5]||(n[5]=[e.createTextVNode("Add Comment",-1)])),_:1,__:[5]})])])):e.createCommentVNode("",!0),t.commentsHistory.length?(e.openBlock(),e.createBlock(w,{key:3},{header:e.withCtx(()=>n[7]||(n[7]=[e.createTextVNode(" Comments History ",-1)])),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.commentsHistory,f=>(e.openBlock(),e.createBlock(m,{key:f.associator},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.associator)+": "+e.toDisplayString(f.comments)+" ("+e.toDisplayString(t.formatDate(f.createdAt))+") ",1)]),_:2},1024))),128))]),_:1})):e.createCommentVNode("",!0)]),o.$slots.content?(e.openBlock(),e.createElementBlock("div",kn,[e.renderSlot(o.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",yn,[e.createElementVNode("div",bn,[e.renderSlot(o.$slots,"action",{},void 0,!0),e.createElementVNode("div",Cn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.reversedActions,f=>(e.openBlock(),e.createBlock(t.ActionButton,{key:f.title,loading:t.loading,config:f,class:"action-button",onClick:(...u)=>t.clickHandler(f,...u)},null,8,["loading","config","onClick"]))),128))])])])])}const xn=O(sn,[["render",Vn],["__scopeId","data-v-117ace1a"],["__file","DetailView.vue"]]),Sn=e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(o,{expose:n}){n();const r=ce(),t=le(),s=X(),a=e.getCurrentInstance(),l=o,c=e.ref(),d=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function i(){const g=Object.entries(D.value).filter(([,{value:V}])=>V&&V!=="").map(([V,{value:T,operator:Q}])=>{const J=typeof T=="string"?T.trim():T;return{key:V,value:J,operator:Q}});return{pageNumber:d.current,pageSize:d.pageSize,filters:[...d.filters,...g],sorts:[{key:"workflowId",type:1}]}}const m=e.computed(()=>({x:y.value.length*150+250})),w=g=>{const V=Object.entries(g).filter(([,T])=>T.widget?.column).map(([T,Q],J)=>({title:Q.widget.title,dataIndex:T.charAt(0).toLowerCase()+T.slice(1),order:Q.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((T,Q)=>T.order-Q.order);V.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),y.value=V},k=e.ref([]),y=e.ref([]),f=e.ref(!0),u=e.ref(!0),b=e.ref(),z=async()=>{u.value=!0;const g=await lt(l.className,i());k.value=g.data,d.total=g.totalCount,u.value=!1},K=e.ref(!1);e.onMounted(async()=>{f.value=!0;const g=new me().setPageActionType(v.List).setClassName(l.className).setStore({svrStore:r,bpmStore:t}).build();c.value=await g.getPageData(),w(c.value.fields),x(c.value.fields),h(),E(c.value?.tabs?.[0]?.key||""),b.value=c.value.actions,f.value=!1,K.value=!0}),e.onActivated(()=>{K.value&&z()});const U=g=>{d.current=g,z()},G=g=>{d.pageSize=g,z()};function Y(g,V,T,Q,J){switch(g){case $.Link:s.push({name:T,params:{workflowId:J}});break;default:console.warn("Unknown action type:",g)}}function q(g,V,T){switch(g){case $.Submit:Tt(V,{filters:[{key:"approverList",value:C(),operator:2}]}),a?.appContext.config.globalProperties.$notification.success("submit success!");break;case $.Link:s.push({name:T});break;default:console.warn("Unknown action type:",g)}}function C(){return r()?.userInfo?.email_address??""}function P(g,V){return typeof g!="string"||g.indexOf("{currentUserEmail}")===-1?g:g.replace(/{currentUserEmail}/g,V)}function E(g){const V=c.value?.tabs?.find(T=>T.key===g)?.filters;d.filters=V?.map(T=>({...T,value:P(T.value,C())}))||[],d.current=1,z()}const D=e.ref({}),_=e.ref([]);function x(g){if(!g)return[];_.value=Object.entries(g).filter(([,V])=>V.isFiltered).map(([V,T])=>({fieldKey:V,fieldConfig:T}))}const h=()=>{const g={};_.value.forEach(({fieldKey:V,fieldConfig:T})=>{g[V]={},g[V].value=T.modelValue,g[V].operator=T.operator}),D.value=g},p=()=>{d.current=1,z()},S=()=>{c.value&&h(),p()};function I(g,V){return!(g.location!=="InTable"||g.title==="Update"&&(V.sort===3||V.status===100||V.status===-1))}const L={svrStore:r,bpmStore:t,router:s,instance:a,props:l,pageData:c,paging:d,createListParams:i,scroll:m,mapColumns:w,_data:k,_columns:y,loadingPage:f,loadingTable:u,actions:b,loadData:z,mounted:K,pageChangeHandler:U,pageSizeChangeHandler:G,clickHandler:Y,createHandler:q,getApproverEmail:C,replaceEmail:P,tabHandler:E,searchForm:D,searchableFields:_,mapSearchableFields:x,initSearchForm:h,handleSearch:p,handleReset:S,judgeHiddenActions:I,ActionButton:ie,DataWidgets:se,TopBar:de};return Object.defineProperty(L,"__isScriptSetup",{enumerable:!1,value:!0}),L}}),Bn={class:"list-container"},Nn={class:"query-title"};function Tn(o,n,r,t,s,a){const l=e.resolveComponent("a-space"),c=e.resolveComponent("a-col"),d=e.resolveComponent("a-button"),i=e.resolveComponent("a-row"),m=e.resolveComponent("a-card"),w=e.resolveComponent("a-tab-pane"),k=e.resolveComponent("a-tabs"),y=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",Bn,[e.createVNode(t.TopBar,{title:t.pageData?.banner.title??"",subTitle:t.pageData?.banner.subTitle??"",email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createVNode(m,null,{default:e.withCtx(()=>[e.createElementVNode("div",Nn,[n[0]||(n[0]=e.createElementVNode("h3",null,"Search Conditions",-1)),e.createVNode(l,{size:"medium"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.title},[f.location==="InOperation"?(e.openBlock(),e.createBlock(t.ActionButton,{key:0,config:f,onClick:t.createHandler},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))]),_:1})]),e.createVNode(i,{gutter:[24,20]},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.searchableFields,f=>(e.openBlock(),e.createBlock(c,{key:f.fieldKey,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(t.DataWidgets,{name:f.fieldKey,config:f.fieldConfig,modelValue:t.searchForm[f.fieldKey].value,"onUpdate:modelValue":u=>t.searchForm[f.fieldKey].value=u,class:"form-field"},null,8,["name","config","modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),e.createVNode(c,{span:6,class:"search-col form-buttons"},{default:e.withCtx(()=>[e.createVNode(l,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(d,{type:"primary",size:"medium",onClick:t.handleSearch},{default:e.withCtx(()=>n[1]||(n[1]=[e.createTextVNode(" Search ",-1)])),_:1,__:[1]}),e.createVNode(d,{size:"medium",onClick:t.handleReset},{default:e.withCtx(()=>n[2]||(n[2]=[e.createTextVNode(" Reset ",-1)])),_:1,__:[2]})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(k,{size:"large",onTabClick:t.tabHandler},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pageData?.tabs,f=>(e.openBlock(),e.createBlock(w,{key:f.key,title:f.title},null,8,["title"]))),128))]),_:1}),e.createVNode(y,{columns:t._columns,data:t._data,stripe:"",border:"",pagination:{current:t.paging.current,total:t.paging.total,pageSize:t.paging.pageSize,showTotal:t.paging.showTotal,showPageSize:t.paging.showPageSize,pageSizeOptions:[10,20,50,100]},loading:t.loadingTable,size:"medium",scroll:t.scroll,onPageChange:t.pageChangeHandler,onPageSizeChange:t.pageSizeChangeHandler},{optional:e.withCtx(({record:f})=>[e.createVNode(l,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.title},[t.judgeHiddenActions(u,f)?(e.openBlock(),e.createBlock(t.ActionButton,{key:0,config:u,size:"small",onClick:(...b)=>t.clickHandler(...b,f.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}const An=O(Sn,[["render",Tn],["__scopeId","data-v-a24e1b40"],["__file","ListView.vue"]]);return{install(o,n={}){n.config&&ve(n.config),n.router&&(et(n.router),o.provide(Be,n.router)),n.pinia&&o.provide(Bo,n.pinia),n.useBpmStore&&o.provide(ze,n.useBpmStore),n.useSvrStore&&o.provide(Ke,n.useSvrStore),n.triggers&&o.provide($e,n.triggers),n.customComps&&o.provide(We,n.customComps),o.component("CreateView",qo),o.component("UpdateView",rn),o.component("DetailView",xn),o.component("ListView",An)}}});
1
+ (function(e,oe){typeof exports=="object"&&typeof module<"u"?module.exports=oe(require("vue"),require("axios"),require("pinia"),require("vue-router"),require("@arco-design/web-vue")):typeof define=="function"&&define.amd?define(["vue","axios","pinia","vue-router","@arco-design/web-vue"],oe):(e=typeof globalThis<"u"?globalThis:e||self,e.MyComponentLibrary=oe(e.Vue,e.axios,e.Pinia,e.VueRouter,e.ArcoVue))})(this,function(e,oe,Ye,Qe,ve){"use strict";const Ne=Ye.defineStore("main",()=>{const o=e.ref(void 0),n=e.ref(null);return{token:o,error:n}}),Ze=async o=>new Promise(n=>setTimeout(n,o)),Xe=async(o,n,r,t=void 0)=>{if(o[n]===void 0)try{o[n]=null,o[n]=await r()||t}catch(s){console.error(s),o[n]=void 0}for(;o[n]===null;)await Ze(100);return o[n]},ne=o=>{const n=`0${o}`;return n.substring(n.length-2)},se=(o,n="yyyy-MM-dd hh:mm:ss")=>{if(!o||typeof o=="string"&&o.length===0)return"";try{const r=new Date(o),t=[["yyyy",r.getFullYear()],["yy",r.getFullYear().toString().substring(2)],["MM",ne(r.getMonth()+1)],["M",r.getMonth()+1],["dd",ne(r.getDate())],["d",r.getDate()],["hh",ne(r.getHours())],["h",r.getHours()],["mm",ne(r.getMinutes())],["m",r.getMinutes()],["ss",ne(r.getSeconds())],["s",r.getSeconds()]];for(const[s,a]of t)n=n.replace(s,a);return n}catch{return o.toLocaleString()}},et=(o,n)=>{let r;o instanceof Blob?r=o:r=new Blob([o]);const t=document.createElement("a"),s=window.URL.createObjectURL(r);t.href=s,t.download=n,t.click(),window.URL.revokeObjectURL(s)};let _e={};function tt(o){_e={..._e,...o}}function he(){return _e}const Te=Symbol("library-router");let we=null;function ot(o){we=o??null}function Z(){if(e.getCurrentInstance()){const n=e.inject(Te,null);return n||Qe.useRouter()}if(we)return we;throw new Error("Router is unavailable. Pass router when installing the plugin before using useLibraryRouter outside setup().")}const Ae=e.getCurrentInstance();function ke(o){if(!o||typeof o!="object")return!1;const n=Object.getPrototypeOf(o);return n===Object.prototype||n===null}function nt(o){return typeof o!="string"?o:o.replace(/[&<>"']/g,"")}function re(o){if(Array.isArray(o))return o.map(re);if(ke(o)){const n={};return Object.keys(o).forEach(r=>{n[r]=re(o[r])}),n}return nt(o)}function rt(o){const n=(o.method||"").toLowerCase();if(n==="get")return o.params&&(ke(o.params)||Array.isArray(o.params))&&(o.params=re(o.params)),o;if(n!=="post")return o;const r=o.headers||{},s=(r["Content-Type"]||r["content-type"]||"").includes("application/json");if(o.data&&(s||ke(o.data)||Array.isArray(o.data)))if(typeof o.data=="string")try{const a=JSON.parse(o.data);o.data=JSON.stringify(re(a))}catch{return o}else o.data=re(o.data);return o}function Ie(){const o=he();return{apiBase:o.apiBase||void 0||"",appSecret:o.appSecret||void 0||""}}function at(o){if(!o?.data?.statusCode)return o;switch(o.data.statusCode){case 1:return o.data.data=o.data.result,o.data;case 0:default:return Ae?.appContext.config.globalProperties.$notification.error(o.data.msg),null}}const st=o=>{if(o.response){if(o.response.status!==400){if(o.response.status===401)Z().push("/error/401");else if(o.response.status>=500){const n=Ne();n.error=o,Z().push("/error/500")}}}else o.request?console.error("error with request",o.request):console.error("Error",o.message);o.message.includes("timeout")&&Ae?.appContext.config.globalProperties.$notification.error("请求超时,请检查网络")};function Ee(){const{apiBase:o}=Ie(),n=oe.create({baseURL:o,timeout:20*1e3,withCredentials:!0});return n.interceptors.request.use(rt),n.interceptors.response.use(at,st),n}const Fe=async()=>{const{apiBase:o,appSecret:n}=Ie(),r=Ee(),t=Ne();return await Xe(t,"token",async()=>{const s=await r.post(`${o}/GenerateToken`,{appid:"bpm",appsecret:n});return s?.data?.token&&setTimeout(()=>{t.token=void 0},(s.data?.expireSeconds??3600)*1e3),s?.data?.token})},U=async()=>{const o=await Fe(),n=Ee();return n.defaults.headers.common.Authorization=`Bearer ${o}`,n},ye={CurrentUserEmail:o=>o.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",CurrentUserPositionCode:o=>o.bpmStore()?.positionCode??888,CurrentDatetime:()=>new Date().toISOString(),ApproverEmail:o=>o.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",ApproverPositionCode:o=>o.bpmStore()?.positionCode??999,RejectReason:()=>"Test Reject Reason"},H=[];for(let o=0;o<256;++o)H.push((o+256).toString(16).slice(1));function it(o,n=0){return(H[o[n+0]]+H[o[n+1]]+H[o[n+2]]+H[o[n+3]]+"-"+H[o[n+4]]+H[o[n+5]]+"-"+H[o[n+6]]+H[o[n+7]]+"-"+H[o[n+8]]+H[o[n+9]]+"-"+H[o[n+10]]+H[o[n+11]]+H[o[n+12]]+H[o[n+13]]+H[o[n+14]]+H[o[n+15]]).toLowerCase()}let be;const lt=new Uint8Array(16);function ct(){if(!be){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");be=crypto.getRandomValues.bind(crypto)}return be(lt)}const Pe={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function De(o,n,r){if(Pe.randomUUID&&!o)return Pe.randomUUID();o=o||{};const t=o.random??o.rng?.()??ct();if(t.length<16)throw new Error("Random bytes length must be >= 16");return t[6]=t[6]&15|64,t[8]=t[8]&63|128,it(t)}var j=(o=>(o[o.Submit=0]="Submit",o[o.Link=1]="Link",o[o.Button=2]="Button",o))(j||{}),X=(o=>(o[o.Create=0]="Create",o[o.Update=1]="Update",o[o.Details=2]="Details",o[o.List=3]="List",o[o.ReCreate=5]="ReCreate",o))(X||{});function dt(o,n,r){const t={pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}};o.__ClassAttributes?.forEach(a=>{if(a.attributeType==="UIPageType")t.pageType=a.Type;else if(a.attributeType==="UIValidationControl")t.globalValidations.push({rule:a.ruleName,errorMessage:a.errorMessage,param:a.ruleParameter,appliesTo:a.propertyNames||["*"]});else if(a.attributeType==="UIControl"){const l=a.showToRoles.split(",").map(d=>d.trim()),c=r.bpmStore().employeeInfo.roleList.some(d=>l.includes(d.name))||a.showToRoles==="";if(a.widget==="Tab"){t.tabs||(t.tabs=[]),c&&t.tabs.push({key:De(),title:a.title,filters:a.filters?JSON.parse(a.filters):[],order:a.order});return}if(t.actions||(t.actions=[]),c){if(a.title==="Re-Submit"&&o.status.propertyValue!==-1)return;t.actions.push({isSubmit:a.isSubmit,requestUrl:a.requestUrl,redirectUrl:a.redirectUrl,redirectType:a.redirectType,title:a.title,widget:a.widget==="Link"?j.Link:a.widget==="Submit"?j.Submit:j.Button,location:a.location,attributeType:a.attributeType,readonly:a.readonly,eventName:a.eventName})}}else a.attributeType==="Banner"&&(t.banner.title=a.title,n===0||n===5?t.banner.subTitle=a.subTitle:t.banner.subTitle=Ce(a.subTitle,o.workflowId.propertyValue))}),t.tabs&&(t.tabs=t.tabs.sort((a,l)=>a.order-l.order));const s={id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""};return Object.entries(o).forEach(([a,l])=>{if(a==="__ClassAttributes"||a==="className")return;if(a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"){s[a]=l.propertyValue;return}if(n!==3&&a==="workflowId")return;const c={validations:[],triggers:[],isFiltered:!1,dependent:"",operator:""},{attributes:d,propertyValue:i}=l;switch(i){case null:c.modelValue="";break;case void 0:c.modelValue="";break;default:c.modelValue=i;break}a==="onBehalf"&&n===0&&(c.modelValue=ye.CurrentUserEmail(r)),(n===1||n===5)&&(a==="directReports"||a==="employeesInTheTeam")&&c.modelValue&&(c.modelValue=Number(c.modelValue)),d?.forEach(p=>{p.order||p.Order?c.order=p.order??p.Order:p.attributeType==="UIControl"?(p.outputText=p.outputText?JSON.parse(p.outputText):[],c.widget={...p,column:!0}):p.attributeType==="UIValidationControl"&&n!==3?c.widget?.widget!=="CheckBox"&&c.validations.push(p):p.attributeType==="UIListed"?c.widget={...p,column:!0}:p.attributeType==="UIFiltered"?(c.isFiltered=!0,c.operator=p.operatorType):p.dependentType?c.dependent=ye[p.dependentType]?ye[p.dependentType](r):"":p.eventType==="Change"&&c.triggers?.push({event:"change",handlerName:p.eventName})}),t.fields[a]=c}),t.pageFields=s,t}const Le=async(o,n,r,t)=>{const a=await(await U()).get(`/General/${n}/${o}/page`,{params:t});return dt(a?.data,o,r)},pt=async(o,n,r)=>(await(await U()).post(`/${n}/${o}/button/List`,null,{params:r}))?.data;async function mt(o,n){const t=await(await U()).post(`/General/${o}/list`,n);return{data:t.data.data,totalCount:t.data.totalCount}}async function ft(o,n,r){return(await(await U()).post(r,n,{params:{className:o}})).data}async function ut(o,n,r,t){const s=await U(),a=Ce(t,n);return(await s.put(a,r))?.data}function Ce(o,n){return o.replace(/{WorkflowId}/g,encodeURIComponent(n))}function gt(o,n){return o.replace(/{ApproverEmail}/g,encodeURIComponent(n))}function _t(o,n){return o.replace(/{WorkFlowReason}/g,encodeURIComponent(n))}function ht(o,n){return o.replace(/{Status}/g,n)}function wt(o,n){return o.replace(/{IfTriggerGlobal_RandP_Approval}/g,n)}function kt(o,n){return o.replace(/{ClassName}/g,encodeURIComponent(n))}async function yt(o,n,r,t,s,a,l,c){const d=await U();let i=Ce(s,n);return i=gt(i,r),i=_t(i,t),i=ht(i,a),i=wt(i,l),i=kt(i,o),(await d.put(i,c))?.data}async function bt(o,n){const s=(await(await U()).get(o,{params:{value:n}}))?.data;return Object.entries(s).map(([a,l])=>({value:a,label:l}))}async function Ct(o,n){return(await(await U()).get(`/General/${o}/${n}/process`))?.data}function Vt(o){return{uid:o.id??De(),name:o.attachmentName??"unknown",url:o.attachmentKey??""}}async function xt(o,n){return(await(await U()).get(`/General/${o}/${n}/upload/get`))?.data.reduce((a,l)=>{const{category:c}=l;return a[c]||(a[c]=[]),a[c].push(Vt(l)),a},{})}async function St(o,n){return(await U()).post(`/General/${o}/${n}/delete/attachment`)}async function Bt(){const n=await(await U()).get("/Grading/dropdown/approvers");return Object.entries(n?.data).map(([r,t])=>({label:r,value:t}))}async function Nt(o,n){return await(await U()).post(`Grading/AssignComments/${o}/${encodeURIComponent(n)}`)}async function Tt(o,n,r){return await(await U()).post(`Grading/AddComments/${o}/${encodeURIComponent(n)}`,r,{headers:{"Content-Type":"application/json;charset=UTF-8"}})}async function At(o){return(await(await U()).get(`Grading/GetComments/${o}`))?.data}async function It(o){return(await(await U()).get(`Grading/GetAssociator/${o}`))?.data}async function Et(o){return await(await U()).delete(`Grading/DeleteAssociator/${o}`)}async function Ft(o,n=null){const t=await(await U()).post(o,n,{responseType:"blob"});et(t?.data,"WorkflowData.xlsx")}const ee=(o,n)=>{let r="";return{res:o.every(s=>{const a=Pt(s,n);return a||(r=s.errorMessage),a}),errorMessages:r}},Pt=(o,n)=>{const{ruleName:r,ruleParameter:t}=o;return Dt[r](t,n)},Dt={Regex:(o,n)=>new RegExp(o).test(n),Required:(o,n)=>!!n},Lt=e.defineComponent({__name:"InputText",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=p=>ee(t.validations,p),c=p=>{s("input",p)},d=p=>{const g=l(p);s("error",g.res?"":g.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(_=>{_.event==="change"&&s(_.event,_.handlerName,p)})};n({validate(){const p=l(t.modelValue);return s("error",p.res?"":p.errorMessages),p.res}});const i={props:t,emits:s,model:a,validate:l,inputHandler:c,changeHandler:d};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),O=(o,n)=>{const r=o.__vccOpts||o;for(const[t,s]of n)r[t]=s;return r};function Rt(o,n,r,t,s,a){const l=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(l,{modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=c=>t.model=c),"allow-clear":"","show-word-limit":"",disabled:t.props.config.readonly,"max-length":t.props.config.maxLength,onInput:t.inputHandler,onChange:t.changeHandler},null,8,["modelValue","disabled","max-length"])}const Re=O(Lt,[["render",Rt],["__file","InputText.vue"]]),Ut=e.defineComponent({__name:"InputNumber",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=e.ref(t.config.maxLength??100),c=e.ref(1);e.onMounted(()=>{t.validations&&t.validations.forEach(_=>{_.ruleName==="Max"&&(l.value=_.ruleParameter),_.ruleName==="Min"&&(c.value=_.ruleParameter)})});const d=_=>ee(t.validations,_),i=_=>{s("input",_)},p=_=>{const w=d(_);s("error",w.res?"":w.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(m=>{m.event==="change"&&s(m.event,m.handlerName,_)})};n({validate(){const _=d(t.modelValue);return s("error",_.res?"":_.errorMessages),_.res}});const g={props:t,emits:s,model:a,max:l,min:c,validate:d,inputHandler:i,changeHandler:p};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}});function Mt(o,n,r,t,s,a){const l=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(l,{modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=c=>t.model=c),clearable:"","show-word-limit":"",disabled:t.props.config.readonly,max:t.max,min:t.min,onInput:t.inputHandler,onChange:t.changeHandler},null,8,["modelValue","disabled","max","min"])}const Ht=O(Ut,[["render",Mt],["__file","InputNumber.vue"]]),Ot=e.defineComponent({__name:"SelectList",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.ref(!1),l=e.ref(t.config.options??[]),c=e.useModel(o,"modelValue"),d=w=>ee(t.validations,w),i=e.computed(()=>{const w={};return t.triggers&&t.triggers.length>0&&t.triggers.forEach(m=>{w[m.event]=u=>{s(m.event,m.handlerName,u);const k=d(u);s("error",k.res?"":k.errorMessages)}}),w}),p=async()=>{if(t.config.dataSourceProvider){l.value=await bt(t.config.dataSourceProvider);const w=t.modelValue;w!=null&&w!==""&&(l.value.some(u=>u.value===w)||s("update:modelValue",""))}};e.onMounted(p);const g=w=>{s("update:modelValue",w);const m=d(w);s("error",m.res?"":m.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(u=>{u.event==="change"&&s(u.event,u.handlerName,w)})};n({validate(){const w=d(t.modelValue);return s("error",w.res?"":w.errorMessages),w.res}});const _={props:t,emits:s,loading:a,_options:l,model:c,validate:d,eventHandlers:i,loadOptions:p,changeHandler:g};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}});function jt(o,n,r,t,s,a){const l=e.resolveComponent("AOption"),c=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(c,{"allow-clear":"",modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=d=>t.model=d),loading:t.loading,"filter-option":!0,"allow-search":!0,disabled:t.props.config.readonly,onChange:t.changeHandler},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t._options,d=>(e.openBlock(),e.createBlock(l,{key:d.value,value:d.value,label:d.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading","disabled"])}const Ue=O(Ot,[["render",jt],["__file","SelectList.vue"]]),$t=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.ref(t.config.options??[]),l=i=>{s("update:modelValue",i),s("change",i)};e.onMounted(async()=>{if(t.config){const i=t.config.dataSourceProvider;if(i){const g=await(await U()).get(i);a.value=g.data}}});const c={value:"key",label:"value"};n({validate(){return!0}});const d={props:t,emits:s,_options:a,changeHandler:l,fieldNames:c};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function zt(o,n,r,t,s,a){const l=e.resolveComponent("ACascader"),c=e.resolveComponent("ASpace");return e.openBlock(),e.createBlock(c,{direction:"vertical",size:"large"},{default:e.withCtx(()=>[e.createVNode(l,{"field-names":t.fieldNames,"model-value":r.modelValue,options:t._options,style:{width:"320px"},placeholder:"Please select ...",onChange:t.changeHandler},null,8,["model-value","options"])]),_:1})}const Kt=O($t,[["render",zt],["__file","Cascader.vue"]]),Me=1024*1024,Wt=e.defineComponent({__name:"FileUpload",props:{className:{},maxSize:{},minSize:{},fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.ref({}),l=f=>ee(t.validations,f),c=he(),d=c.apiBase,i=e.ref(null),p=e.ref("");function g(f,I,P){return f.replace(/{WorkflowId}/g,I).replace(/{ClassName}/g,P)}const _=e.computed(()=>{if(t.config.uploadURL){const f=d+t.config.uploadURL;return g(f,p.value,t.className)}return""});function w(f){if(!(typeof f!="number"||f<=0))return f*Me}function m(f){if(!(typeof f!="number"||f<=0))return f}const u=e.computed(()=>w(t.maxSize??t.config.maxSize)),k=e.computed(()=>m(t.minSize??t.config.minSize)),$=e.computed(()=>u.value?R(u.value):"unlimited"),q=e.computed(()=>k.value?R(k.value):"0 B");function R(f){return f<1024?`${f} B`:f<1024*1024?`${Math.round(f/1024)} KB`:f<1024*1024*1024?`${Math.round(f/(1024*1024))} MB`:`${Math.round(f/(1024*1024*1024))} GB`}function z(f){const I=u.value,P=k.value;return typeof I=="number"&&I>0&&f.size>I?(s("error",`File size cannot exceed ${R(I)}`),!1):typeof P=="number"&&P>0&&f.size<P?(s("error",`File size cannot be smaller than ${R(P)}`),!1):(s("error",""),!0)}const G=f=>{f.stopPropagation(),i.value.submit()};function J(f){const{file:I,name:P}=f,K=P??I.name;return new Promise((h,V)=>{ve.Modal.confirm({title:"Confirm Delete",content:`Are you sure you want to delete ${K}?`,async onOk(){if(f.status!=="init"&&t.config.removeFile)return await t.config.removeFile(f.uid),h(!0);h(!0)},onCancel:()=>V("cancel")})})}const x=e.ref(null),b=e.ref(null),S=f=>{x.value&&(x.value(f),x.value=null,b.value=null)},y=f=>{b.value&&(b.value(f),x.value=null,b.value=null)},C=e.ref([]),F=f=>{C.value=f.filter(I=>I.status==="init")};n({submit(f){return new Promise((I,P)=>{i.value?(t.config.uploadURL&&(p.value=f),x.value=I,b.value=P,C.value.length?Fe().then(K=>{a.value={Authorization:`Bearer ${K}`},e.nextTick(()=>{i.value?.submit()})}):I(f)):I(f)})},validate(){const f=t.config.files??[],I=[...C.value,...f].length>0?"hasFile":"",P=l(I);return s("error",P.res?"":P.errorMessages),P.res}});const A={props:t,emits:s,headers:a,validate:l,config:c,ApiBase:d,uploadRef:i,id:p,replaceIdAndClassName:g,action:_,MB_SIZE:Me,mbToBytes:w,normalizeBytes:m,maxFileSize:u,minFileSize:k,maxFileSizeText:$,minFileSizeText:q,formatFileSize:R,onBeforeUpload:z,submit:G,onBeforeRemove:J,uploadPromiseResolve:x,uploadPromiseReject:b,handleUploadSuccess:S,handleUploadError:y,readyFiles:C,onChange:F};return Object.defineProperty(A,"__isScriptSetup",{enumerable:!1,value:!0}),A}}),qt={style:{"margin-top":"8px",color:"#86909c","font-size":"12px"}};function Gt(o,n,r,t,s,a){const l=e.resolveComponent("a-button"),c=e.resolveComponent("a-upload");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(c,{ref:"uploadRef","default-file-list":t.props.config.files,action:t.action,limit:t.props.config.allowedNumber,"auto-upload":!1,name:"files",headers:t.headers,"on-before-upload":t.onBeforeUpload,onChange:t.onChange,onBeforeRemove:t.onBeforeRemove,onSuccess:t.handleUploadSuccess,onError:t.handleUploadError},{"start-icon":e.withCtx(()=>n[0]||(n[0]=[])),"upload-button":e.withCtx(()=>[e.createVNode(l,{type:"primary"},{default:e.withCtx(()=>n[1]||(n[1]=[e.createTextVNode("Select File",-1)])),_:1,__:[1]})]),_:1},8,["default-file-list","action","limit","headers"]),e.createElementVNode("div",qt," The maximum file size for uploads is "+e.toDisplayString(t.maxFileSizeText)+", and the minimum file size is greater than "+e.toDisplayString(t.minFileSizeText)+". ",1)],64)}const Jt=O(Wt,[["render",Gt],["__file","FileUpload.vue"]]),Yt=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(o,{expose:n,emit:r}){const t=o,s=r,a=i=>ee(t.validations,i),l=i=>{s("update:modelValue",i),s("input",i)},c=i=>{s("update:modelValue",i);const p=a(i);s("error",p.res?"":p.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(g=>{g.event==="change"&&s(g.event,g.handlerName,i)})};n({validate(){const i=a(t.modelValue);return s("error",i.res?"":i.errorMessages),i.res}});const d={props:t,emits:s,validate:a,inputHandler:l,changeHandler:c};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function Qt(o,n,r,t,s,a){const l=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(l,{"model-value":t.props.modelValue,placeholder:"Please enter something","allow-clear":"","show-word-limit":"",disabled:t.props.config.readonly,"max-length":t.props.config.maxLength,"auto-size":{minRows:2,maxRows:2},onInput:t.inputHandler,onChange:t.changeHandler},null,8,["model-value","disabled","max-length"])}const vt=O(Yt,[["render",Qt],["__file","TextArea.vue"]]),Zt=e.defineComponent({__name:"CheckBox",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=i=>ee(t.validations,i),c=i=>{const p=l(i);s("error",p.res?"":p.errorMessages),t.triggers&&t.triggers.length>0&&t.triggers.forEach(g=>{g.event==="change"&&s(g.event,g.handlerName,i)})};n({validate(){const i=l(t.modelValue);return s("error",i.res?"":i.errorMessages),i.res}});const d={props:t,emits:s,model:a,validate:l,changeHandler:c};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function Xt(o,n,r,t,s,a){const l=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(l,{modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=c=>t.model=c),clearable:"",disabled:t.props.readonly||t.props.config.Readonly,onChange:t.changeHandler},{default:e.withCtx(()=>n[1]||(n[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}const eo=O(Zt,[["render",Xt],["__file","CheckBox.vue"]]),to=Symbol("ArcoConfigProvider"),oo="arco",no="$arco",He=o=>{var n,r,t;const s=e.getCurrentInstance(),a=e.inject(to,void 0);return`${(t=(r=a?.prefixCls)!=null?r:(n=s?.appContext.config.globalProperties[no])==null?void 0:n.classPrefix)!=null?t:oo}-${o}`},ro=Object.prototype.toString;function Oe(o){return ro.call(o)==="[object Number]"&&o===o}var je=(o,n)=>{for(const[r,t]of n)o[r]=t;return o};const ao=e.defineComponent({name:"IconQuestionCircle",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:o=>["butt","round","square"].includes(o)},strokeLinejoin:{type:String,default:"miter",validator:o=>["arcs","bevel","miter","miter-clip","round"].includes(o)},rotate:Number,spin:Boolean},emits:{click:o=>!0},setup(o,{emit:n}){const r=He("icon"),t=e.computed(()=>[r,`${r}-question-circle`,{[`${r}-spin`]:o.spin}]),s=e.computed(()=>{const l={};return o.size&&(l.fontSize=Oe(o.size)?`${o.size}px`:o.size),o.rotate&&(l.transform=`rotate(${o.rotate}deg)`),l});return{cls:t,innerStyle:s,onClick:l=>{n("click",l)}}}}),so=["stroke-width","stroke-linecap","stroke-linejoin"];function io(o,n,r,t,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(o.cls),style:e.normalizeStyle(o.innerStyle),"stroke-width":o.strokeWidth,"stroke-linecap":o.strokeLinecap,"stroke-linejoin":o.strokeLinejoin,onClick:n[0]||(n[0]=(...l)=>o.onClick&&o.onClick(...l))},n[1]||(n[1]=[e.createElementVNode("path",{d:"M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18Z"},null,-1),e.createElementVNode("path",{d:"M24.006 31v4.008m0-6.008L24 28c0-3 3-4 4.78-6.402C30.558 19.195 28.288 15 23.987 15c-4.014 0-5.382 2.548-5.388 4.514v.465"},null,-1)]),14,so)}var Ve=je(ao,[["render",io]]);const lo=Object.assign(Ve,{install:(o,n)=>{var r;const t=(r=n?.iconPrefix)!=null?r:"";o.component(t+Ve.name,Ve)}}),co=e.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:o=>["butt","round","square"].includes(o)},strokeLinejoin:{type:String,default:"miter",validator:o=>["arcs","bevel","miter","miter-clip","round"].includes(o)},rotate:Number,spin:Boolean},emits:{click:o=>!0},setup(o,{emit:n}){const r=He("icon"),t=e.computed(()=>[r,`${r}-download`,{[`${r}-spin`]:o.spin}]),s=e.computed(()=>{const l={};return o.size&&(l.fontSize=Oe(o.size)?`${o.size}px`:o.size),o.rotate&&(l.transform=`rotate(${o.rotate}deg)`),l});return{cls:t,innerStyle:s,onClick:l=>{n("click",l)}}}}),po=["stroke-width","stroke-linecap","stroke-linejoin"];function mo(o,n,r,t,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(o.cls),style:e.normalizeStyle(o.innerStyle),"stroke-width":o.strokeWidth,"stroke-linecap":o.strokeLinecap,"stroke-linejoin":o.strokeLinejoin,onClick:n[0]||(n[0]=(...l)=>o.onClick&&o.onClick(...l))},n[1]||(n[1]=[e.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1)]),14,po)}var xe=je(co,[["render",mo]]);const fo=Object.assign(xe,{install:(o,n)=>{var r;const t=(r=n?.iconPrefix)!=null?r:"";o.component(t+xe.name,xe)}}),uo=e.defineComponent({__name:"ToolTip",props:{isVisible:{type:Boolean},outputText:{}},setup(o,{expose:n}){n();const r=o,t=c=>c.length>0&&typeof c[0]!="string",s=e.computed(()=>t(r.outputText)?[]:r.outputText),a=e.computed(()=>t(r.outputText)?r.outputText:[]),l={props:r,isTreeArray:t,stringOutput:s,treeOutput:a,get IconQuestionCircle(){return lo}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),go={class:"list-unstyled"},_o={class:"list-style-square"};function ho(o,n,r,t,s,a){const l=e.resolveComponent("a-tooltip");return t.props.isVisible?(e.openBlock(),e.createBlock(l,{key:0,"background-color":"#7A00E6"},{content:e.withCtx(()=>[t.stringOutput.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.stringOutput,c=>(e.openBlock(),e.createElementBlock("p",{key:c},e.toDisplayString(c),1))),128)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.treeOutput,c=>(e.openBlock(),e.createElementBlock("ul",{key:c.title,class:"list-unstyled"},[e.createElementVNode("li",null,[e.createElementVNode("b",null,e.toDisplayString(c.title),1),e.createElementVNode("ul",go,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.items,d=>(e.openBlock(),e.createElementBlock("li",{key:d.title},[e.createElementVNode("u",null,e.toDisplayString(d.title),1),e.createElementVNode("ul",_o,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.items,i=>(e.openBlock(),e.createElementBlock("li",null,e.toDisplayString(i),1))),256))])]))),128))])])]))),128))]),default:e.withCtx(()=>[e.createVNode(t.IconQuestionCircle,{class:"icon"})]),_:1})):e.createCommentVNode("",!0)}const $e=O(uo,[["render",ho],["__scopeId","data-v-1d3893b1"],["__file","ToolTip.vue"]]),wo=e.defineComponent({__name:"index",props:e.mergeModels({config:{},className:{},required:{type:Boolean},fieldKey:{},modelValue:{},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error"],["update:modelValue"]),setup(o,{expose:n,emit:r}){const t=o,s=r,a=e.useModel(o,"modelValue"),l=e.useTemplateRef("widgetRef"),c=e.computed(()=>{switch(t.config?.widget?.widget){case"TextBox":return Re;case"Number":return Ht;case"SelectList":return Ue;case"Cascade":return Kt;case"File":return Jt;case"TextArea":return vt;case"DropDown":return Ue;case"CheckBox":return eo;default:return Re}}),d=e.ref(""),i=m=>{d.value=m},p=(m,u)=>{s("change",m,u)};function g(){return t.config?.widget?.widget==="File"}function _(m){return m==="OtherInformationText"?"Other Information":m}n({isFileUpload(){return t.config?.widget?.widget==="File"},submit(m){return g()?l.value.submit(m):Promise.resolve(m)},validate(){return l.value?.validate()},getCompName(){return t?.config?.widget?.title}});const w={props:t,emits:s,model:a,widgetRef:l,curComp:c,errMsg:d,errHandler:i,changeHandler:p,isFileUpload:g,formatTitle:_,ToolTip:$e};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}}),ko={class:"title"},yo={key:0,class:"required"},bo={key:0,class:"err-msg"};function Co(o,n,r,t,s,a){return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ko,[e.createTextVNode(e.toDisplayString(t.formatTitle(t.props?.config?.widget?.title))+" ",1),t.props.required||t.props.config.validations.some(l=>l.ruleName==="Required")?(e.openBlock(),e.createElementBlock("span",yo," * ")):e.createCommentVNode("",!0),e.createVNode(t.ToolTip,{"is-visible":t.props.config.widget?.isVisible??!1,"output-text":t.props.config.widget?.outputText??[]},null,8,["is-visible","output-text"])]),e.createElementVNode("div",null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.curComp),{ref:"widgetRef",modelValue:t.model,"onUpdate:modelValue":n[0]||(n[0]=l=>t.model=l),"field-key":t.props.fieldKey,config:t.props.config.widget,validations:t.props.config.validations,triggers:t.props.config.triggers,"class-name":t.props.className,onError:t.errHandler,onChange:t.changeHandler},null,40,["modelValue","field-key","config","validations","triggers","class-name"])),t.errMsg.length>0?(e.openBlock(),e.createElementBlock("div",bo,e.toDisplayString(t.errMsg),1)):e.createCommentVNode("",!0)])])}const ie=O(wo,[["render",Co],["__scopeId","data-v-67595df1"],["__file","index.vue"]]),Vo=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(o,{expose:n,emit:r}){n();const t=o,s=r;function a(){s("click",t.url,t.redirectType)}const l={props:t,emits:s,clickHandler:a};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}});function xo(o,n,r,t,s,a){const l=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(l,{loading:r.loading,type:"primary",onClick:t.clickHandler},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},8,["loading"])}const ze=O(Vo,[["render",xo],["__file","SubmitButton.vue"]]),So=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{},loading:{type:Boolean}},emits:["click"],setup(o,{expose:n,emit:r}){n();const t=o,s=r;function a(){s("click",t.url,t.redirectType)}const l={props:t,emits:s,clickHandler:a};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}});function Bo(o,n,r,t,s,a){const l=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(l,{onClick:t.clickHandler},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})}const No=O(So,[["render",Bo],["__file","DetailLink.vue"]]),To=e.defineComponent({__name:"index",props:{config:{},loading:{type:Boolean}},emits:["click"],setup(o,{expose:n,emit:r}){n();const t=o,s=r;function a(p,g){s("click",t.config.widget,p,g,t.config.title)}const l=e.computed(()=>{switch(t.config.location){case"InOperation":return ze;case"InTable":return No;default:return ze}}),c=e.computed(()=>t.config.widget===j.Submit?t.config.requestUrl??"":t.config.widget===j.Link?t.config.redirectUrl??"":""),d=e.computed(()=>t.config.redirectType??"Details"),i={props:t,emits:s,clickHandler:a,curComp:l,curUrl:c,redirectType:d};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}});function Ao(o,n,r,t,s,a){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.curComp),{url:t.curUrl,"redirect-type":t.redirectType,loading:r.loading,onClick:t.clickHandler},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.props.config.title),1)]),_:1},8,["url","redirect-type","loading"])}const le=O(To,[["render",Ao],["__file","index.vue"]]),Ke=Symbol("library-triggers");function Se(){const o=e.inject(Ke,null);return o||{}}const Io=Symbol("library-pinia"),We=Symbol("library-bpmStore"),qe=Symbol("library-svrStore");function ce(){return e.inject(We,null)}function de(){return e.inject(qe,null)}const Eo=e.defineComponent({__name:"TopBar",props:{title:{},subTitle:{},email:{}},setup(o,{expose:n}){n();const r={};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Fo={class:"top-bar"},Po={class:"banner-info"},Do={class:"page-title"},Lo={class:"page-subtitle"},Ro={class:"avatar-wrapper"},Uo={class:"user-email"};function Mo(o,n,r,t,s,a){const l=e.resolveComponent("a-avatar"),c=e.resolveComponent("a-popover");return e.openBlock(),e.createElementBlock("div",Fo,[e.createElementVNode("div",Po,[e.createElementVNode("div",Do,e.toDisplayString(r.title),1),e.createElementVNode("div",Lo,e.toDisplayString(r.subTitle),1)]),e.createElementVNode("div",Ro,[e.createVNode(c,{trigger:"click"},{content:e.withCtx(()=>[e.createElementVNode("div",Uo,e.toDisplayString(r.email),1)]),default:e.withCtx(()=>[e.createVNode(l,{size:48,autoFixFontSize:"",style:{cursor:"pointer",background:"#165DFF",color:"#fff"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.email.charAt(0).toUpperCase()),1)]),_:1})]),_:1})])])}const pe=O(Eo,[["render",Mo],["__scopeId","data-v-c0457235"],["__file","TopBar.vue"]]);function Be(o){const n=he(),r=[];if(n.fieldsGroup){n.fieldsGroup.forEach(a=>{const l=a.keys.map(c=>o.find(d=>d.fieldKey===c)).filter(Boolean);l.length&&r.push({name:a.name,fields:l})});const t=n.fieldsGroup.flatMap(a=>a.keys),s=o.filter(a=>!t.includes(a.fieldKey));return s.length&&r.push({name:"Grading Review History (For example: re-submit the grading request)",fields:s}),r}}class me{pageActionType;className="";store={svrStore:{},bpmStore:{}};opt={workflowId:""};setWorkflowId(n){return n?(this.opt.workflowId=n,this):this}setPageActionType(n){return this.pageActionType=n,this}setClassName(n){return this.className=n,this}setStore(n){return this.store=n,this}setOpt(n){return this.opt=n,this}build(){return this.pageActionType?this.opt.workflowId?new fe(this.pageActionType,this.className,this.store,this.opt):new fe(this.pageActionType,this.className,this.store):this.opt.workflowId?new fe(X.ReCreate,this.className,this.store,this.opt):new fe(X.Create,this.className,this.store)}}class fe{pageActionType;className;store;opt;getApproverEmail(){return this.store.svrStore()?.userInfo?.email_address??""}getWorkflowId(){return this.opt?.workflowId??""}constructor(n,r,t,s){this.pageActionType=n,this.className=r,this.store=t,s&&(this.opt=s)}getPageData(){return this.opt?Le(this.pageActionType,this.className,this.store,this.opt):Le(this.pageActionType,this.className,this.store)}getBtnList(){return pt(this.pageActionType,this.className,{workflowId:this.getWorkflowId(),email:this.getApproverEmail()})}getFiles(){return this.getWorkflowId()?xt(this.className,this.getWorkflowId()):Promise.resolve({})}removeFile(n){return St(this.className,n)}getProcess(){return Ct(this.className,this.getWorkflowId())}getCommentsHistory(){return At(this.getWorkflowId())}getAssociator(){return It(this.getWorkflowId())}getApprovers(){return Bt()}assignApprover(n){return Nt(this.getWorkflowId(),n)}addComments(n){return Tt(this.getWorkflowId(),this.getApproverEmail(),n)}deleteAssociator(n){return Et(n)}}const Ho=e.defineComponent({__name:"CreateView",props:{className:{},workflowId:{}},setup(o,{expose:n}){n();const r=ce(),t=de(),s=Z(),a=Se(),l=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),d=o,i=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}}),p=e.ref([]),g=e.ref({});function _(b){return b?Object.entries(b).map(([y,C])=>({fieldKey:y,...C})).filter(y=>y.widget&&y.widget.widget!=="Hidden").filter(y=>!z.value.includes(y.fieldKey)):[]}function w(b){return b?Object.entries(b).filter(([y,C])=>C.dependent).reduce((y,[C,F])=>(y[C]=F.dependent,y),{}):[]}const m=e.computed(()=>i.value?.actions?[...i.value.actions].reverse():[]),u=e.ref({}),k=e.ref(!1);e.onMounted(async()=>{k.value=!0;const b=new me().setWorkflowId(d.workflowId).setClassName(d.className).setStore({svrStore:t,bpmStore:r}).build();i.value=await b.getPageData();const S=i.value.fields.requestType.modelValue;a.Test?.({fieldValue:S,hiddenFields:z,formData:u}),p.value=_(i.value.fields),g.value=w(i.value.fields);for(const y in i.value.fields){if(i.value.fields[y].widget?.widget==="File"){const C=p.value.find(F=>F.fieldKey===y);C&&C.widget&&(C.widget.files=[])}u.value[y]=i.value.fields[y].modelValue}k.value=!1});function $(){return t()?.userInfo?.email_address??""}async function q(b,S,y,C,F){switch(S){case j.Submit:let A=!0;if(l.value?.forEach(f=>{f?.validate&&(f.validate()||(A=!1))}),!A){c?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}k.value=!0;try{a[F]?.({message:`${F} action triggered`});const f={...u.value,...g.value};a.createPageBeforeSubmit?.(f);const I=await ft(d.className,f,y);a[`${F}Success`||""]?.({message:"Workflow created successfully",workflowId:d.workflowId,res:I});const P=l.value?.map(K=>K?.submit?K.submit(I.toString()):Promise.resolve())||[];await Promise.all(P),k.value=!1,c?.appContext.config.globalProperties.$notification.success(`Your grading request has been submitted, ID is ${I.toString()}.`),s.push({name:"Details",params:{workflowId:I.toString()}})}catch{c?.appContext.config.globalProperties.$notification.error("Failed to submit your grading request"),k.value=!1}break;case j.Link:try{await a[b.eventName||""]?.(u.value,z),s.push({name:C,params:{className:d.className}}),await a[`${b.eventName||""}Success`]?.({message:`Router to ${C} pushed`})}catch(f){console.error("Error in link action trigger:",f)}break;default:console.warn("Unknown action type:",S)}}const R=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","jobAttachmentPrevious","positionId"],z=e.ref(R);function G(b,S){a[b]?.({fieldValue:S,hiddenFields:z,formData:u}),i.value&&(p.value=_(i.value.fields))}const J=e.computed(()=>Be(p.value)),x={bpmStore:r,svrStore:t,router:s,triggers:a,dataWidgetsRefs:l,instance:c,props:d,pageData:i,_fields:p,_dependent:g,genField:_,genDependentField:w,reversedActions:m,_data:u,loading:k,getApproverEmail:$,clickHandler:q,newHiddenFields:R,hiddenFields:z,changeHandler:G,groupedFields:J,DataWidgets:ie,ActionButton:le,TopBar:pe};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}}),Oo={class:"page-container"},jo={class:"page-body"},$o={class:"form-card"},zo={class:"form-fields-vertical"},Ko={class:"form-fields"},Wo={key:0,class:"form-content"},qo={class:"page-footer"},Go={class:"action-container"},Jo={class:"action-buttons"};function Yo(o,n,r,t,s,a){const l=e.resolveComponent("a-card"),c=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Oo,[e.createVNode(t.TopBar,{title:t.pageData.banner.title,subTitle:t.pageData.banner.subTitle,email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createElementVNode("div",jo,[e.createVNode(c,{loading:t.loading,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",$o,[e.createElementVNode("div",zo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groupedFields,d=>(e.openBlock(),e.createBlock(l,{key:d.name,title:d.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.fields,i=>(e.openBlock(),e.createBlock(t.DataWidgets,{key:i.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":i.fieldKey,config:i,"class-name":r.className,modelValue:t._data[i.fieldKey],"onUpdate:modelValue":p=>t._data[i.fieldKey]=p,class:"form-field",onChange:t.changeHandler},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),o.$slots.content?(e.openBlock(),e.createElementBlock("div",Wo,[e.renderSlot(o.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",qo,[e.createElementVNode("div",Go,[e.renderSlot(o.$slots,"action",{},void 0,!0),e.createElementVNode("div",Jo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.reversedActions,d=>(e.openBlock(),e.createBlock(t.ActionButton,{key:d.title,loading:t.loading,config:d,class:"action-button",onClick:(...i)=>t.clickHandler(d,...i)},null,8,["loading","config","onClick"]))),128))])])])])}const Qo=O(Ho,[["render",Yo],["__scopeId","data-v-31413447"],["__file","CreateView.vue"]]),vo=e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(o,{expose:n}){n();const r=Z(),t=Se(),s=de(),a=ce(),l=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),d=o,i=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}}),p=e.ref([]),g=e.ref({});function _(x){return x?Object.entries(x).map(([S,y])=>({fieldKey:S,...y})).filter(S=>S.widget&&S.widget.widget!=="Hidden").filter(S=>!R.value.includes(S.fieldKey)):[]}function w(x){return x?Object.entries(x).filter(([S,y])=>y.dependent).reduce((S,[y,C])=>(S[y]=C.dependent,S),{}):[]}const m=e.computed(()=>i.value?.actions?[...i.value.actions].reverse():[]),u=e.ref({}),k=e.ref(!1);e.onMounted(async()=>{k.value=!0;const x=new me().setPageActionType(X.Update).setClassName(d.className).setStore({svrStore:s,bpmStore:a}).setWorkflowId(d.workflowId).build();i.value=await x.getPageData();const b=await x.getBtnList(),S=await x.getFiles();i.value.actions=i.value.actions?.filter(C=>{const F=b.find(A=>A.button===C.title);return F?F.isShow:!0});const y=i.value.fields.requestType.modelValue;t.Test?.({fieldValue:y,hiddenFields:R,formData:u}),p.value=_(i.value.fields),g.value=w(i.value.fields);for(const C in i.value.fields){if(i.value.fields[C].widget?.widget==="File"){const F=p.value.find(A=>A.fieldKey===C);F&&F.widget&&(F.widget.files=S[C]??[],F.widget.removeFile=A=>x.removeFile(A))}u.value[C]=i.value.fields[C].modelValue}k.value=!1});function $(){return s()?.userInfo?.email_address??""}async function q(x,b,S,y,C){switch(b){case j.Submit:let F=!0;if(l.value?.forEach(A=>{A?.validate&&(A.validate()||(F=!1))}),!F){c?.appContext.config.globalProperties.$message.error("form validation failed, please check the input fields");return}k.value=!0;try{const A={...u.value,...g.value};t.updatePageBeforeSubmit?.(A,a().employeeInfo);const f=await ut(d.className,d.workflowId,A,S),I=l.value?.map(P=>P?.submit?P.submit(f.toString()):Promise.resolve())||[];await Promise.all(I),k.value=!1,c?.appContext.config.globalProperties.$notification.success(`Your grading request has been submitted, ID is ${f.toString()}.`)}catch{c?.appContext.config.globalProperties.$notification.error("Failed to submit your grading request"),k.value=!1}break;case j.Link:try{await t[x.eventName||""]?.(u.value,R),r.push({name:y,params:{className:d.className}})}catch{}break;default:console.warn("Unknown action type:",b)}}const R=e.ref([]);function z(x,b){t[x]?.({fieldValue:b,hiddenFields:R,formData:u}),i.value&&(p.value=_(i.value.fields))}const G=e.computed(()=>Be(p.value)),J={router:r,triggers:t,svrStore:s,bpmStore:a,dataWidgetsRefs:l,instance:c,props:d,pageData:i,_fields:p,_dependent:g,genField:_,genDependentField:w,reversedActions:m,_data:u,loading:k,getApproverEmail:$,clickHandler:q,hiddenFields:R,changeHandler:z,groupedFields:G,DataWidgets:ie,ActionButton:le,TopBar:pe};return Object.defineProperty(J,"__isScriptSetup",{enumerable:!1,value:!0}),J}}),Zo={class:"page-container"},Xo={class:"page-body"},en={class:"form-card"},tn={class:"form-fields-vertical"},on={class:"form-fields"},nn={key:0,class:"form-content"},rn={class:"page-footer"},an={class:"action-container"},sn={class:"action-buttons"};function ln(o,n,r,t,s,a){const l=e.resolveComponent("a-card"),c=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Zo,[e.createVNode(t.TopBar,{title:t.pageData.banner.title,subTitle:t.pageData.banner.subTitle,email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createElementVNode("div",Xo,[e.createVNode(c,{loading:t.loading,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",en,[e.createElementVNode("div",tn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groupedFields,d=>(e.openBlock(),e.createBlock(l,{key:d.name,title:d.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",on,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.fields,i=>(e.openBlock(),e.createBlock(t.DataWidgets,{key:i.fieldKey,ref_for:!0,ref:"dataWidgets","field-key":i.fieldKey,config:i,"class-name":r.className,modelValue:t._data[i.fieldKey],"onUpdate:modelValue":p=>t._data[i.fieldKey]=p,class:"form-field",onChange:t.changeHandler},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"]))),128))])]),_:2},1032,["title"]))),128))]),o.$slots.content?(e.openBlock(),e.createElementBlock("div",nn,[e.renderSlot(o.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",rn,[e.createElementVNode("div",an,[e.renderSlot(o.$slots,"action",{},void 0,!0),e.createElementVNode("div",sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.reversedActions,d=>(e.openBlock(),e.createBlock(t.ActionButton,{key:d.title,loading:t.loading,config:d,class:"action-button",onClick:(...i)=>t.clickHandler(d,...i)},null,8,["loading","config","onClick"]))),128))])])])])}const cn=O(vo,[["render",ln],["__scopeId","data-v-605f261e"],["__file","UpdateView.vue"]]),Ge=Symbol("library-custom-comp");function dn(){return e.inject(Ge,null)}const pn=e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(o,{expose:n}){n();const r=de(),t=ce(),s=Se(),a=Z(),l=dn(),c=e.getCurrentInstance(),d=o;let i;const p=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""},pageFields:{id:"",deleteFlag:"",status:"",workFlowReason:"",workflowId:""}}),g=e.ref([]),_=e.useTemplateRef("dataWidgets");function w(B){return B?Object.entries(B).map(([M,N])=>{typeof N.modelValue=="boolean"?N.fieldValue=N.modelValue?"Yes":"No":N.fieldValue=N.modelValue;const L={fieldKey:M,...N};return L.widget?.readonly||L.validations?.some(v=>v.ruleName==="Required")?L:{...L,validations:[...L.validations||[],{ruleName:"Required",ruleParameter:"",errorMessage:`${Q(L.widget?.title)||L.fieldKey} is required`}]}}).filter(M=>M.widget&&M.widget.widget!=="Hidden").filter(M=>!b.value.includes(M.fieldKey)):[]}const m=e.computed(()=>Be(g.value)),u=e.computed(()=>p.value?.actions?[...p.value.actions].reverse():[]),k=e.ref(!0),$=(B,D)=>{const M=B.findIndex(N=>N.isCurrent);return B.map((N,L)=>{const T={id:N.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};T.title=N.workflowProcessApprovers[0]?.name;const v=N.workflowProcessApprovers[N.workflowProcessApprovers.length-1],ue=N.workflowHistorys[N.workflowHistorys.length-1],ae=ue?.workflowHistoryApprovers[ue?.workflowHistoryApprovers?.length-1];if(v&&ae&&v?.email?.toLowerCase()!==ae?.approverEmail?.toLowerCase()&&(T.title=`${ae.name}`,T.proxy=`Proxy: ${v.name}`),N.sort>1?T.sub="Approver Role: "+N.nodeName.replace("Submit","").replace("Approve",""):T.sub="Submit Application",N.isCurrent&&D!==-1)T.desc="In Approval",T.status=1;else{const W=N.workflowHistorys[N.workflowHistorys.length-1];if(W&&W.status===100)T.time=se(W.takeActionAt,"yyyy-MM-dd hh:mm:ss"),T.status=2,T.desc="approve success!";else if(W&&W.status===999)T.time=se(W.takeActionAt,"yyyy-MM-dd hh:mm:ss"),T.status=0,T.desc="approve reject!";else if(W)if(T.time=se(W.takeActionAt,"yyyy-MM-dd hh:mm:ss"),N.sort===1)T.status=2,T.desc="";else{const ge=W.workflowHistoryApprovers[0];T.status=3,T.desc=ge?.reason?`Rejected reason: ${ge.reason}`:"Rejected"}else L<M||M===-1?(T.status=0,T.desc="Skipped"):(T.status=0,T.desc="Pending Approval");W&&W.status}return T})},q=e.ref([]),R=e.ref(!1),z=e.ref(!1),G=e.ref(!1),J=e.ref(!1);async function x(){const B=await i.getBtnList();p.value.actions=p.value.actions?.filter(D=>{const M=B.find(N=>N.button===D.title);return M?M.isShow:!0}),R.value=B.find(D=>D.button==="IsGlobal")?.isShow??!1,z.value=B.find(D=>D.button==="AssignButton")?.isShow??!1,G.value=B.find(D=>D.button==="AssignList")?.isShow??!1,J.value=B.find(D=>D.button==="AddCommentsButton")?.isShow??!1}const b=e.ref([]);async function S(){k.value=!0,i=new me().setPageActionType(X.Details).setClassName(d.className).setStore({svrStore:r,bpmStore:t}).setWorkflowId(d.workflowId).build(),p.value=await i.getPageData();const B=await i.getFiles();P.value=await i.getApprovers(),f.value=await i.getCommentsHistory(),K.value=await i.getAssociator(),await x(),s.detailPageLoaded?.(p,t().employeeInfo);const D=p.value.fields.requestType.modelValue;s.Test?.({fieldValue:D,hiddenFields:b}),g.value=w(p.value.fields);for(const N in p.value.fields)if(p.value.fields[N].widget?.widget==="File"){const L=g.value.find(T=>T.fieldKey===N);L&&L.widget&&(L.widget.files=B[N]??[])}const M=await i.getProcess();q.value=$(M,0),k.value=!1}e.onMounted(S);async function y(B,D){return s[B]?.(D)}function C(){return r()?.userInfo?.email_address??""}async function F(B,D,M,N,L){try{switch(D){case j.Submit:let T=!0;if(_.value?.forEach(te=>{te?.validate&&!te.validate()&&(T=!1)}),!T){c?.appContext.config.globalProperties.$message.error("Please complete all required fields before submit.");return}const{reason:v,ifGlobal:ue}=await y(L,{isGlobal:R.value});k.value=!0;const ae=g.value.find(te=>te.fieldKey==="approvedGrade")?.modelValue,W=L==="Approve"?"100":"-1",ge=await yt(d.className,d.workflowId,C(),v,M,W,ue,{approvedGrade:ae});await y(`${L}Success`,{workflowId:d.workflowId,res:ge}),k.value=!1;const Dn=L==="Approve"?`Request ID ${d.workflowId} has been approved.`:`Request ID ${d.workflowId} has been rejected.`;c?.appContext.config.globalProperties.$notification.success(Dn),S();break;case j.Link:try{await s[B.eventName||""]?.(),a.push({name:N,params:{className:d.className,workflowId:d.workflowId}})}catch(te){console.error("Error in link action trigger:",te)}break;case j.Button:await s[B.eventName||""]?.({approvers:P,associators:K,isShowAssignSelect:z,isShowAssignList:G,assignCallback:h,deleteAssociatorCallback:E});break;default:console.warn("Unknown action type:",D)}}catch{}}const A=e.ref(""),f=e.ref([]),I=e.ref(""),P=e.ref([]),K=e.ref([]);async function h(B){if(!B){c?.appContext.config.globalProperties.$message.error("Please select an approver");return}await V("Confirm Assign Approver","Do you want to assign the selected approver?");try{await i.assignApprover(B),K.value=await i.getAssociator(),x(),c?.appContext.config.globalProperties.$notification.success("Assign Approver clicked!")}catch(D){if(D.status===409){c?.appContext.config.globalProperties.$notification.error("This user is already an associator");return}c?.appContext.config.globalProperties.$notification.error("Failed to assign approver")}}async function V(B,D){const{Modal:M}=await import("@arco-design/web-vue");return new Promise((N,L)=>{M.confirm({title:B,content:D,okText:"OK",cancelText:"Cancel",onOk:()=>N(!0),onCancel:()=>L()})})}async function E(B){try{await V("Confirm Delete Associator","Do you want to delete this associator?")}catch{return}try{await i.deleteAssociator(B.toString()),K.value=await i.getAssociator(),c?.appContext.config.globalProperties.$notification.success("Associator deleted successfully!")}catch{c?.appContext.config.globalProperties.$notification.error("Failed to delete associator")}}async function Y(){if(!A.value.trim()){c?.appContext.config.globalProperties.$message.error("Comment cannot be empty");return}await i.addComments(A.value.trim()),A.value="",f.value=await i.getCommentsHistory(),c?.appContext.config.globalProperties.$notification.success("Add Comment clicked!")}function Q(B){return B?B==="OtherInformationText"?"Other Information":B:""}const Je={svrStore:r,bpmStore:t,triggers:s,router:a,customComps:l,instance:c,props:d,get page(){return i},set page(B){i=B},pageData:p,_fields:g,dataWidgetsRefs:_,genField:w,groupedFields:m,reversedActions:u,loading:k,mapWorkflowSteps:$,steps:q,isGlobal:R,isShowAssignSelect:z,isShowAssignList:G,isShowCommentTextArea:J,reloadButtonList:x,hiddenFields:b,load:S,triggerFn:y,getApproverEmail:C,clickHandler:F,comment:A,commentsHistory:f,selectedApprover:I,approvers:P,associators:K,onAssignApprover:h,confirmDialog:V,onDeleteAssociator:E,onAddComment:Y,formatTitle:Q,ActionButton:le,get IconDownload(){return fo},TopBar:pe,get formatDate(){return se},ToolTip:$e,DataWidgets:ie};return Object.defineProperty(Je,"__isScriptSetup",{enumerable:!1,value:!0}),Je}}),mn={class:"page-container"},fn={class:"page-body"},un={class:"detail-card"},gn={class:"form-fields-vertical"},_n={class:"detail-fields"},hn={class:"detail-field"},wn={key:0,class:"detail-field"},kn={class:"field-label"},yn={key:1,class:"field-value"},bn={key:2,class:"detail-field-wrapper"},Cn={class:"detail-field"},Vn={key:0,class:"detail-content"},xn={class:"page-footer"},Sn={class:"action-container"},Bn={class:"action-buttons"};function Nn(o,n,r,t,s,a){const l=e.resolveComponent("a-link"),c=e.resolveComponent("a-space"),d=e.resolveComponent("a-card");e.resolveComponent("a-option"),e.resolveComponent("a-select");const i=e.resolveComponent("a-button"),p=e.resolveComponent("a-list-item"),g=e.resolveComponent("a-list"),_=e.resolveComponent("a-textarea"),w=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",mn,[e.createVNode(t.TopBar,{title:t.pageData.banner.title,subTitle:t.pageData.banner.subTitle,email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createElementVNode("div",fn,[e.createVNode(w,{loading:t.loading,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",un,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.customComps.Steps),{steps:t.steps},null,8,["steps"])),e.createElementVNode("div",gn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.groupedFields,m=>(e.openBlock(),e.createBlock(d,{key:m.name,title:m.name,style:{"margin-bottom":"24px"}},{default:e.withCtx(()=>[e.createElementVNode("div",_n,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.fields,u=>(e.openBlock(),e.createElementBlock("div",{key:u.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",hn,[u.widget?.readonly?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",kn,[e.createTextVNode(e.toDisplayString(t.formatTitle(u.widget?.title))+" ",1),e.createVNode(t.ToolTip,{"is-visible":u.widget?.isVisible??!1,"output-text":u.widget?.outputText??[]},null,8,["is-visible","output-text"])]),u.widget?.widget==="File"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(u.widget.files,k=>(e.openBlock(),e.createElementBlock("div",{class:"field-value",key:k.id},[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.name)+" ",1),e.createVNode(l,{href:k.url,target:"_blank"},{default:e.withCtx(()=>[e.createVNode(t.IconDownload,{style:{color:"#7A00E6"}})]),_:2},1032,["href"])]),_:2},1024)]))),128)):(e.openBlock(),e.createElementBlock("div",yn,e.toDisplayString(u.fieldValue),1))],64)):(e.openBlock(),e.createElementBlock("div",wn,[e.createVNode(t.DataWidgets,{ref_for:!0,ref:"dataWidgets","field-key":u.fieldKey,name:u.fieldKey,config:u,"class-name":r.className,modelValue:u.modelValue,"onUpdate:modelValue":k=>u.modelValue=k,class:"form-field"},null,8,["field-key","name","config","class-name","modelValue","onUpdate:modelValue"])]))])]))),128))])]),_:2},1032,["title"]))),128)),e.createCommentVNode("",!0),e.createCommentVNode("",!0),t.isShowCommentTextArea?(e.openBlock(),e.createElementBlock("div",bn,[e.createElementVNode("div",Cn,[n[6]||(n[6]=e.createElementVNode("div",{class:"field-label"},"Comment",-1)),e.createVNode(_,{modelValue:t.comment,"onUpdate:modelValue":n[1]||(n[1]=m=>t.comment=m)},null,8,["modelValue"]),e.createVNode(i,{type:"primary",onClick:t.onAddComment},{default:e.withCtx(()=>n[5]||(n[5]=[e.createTextVNode("Add Comment",-1)])),_:1,__:[5]})])])):e.createCommentVNode("",!0),t.commentsHistory.length?(e.openBlock(),e.createBlock(g,{key:3},{header:e.withCtx(()=>n[7]||(n[7]=[e.createTextVNode(" Comments History ",-1)])),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.commentsHistory,m=>(e.openBlock(),e.createBlock(p,{key:m.associator},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.associator)+": "+e.toDisplayString(m.comments)+" ("+e.toDisplayString(t.formatDate(m.createdAt))+") ",1)]),_:2},1024))),128))]),_:1})):e.createCommentVNode("",!0)]),o.$slots.content?(e.openBlock(),e.createElementBlock("div",Vn,[e.renderSlot(o.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",xn,[e.createElementVNode("div",Sn,[e.renderSlot(o.$slots,"action",{},void 0,!0),e.createElementVNode("div",Bn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.reversedActions,m=>(e.openBlock(),e.createBlock(t.ActionButton,{key:m.title,loading:t.loading,config:m,class:"action-button",onClick:(...u)=>t.clickHandler(m,...u)},null,8,["loading","config","onClick"]))),128))])])])])}const Tn=O(pn,[["render",Nn],["__scopeId","data-v-90976ef8"],["__file","DetailView.vue"]]),An=e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(o,{expose:n}){n();const r=de(),t=ce(),s=Z(),a=e.getCurrentInstance(),l=o,c=e.ref(),d=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function i(){const h=Object.entries(y.value).filter(([,{value:V}])=>V&&V!=="").map(([V,{value:E,operator:Y}])=>{const Q=typeof E=="string"?E.trim():E;return{key:V,value:Q,operator:Y}});return{pageNumber:d.current,pageSize:d.pageSize,filters:[...d.filters,...h],sorts:[{key:"workflowId",type:1}]}}const p=e.computed(()=>({x:w.value.length*150+250})),g=h=>{const V=Object.entries(h).filter(([,E])=>E.widget?.column).map(([E,Y],Q)=>({title:Y.widget.title,dataIndex:E.charAt(0).toLowerCase()+E.slice(1),order:Y.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((E,Y)=>E.order-Y.order);V.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),w.value=V},_=e.ref([]),w=e.ref([]),m=e.ref(!0),u=e.ref(!0),k=e.ref(),$=async()=>{u.value=!0;const h=await mt(l.className,i());_.value=h.data,d.total=h.totalCount,u.value=!1},q=e.ref(!1);e.onMounted(async()=>{m.value=!0;const h=new me().setPageActionType(X.List).setClassName(l.className).setStore({svrStore:r,bpmStore:t}).build();c.value=await h.getPageData(),g(c.value.fields),F(c.value.fields),A(),S(c.value?.tabs?.[0]?.key||""),k.value=c.value.actions,m.value=!1,q.value=!0}),e.onActivated(()=>{q.value&&$()});const R=h=>{d.current=h,$()},z=h=>{d.pageSize=h,$()};function G(h,V,E,Y,Q){switch(h){case j.Link:s.push({name:E,params:{workflowId:Q}});break;default:console.warn("Unknown action type:",h)}}function J(h,V,E){switch(h){case j.Submit:Ft(V,{filters:[{key:"approverList",value:x(),operator:2}]}),a?.appContext.config.globalProperties.$notification.success("submit success!");break;case j.Link:s.push({name:E});break;default:console.warn("Unknown action type:",h)}}function x(){return r()?.userInfo?.email_address??""}function b(h,V){return typeof h!="string"||h.indexOf("{currentUserEmail}")===-1?h:h.replace(/{currentUserEmail}/g,V)}function S(h){const V=c.value?.tabs?.find(E=>E.key===h)?.filters;d.filters=V?.map(E=>({...E,value:b(E.value,x())}))||[],d.current=1,$()}const y=e.ref({}),C=e.ref([]);function F(h){if(!h)return[];C.value=Object.entries(h).filter(([,V])=>V.isFiltered).map(([V,E])=>({fieldKey:V,fieldConfig:E}))}const A=()=>{const h={};C.value.forEach(({fieldKey:V,fieldConfig:E})=>{h[V]={},h[V].value=E.modelValue,h[V].operator=E.operator}),y.value=h},f=()=>{d.current=1,$()},I=()=>{c.value&&A(),f()};function P(h,V){return!(h.location!=="InTable"||h.title==="Update"&&(V.sort===3||V.status===100||V.status===-1))}const K={svrStore:r,bpmStore:t,router:s,instance:a,props:l,pageData:c,paging:d,createListParams:i,scroll:p,mapColumns:g,_data:_,_columns:w,loadingPage:m,loadingTable:u,actions:k,loadData:$,mounted:q,pageChangeHandler:R,pageSizeChangeHandler:z,clickHandler:G,createHandler:J,getApproverEmail:x,replaceEmail:b,tabHandler:S,searchForm:y,searchableFields:C,mapSearchableFields:F,initSearchForm:A,handleSearch:f,handleReset:I,judgeHiddenActions:P,ActionButton:le,DataWidgets:ie,TopBar:pe};return Object.defineProperty(K,"__isScriptSetup",{enumerable:!1,value:!0}),K}}),In={class:"list-container"},En={class:"query-title"};function Fn(o,n,r,t,s,a){const l=e.resolveComponent("a-space"),c=e.resolveComponent("a-col"),d=e.resolveComponent("a-button"),i=e.resolveComponent("a-row"),p=e.resolveComponent("a-card"),g=e.resolveComponent("a-tab-pane"),_=e.resolveComponent("a-tabs"),w=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",In,[e.createVNode(t.TopBar,{title:t.pageData?.banner.title??"",subTitle:t.pageData?.banner.subTitle??"",email:t.getApproverEmail()},null,8,["title","subTitle","email"]),e.createVNode(p,null,{default:e.withCtx(()=>[e.createElementVNode("div",En,[n[0]||(n[0]=e.createElementVNode("h3",null,"Search Conditions",-1)),e.createVNode(l,{size:"medium"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,m=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:m.title},[m.location==="InOperation"?(e.openBlock(),e.createBlock(t.ActionButton,{key:0,config:m,onClick:t.createHandler},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))]),_:1})]),e.createVNode(i,{gutter:[24,20]},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.searchableFields,m=>(e.openBlock(),e.createBlock(c,{key:m.fieldKey,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(t.DataWidgets,{name:m.fieldKey,config:m.fieldConfig,modelValue:t.searchForm[m.fieldKey].value,"onUpdate:modelValue":u=>t.searchForm[m.fieldKey].value=u,class:"form-field"},null,8,["name","config","modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),e.createVNode(c,{span:6,class:"search-col form-buttons"},{default:e.withCtx(()=>[e.createVNode(l,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(d,{type:"primary",size:"medium",onClick:t.handleSearch},{default:e.withCtx(()=>n[1]||(n[1]=[e.createTextVNode(" Search ",-1)])),_:1,__:[1]}),e.createVNode(d,{size:"medium",onClick:t.handleReset},{default:e.withCtx(()=>n[2]||(n[2]=[e.createTextVNode(" Reset ",-1)])),_:1,__:[2]})]),_:1})]),_:1})]),_:1})]),_:1}),e.createVNode(_,{size:"large",onTabClick:t.tabHandler},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pageData?.tabs,m=>(e.openBlock(),e.createBlock(g,{key:m.key,title:m.title},null,8,["title"]))),128))]),_:1}),e.createVNode(w,{columns:t._columns,data:t._data,stripe:"",border:"",pagination:{current:t.paging.current,total:t.paging.total,pageSize:t.paging.pageSize,showTotal:t.paging.showTotal,showPageSize:t.paging.showPageSize,pageSizeOptions:[10,20,50,100]},loading:t.loadingTable,size:"medium",scroll:t.scroll,onPageChange:t.pageChangeHandler,onPageSizeChange:t.pageSizeChangeHandler},{optional:e.withCtx(({record:m})=>[e.createVNode(l,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.title},[t.judgeHiddenActions(u,m)?(e.openBlock(),e.createBlock(t.ActionButton,{key:0,config:u,size:"small",onClick:(...k)=>t.clickHandler(...k,m.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}const Pn=O(An,[["render",Fn],["__scopeId","data-v-a24e1b40"],["__file","ListView.vue"]]);return{install(o,n={}){n.config&&tt(n.config),n.router&&(ot(n.router),o.provide(Te,n.router)),n.pinia&&o.provide(Io,n.pinia),n.useBpmStore&&o.provide(We,n.useBpmStore),n.useSvrStore&&o.provide(qe,n.useSvrStore),n.triggers&&o.provide(Ke,n.triggers),n.customComps&&o.provide(Ge,n.customComps),o.component("CreateView",Qo),o.component("UpdateView",cn),o.component("DetailView",Tn),o.component("ListView",Pn)}}});
2
2
  //# sourceMappingURL=index.umd.js.map