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