@chase-shao/vue-component-lib 1.2.86 → 1.2.88

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