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