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