@chase-shao/vue-component-lib 1.2.77 → 1.2.78

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